Index: scripts/globals/abilities/afflatus_solace.lua =================================================================== --- scripts/globals/abilities/afflatus_solace.lua (revision 3520) +++ scripts/globals/abilities/afflatus_solace.lua (working copy) @@ -1,5 +1,7 @@ ----------------------------------- --- Ability: Arcane Circle +-- Ability: Afflatus Solace +-- Inspires you to draw strength +-- from the healing spells you cast. ----------------------------------- require("scripts/globals/status"); Index: scripts/globals/abilities/aggressor.lua =================================================================== --- scripts/globals/abilities/aggressor.lua (revision 3520) +++ scripts/globals/abilities/aggressor.lua (working copy) @@ -1,5 +1,6 @@ ----------------------------------- -- Ability: Aggressor +-- Enhances Accuracy impairs Evasion ----------------------------------- require("scripts/globals/settings"); @@ -14,5 +15,19 @@ end; function OnUseAbility(player, target, ability) - player:addStatusEffect(EFFECT_AGGRESSOR,1,0,180); + local merit = target:getMerit(MERIT_AGGRESSIVE_AIM); + local body = target:getEquipID(SLOT_BODY); + local evaMod = 0; + local duration = 180; + + if (body == 10670) then -- Warriors Lorica +2 + duration = duration + 10; + evaMod = 10; + elseif (body == 14500) then -- Warriors Lorica +1 + evaMod = 10; + elseif (body == 15087) then -- Warriors Lorica + evaMod = 5; + end + + player:addStatusEffect(EFFECT_AGGRESSOR,evaMod,0,duration,0,merit); end; \ No newline at end of file Index: scripts/globals/abilities/animated_flourish.lua =================================================================== --- scripts/globals/abilities/animated_flourish.lua (revision 0) +++ scripts/globals/abilities/animated_flourish.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------- +-- Ability: Animated Flourish +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_1); + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_2); + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_3); + player:addStatusEffect(EFFECT_FINISHING_MOVE_1,1,0,7200); + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_4); + player:addStatusEffect(EFFECT_FINISHING_MOVE_2,1,0,7200); + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_5); + player:addStatusEffect(EFFECT_FINISHING_MOVE_3,1,0,7200); + return 0,0; + + else + return MSGBASIC_NO_FINISHINGMOVES,0; + end; +end; + +function OnUseAbility(player, target, ability) + --Zero point in filling this as its hardcored (Am guessing anyway...); +end; \ No newline at end of file Index: scripts/globals/abilities/arcane_crest.lua =================================================================== --- scripts/globals/abilities/arcane_crest.lua (revision 0) +++ scripts/globals/abilities/arcane_crest.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------- +-- Ability: Arcane Crest +-- Lowers Acc Eva MAcc MEva and TP +-- Gain for Arcana. +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + if (target:getSystem() == 3) then + return 0,0; + else + return MSGBASIC_UNABLE_TO_USE_JA2,0; + end +end; + +function OnUseAbility(player, target, ability) + target:addStatusEffect(EFFECT_ARCANE_CREST,-10,0,180); +end; Index: scripts/globals/abilities/aspir_samba.lua =================================================================== --- scripts/globals/abilities/aspir_samba.lua (revision 3520) +++ scripts/globals/abilities/aspir_samba.lua (working copy) @@ -2,15 +2,19 @@ require("scripts/globals/status"); require("scripts/globals/magic"); -function OnAbilityCheck(player,target,ability) - if (player:getTP() < 10) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; else - player:delTP(10); - return 0,0; - end -end; - + if (player:getTP() < 10) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(10); + return 0,0; + end + end +end; + function OnUseAbility(player, target, ability) player:delStatusEffect(EFFECT_HASTE_SAMBA); Index: scripts/globals/abilities/aspir_samba_ii.lua =================================================================== --- scripts/globals/abilities/aspir_samba_ii.lua (revision 3520) +++ scripts/globals/abilities/aspir_samba_ii.lua (working copy) @@ -2,15 +2,19 @@ require("scripts/globals/status"); require("scripts/globals/magic"); -function OnAbilityCheck(player,target,ability) - if (player:getTP() < 25) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; else - player:delTP(25); - return 0,0; - end -end; - + if (player:getTP() < 25) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(25); + return 0,0; + end + end +end; + function OnUseAbility(player, target, ability) player:delStatusEffect(EFFECT_HASTE_SAMBA); Index: scripts/globals/abilities/avatars_favor.lua =================================================================== --- scripts/globals/abilities/avatars_favor.lua (revision 0) +++ scripts/globals/abilities/avatars_favor.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------- +-- Ability: Avatar's Favor +-- Channels the avatar's power +-- towards a beneficial status +-- effect for the party members +-- within range. +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + if (player:getPet() == nil) then + return MSGBASIC_REQUIRES_A_PET,0; + else + return 0,0; + end +end; + +function OnUseAbility(player, target, ability) + +end; Index: scripts/globals/abilities/azure_lore.lua =================================================================== --- scripts/globals/abilities/azure_lore.lua (revision 0) +++ scripts/globals/abilities/azure_lore.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------- +-- Author: Kegsay +-- Azure Lore +-- Enhances the effect of blue magic spells. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + --print(); + player:addStatusEffect(EFFECT_AZURE_LORE,1,0,30); +end; \ No newline at end of file Index: scripts/globals/abilities/berserk.lua =================================================================== --- scripts/globals/abilities/berserk.lua (revision 3520) +++ scripts/globals/abilities/berserk.lua (working copy) @@ -14,7 +14,44 @@ end; function OnUseAbility(player, target, ability) - player:addStatusEffect(EFFECT_BERSERK,1,0,180); + local feet = target:getEquipID(SLOT_FEET); + local weapon = target:getEquipID(SLOT_MAIN); + local defMod = -25; + local atkMod = 25; + local critMod = 0; + + duration = 180; + if (feet == 10730) then -- Warriors Calligae +2 + duration = duration + 10; + end + + if (feet == 15132 or feet == 15665 or feet == 10730) then -- Warriors Calligae /+1/+2 + defMod = defMod + 10 + end + if (weapon == 18991) then -- Conqueror Lvl 75 + defMod = defMod - 5; + atkMod = atkMod + 5; + critMod = 5; + elseif (weapon == 19060) then -- Conqueror Lvl 80 + defMod = defMod - 6; + atkMod = atkMod + 6; + critMod = 7; + elseif (weapon == 19080) then -- Conqueror Lvl 85 + defMod = defMod - 7; + atkMod = atkMod + 7; + critMod = 9; + elseif (weapon == 19612 or weapon == 19710) then -- Conqueror Lvl 90-95 + defMod = defMod - 8; + atkMod = atkMod + 8; + critMod = 11; + elseif (weapon == 19819 or weapon == 19948) then -- Conqueror Lvl 99-99 + defMod = defMod - 9; + atkMod = atkMod + 9; + critMod = 14; + end + + player:addStatusEffect(EFFECT_BERSERK,defMod,0,duration,0,aktMod,critMod); + return EFFECT_BERSERK; end; \ No newline at end of file Index: scripts/globals/abilities/blade_bash.lua =================================================================== --- scripts/globals/abilities/blade_bash.lua (revision 0) +++ scripts/globals/abilities/blade_bash.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------- +-- Blade Bash +-- Delivers an attack that can plague the target. Two-handed weapon required. +-- +-- Mainly added for enmity, but will also do damage. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + + if (player:isWeaponTwoHanded()) then + final = player:getMainLvl(); + + if (player:getEquipID(SLOT_EAR1) == 0x39a6 or player:getEquipID(SLOT_EAR2) == 0x39a6) then --Knightly Earring + final = final+10; + end + + target:removeHP(final); + ability:setMsg(110); + ability:setResult(final); + end + +end; \ No newline at end of file Index: scripts/globals/abilities/blood_rage.lua =================================================================== --- scripts/globals/abilities/blood_rage.lua (revision 0) +++ scripts/globals/abilities/blood_rage.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------- +-- Ability: Blood Rage +-- Enhances Crit Hit Rate fo party +-- members within the AoE. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + + local duration = 30; + duration = duration + player:getMod(MOD_BLOOD_RAGE); + + if(player:hasStatusEffect(EFFECT_WARCRY) == true) then + player:delStatusEffect(EFFECT_WARCRY); + end + player:addStatusEffect(EFFECT_BLOOD_RAGE,20,0,duration); +end; \ No newline at end of file Index: scripts/globals/abilities/boost.lua =================================================================== --- scripts/globals/abilities/boost.lua (revision 3520) +++ scripts/globals/abilities/boost.lua (working copy) @@ -17,7 +17,7 @@ local sHands = player:getEquipID(SLOT_HANDS); local power = 12.5 if(sHands == 13962 or sHands == 14891) then - power = power + 5.5; + power = power + 6.25; end if(player:hasStatusEffect(EFFECT_BOOST) == true) then Index: scripts/globals/abilities/box_step.lua =================================================================== --- scripts/globals/abilities/box_step.lua (revision 3520) +++ scripts/globals/abilities/box_step.lua (working copy) @@ -10,15 +10,88 @@ ----------------------------------- --Uncomment these when implemented -function OnAbilityCheck(player,target,ability) - --if (player:getTP() < 10) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; - --else - -- player:delTP(10); - -- return 0,0; - --end -end; - +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; + elseif (player:getTP() < 10) then + return MSGBASIC_NOT_ENOUGH_TP,0; + else + player:delTP(10); + return 0,0; + end; +end; + function OnUseAbility(player, target, ability) + + local mjob = player:getMainJob(); + if (mjob == 19) then + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_1); + player:addStatusEffect(EFFECT_FINISHING_MOVE_3,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_2); + player:addStatusEffect(EFFECT_FINISHING_MOVE_4,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_3); + player:addStatusEffect(EFFECT_FINISHING_MOVE_5,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_4); + player:addStatusEffect(EFFECT_FINISHING_MOVE_5,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + else + player:addStatusEffect(EFFECT_FINISHING_MOVE_2,1,0,7200); + end; + + else + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_1); + player:addStatusEffect(EFFECT_FINISHING_MOVE_2,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_2); + player:addStatusEffect(EFFECT_FINISHING_MOVE_3,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_3); + player:addStatusEffect(EFFECT_FINISHING_MOVE_4,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_4); + player:addStatusEffect(EFFECT_FINISHING_MOVE_5,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + else + player:addStatusEffect(EFFECT_FINISHING_MOVE_1,1,0,7200); + end; + + + end; + + if (target:hasStatusEffect(EFFECT_SLUGGISH_DAZE_1)) then + target:delStatusEffect(EFFECT_SLUGGISH_DAZE_1); + target:addStatusEffect(EFFECT_SLUGGISH_DAZE_2,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_SLUGGISH_DAZE_2)) then + target:delStatusEffect(EFFECT_SLUGGISH_DAZE_2); + target:addStatusEffect(EFFECT_SLUGGISH_DAZE_3,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_SLUGGISH_DAZE_3)) then + target:delStatusEffect(EFFECT_SLUGGISH_DAZE_3); + target:addStatusEffect(EFFECT_SLUGGISH_DAZE_4,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_SLUGGISH_DAZE_4)) then + target:delStatusEffect(EFFECT_SLUGGISH_DAZE_4); + target:addStatusEffect(EFFECT_SLUGGISH_DAZE_5,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_SLUGGISH_DAZE_5)) then + else + target:addStatusEffect(EFFECT_SLUGGISH_DAZE_1,1,0,30); + end; end; \ No newline at end of file Index: scripts/globals/abilities/building_flourish.lua =================================================================== --- scripts/globals/abilities/building_flourish.lua (revision 0) +++ scripts/globals/abilities/building_flourish.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------- +-- Ability: Animated Flourish +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + return 0,0; + + else + return MSGBASIC_NO_FINISHINGMOVES,0; + end; +end; + +function OnUseAbility(player, target, ability) + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_1); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_2); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_3); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_4); + player:addStatusEffect(EFFECT_FINISHING_MOVE_1,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_5); + player:addStatusEffect(EFFECT_FINISHING_MOVE_2,1,0,7200); + end; + + player:addStatusEffect(EFFECT_BUILDING_FLOURISH,1,0,60); + + +end; \ No newline at end of file Index: scripts/globals/abilities/call_wyvern.lua =================================================================== --- scripts/globals/abilities/call_wyvern.lua (revision 3520) +++ scripts/globals/abilities/call_wyvern.lua (working copy) @@ -13,6 +13,8 @@ function OnAbilityCheck(player,target,ability) if (player:getPet() ~= nil) then return MSGBASIC_ALREADY_HAS_A_PET,0; + elseif(player:hasStatusEffect(EFFECT_SPIRIT_SURGE) == true) then + return MSGBASIC_UNABLE_TO_USE_JA,0; else return 0,0; end Index: scripts/globals/abilities/camouflage.lua =================================================================== --- scripts/globals/abilities/camouflage.lua (revision 3520) +++ scripts/globals/abilities/camouflage.lua (working copy) @@ -16,8 +16,7 @@ function OnUseAbility(player, target, ability) local duration = math.random(30, 300); - duration = math.random(30, 300); - duration = math.random(30, 300); + duration = duration + (duration * target:getMod(MOD_INVIS_DUR)); if (target:getEquipID(SLOT_BODY) == 14224) then -- Hunter's Jerkin duration = duration * 1.3; Index: scripts/globals/abilities/chain_affinity.lua =================================================================== --- scripts/globals/abilities/chain_affinity.lua (revision 0) +++ scripts/globals/abilities/chain_affinity.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------- +-- Author: Kegsay +-- Chain Affinity +-- Makes it possible for your next "physical" blue magic spell to be used in a skillchain. Effect varies with TP. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + --print(); + player:addStatusEffect(EFFECT_CHAIN_AFFINITY,1,0,30); +end; \ No newline at end of file Index: scripts/globals/abilities/chakra.lua =================================================================== --- scripts/globals/abilities/chakra.lua (revision 3520) +++ scripts/globals/abilities/chakra.lua (working copy) @@ -38,6 +38,15 @@ end multi = multi + 0.6; end + if(hand == 10691) then -- Melee Gloves (+2) equipped + if(player:hasStatusEffect(EFFECT_DISEASE)) then + player:delStatusEffect(EFFECT_DISEASE); + end + if(player:hasStatusEffect(EFFECT_PLAUGE)) then + player:delStatusEffect(EFFECT_PLAUGE); + end + multi = multi + 0.8; + end local recover = (multi * vit); player:setHP((hp + recover)); Index: scripts/globals/abilities/chocobo_jig.lua =================================================================== --- scripts/globals/abilities/chocobo_jig.lua (revision 3520) +++ scripts/globals/abilities/chocobo_jig.lua (working copy) @@ -1,30 +1,30 @@ ----------------------------------- --- Ability: Chocobo jig +-- Chocobo Jig +-- Increases movement speed. ----------------------------------- require("scripts/globals/settings"); require("scripts/globals/status"); ------------------------------------ --- OnUseAbility ------------------------------------ +function OnAbilityCheck(player,target,ability) + return 0,0; +end; -function OnAbilityCheck(player,target,ability) - return 0,0; -end; - function OnUseAbility(player, target, ability) + -- Lasts for 120 seconds + duration = 120; + -- Jig Duration Bonus + duration = duration + player:getMod(MOD_JIG_TIME); - -- Increases movement speed by 25% for 120s - -- AF feet and Relic legs increase duration by 30s each - local legs = player:getEquipID(SLOT_LEGS); - local feet = player:getEquipID(SLOT_FEET); - local duration = 120; - if(legs == 16360 or legs == 16361 or legs == 10728) then - duration = duration + 30; - end - if(feet == 15746 or feet == 15747 or feet == 11393 or feet == 11394) then - duration = duration + 30; - end - player:addStatusEffect(EFFECT_QUICKENING,25,0,duration); -end; \ No newline at end of file + if (player:getStatusEffect(EFFECT_QUICKENING)) then + player:removeStatusType(EFFECT_QUICKENING); + end + + -- No effect if Flee or Mazurka is active + if (player:getStatusEffect(EFFECT_FLEE) or player:getStatusEffect(EFFECT_MAZURKA)) then + ability:setMsg(323); + else + player:addStatusEffect(EFFECT_QUICKENING,25,0,duration); + ability:setMsg(126); + end +end; Index: scripts/globals/abilities/convert.lua =================================================================== --- scripts/globals/abilities/convert.lua (revision 3520) +++ scripts/globals/abilities/convert.lua (working copy) @@ -24,6 +24,18 @@ -- Murgleis sword augments Convert. if ((player:getEquipID(SLOT_MAIN) == 18995 or player:getEquipID(SLOT_SUB) == 18995) and (HP > (player:getMaxHP()/2))) then HP = HP * 2; + elseif ((player:getEquipID(SLOT_MAIN) == 19064 or player:getEquipID(SLOT_SUB) == 19064) and (HP > (player:getMaxHP()/2))) then + HP = HP * 2; + elseif ((player:getEquipID(SLOT_MAIN) == 19084 or player:getEquipID(SLOT_SUB) == 19084) and (HP > (player:getMaxHP()/2))) then + HP = HP * 2; + elseif ((player:getEquipID(SLOT_MAIN) == 19616 or player:getEquipID(SLOT_SUB) == 19616) and (HP > (player:getMaxHP()/2))) then + HP = HP * 2; + elseif ((player:getEquipID(SLOT_MAIN) == 19714 or player:getEquipID(SLOT_SUB) == 19714) and (HP > (player:getMaxHP()/2))) then + HP = HP * 2; + elseif ((player:getEquipID(SLOT_MAIN) == 19823 or player:getEquipID(SLOT_SUB) == 19823) and (HP > (player:getMaxHP()/2))) then + HP = HP * 3; + elseif ((player:getEquipID(SLOT_MAIN) == 19952 or player:getEquipID(SLOT_SUB) == 19952) and (HP > (player:getMaxHP()/2))) then + HP = HP * 3; end player:setHP(MP); player:setMP(HP); Index: scripts/globals/abilities/counterstance.lua =================================================================== --- scripts/globals/abilities/counterstance.lua (revision 3520) +++ scripts/globals/abilities/counterstance.lua (working copy) @@ -16,11 +16,6 @@ function OnUseAbility(player, target, ability) local power = 50; - local feet = player:getEquipID(SLOT_FEET); - if(feet == 15133 or feet == 15666) then - power = power + 10; - end - target:delStatusEffect(EFFECT_COUNTERSTANCE); --if not found this will do nothing target:addStatusEffect(EFFECT_COUNTERSTANCE,power,0,300); end; Index: scripts/globals/abilities/cover.lua =================================================================== --- scripts/globals/abilities/cover.lua (revision 0) +++ scripts/globals/abilities/cover.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------- +-- Author: Tenjou +-- Cover +-- Allows player to protect the target by placing themselves between them and the enemy. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + --print(); + ability:setMsg(0); + duration = 60 + player:getMerit(MERIT_COVER_EFFECT_LENGTH); + if (target ~= player) then + target:addStatusEffect(EFFECT_COVER,1,0,duration); + cover = target:getStatusEffect(EFFECT_COVER); + cover:setEffector(player); + end +end; \ No newline at end of file Index: scripts/globals/abilities/curing_waltz.lua =================================================================== --- scripts/globals/abilities/curing_waltz.lua (revision 3520) +++ scripts/globals/abilities/curing_waltz.lua (working copy) @@ -9,17 +9,21 @@ -- OnUseAbility ----------------------------------- -function OnAbilityCheck(player,target,ability) - if (player:getTP() < 20) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; elseif (target:getHP() == 0) then return MSGBASIC_CANNOT_ON_THAT_TARG,0; else - player:delTP(20); - return 0,0; - end -end; - + if (player:getTP() < 20) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(20); + return 0,0; + end + end +end; + function OnUseAbility(player, target, ability) --Grabbing variables. @@ -28,8 +32,6 @@ local mjob = player:getMainJob(); --19 for DNC main. local sjob = player:getSubJob(); local cure = 0; - - --Performing sj mj check. if(mjob == 19) then @@ -39,9 +41,10 @@ if(sjob == 19) then cure = (vit+chr)*0.125+60; end + + cure = cure + (cure * (player:getMod(MOD_WALTZ_POTENCY)/100)); + cure = cure + (cure * (target:getMod(MOD_WALTZ_RCVD)/100)); - --Reducing TP. - --Applying server mods.... cure = cure * CURE_POWER; Index: scripts/globals/abilities/curing_waltz_ii.lua =================================================================== --- scripts/globals/abilities/curing_waltz_ii.lua (revision 3520) +++ scripts/globals/abilities/curing_waltz_ii.lua (working copy) @@ -9,17 +9,21 @@ -- OnUseAbility ----------------------------------- -function OnAbilityCheck(player,target,ability) - if (player:getTP() < 35) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; elseif (target:getHP() == 0) then return MSGBASIC_CANNOT_ON_THAT_TARG,0; else - player:delTP(35); - return 0,0; - end -end; - + if (player:getTP() < 35) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(35); + return 0,0; + end + end +end; + function OnUseAbility(player, target, ability) --Grabbing variables. @@ -28,9 +32,7 @@ local mjob = player:getMainJob(); --19 for DNC main. local sjob = player:getSubJob(); local cure = 0; - - --Performing sj mj check. if(mjob == 19) then cure = (vit+chr)*0.5+130; @@ -39,9 +41,10 @@ if(sjob == 19) then cure = (vit+chr)*0.25+130; end - - --Reducing TP. - + + cure = cure + (cure * (player:getMod(MOD_WALTZ_POTENCY)/100)); + cure = cure + (cure * (target:getMod(MOD_WALTZ_RCVD)/100)); + --Applying server mods.... cure = cure * CURE_POWER; Index: scripts/globals/abilities/curing_waltz_iii.lua =================================================================== --- scripts/globals/abilities/curing_waltz_iii.lua (revision 3520) +++ scripts/globals/abilities/curing_waltz_iii.lua (working copy) @@ -9,17 +9,21 @@ -- OnUseAbility ----------------------------------- -function OnAbilityCheck(player,target,ability) - if (player:getTP() < 50) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; elseif (target:getHP() == 0) then return MSGBASIC_CANNOT_ON_THAT_TARG,0; else - player:delTP(50); - return 0,0; - end -end; - + if (player:getTP() < 50) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(50); + return 0,0; + end + end +end; + function OnUseAbility(player, target, ability) --Grabbing variables. @@ -27,15 +31,14 @@ local chr = player:getStat(MOD_CHR); local mjob = player:getMainJob(); --19 for DNC main. local cure = 0; - - --Performing mj check. if(mjob == 19) then cure = (vit+chr)*0.75+270; end - --Reducing TP. + cure = cure + (cure * (player:getMod(MOD_WALTZ_POTENCY)/100)); + cure = cure + (cure * (target:getMod(MOD_WALTZ_RCVD)/100)); --Applying server mods.... cure = cure * CURE_POWER; Index: scripts/globals/abilities/curing_waltz_iv.lua =================================================================== --- scripts/globals/abilities/curing_waltz_iv.lua (revision 3520) +++ scripts/globals/abilities/curing_waltz_iv.lua (working copy) @@ -9,17 +9,21 @@ -- OnUseAbility ----------------------------------- -function OnAbilityCheck(player,target,ability) - if (player:getTP() < 65) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; elseif (target:getHP() == 0) then return MSGBASIC_CANNOT_ON_THAT_TARG,0; else - player:delTP(65); - return 0,0; - end -end; - + if (player:getTP() < 65) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(65); + return 0,0; + end + end +end; + function OnUseAbility(player, target, ability) --Grabbing variables. @@ -27,13 +31,14 @@ local chr = player:getStat(MOD_CHR); local mjob = player:getMainJob(); --19 for DNC main. local cure = 0; - + --Performing mj check. if(mjob == 19) then cure = (vit+chr)+450; end - --Reducing TP. + cure = cure + (cure * (player:getMod(MOD_WALTZ_POTENCY)/100)); + cure = cure + (cure * (target:getMod(MOD_WALTZ_RCVD)/100)); --Applying server mods.... cure = cure * CURE_POWER; Index: scripts/globals/abilities/curing_waltz_v.lua =================================================================== --- scripts/globals/abilities/curing_waltz_v.lua (revision 0) +++ scripts/globals/abilities/curing_waltz_v.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------- +-- Ability: Curing Waltz V +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; + else + if (player:getTP() < 80) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(80); + return 0,0; + end + end +end; + +function OnUseAbility(player, target, ability) + + --Grabbing variables. + local vit = target:getStat(MOD_VIT); + local chr = player:getStat(MOD_CHR); + local cure = 0; + + cure = ((vit+chr) * 1.25) + 600; + + cure = cure + (cure * (player:getMod(MOD_WALTZ_POTENCY)/100)); + cure = cure + (cure * (target:getMod(MOD_WALTZ_RCVD)/100)); + + --Applying server mods.... + cure = cure * CURE_POWER; + + --Cap the final amount to max HP. + if((target:getMaxHP() - target:getHP()) < cure) then + cure = (target:getMaxHP() - target:getHP()); + end + + --Do it + target:addHP(cure); + player:updateEnmityFromCure(target,cure*(240 / ( ( 31 * target:getMainLvl() / 50 ) + 6 )),cure*(40 / ( ( 31 * target:getMainLvl() / 50 ) + 6 ))); + + return cure; + +end; \ No newline at end of file Index: scripts/globals/abilities/dark_seal.lua =================================================================== --- scripts/globals/abilities/dark_seal.lua (revision 3520) +++ scripts/globals/abilities/dark_seal.lua (working copy) @@ -1,5 +1,9 @@ ----------------------------------- --- Ability: Elemental Seal +-- Ability: Dark Seal +-- Enhances acc of your next magic +-- spell. Each merit after 1st +-- reduces Dark Mag casting time +-- by 10%. ----------------------------------- require("scripts/globals/settings"); @@ -10,10 +14,11 @@ ----------------------------------- function OnAbilityCheck(player,target,ability) - return 0,0; + return 0,0; end; function OnUseAbility(player, target, ability) - local merits = player:getMerit(MERIT_DARK_SEAL); - player:addStatusEffect(EFFECT_DARK_SEAL,merits,0,60); + + local merits = player:getMerit(MERIT_DARK_SEAL); + player:addStatusEffect(EFFECT_DARK_SEAL,merits,0,60); end; Index: scripts/globals/abilities/despoil.lua =================================================================== --- scripts/globals/abilities/despoil.lua (revision 0) +++ scripts/globals/abilities/despoil.lua (working copy) @@ -0,0 +1,92 @@ +----------------------------------- +-- Ability: Despoil +-- Steals and item and inflicts a +-- status effect +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + + local thfLevel; + local stolen = 0; + thfLevel = player:getMainLvl(); + local statusEffectMelee = math.random(5); + local statusEffectMagic = math.random(3); + local mobJob = target:getMainJob(); + + local stealChance = 50 + (player:getMod(MOD_DESPOIL) * 2) + thfLevel - target:getMainLvl(); + + if(math.random(100) < stealChance) then + stolen = target:getStealItem(); + + player:addItem(stolen); + ability:setMsg(125); + if(mobJob == 3 or mobJob == 4 or mobJob == 5 or mobJob == 10 or mobJob == 15 or mobJob == 16) then + if(statusEffectMagic == 1) then + if(target:addStatusEffect(EFFECT_MAGIC_DEF_DOWN,25,0,30)) then + target:messageBasic(194); + else + target:messageBasic(189); + end + elseif(statusEffectMagic == 2) then + if(target:addStatusEffect(EFFECT_MAGIC_ACC_DOWN,25,0,30)) then + target:messageBasic(194); + else + target:messageBasic(189); + end + elseif(statusEffectMagic == 3) then + if(target:addStatusEffect(EFFECT_MAGIC_ATK_DOWN,25,0,30)) then + target:messageBasic(194); + else + target:messageBasic(189); + end + end + else + if(statusEffectMelee == 1) then + if(target:addStatusEffect(EFFECT_SLOW,25,0,30)) then + target:messageBasic(194); + else + target:messageBasic(189); + end + elseif(statusEffectMelee == 2) then + if(target:addStatusEffect(EFFECT_EVASION_DOWN,25,0,30)) then + target:messageBasic(194); + else + target:messageBasic(189); + end + elseif(statusEffectMelee == 3) then + if(target:addStatusEffect(EFFECT_ATTACK_DOWN,25,0,30)) then + target:messageBasic(194); + else + target:messageBasic(189); + end + elseif(statusEffectMelee == 4) then + if(target:addStatusEffect(EFFECT_ACCURACY_DOWN,25,0,30)) then + target:messageBasic(194); + else + target:messageBasic(189); + end + elseif(statusEffectMelee == 5) then + if(target:addStatusEffect(EFFECT_DEFENSE_DOWN,25,0,30)) then + target:messageBasic(194); + else + target:messageBasic(189); + end + end + end + else + ability:setMsg(153); + end + + return stolen; +end; Index: scripts/globals/abilities/devotion.lua =================================================================== --- scripts/globals/abilities/devotion.lua (revision 0) +++ scripts/globals/abilities/devotion.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------- +-- Ability: Devotion +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + if (player:getHP() > 3) then + effectPower = player:getHP()/4; + player:delHP(effectPower); + target:addMP(effectPower); + end +end; Index: scripts/globals/abilities/diabolic_eye.lua =================================================================== --- scripts/globals/abilities/diabolic_eye.lua (revision 3520) +++ scripts/globals/abilities/diabolic_eye.lua (working copy) @@ -1,5 +1,6 @@ ----------------------------------- --- Ability: Berserk +-- Ability: Diabolic Eye +-- Reduces Max HP, Increases Acc ----------------------------------- require("scripts/globals/settings"); Index: scripts/globals/abilities/divine_emblem.lua =================================================================== --- scripts/globals/abilities/divine_emblem.lua (revision 0) +++ scripts/globals/abilities/divine_emblem.lua (working copy) @@ -0,0 +1,24 @@ +----------------------------------- +-- Ability: Divine Emblem +-- Enhances the accuracy of your next +-- divine magic spell and increases +-- enmity. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + if(player:hasStatusEffect(EFFECT_ELEMENTAL_SEAL) == true) then + player:delStatusEffect(EFFECT_ELEMENTAL_SEAL); + end + player:addStatusEffect(EFFECT_DIVINE_EMBLEM,1,0,60); +end; Index: scripts/globals/abilities/divine_waltz.lua =================================================================== --- scripts/globals/abilities/divine_waltz.lua (revision 3520) +++ scripts/globals/abilities/divine_waltz.lua (working copy) @@ -9,17 +9,19 @@ -- OnUseAbility ----------------------------------- -function OnAbilityCheck(player,target,ability) - if (player:getTP() < 40) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; + elseIf (player:getTP() < 40) then + return MSGBASIC_NOT_ENOUGH_TP,0; elseif (target:getHP() == 0) then return MSGBASIC_CANNOT_ON_THAT_TARG,0; else player:delTP(40); return 0,0; - end -end; - + end; +end; + function OnUseAbility(player, target, ability) --Grabbing variables. @@ -38,11 +40,15 @@ cure = (vit+chr)*0.125+60; end + cure = cure + (cure * (player:getMod(MOD_WALTZ_POTENCY)/100)); + cure = cure + (cure * (target:getMod(MOD_WALTZ_RCVD)/100)); + --Cap the final amount to max HP. if((target:getMaxHP() - target:getHP()) < cure) then cure = (target:getMaxHP() - target:getHP()); end + --Applying server mods.... cure = cure * CURE_POWER; Index: scripts/globals/abilities/divine_waltz_ii.lua =================================================================== --- scripts/globals/abilities/divine_waltz_ii.lua (revision 0) +++ scripts/globals/abilities/divine_waltz_ii.lua (working copy) @@ -0,0 +1,41 @@ +----------------------------------- +-- Ability: Divine Waltz +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + if (player:getTP() < 80) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(80); + return 0,0; + end +end; + +function OnUseAbility(player, target, ability) + + --Grabbing variables. + local vit = target:getStat(MOD_VIT); + local chr = player:getStat(MOD_CHR); + local cure = 0; + + cure = (vit+chr)*0.39+295; + + cure = cure + (cure * (player:getMod(MOD_WALTZ_POTENCY)/100)); + cure = cure + (cure * (target:getMod(MOD_WALTZ_RCVD)/100)); + + --Applying server mods.... + cure = cure * CURE_POWER; + + player:addHP(cure); + player:updateEnmityFromCure(target,cure*(240 / ( ( 31 * target:getMainLvl() / 50 ) + 6 )),cure*(40 / ( ( 31 * target:getMainLvl() / 50 ) + 6 ))); + + return cure; + +end; \ No newline at end of file Index: scripts/globals/abilities/dragon_breaker.lua =================================================================== --- scripts/globals/abilities/dragon_breaker.lua (revision 0) +++ scripts/globals/abilities/dragon_breaker.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------- +-- Ability: Dragon Breaker +-- Lowers Acc Eva MAcc MEva and TP +-- Gain for Dragons. +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + if (target:getSystem() == 10) then + return 0,0; + else + return MSGBASIC_UNABLE_TO_USE_JA2,0; + end +end; + +function OnUseAbility(player, target, ability) + target:addStatusEffect(EFFECT_DRAGON_BREAKER,-10,0,180); +end; Index: scripts/globals/abilities/drain_samba.lua =================================================================== --- scripts/globals/abilities/drain_samba.lua (revision 3520) +++ scripts/globals/abilities/drain_samba.lua (working copy) @@ -3,14 +3,18 @@ require("scripts/globals/magic"); function OnAbilityCheck(player,target,ability) - if (player:getTP() < 10) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; else - player:delTP(10); - return 0,0; - end -end; - + if (player:getTP() < 10) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(10); + return 0,0; + end + end +end; + function OnUseAbility(player, target, ability) player:delStatusEffect(EFFECT_HASTE_SAMBA); player:delStatusEffect(EFFECT_ASPIR_SAMBA); Index: scripts/globals/abilities/drain_samba_ii.lua =================================================================== --- scripts/globals/abilities/drain_samba_ii.lua (revision 3520) +++ scripts/globals/abilities/drain_samba_ii.lua (working copy) @@ -2,15 +2,19 @@ require("scripts/globals/status"); require("scripts/globals/magic"); -function OnAbilityCheck(player,target,ability) - if (player:getTP() < 25) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; else - player:delTP(25); - return 0,0; - end -end; - + if (player:getTP() < 25) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(25); + return 0,0; + end + end +end; + function OnUseAbility(player, target, ability) player:delStatusEffect(EFFECT_HASTE_SAMBA); player:delStatusEffect(EFFECT_ASPIR_SAMBA); Index: scripts/globals/abilities/drain_samba_iii.lua =================================================================== --- scripts/globals/abilities/drain_samba_iii.lua (revision 3520) +++ scripts/globals/abilities/drain_samba_iii.lua (working copy) @@ -2,15 +2,19 @@ require("scripts/globals/status"); require("scripts/globals/magic"); -function OnAbilityCheck(player,target,ability) - if (player:getTP() < 40) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; else - player:delTP(40); - return 0,0; - end -end; - + if (player:getTP() < 40) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(40); + return 0,0; + end + end +end; + function OnUseAbility(player, target, ability) player:delStatusEffect(EFFECT_HASTE_SAMBA); player:delStatusEffect(EFFECT_ASPIR_SAMBA); Index: scripts/globals/abilities/eagle_eye_shot.lua =================================================================== --- scripts/globals/abilities/eagle_eye_shot.lua (revision 3520) +++ scripts/globals/abilities/eagle_eye_shot.lua (working copy) @@ -2,8 +2,7 @@ -- Ability: Eagle Eye Shot ----------------------------------- -require("scripts/globals/settings"); -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See ai_char_normal:ActionJobAbilityStart() ----------------------------------- -- OnUseAbility Index: scripts/globals/abilities/elemental_seal.lua =================================================================== --- scripts/globals/abilities/elemental_seal.lua (revision 3520) +++ scripts/globals/abilities/elemental_seal.lua (working copy) @@ -14,5 +14,8 @@ end; function OnUseAbility(player, target, ability) + if(player:hasStatusEffect(EFFECT_DIVINE_EMBLEM) == true) then + player:delStatusEffect(EFFECT_DIVINE_EMBLEM); + end player:addStatusEffect(EFFECT_ELEMENTAL_SEAL,1,0,60); end; Index: scripts/globals/abilities/elemental_sforzo.lua =================================================================== --- scripts/globals/abilities/elemental_sforzo.lua (revision 0) +++ scripts/globals/abilities/elemental_sforzo.lua (working copy) @@ -0,0 +1,19 @@ +----------------------------------- +-- Ability: Elemental Sforzo +-- Grants immunity to all magic +-- attacks. +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + target:addStatusEffect(EFFECT_ELEMENTAL_SFORZO,1,0,30); +end; Index: scripts/globals/abilities/elemental_siphon.lua =================================================================== --- scripts/globals/abilities/elemental_siphon.lua (revision 0) +++ scripts/globals/abilities/elemental_siphon.lua (working copy) @@ -0,0 +1,155 @@ +----------------------------------- +-- Ability: Elemental Siphon +-- Drains MP from your summoned +-- spirit. +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/magic"); +require("scripts/globals/weather"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + if (player:getPet() == nil) then + return MSGBASIC_REQUIRES_A_PET,0; + else + if (player:getMP() == player:getMaxMP()) then + return MSGBASIC_UNABLE_TO_USE_JA,0; + else + return 0,0; + end + end +end; + +function OnUseAbility(player, target, ability) + + -- PETID_FIRESPIRIT = 0 + -- PETID_ICESPIRIT = 1 + -- PETID_AIRSPIRIT = 2 + -- PETID_EARTHSPIRIT = 3 + -- PETID_THUNDERSPIRIT = 4 + -- PETID_WATERSPIRIT = 5 + -- PETID_LIGHTSPIRIT = 6 + -- PETID_DARKSPIRIT = 7 + + local recoverMP = 0; + local bonus = 0; + local feet = player:getEquipID(SLOT_FEET); + local elementalSpirit = player:getPetID(); + local weather = player:getWeather(); + local petElement = player:getPetElement(); + local dayWeatherBonus = 1; + local dayElement = VanadielDayElement(); + local strongDay = 0; + local weakDay = 0; + local strongSingleWeather = 0; + local weakSingleWeather = 0; + local strongDblWeather = 0; + local weakDblWeather = 0; + + -- printf("Day %s",dayElement); + -- printf("Weather %s",weather); + + if(feet == 11258) then + bonus = 25; + elseif(feet == 11158) then + bonus = 50; + end + + -- printf("Equipment Bonus %u",bonus); + -- printf("Pet ID %u",elementalSpirit); + -- printf("Pet Element %u",petElement); + + if(elementalSpirit == 0) then + strongDay = 0; + weakDay = 2; + strongSingleWeather = 4; + weakSingleWeather = 6; + strongDblWeather = 5; + weakDblWeather = 7; + elseif(elementalSpirit == 1) then + strongDay = 4; + weakDay = 0; + strongSingleWeather = 12; + weakSingleWeather = 4; + strongDblWeather = 13; + weakDblWeather = 5; + elseif(elementalSpirit == 2) then + strongDay = 3; + weakDay = 4; + strongSingleWeather = 10; + weakSingleWeather = 12; + strongDblWeather = 11; + weakDblWeather = 13; + elseif(elementalSpirit == 3) then + strongDay = 1; + weakDay = 3; + strongSingleWeather = 8; + weakSingleWeather = 10; + strongDblWeather = 9; + weakDblWeather = 11; + elseif(elementalSpirit == 4) then + strongDay = 5; + weakDay = 1; + strongSingleWeather = 14; + weakSingleWeather = 8; + strongDblWeather = 15; + weakDblWeather = 9; + elseif(elementalSpirit == 5) then + strongDay = 2; + weakDay = 5; + strongSingleWeather = 6; + weakSingleWeather = 14; + strongDblWeather = 7; + weakDblWeather = 15; + elseif(elementalSpirit == 6) then + strongDay = 6; + weakDay = 7; + strongSingleWeather = 16; + weakSingleWeather = 18; + strongDblWeather = 17; + weakDblWeather = 19; + elseif(elementalSpirit == 7) then + strongDay = 7; + weakDay = 6; + strongSingleWeather = 18; + weakSingleWeather = 16; + strongDblWeather = 19; + weakDblWeather = 17; + end + + -- Bonuses for Weather + if(strongSingleWeather == weather) then + dayWeatherBonus = dayWeatherBonus + 0.10; + -- printf("Add .10"); + elseif(weakSingleWeather == weatehr) then + dayWeatherBonus = dayWeatherBonus - 0.10; + -- printf("Minus .10"); + elseif(strongDblWeather == weather) then + dayWeatherBonus = dayWeatherBonus + 0.25; + -- printf("Add .25"); + elseif(weakDblWeather == weather) then + dayWeatherBonus = dayWeatherBonus - 0.25; + -- printf("Minus .25"); + end + -- printf("Weather Bonus %g",dayWeatherBonus); + + -- Bonuses for Day + if(dayElement == strongDay) then + dayWeatherBonus = dayWeatherBonus + 0.10; + -- printf("Add .10"); + elseif(dayElement == weakDay) then + dayWeatherBonus = dayWeatherBonus - 0.10; + -- printf("Minus .10"); + end + -- printf("Day and Weather Bonus %g",dayWeatherBonus); + + recoverMP = (player:getSkillLevel(38) + bonus - 50) * dayWeatherBonus; + -- printf("MP Recovered: %u",recoverMP); + player:addMP(recoverMP); + player:messageBasic(25,0,recoverMP); +end; Index: scripts/globals/abilities/enmity_douse.lua =================================================================== --- scripts/globals/abilities/enmity_douse.lua (revision 0) +++ scripts/globals/abilities/enmity_douse.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------- +-- Ability: Enmity Douse +-- Reduces target's enmity towards +-- you. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + target:resetEnmity(player); + target:updateEnmity(player,1,0); +end; Index: scripts/globals/abilities/equanimity.lua =================================================================== --- scripts/globals/abilities/equanimity.lua (revision 3520) +++ scripts/globals/abilities/equanimity.lua (working copy) @@ -10,8 +10,10 @@ ----------------------------------- function OnAbilityCheck(player,target,ability) - if player:hasStatusEffect(EFFECT_EQUANIMITY) then + if (player:hasStatusEffect(EFFECT_EQUANIMITY)) then return MSGBASIC_EFFECT_ALREADY_ACTIVE, 0; + elseif (player:hasStatusEffect(EFFECT_PAX)) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; end return 0,0; end; Index: scripts/globals/abilities/futae.lua =================================================================== --- scripts/globals/abilities/futae.lua (revision 0) +++ scripts/globals/abilities/futae.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------- +-- Ability: Futae +-- 50% Bonus to Ninjutsu Dmg +-- Expends 2 ninja tools. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + local mabBonus = 0; + local hands = player:getEquipID(SLOT_HANDS); + if (hands == 11216) then + mabBonus = 5; + elseif(hands == 11116) then + mabBonus = 10; + end + player:addStatusEffect(EFFECT_FUTAE,50,0,60,0,mabBonus); +end; Index: scripts/globals/abilities/hamanoha.lua =================================================================== --- scripts/globals/abilities/hamanoha.lua (revision 0) +++ scripts/globals/abilities/hamanoha.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------- +-- Ability: Hamanoha +-- Lowers Acc Eva MAcc MEva and TP +-- Gain for Demons. +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + if (target:getSystem() == 9) then + return 0,0; + else + return MSGBASIC_UNABLE_TO_USE_JA2,0; + end +end; + +function OnUseAbility(player, target, ability) + target:addStatusEffect(EFFECT_HAMANOHA,-10,0,180); +end; Index: scripts/globals/abilities/haste_samba.lua =================================================================== --- scripts/globals/abilities/haste_samba.lua (revision 3520) +++ scripts/globals/abilities/haste_samba.lua (working copy) @@ -8,15 +8,19 @@ -- OnUseAbility ----------------------------------- -function OnAbilityCheck(player,target,ability) - if (player:getTP() < 35) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; else - player:delTP(35); - return 0,0; - end -end; - + if (player:getTP() < 35) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delTP(35); + return 0,0; + end + end +end; + function OnUseAbility(player, target, ability) player:delStatusEffect(EFFECT_DRAIN_SAMBA); Index: scripts/globals/abilities/healing_waltz.lua =================================================================== --- scripts/globals/abilities/healing_waltz.lua (revision 3520) +++ scripts/globals/abilities/healing_waltz.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------- --- Ability: Divine Waltz +-- Ability: Healing Waltz ----------------------------------- require("scripts/globals/settings"); @@ -9,15 +9,17 @@ -- OnUseAbility ----------------------------------- -function OnAbilityCheck(player,target,ability) - if (player:getTP() < 20) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; +function OnAbilityCheck(player,target,ability) + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; + elseif (player:getTP() < 20) then + return MSGBASIC_NOT_ENOUGH_TP,0; else player:delTP(20); return 0,0; - end -end; - + end; +end; + function OnUseAbility(player, target, ability) target:eraseStatusEffect(); end; \ No newline at end of file Index: scripts/globals/abilities/issekigan.lua =================================================================== --- scripts/globals/abilities/issekigan.lua (revision 0) +++ scripts/globals/abilities/issekigan.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------- +-- Ability: Issekigan +-- Increases chance of payying and +-- gives an enmity bonus upon +-- successful parry. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + player:addStatusEffect(EFFECT_ISSEKIGAN,20,0,60); +end; Index: scripts/globals/abilities/jump.lua =================================================================== --- scripts/globals/abilities/jump.lua (revision 3520) +++ scripts/globals/abilities/jump.lua (working copy) @@ -2,8 +2,7 @@ -- Ability: Jump ----------------------------------- -require("scripts/globals/settings"); -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:jumpAbility() ----------------------------------- -- OnUseAbility Index: scripts/globals/abilities/last_resort.lua =================================================================== --- scripts/globals/abilities/last_resort.lua (revision 3520) +++ scripts/globals/abilities/last_resort.lua (working copy) @@ -1,5 +1,6 @@ ----------------------------------- -- Ability: Last Resort +-- Enhances attacks - weakens defense ----------------------------------- require("scripts/globals/settings"); @@ -14,5 +15,11 @@ end; function OnUseAbility(player, target, ability) - player:addStatusEffect(EFFECT_LAST_RESORT,player:getMerit(MERIT_DESPERATE_BLOWS),0,180); + local defMod = 0; + local merit = player:getMerit(MERIT_LAST_RESORT_EFFECT); + local feet = player:getEquipID(SLOT_FEET); + if(feet == 10737 or feet == 15672 or feet == 15139) then + defMod = defMod + 10; + end + player:addStatusEffect(EFFECT_LAST_RESORT,player:getMerit(MERIT_DESPERATE_BLOWS),0,180,0,merit,defMod); end; \ No newline at end of file Index: scripts/globals/abilities/mana_cede.lua =================================================================== --- scripts/globals/abilities/mana_cede.lua (revision 0) +++ scripts/globals/abilities/mana_cede.lua (working copy) @@ -0,0 +1,47 @@ +----------------------------------- +-- Ability: Mana Cede +-- Channels your MP into TP for +-- avatars and elementals. +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + local pet = target:getPet(); + -- The avatar or elemental must be present in order to use Mana Cede + if (pet == nil) then + return MSGBASIC_REQUIRES_A_PET,0; + else + if (player:getMP() < 100) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + elseif (pet:getTP() == 300) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; + else + player:delMP(100); + return 0,0; + end + end +end; + +function OnUseAbility(player, target, ability) + + local tpBoost = 100; + local equipBonus = 0; + local pet = target:getPet(); + + + local hands = player:getEquipID(SLOT_HANDS); + + if(hands == 11218) then + equipBonus = 50; + elseif(hands == 11118) then + equipBonus = 100; + end + + pet:addTP(tpBoost + equipBonus); + +end; \ No newline at end of file Index: scripts/globals/abilities/mana_wall.lua =================================================================== --- scripts/globals/abilities/mana_wall.lua (revision 0) +++ scripts/globals/abilities/mana_wall.lua (working copy) @@ -0,0 +1,19 @@ +----------------------------------- +-- Ability: Mana Wall +-- Allows you to take Damage with MP +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + player:addStatusEffect(EFFECT_MANA_WALL,1,0,300); +end; \ No newline at end of file Index: scripts/globals/abilities/manawell.lua =================================================================== --- scripts/globals/abilities/manawell.lua (revision 0) +++ scripts/globals/abilities/manawell.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------- +-- Ability: Manawell +-- Negates the cost of the next +-- magic spell the target casts. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + + if(player:hasStatusEffect(EFFECT_SPONTANEITY) == true) then + return MSGBASIC_UNABLE_TO_USE_JA,0; + else + return 0,0; + end +end; + +function OnUseAbility(player, target, ability) + + player:addStatusEffect(EFFECT_MANAWELL,1,0,60); +end; Index: scripts/globals/abilities/martyr.lua =================================================================== --- scripts/globals/abilities/martyr.lua (revision 0) +++ scripts/globals/abilities/martyr.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------- +-- Ability: Martyr +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + if (player:getHP() > 3) then + effectPower = player:getHP()/4; + target:delHP(effectPower); + player:addHP(effectPower*2); + end +end; Index: scripts/globals/abilities/meditate.lua =================================================================== --- scripts/globals/abilities/meditate.lua (revision 3520) +++ scripts/globals/abilities/meditate.lua (working copy) @@ -18,21 +18,9 @@ amount = 20; end --TODO: Meditate doesnt actually give an icon, it's not regain as such. + local tick = 15; - local extratick = 0; - local sHands = target:getEquipID(SLOT_HANDS); - local sHead = target:getEquipID(SLOT_HEAD); - if (sHands == 15113 or sHands == 14920) then - extratick = 1; - end - if (sHead == 13868 or sHead == 15236) then - extratick = extratick + 1; - end - if (extratick == 1) then - extratick = math.random(1,2); - elseif (extratick == 2) then - extratick = math.random(2,3); - end - tick = tick + (extratick * 3); + tick = tick + target:getMod(MOD_MEDITATE_DUR); + player:addStatusEffectEx(EFFECT_REGAIN,0,amount,3,tick); end; Index: scripts/globals/abilities/mijin_gakure.lua =================================================================== --- scripts/globals/abilities/mijin_gakure.lua (revision 3520) +++ scripts/globals/abilities/mijin_gakure.lua (working copy) @@ -9,20 +9,44 @@ -- OnUseAbility ----------------------------------- --- Do not use setHP(0) for a spell/ability that kills you. It does not work, --- and creates a zombie entity that cannot be added to the enmity list. - function OnAbilityCheck(player,target,ability) return 0,0; end; function OnUseAbility(player, target, ability) --- local dmg = (player:getHP() * 0.8) + (player:getMainLvl() / 0.5); + local dmg = (player:getHP() * 0.8) + (player:getMainLvl() / 0.5); + if (target:getEquipID(SLOT_AMMO) == 19211) then + dmg = dmg * 1.1; + end + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local reraise = 0; + if(main == 19003 or sub == 19003) then -- Nagi Lvl 75 + reraise = 1; + elseif(main == 19072 or sub == 19072) then -- Nagi Lvl 80 + reraise = 1; + elseif(main == 19092 or sub == 19092) then -- Nagi Lvl 85 + reraise = 1; + elseif(main == 19624 or sub == 19624) then -- Nagi Lvl 90 + reraise = 1; + elseif(main == 19722 or sub == 19722) then -- Nagi Lvl 95 + reraise = 1; + elseif(main == 19831 or sub == 19831) then -- Nagi Lvl 99 + reraise = 1; + elseif(main == 19960 or sub == 19960) then -- Nagi Lvl 99-2 + reraise = 1; + end + + if(reraise == 1) then + player:addStatusEffect(EFFECT_RERAISE,4,0,3600); + end + + player:addStatusEffect(EFFECT_POISON,1000,3,10); + player:setHP(1); + + target:delHP(dmg); - --- player:setHP(0); --- target:delHP(dmg); - --- return dmg; + return dmg; end; Index: scripts/globals/abilities/mug.lua =================================================================== --- scripts/globals/abilities/mug.lua (revision 3520) +++ scripts/globals/abilities/mug.lua (working copy) @@ -15,6 +15,7 @@ function OnUseAbility(player, target, ability) local gil = 0; + local head = player:getEquipID(SLOT_HEAD); if(math.random()<0.9) then gil = target:getGil(); @@ -22,13 +23,13 @@ -- is notorious -- all notorious monsters can be mugged if(target:isMobType(2) and gil <= 0) then - gil = target:getMainLvl() * 20; + gil = target:getMainLvl() * 30; end if(gil <= 0) then ability:setMsg(244); else - if(player:getEquipID(SLOT_HEAD) == 15077) then + if(head == 15077 or head == 15250 or head == 10655) then gil = gil * 2; end Index: scripts/globals/abilities/nether_void.lua =================================================================== --- scripts/globals/abilities/nether_void.lua (revision 0) +++ scripts/globals/abilities/nether_void.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------- +-- Ability: Nether Void +-- Increases the absorption of your +-- next dark magic spell. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + local power = 50; + local legs = target:getEquipID(SLOT_LEGS); + + if (legs == 11231) then -- Bale Flanchard +1 + power = power + 15; + elseif (legs == 11131) then -- Bale Flanchard +2 + power = power + 25; + end + + player:addStatusEffect(EFFECT_NETHER_VOID,power,0,60); +end; Index: scripts/globals/abilities/nightingale.lua =================================================================== --- scripts/globals/abilities/nightingale.lua (revision 0) +++ scripts/globals/abilities/nightingale.lua (working copy) @@ -0,0 +1,20 @@ +----------------------------------- +-- Ability: Nightingale +-- Halves recast times of songs. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + local merits = player:getMerit(MERIT_NIGHTINGALE); + player:addStatusEffect(EFFECT_NIGHTINGALE,merits,0,60); +end; Index: scripts/globals/abilities/one_for_all.lua =================================================================== --- scripts/globals/abilities/one_for_all.lua (revision 0) +++ scripts/globals/abilities/one_for_all.lua (working copy) @@ -0,0 +1,19 @@ +----------------------------------- +-- Ability: One for All +-- Grants a Magic Shiel effect for +-- all party members in AoE +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + target:addStatusEffect(EFFECT_ONE_FOR_ALL,1,0,30); +end; Index: scripts/globals/abilities/palisade.lua =================================================================== --- scripts/globals/abilities/palisade.lua (revision 0) +++ scripts/globals/abilities/palisade.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------- +-- Ability: Palisade +-- Increases chances of blocking +-- with shield, eliminates enmity +-- loss. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + player:addStatusEffect(EFFECT_PALISADE,1,0,60); +end; Index: scripts/globals/abilities/perfect_counter.lua =================================================================== --- scripts/globals/abilities/perfect_counter.lua (revision 0) +++ scripts/globals/abilities/perfect_counter.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------- +-- Ability: Perfect Counter +-- Allows you to counter the next +-- attack directed at you. Procs +-- after counter. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + player:addStatusEffect(EFFECT_PERFECT_COUNTER,1,0,30); +end; \ No newline at end of file Index: scripts/globals/abilities/quickstep.lua =================================================================== --- scripts/globals/abilities/quickstep.lua (revision 3520) +++ scripts/globals/abilities/quickstep.lua (working copy) @@ -5,20 +5,94 @@ require("scripts/globals/settings"); require("scripts/globals/status"); + ----------------------------------- -- OnUseAbility ----------------------------------- --Uncomment these when implemented function OnAbilityCheck(player,target,ability) - --if (player:getTP() < 10) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; - --else - -- player:delTP(10); - -- return 0,0; - --end -end; - + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; + elseif (player:getTP() < 10) then + return MSGBASIC_NOT_ENOUGH_TP,0; + else + player:delTP(10); + return 0,0; + end; +end; + function OnUseAbility(player, target, ability) + + local mjob = player:getMainJob(); + if (mjob == 19) then + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_1); + player:addStatusEffect(EFFECT_FINISHING_MOVE_3,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_2); + player:addStatusEffect(EFFECT_FINISHING_MOVE_4,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_3); + player:addStatusEffect(EFFECT_FINISHING_MOVE_5,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_4); + player:addStatusEffect(EFFECT_FINISHING_MOVE_5,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + else + player:addStatusEffect(EFFECT_FINISHING_MOVE_2,1,0,7200); + end; + + else + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_1); + player:addStatusEffect(EFFECT_FINISHING_MOVE_2,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_2); + player:addStatusEffect(EFFECT_FINISHING_MOVE_3,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_3); + player:addStatusEffect(EFFECT_FINISHING_MOVE_4,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_4); + player:addStatusEffect(EFFECT_FINISHING_MOVE_5,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + else + player:addStatusEffect(EFFECT_FINISHING_MOVE_1,1,0,7200); + end; + + + end; + + if (target:hasStatusEffect(EFFECT_LETHARGIC_DAZE_1)) then + target:delStatusEffect(EFFECT_LETHARGIC_DAZE_1); + target:addStatusEffect(EFFECT_LETHARGIC_DAZE_2,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_LETHARGIC_DAZE_2)) then + target:delStatusEffect(EFFECT_LETHARGIC_DAZE_2); + target:addStatusEffect(EFFECT_LETHARGIC_DAZE_3,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_LETHARGIC_DAZE_3)) then + target:delStatusEffect(EFFECT_LETHARGIC_DAZE_3); + target:addStatusEffect(EFFECT_LETHARGIC_DAZE_4,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_LETHARGIC_DAZE_4)) then + target:delStatusEffect(EFFECT_LETHARGIC_DAZE_4); + target:addStatusEffect(EFFECT_LETHARGIC_DAZE_5,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_LETHARGIC_DAZE_5)) then + else + target:addStatusEffect(EFFECT_LETHARGIC_DAZE_1,1,0,30); + end; end; \ No newline at end of file Index: scripts/globals/abilities/rampart.lua =================================================================== --- scripts/globals/abilities/rampart.lua (revision 3520) +++ scripts/globals/abilities/rampart.lua (working copy) @@ -11,8 +11,23 @@ function OnAbilityCheck(player,target,ability) return 0,0; -end; +end; function OnUseAbility(player, target, ability) - target:addStatusEffect(EFFECT_MAGIC_SHIELD,1,0,30); + duration = 30; + local head = player:getEquipID(SLOT_HEAD); + local pEquipMods = 0; + + -- Equipment Bonus + if (head == 15078) then -- Valor Coronet + pEquipMods = 15; + elseif (head == 15251) then -- Valor Coronet +1 + pEquipMods = 20; + elseif (head == 10656) then -- Valor Coronet +2 + pEquipMods = 25; + end + + duration = duration + pEquipMods + + target:addStatusEffect(EFFECT_MAGIC_SHIELD,1,0,duration); end; Index: scripts/globals/abilities/retaliation.lua =================================================================== --- scripts/globals/abilities/retaliation.lua (revision 0) +++ scripts/globals/abilities/retaliation.lua (working copy) @@ -0,0 +1,20 @@ +----------------------------------- +-- Ability: Retaliation +-- Allows you to counterattack but +-- reduces movement speed. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + player:addStatusEffect(EFFECT_RETALIATION,1,0,180); +end; Index: scripts/globals/abilities/reverse_flourish.lua =================================================================== --- scripts/globals/abilities/reverse_flourish.lua (revision 0) +++ scripts/globals/abilities/reverse_flourish.lua (working copy) @@ -0,0 +1,64 @@ +----------------------------------- +-- Ability: Animated Flourish +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + return 0,0; + + else + return MSGBASIC_NO_FINISHINGMOVES,0; + end; +end; + +function OnUseAbility(player, target, ability) + + local TPGain = 0; + local STM = 0.5; --Variable for Charis Bangles (dunno how to check if player has equipped); + local Merits = player:getMerit(MERIT_REVERSE_FLOURISH_EFFECT); + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + TPGain = 9.5 * 1 + STM * 1 ^ 2 + 3* Merits; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + TPGain = 9.5 * 2 + STM * 2 ^ 2 + 3* Merits; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + TPGain = 9.5 * 3 + STM * 3 ^ 2 + 3* Merits; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + TPGain = 9.5 * 4 + STM * 4 ^ 2 + 3* Merits; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + TPGain = 9.5 * 5 + STM * 5 ^ 2 + 3* Merits; + end; + + player:addTP(TPGain); + player:delStatusEffect(EFFECT_FINISHING_MOVE_1); + player:delStatusEffect(EFFECT_FINISHING_MOVE_2); + player:delStatusEffect(EFFECT_FINISHING_MOVE_3); + player:delStatusEffect(EFFECT_FINISHING_MOVE_4); + player:delStatusEffect(EFFECT_FINISHING_MOVE_5); + + +end; \ No newline at end of file Index: scripts/globals/abilities/reward.lua =================================================================== --- scripts/globals/abilities/reward.lua (revision 3520) +++ scripts/globals/abilities/reward.lua (working copy) @@ -10,20 +10,45 @@ -- OnUseAbility ----------------------------------- -function OnAbilityCheck(player,target,ability) +function OnAbilityCheck(player,target,ability) if (player:getPet() == nil) then return MSGBASIC_REQUIRES_A_PET,0; else local id = player:getEquipID(SLOT_AMMO); - if(id >= 17016 and id <= 17023) then + if(id >= 17016 and id <= 17023 or id == 19252) then player:setBattleSubTarget(player:getPet()); return 0,0; + elseif(id == 19251) then + local pet = player:getPet(); + player:setBattleSubTarget(player:getPet()); + pet:delStatusEffect(EFFECT_PARALYSIS); + pet:delStatusEffect(EFFECT_POISON); + pet:delStatusEffect(EFFECT_BLINDNESS); + pet:delStatusEffect(EFFECT_WEIGHT); + pet:delStatusEffect(EFFECT_SLOW); + pet:delStatusEffect(EFFECT_SILENCE); + pet:delStatusEffect(EFFECT_CHOKE); + pet:delStatusEffect(EFFECT_RASP); + pet:delStatusEffect(EFFECT_PLAGUE); + pet:delStatusEffect(EFFECT_DISEASE); + pet:delStatusEffect(EFFECT_FROST); + pet:delStatusEffect(EFFECT_BURN); + pet:delStatusEffect(EFFECT_STUN); + pet:delStatusEffect(EFFECT_PETRIFICATION); + pet:delStatusEffect(EFFECT_ADDLE); + pet:delStatusEffect(EFFECT_BIND); + pet:delStatusEffect(EFFECT_CURSE_I); + pet:delStatusEffect(EFFECT_CURSE_II); + pet:delStatusEffect(EFFECT_ATTACK_DOWN); + pet:delStatusEffect(EFFECT_DEFENSE_DOWN); + return 0; else + return MSGBASIC_MUST_HAVE_FOOD,0; end - end -end; - + end +end; + function OnUseAbility(player, target, ability) -- 1st need to get the pet food is equipped in the range slot. @@ -94,6 +119,14 @@ regenAmount = 20; totalHealing = math.floor(minimumHealing + 4*(playerMnd-55)); end, + [19252] = function (x) -- pet poultice + -- printf("Food: pet Poultice."); + minimumHealing = 0; + regenAmount = math.floor(petMaxHP / 100); + totalHealing = 0; + regenTime = 300; + end, + } @@ -127,7 +160,7 @@ pet:delStatusEffect(EFFECT_SLOW); pet:delStatusEffect(EFFECT_SILENCE); end, - [14481] = function (x) -- monster jackcoat +1 + [14508] = function (x) -- monster jackcoat +1 -- This will remove Paralyze, Poison, Blind, Weight, Slow and Silence from the pet. -- printf("Monster jackcoat +1 detected."); pet:delStatusEffect(EFFECT_PARALYSIS); @@ -136,6 +169,16 @@ pet:delStatusEffect(EFFECT_WEIGHT); pet:delStatusEffect(EFFECT_SLOW); pet:delStatusEffect(EFFECT_SILENCE); + end, + [10678] = function (x) -- monster jackcoat +2 + -- This will remove Paralyze, Poison, Blind, Weight, Slow and Silence from the pet. + -- printf("Monster jackcoat +1 detected."); + pet:delStatusEffect(EFFECT_PARALYSIS); + pet:delStatusEffect(EFFECT_POISON); + pet:delStatusEffect(EFFECT_BLINDNESS); + pet:delStatusEffect(EFFECT_WEIGHT); + pet:delStatusEffect(EFFECT_SLOW); + pet:delStatusEffect(EFFECT_SILENCE); end, } @@ -145,17 +188,18 @@ totalHealing = totalHealing + math.floor(totalHealing * rewardHealingMod / 100); end + -- Applying server mods + totalHealing = totalHealing * PETFOOD_POWER; + regenAmount = regenAmount * PETFOOD_POWER; + -- Apply healing. if (petCurrentHP + totalHealing <= petMaxHP) then - -- printf("Healing pet for %u HP.", totalHealing); pet:addHP(totalHealing); else - -- printf("Total healing more than pet max HP. Restoring pet HP to %u.", petMaxHP); pet:setHP(petMaxHP); end -- Apply regen effect. - pet:delStatusEffect(EFFECT_REGEN); pet:addStatusEffect(EFFECT_REGEN,regenAmount,3,regenTime); -- 3 = tick, each 3 seconds. Index: scripts/globals/abilities/saboteur.lua =================================================================== --- scripts/globals/abilities/saboteur.lua (revision 0) +++ scripts/globals/abilities/saboteur.lua (working copy) @@ -0,0 +1,20 @@ +----------------------------------- +-- Ability: Saboteur +-- Enhances the next enfeebling magic +-- spell's effect and duration. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + player:addStatusEffect(EFFECT_SABOTEUR,1,0,60); +end; Index: scripts/globals/abilities/sacrosanctity.lua =================================================================== --- scripts/globals/abilities/sacrosanctity.lua (revision 0) +++ scripts/globals/abilities/sacrosanctity.lua (working copy) @@ -0,0 +1,22 @@ +----------------------------------- +-- Ability: Sacrosanctity +-- Reduces magic defense for party +-- members within AoE by 75% +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + + return 0,0; +end; + +function OnUseAbility(player, target, ability) + + player:addStatusEffect(EFFECT_SACROSANCTITY,1,0,60); +end; Index: scripts/globals/abilities/scarlet_delirium.lua =================================================================== --- scripts/globals/abilities/scarlet_delirium.lua (revision 0) +++ scripts/globals/abilities/scarlet_delirium.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------- +-- Ability: Scarlet Delirium +-- Channels dmg taken into enhanced +-- atk and magic atk. Dmg proportional +-- to next hit taken hp loss / 2. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + + return 0,0; +end; + +function OnUseAbility(player, target, ability) + + player:addStatusEffect(EFFECT_SCARLET_DELIRIUM_I,1,0,180); +end; Index: scripts/globals/abilities/scavenge.lua =================================================================== --- scripts/globals/abilities/scavenge.lua (revision 3520) +++ scripts/globals/abilities/scavenge.lua (working copy) @@ -1,22 +1,19 @@ ----------------------------------- --- Ability: Scavenge +-- Scavenge +-- Player will have a default 10% chance of finding an item +-- Hunter's Socks equipped will increase chance by 5% +-- Items found are dependant on the average level of zone's mobs +-- Items can not be scavenged in Cities, Transports, or Battlefields ----------------------------------- - require("scripts/globals/settings"); require("scripts/globals/status"); +function OnAbilityCheck(player,target,ability) + return 0,0; +end; +function OnUseAbility(player, target, ability) ------------------------------------ --- OnUseAbility ------------------------------------ - -function OnAbilityCheck(player,target,ability) - return 0,0; -end; - -function OnUseAbility(user, target, ability) - -- RNG AF2 quest check local FireAndBrimstoneCS = user:getVar("fireAndBrimstone"); @@ -33,12 +30,118 @@ user:messageSpecial(ITEM_OBTAINED,1113); end - else + end + + ----------------------------------- + -- zoneSet contains an array of zoneIds and corresponding setId + -- (zoneId,setId,zoneId,setId,zoneId,setId,...) + ----------------------------------- + zoneSet = {2,2,4,6,5,9,7,6,9,8,11,5,12,5,24,6,25,6,27,7,28,8,29,8,30,7, + 33,9,34,9,35,9,51,8,52,8,54,9,57,9,61,9,62,9,65,9,68,9,72,9,79, + 8,81,7,82,8,83,9,84,9,85,9,88,7,89,9,90,9,91,8,92,9,95,7,96,9, + 97,9,98,9,99,9,100,1,101,1,102,2,103,4,104,5,105,5,106,1,107,1, + 108,2,109,5,110,5,111,6,112,7,113,9,114,6,115,2,116,1,117,2,118,4, + 119,5,120,5,121,5,122,9,123,6,124,6,125,7,126,5,127,7,128,9,130,9, + 136,9,137,7,140,1,141,2,142,2,143,1,145,1,147,5,148,7,149,5,150,7, + 151,5,152,7,153,9,154,9,157,6,158,6,159,8,160,9,161,8,162,8,164,9, + 166,6,167,8,169,7,171,9,172,1,173,5,174,8,175,9,176,7,177,9,178,9, + 184,5,190,4,191,1,192,1,193,4,194,2,195,7,196,4,197,7,198,4,200,7, + 204,8,205,9,208,8,212,9,213,8}; + ----------------------------------- + -- itemSet contains an array of setIds and corresponding item + -- tables (setId,{itemlist}) + ----------------------------------- + itemSet = {0,{0X0000}, + 1,{0x04BB,0x04BE,0x02CB,0x02C1,0x04C5,0x1064,0x1065}, + 2,{0x04BF,0x04DA,0x02CB,0x02C1,0x04C6,0x1064,0x1065,0x1496,0x149E}, + 3,{0x04DB,0x05EB,0x02CB,0x02C1,0x04C6,0x1064,0x1065,0x1496,0x149E}, + 4,{0x04DB,0x05EB,0x02CB,0x02C1,0x04C6,0x1064,0x1065,0x1496,0x149E,0x03B3}, + 5,{0x04C1,0x04DD,0x04C6,0x02CB,0x02C1,0x1064,0x1065,0x1496,0x149E,0x14A4,0x03B3}, + 6,{0x04E1,0x04DC,0x04C7,0x02CB,0x02C1,0x1064,0x1065,0x1496,0x149E,0x14A4,0x03B3}, + 7,{0x04BC,0x04E2,0x02CB,0x02C1,0x04C8,0x1064,0x1065,0x1496,0x149E,0x14A4,0x03B3}, + 8,{0x065B,0x04BD,0x02CB,0x02C1,0x04E6,0x1064,0x1065,0x1496,0x149E,0x14A4,0x03B3}, + 9,{0x04E3,0x04BD,0x04E6,0x02CB,0x02C1,0x1064,0x1065,0x1496,0x149E,0x14A4,0x03B3}}; + + ----------------------------------- + -- Determine the current zone's setId + ----------------------------------- + currZone = player:getZone(); + setId = 0; + i = 1; + while i <= (table.getn(zoneSet)-1) do + if (zoneSet[i] == currZone) then + setId = zoneSet[i+1]; + break; + end + i = i+2; + end; + + ----------------------------------- + -- Set itemList array based on setId + ----------------------------------- + itemList = {0X0000}; + j = 1 + while j <= (table.getn(itemSet))do + if (itemSet[j] == setId) then + itemList = itemSet[j+1]; + break; + end + j = j+2; + end; + + ----------------------------------- + -- Determine found item and if player gets the item + -- Player will receive item 10% of the time + -- Hunter's Socks & Hunter's Socks +1 increase rate by 5% + ----------------------------------- + rate = SCAVENGE_RATE * 100; + if (player:getEquipID(SLOT_FEET) == 0x3713 or player:getEquipID(SLOT_FEET) == 0x3C02) then + rate = rate + 5; + end; + if (rate > 100) then rate = 100; end - -- TODO: whom ever fancies making scavenger. The RNG stuff can then be refactored + rand = math.random(1,table.getn(itemList)); + item = itemList[rand]; + rand = math.random(0,99); + if (rand >= rate) then + item = 0x0000; + end; + + ----------------------------------- + -- Compensate for multiple itemIDs for the same item (Old Ammo) + ----------------------------------- + oldAmmo = {0x1496,0x1497,0x1498,0x1499,0x149A,0x149B,0x149C,0x149D, + 0x149E,0x149F,0x14A0,0x14A1,0x14A2,0x14A3,0x14A4,0x14A5}; + + if (item == 0x1496 or item == 0x149E or item == 0x14A4) then + if (item == 0x1496) then + min = 1; + max = 8; + + elseif (item == 0x149E) then + min = 9; + max = 14; + else + min = 15; + max = 16; + end; + rand = math.random(min,max); + item = oldAmmo[rand]; + end; + + ----------------------------------- + -- Give player the scavenged item + ----------------------------------- + if (player:getFreeSlotsCount() == 0) then + ability:setMsg(356); + else + if (item ~= 0) then + ability:setMsg(140); + player:addItem(item); + else + ability:setMsg(139); + end end - + end; - - Index: scripts/globals/abilities/sentinel.lua =================================================================== --- scripts/globals/abilities/sentinel.lua (revision 3520) +++ scripts/globals/abilities/sentinel.lua (working copy) @@ -8,20 +8,24 @@ -- OnUseAbility ----------------------------------- -function OnAbilityCheck(player,target,ability) - return 0,0; -end; - +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + function OnUseAbility(player, target, ability) -- Whether feet have to be equipped before using ability, or if they can be swapped in -- is disputed. Source used: http://wiki.bluegartr.com/bg/Sentinel local sFeet = player:getEquipID(SLOT_FEET); local power = 90; - if(sFeet == 15138 or sFeet == 15671) then - power = power + 13; -- -103%. This is oddly correct. + local duration = 30; + local merit = player:getMerit(MERIT_GUARDIAN); + if(sFeet == 15138 or sFeet == 15671 or sFeet == 10736) then + power = power + 13; end + if(sFeet == 10736) then + duration = duration + (2 * merit); + end - -- Sent as positive power because UINTs, man. - player:addStatusEffect(EFFECT_SENTINEL,power,3,30); + player:addStatusEffect(EFFECT_SENTINEL,power,3,duration); end; \ No newline at end of file Index: scripts/globals/abilities/sepulcher.lua =================================================================== --- scripts/globals/abilities/sepulcher.lua (revision 0) +++ scripts/globals/abilities/sepulcher.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------- +-- Ability: Sepulcher +-- Lowers Acc Eva MAcc MEva and TP +-- Gain for Undead. +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + if (target:isUndead()) then + return 0,0; + else + return MSGBASIC_UNABLE_TO_USE_JA2,0; + end +end; + +function OnUseAbility(player, target, ability) + target:addStatusEffect(EFFECT_SEPULCHER,-10,0,180); +end; Index: scripts/globals/abilities/shield_bash.lua =================================================================== --- scripts/globals/abilities/shield_bash.lua (revision 3520) +++ scripts/globals/abilities/shield_bash.lua (working copy) @@ -69,4 +69,4 @@ ability:setMsg(110); return damage; -end; \ No newline at end of file +end; Index: scripts/globals/abilities/shikikoyo.lua =================================================================== --- scripts/globals/abilities/shikikoyo.lua (revision 0) +++ scripts/globals/abilities/shikikoyo.lua (working copy) @@ -0,0 +1,41 @@ +------------------------- +-- Shikikoyo +------------------------- +require("scripts/globals/settings"); +require("scripts/globals/status"); + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + selftp = player:getTP(); + targettp = target:getTP(); + + if (selftp <= 100) then + newttp = targettp; + newstp = selftp; + addtp = 0; + end + if (selftp >= 100) then + addtp = selftp - 100; + newttp = targettp + addtp; + newstp = 100; + end + + if (targettp >= 300) then + newttp = targettp; + newstp = selftp; + addtp = 0; + end + if (selftp <= 100) then + ability:setMsg(323); + ability:setResult(addtp); + else + ability:setMsg(452); + ability:setResult(addtp); + end + + player:setTP(newstp); + target:setTP(newttp); +end; \ No newline at end of file Index: scripts/globals/abilities/soul_jump.lua =================================================================== --- scripts/globals/abilities/soul_jump.lua (revision 0) +++ scripts/globals/abilities/soul_jump.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------- +-- Ability: Soul Jump +-- Delivers a high jumping attack +-- on a targeted enemy which +-- suppresses enmity. Effect +-- enhanced when wyvern is present. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) +end; Index: scripts/globals/abilities/soul_voice.lua =================================================================== --- scripts/globals/abilities/soul_voice.lua (revision 0) +++ scripts/globals/abilities/soul_voice.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------- +-- Soul Voice +-- Enhances the effect of songs. +-- +-- Actually doubles the effect of songs. +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +function OnUseAbility(player, target, ability) + target:addStatusEffect(EFFECT_SOUL_VOICE,1,0,180); +end; \ No newline at end of file Index: scripts/globals/abilities/spectral_jig.lua =================================================================== --- scripts/globals/abilities/spectral_jig.lua (revision 3520) +++ scripts/globals/abilities/spectral_jig.lua (working copy) @@ -10,31 +10,23 @@ ----------------------------------- function OnAbilityCheck(player,target,ability) - return 0,0; + return 0,0; end; function OnUseAbility(player, target, ability) + local duration = 0; + local maxDuration = 90; + -- Jig Duration Bonus + maxDuration = maxDuration + player:getMod(MOD_JIG_TIME); + + local randTime = math.random(30,maxDuration); - local baseDuration = math.random(30,60); - local finalDuration = baseDuration; - local legs = target:getEquipID(SLOT_LEGS); - local feet = target:getEquipID(SLOT_FEET); - - -- Reports have been changed from +30 sec to "extends duration by 100%" - if(legs == 16360 or legs == 16361 or legs == 10728) then - finalDuration = finalDuration + baseDuration; - end - if(feet == 15746 or feet == 15747 or feet == 11393 or feet == 11394) then - finalDuration = finalDuration + baseDuration; - end - - if(player:hasStatusEffect(EFFECT_SNEAK) == false) then - player:addStatusEffect(EFFECT_SNEAK,0,10,finalDuration); - player:addStatusEffect(EFFECT_INVISIBLE,0,10,finalDuration); - ability:setMsg(532); -- Gains the effect of sneak and invisible - else + if(player:hasStatusEffect(EFFECT_SNEAK) == false) then + player:addStatusEffect(EFFECT_SNEAK,0,10,randTime); + player:addStatusEffect(EFFECT_INVISIBLE,0,10,randTime); + else ability:setMsg(283); -- no effect on player. - end + end - return 1; + return 1; end; \ No newline at end of file Index: scripts/globals/abilities/spirit_jump.lua =================================================================== --- scripts/globals/abilities/spirit_jump.lua (revision 0) +++ scripts/globals/abilities/spirit_jump.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------- +-- Ability: Spirit Jump +-- Delivers a short jumping attack +-- on a targeted enemy which +-- suppresses enmity. Effect +-- enhanced when wyvern is present. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) +end; Index: scripts/globals/abilities/spirit_surge.lua =================================================================== --- scripts/globals/abilities/spirit_surge.lua (revision 0) +++ scripts/globals/abilities/spirit_surge.lua (working copy) @@ -0,0 +1,36 @@ +----------------------------------- +-- Ability: Spirit Surge +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + -- The wyvern must be present in order to use Spirit Surge + if (target:getPet() == nil) then + return MSGBASIC_REQUIRES_A_PET,0; + else + return 0,0; + end +end; + +function OnUseAbility(player, target, ability) + -- Spirit Surge gives a Strength boost dependant of DRG level + local strBoost = 0; + if(target:getMainJob()==JOB_DRG) then + strBoost = (1 + target:getMainLvl()/5); -- Use Mainjob Lvl + elseif(target:getSubJob()==JOB_DRG) then + strBoost = (1 + target:getSubLvl()/5); -- Use Subjob Lvl + end + + -- Spirit Surge lasts 60 seconds, or 20 more if Wyrm Mail+2 is equipped + local duration = 60; + if(target:getEquipID(SLOT_BODY)==10683) then + duration = duration + 20; + end + + target:addStatusEffect(EFFECT_SPIRIT_SURGE, strBoost, 0, duration); +end; \ No newline at end of file Index: scripts/globals/abilities/spontaneity.lua =================================================================== --- scripts/globals/abilities/spontaneity.lua (revision 0) +++ scripts/globals/abilities/spontaneity.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------- +-- Ability: Spontaneity +-- Reduces casting time of the next +-- magic spell the target casts. +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + + if(player:hasStatusEffect(EFFECT_MANAWELL) == true) then + return MSGBASIC_UNABLE_TO_USE_JA,0; + else + return 0,0; + end +end; + +function OnUseAbility(player, target, ability) + + player:addStatusEffect(EFFECT_SPONTANEITY,1,0,60); +end; Index: scripts/globals/abilities/stutter_step.lua =================================================================== --- scripts/globals/abilities/stutter_step.lua (revision 3520) +++ scripts/globals/abilities/stutter_step.lua (working copy) @@ -5,20 +5,94 @@ require("scripts/globals/settings"); require("scripts/globals/status"); + ----------------------------------- -- OnUseAbility ----------------------------------- --Uncomment these when implemented function OnAbilityCheck(player,target,ability) - --if (player:getTP() < 20) then - return MSGBASIC_UNABLE_TO_USE_JA2,0; - --else - -- player:delTP(20); - -- return 0,0; - --end -end; - + if (player:hasStatusEffect(EFFECT_TRANCE)) then + return 0,0; + elseif (player:getTP() < 10) then + return MSGBASIC_NOT_ENOUGH_TP,0; + else + player:delTP(10); + return 0,0; + end; +end; + function OnUseAbility(player, target, ability) + + local mjob = player:getMainJob(); + if (mjob == 19) then + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_1); + player:addStatusEffect(EFFECT_FINISHING_MOVE_3,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_2); + player:addStatusEffect(EFFECT_FINISHING_MOVE_4,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_3); + player:addStatusEffect(EFFECT_FINISHING_MOVE_5,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_4); + player:addStatusEffect(EFFECT_FINISHING_MOVE_5,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + else + player:addStatusEffect(EFFECT_FINISHING_MOVE_2,1,0,7200); + end; + + else + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_1); + player:addStatusEffect(EFFECT_FINISHING_MOVE_2,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_2); + player:addStatusEffect(EFFECT_FINISHING_MOVE_3,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_3); + player:addStatusEffect(EFFECT_FINISHING_MOVE_4,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_4); + player:addStatusEffect(EFFECT_FINISHING_MOVE_5,1,0,7200); + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + else + player:addStatusEffect(EFFECT_FINISHING_MOVE_1,1,0,7200); + end; + + + end; + + if (target:hasStatusEffect(EFFECT_WEAKENED_DAZE_1)) then + target:delStatusEffect(EFFECT_WEAKENED_DAZE_1); + target:addStatusEffect(EFFECT_WEAKENED_DAZE_2,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_WEAKENED_DAZE_2)) then + target:delStatusEffect(EFFECT_WEAKENED_DAZE_2); + target:addStatusEffect(EFFECT_WEAKENED_DAZE_3,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_WEAKENED_DAZE_3)) then + target:delStatusEffect(EFFECT_WEAKENED_DAZE_3); + target:addStatusEffect(EFFECT_WEAKENED_DAZE_4,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_WEAKENED_DAZE_4)) then + target:delStatusEffect(EFFECT_WEAKENED_DAZE_4); + target:addStatusEffect(EFFECT_WEAKENED_DAZE_5,1,0,30); + + elseif (target:hasStatusEffect(EFFECT_WEAKENED_DAZE_5)) then + else + target:addStatusEffect(EFFECT_WEAKENED_DAZE_1,1,0,30); + end; end; \ No newline at end of file Index: scripts/globals/abilities/sublimation.lua =================================================================== --- scripts/globals/abilities/sublimation.lua (revision 3520) +++ scripts/globals/abilities/sublimation.lua (working copy) @@ -1,5 +1,7 @@ ----------------------------------- --- Ability: Sublimation +-- Ability: Sublimation +-- Gradually creates a storage of +-- MP while reducing your HP. ----------------------------------- require("scripts/globals/settings"); Index: scripts/globals/abilities/trance.lua =================================================================== --- scripts/globals/abilities/trance.lua (revision 0) +++ scripts/globals/abilities/trance.lua (working copy) @@ -0,0 +1,19 @@ +----------------------------------- +-- Ability: Trance +-- Lowers Cost of Dances and Steps to 0 +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + player:addStatusEffect(EFFECT_TRANCE,1,0,60); +end; \ No newline at end of file Index: scripts/globals/abilities/tranquility.lua =================================================================== --- scripts/globals/abilities/tranquility.lua (revision 3520) +++ scripts/globals/abilities/tranquility.lua (working copy) @@ -10,8 +10,10 @@ ----------------------------------- function OnAbilityCheck(player,target,ability) - if player:hasStatusEffect(EFFECT_TRANQUILITY) then + if (player:hasStatusEffect(EFFECT_TRANQUILITY)) then return MSGBASIC_EFFECT_ALREADY_ACTIVE, 0; + elseif (player:hasStatusEffect(EFFECT_PAX)) then + return MSGBASIC_UNABLE_TO_USE_JA2,0; end return 0,0; end; Index: scripts/globals/abilities/troubadour.lua =================================================================== --- scripts/globals/abilities/troubadour.lua (revision 0) +++ scripts/globals/abilities/troubadour.lua (working copy) @@ -0,0 +1,22 @@ +----------------------------------- +-- Ability: Troubadour +-- Increases casting time for songs +-- by 1.5 and double effect and +-- duration +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return 0,0; +end; + +function OnUseAbility(player, target, ability) + local merits = player:getMerit(MERIT_TROUBADOUR); + player:addStatusEffect(EFFECT_TROUBADOUR,merits,0,60); +end; Index: scripts/globals/abilities/violent_flourish.lua =================================================================== --- scripts/globals/abilities/violent_flourish.lua (revision 0) +++ scripts/globals/abilities/violent_flourish.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------- +-- Ability: Violent Flourish +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + + if (player:hasStatusEffect(EFFECT_FINISHING_MOVE_1)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_1); + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_2)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_2); + player:addStatusEffect(EFFECT_FINISHING_MOVE_1,1,0,7200); + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_3)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_3); + player:addStatusEffect(EFFECT_FINISHING_MOVE_2,1,0,7200); + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_4)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_4); + player:addStatusEffect(EFFECT_FINISHING_MOVE_3,1,0,7200); + return 0,0; + + elseif (player:hasStatusEffect(EFFECT_FINISHING_MOVE_5)) then + player:delStatusEffect(EFFECT_FINISHING_MOVE_5); + player:addStatusEffect(EFFECT_FINISHING_MOVE_4,1,0,7200); + return 0,0; + + else + return MSGBASIC_NO_FINISHINGMOVES,0; + end; +end; + +function OnUseAbility(player, target, ability) + local chance = math.random(100); + local duration = math.random(7); + if (chance < 10) then + target:addStatusEffect(EFFECT_STUN,1,0,duration); + end; +end; \ No newline at end of file Index: scripts/globals/abilities/warcry.lua =================================================================== --- scripts/globals/abilities/warcry.lua (revision 3520) +++ scripts/globals/abilities/warcry.lua (working copy) @@ -18,6 +18,8 @@ local sHead = player:getEquipID(SLOT_HEAD) if(sHead == 15072 or sHead == 15245) then duration = duration + 10; + elseif(sHead == 15245) then + duration = duration + 15; elseif(sHead == 10650) then duration = duration + 20; end Index: scripts/globals/abilities/warding_circle.lua =================================================================== --- scripts/globals/abilities/warding_circle.lua (revision 3520) +++ scripts/globals/abilities/warding_circle.lua (working copy) @@ -14,5 +14,12 @@ end; function OnUseAbility(player, target, ability) - target:addStatusEffect(EFFECT_WARDING_CIRCLE,1,0,60); + local power = 8; + local duration = 60; + local head = target:getEquipID(SLOT_HEAD); + if(head == 15236 or head == 13868) then + power = 10; + duration = 90; + end + target:addStatusEffect(EFFECT_WARDING_CIRCLE,power,0,duration); end; Index: scripts/globals/abilities/weapon_bash.lua =================================================================== --- scripts/globals/abilities/weapon_bash.lua (revision 3520) +++ scripts/globals/abilities/weapon_bash.lua (working copy) @@ -9,14 +9,14 @@ -- OnUseAbility ----------------------------------- -function OnAbilityCheck(player,target,ability) +function OnAbilityCheck(player,target,ability) if (not player:isWeaponTwoHanded()) then return MSGBASIC_NEEDS_2H_WEAPON,0; else return 0,0; - end -end; - + end +end; + function OnUseAbility(player, target, ability) -- Applying Weapon Bash stun. Rate is said to be near 100%, so let's say 99%. if(math.random()*100 < 99) then Index: scripts/globals/abilities/wild_flourish.lua =================================================================== --- scripts/globals/abilities/wild_flourish.lua (revision 0) +++ scripts/globals/abilities/wild_flourish.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------- +-- Ability: Wild Flourish +----------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------- +-- OnUseAbility +----------------------------------- + +function OnAbilityCheck(player,target,ability) + return MSGBASIC_UNABLE_TO_USE_JA2,0; +end; + +function OnUseAbility(player, target, ability) +end; \ No newline at end of file Index: scripts/globals/bcnm.lua =================================================================== --- scripts/globals/bcnm.lua (revision 3520) +++ scripts/globals/bcnm.lua (working copy) @@ -1,4 +1,3 @@ -require("scripts/globals/status"); require("scripts/globals/keyitems"); require("scripts/globals/missions"); require("scripts/globals/quests"); @@ -10,26 +9,32 @@ -- array to map (for each zone) the item id of the valid trade item with the bcnmid in the database -- e.g. zone,{itemid,bcnmid,itemid,bcnmid,itemid,bcnmid} -- DO NOT INCLUDE MAAT FIGHTS -itemid_bcnmid_map = {10,{0,0},--The_Shrouded_Maw - 17,{0,0},--spire of holla - 19,{0,0},--spire of dem - 21,{0,0},--spire of mea - 23,{0,0},--Spire_of_Vahzl - 31,{0,0},--Monarch Linn - 139,{1553,11,1175,15,1180,17}, -- Horlais Peak - 140,{1551,34,1552,35,1552,36}, -- Ghelsba Outpost + +itemid_bcnmid_map = { 6,{640,0}, -- Bearclaw Pinnacle + 8,{672,0}, -- Boneyard + 10,{704,0,706,2}, -- The_Shrouded_Maw + 13,{736,0}, -- Mineshaft + 17,{0,0}, -- Spire of Holla + 19,{0,0}, -- Spire of Dem + 21,{0,0}, -- Spire of Mea + 23,{0,0}, -- Spire_of_Vahzl + 31,{0,0}, -- Monarch Linn + 32,{992,0,993,1}, -- Sealion Den + 139,{1553,11,1175,15,1180,17}, -- Horlais Peak + 140,{1551,34,1552,35,1552,36}, -- Ghelsba Outpost 144,{1166,68,1178,81,1553,76,1180,82,1130,79}, -- Waughroon Shrine - 146,{1553,107,1551,105}, -- Balgas Dias - 168,{0,0}, -- Chamber of Oracles - 170,{0,0}, -- Full Moon Fountain - 180,{1550,293}, -- LaLoff Amphitheater - 201,{1546,418,1174,417}, -- Cloister of Gales - 202,{1548,450,1172,449}, -- Cloister of Storms - 203,{1545,482,1171,481}, -- Cloister of Frost - 206,{0,0}, -- Qu'Bia Arena - 207,{1544,545}, -- Cloister of Flames - 209,{1547,578,1169,577}, -- Cloister of Tremors - 211,{1549,609}}; -- Cloister of Tides + 146,{1553,107,1551,105}, -- Balgas Dias + 168,{0,0}, -- Chamber of Oracles + 170,{0,0}, -- Full Moon Fountain + 180,{1550,293}, -- LaLoff Amphitheater + 181,{0,0}, -- Celestial Nexus + 201,{1546,418,1174,417}, -- Cloister of Gales + 202,{1548,450,1172,449}, -- Cloister of Storms + 203,{1545,482,1171,481}, -- Cloister of Frost + 206,{0,0}, -- Qu'Bia Arena + 207,{1544,545}, -- Cloister of Flames + 209,{1547,578,1169,577}, -- Cloister of Tremors + 211,{1549,609}}; -- Cloister of Tides -- array to map (for each zone) the BCNM ID to the Event Parameter corresponding to this ID. -- DO NOT INCLUDE MAAT FIGHTS (only included one for testing!) @@ -37,22 +42,27 @@ -- The BCNMID is found via the database. -- The paramid is a bitmask which you need to find out. Being a bitmask, it will be one of: -- 0,1,2,3,4,5,... -bcnmid_param_map = {10,{704,0,706,2}, +bcnmid_param_map = {6,{640,0}, + 8,{672,0}, + 10,{704,0,706,2}, + 13,{736,0}, 17,{768,0}, 19,{800,0}, 21,{832,0}, 23,{864,0}, 31,{960,0,961,1}, - 139,{0,0,5,5,6,6,7,7,11,11,15,15,17,17}, + 32,{992,0,993,1}, + 139,{0,0,3,3,5,5,6,6,7,7,11,11,15,15,17,17}, 140,{32,0,33,1,34,2,35,3,36,4}, 144,{64,0,67,3,68,4,70,6,71,7,72,8,81,17,76,12,82,18,79,15}, - 146,{96,0,101,5,102,6,103,7,107,11,105,9}, + 146,{96,0,99,3,101,5,102,6,103,7,107,11,105,9}, 163,{128,0}, - 165,{160,0}, + 165,{160,0,161,1}, 168,{192,0,194,2,195,3,196,4}, 170,{224,0}, 179,{256,0}, 180,{293,5,288,0,289,1,290,2,291,3,292,4}, + 181,{320,0}, 201,{416,0,417,1,418,2}, 202,{448,0,449,1,450,2}, 203,{480,0,481,1,482,2}, @@ -343,8 +353,18 @@ local mask = 0; Zone = player:getZone(); - - if(Zone == 10) then--The_Shrouded_Maw + + if(Zone == 6) then--bearclaw + if(player:getCurrentMission(COP) >= THREE_PATHS and player:getVar("Prishe") == 9) then--snoll + mask = GetBattleBitmask(640,Zone,1); + player:setVar("trade_bcnmid",640); + end + elseif(Zone == 8) then--boneyard + if(player:getVar("Prishe") == 5) then--h_wind + mask = GetBattleBitmask(672,Zone,1); + player:setVar("trade_bcnmid",672); + end + elseif(Zone == 10) then--The_Shrouded_Maw if(player:getCurrentMission(COP) == DARKNESS_NAMED and player:getVar("PromathiaStatus") == 2) then--DARKNESS_NAMED mask = GetBattleBitmask(704,Zone,1); player:setVar("trade_bcnmid",704); @@ -352,18 +372,24 @@ mask = GetBattleBitmask(706,Zone,1); player:setVar("trade_bcnmid",706); end + elseif(Zone == 13) then--mineshaft + if(player:getCurrentMission(COP) >= THREE_PATHS and player:getVar("louverance") == 5) then--bugbear + mask = GetBattleBitmask(736,Zone,1); + player:setVar("trade_bcnmid",736); + end + elseif(Zone == 17) then --Spire of Holla - if(player:getCurrentMission(COP) == THE_MOTHERCRYSTALS and player:hasKeyItem(LIGHT_OF_HOLLA) == false) then -- light of holla + if(not(player:hasKeyItem(LIGHT_OF_HOLLA)))then mask = GetBattleBitmask(768,Zone,1); player:setVar("trade_bcnmid",768); end elseif(Zone == 19) then --Spire of Dem - if(player:getCurrentMission(COP) == THE_MOTHERCRYSTALS and player:hasKeyItem(LIGHT_OF_DEM) == false) then -- light of dem + if(not(player:hasKeyItem(LIGHT_OF_DEM)))then -- light of dem mask = GetBattleBitmask(800,Zone,1); player:setVar("trade_bcnmid",800); end elseif(Zone == 21) then --Spire of Mea - if(player:getCurrentMission(COP) == THE_MOTHERCRYSTALS and player:hasKeyItem(LIGHT_OF_MEA) == false) then -- light of mea + if(not(player:hasKeyItem(LIGHT_OF_MEA))) then -- light of mea mask = GetBattleBitmask(832,Zone,1); player:setVar("trade_bcnmid",832); end @@ -379,12 +405,23 @@ elseif(player:getCurrentMission(COP) == THE_SAVAGE and player:getVar("PromathiaStatus") == 1) then mask = GetBattleBitmask(961,Zone,1); player:setVar("trade_bcnmid",961); - end + end + elseif(Zone == 32) then --sealion den + if(player:getCurrentMission(COP) == ONE_TO_BE_FEARED and player:getVar("PromathiaStatus") == 1) then + mask = GetBattleBitmask(992,Zone,1); + player:setVar("trade_bcnmid",992); + elseif(player:getCurrentMission(COP) == THE_WARRIOR_S_PATH and player:getVar("PromathiaStatus") == 0) then + mask = GetBattleBitmask(993,Zone,1); + player:setVar("trade_bcnmid",993); + end elseif(Zone == 139) then -- Horlais Peak if((player:getCurrentMission(BASTOK) == THE_EMISSARY_SANDORIA2 or player:getCurrentMission(WINDURST) == THE_THREE_KINGDOMS_SANDORIA2) and player:getVar("MissionStatus") == 9) then -- Mission 2-3 mask = GetBattleBitmask(0,Zone,1); player:setVar("trade_bcnmid",0); + elseif(player:getCurrentMission(SANDORIA) == THE_SECRET_WEAPON and player:getVar("MissionStatus") == 0) then + mask = GetBattleBitmask(3,Zone,1); + player:setVar("trade_bcnmid",3); end elseif(Zone == 140) then -- Ghelsba Outpost MissionStatus = player:getVar("MissionStatus"); @@ -409,6 +446,9 @@ if(player:hasKeyItem(DARK_KEY)) then -- Mission 2-3 mask = GetBattleBitmask(96,Zone,1); player:setVar("trade_bcnmid",96); + elseif(player:getCurrentMission(WINDURST) ==SAINTLY_INVITATION and player:getVar("WINDURST62") == 1 and player:hasKeyItem(HOLY_ONES_INVITATION))then + mask = GetBattleBitmask(99,Zone,1); + player:setVar("trade_bcnmid",99); end elseif(Zone == 163) then -- Sacrificial Chamber if(player:hasKeyItem(SACRIFICIAL_CHAMBER_KEY)) then -- Zilart Mission 4 @@ -419,7 +459,11 @@ if(player:getCurrentMission(player:getNation()) == 15 and player:getVar("MissionStatus") == 2) then -- Mission 5-2 mask = GetBattleBitmask(160,Zone,1); player:setVar("trade_bcnmid",160); + elseif(player:getCurrentMission(BASTOK) == WHERE_TWO_PATHS_CONVERGE and player:getVar("BASTOK92") == 1) then -- Mission 9-2 + mask = GetBattleBitmask(161,Zone,1); + player:setVar("trade_bcnmid",161); end + elseif(Zone == 168) then -- Chamber of Oracles if(player:getCurrentMission(ZILART) == THROUGH_THE_QUICKSAND_CAVES or player:getCurrentMission(ZILART) == THE_CHAMBER_OF_ORACLES) then -- Zilart Mission 6 mask = GetBattleBitmask(192,Zone,1); @@ -455,6 +499,11 @@ player:setVar("trade_bcnmid",292); end end + elseif(Zone == 181) then + if(player:getCurrentMission(ZILART) == THE_CELESTIAL_NEXUS)then + mask = GetBattleBitmask(320,Zone,1); + player:setVar("trade_bcnmid",320); + end elseif(Zone == 201) then -- Cloister of Gales if(player:hasKeyItem(TUNING_FORK_OF_WIND)) then -- Trial by Wind mask = GetBattleBitmask(416,Zone,1); @@ -502,4 +551,4 @@ else return false; end -end; \ No newline at end of file +end; Index: scripts/globals/effects/addle.lua =================================================================== --- scripts/globals/effects/addle.lua (revision 3520) +++ scripts/globals/effects/addle.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------- -- --- --- +-- EFFECT ADDLE +-- Decreases enemy's MACC and +-- increases spellcasting time. ----------------------------------- ----------------------------------- @@ -9,6 +10,9 @@ ----------------------------------- function onEffectGain(target,effect) + local negPower = effect:getPower() * -1; + target:addMod(MOD_MACC, negPower); + target:addMod(MOD_FASTCAST, negPower); end; ----------------------------------- @@ -23,4 +27,7 @@ ----------------------------------- function onEffectLose(target,effect) + local negPower = effect:getPower() * -1; + target:delMod(MOD_MACC, negPower); + target:delMod(MOD_FASTCAST, negPower); end; \ No newline at end of file Index: scripts/globals/effects/aftermath_lv1.lua =================================================================== --- scripts/globals/effects/aftermath_lv1.lua (revision 3520) +++ scripts/globals/effects/aftermath_lv1.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT AFTERMATH LVL1 +-- Beneficial status effect from +-- specific WS and Weapon combination ----------------------------------- ----------------------------------- @@ -9,6 +9,40 @@ ----------------------------------- function onEffectGain(target,effect) + if(effect:getPower() == 1) then + -- Occasionally deal 2x Dmg in battleutils + elseif(effect:getPower() == 2) then + target:addMod(MOD_SUBTLE_BLOW, 10); + elseif(effect:getPower() == 3) then + target:addMod(MOD_CRITHITRATE, 5); + elseif(effect:getPower() == 4) then + target:addMod(MOD_REGEN, 8); + elseif(effect:getPower() == 5) then + target:addMod(MOD_ATTP, 10); + elseif(effect:getPower() == 6) then + target:addMod(MOD_DMG, -20); + elseif(effect:getPower() == 7) then + target:addMod(MOD_HASTE_ABILITY, 26); + elseif(effect:getPower() == 8) then + target:addMod(MOD_SPIKES, 5); + target:addMod(MOD_SPIKES_DMG, 40); + elseif(effect:getPower() == 9) then + target:addMod(MOD_STORETP, 7); + elseif(effect:getPower() == 10) then + target:addMod(MOD_ACC, 20); + elseif(effect:getPower() == 11) then + target:addMod(MOD_REFRESH, 8); + elseif(effect:getPower() == 12) then + target:addMod(MOD_ENMITY, -20); + elseif(effect:getPower() == 13) then + target:addMod(MOD_RACC, 20); + elseif(effect:getPower() == 14) then + target:addMod(MOD_ACC, effect:getSubPower()); + elseif(effect:getPower() == 15) then + target:addMod(MOD_MACC, effect:getSubPower()); + elseif(effect:getPower() == 16) then + target:addMod(MOD_RACC, effect:getSubPower()); + end end; ----------------------------------- @@ -23,4 +57,38 @@ ----------------------------------- function onEffectLose(target,effect) + if(effect:getPower() == 1) then + -- Occasionally deal 2x Dmg in battleutils + elseif(effect:getPower() == 2) then + target:delMod(MOD_SUBTLE_BLOW, 10); + elseif(effect:getPower() == 3) then + target:delMod(MOD_CRITHITRATE, 5); + elseif(effect:getPower() == 4) then + target:delMod(MOD_REGEN, 8); + elseif(effect:getPower() == 5) then + target:delMod(MOD_ATTP, 10); + elseif(effect:getPower() == 6) then + target:delMod(MOD_DMG, -20); + elseif(effect:getPower() == 7) then + target:delMod(MOD_HASTE_ABILITY, 26); + elseif(effect:getPower() == 8) then + target:delMod(MOD_SPIKES, 5); + target:delMod(MOD_SPIKES_DMG, 40); + elseif(effect:getPower() == 9) then + target:delMod(MOD_STORETP, 7); + elseif(effect:getPower() == 10) then + target:delMod(MOD_ACC, 20); + elseif(effect:getPower() == 11) then + target:delMod(MOD_REFRESH, 8); + elseif(effect:getPower() == 12) then + target:delMod(MOD_ENMITY, -20); + elseif(effect:getPower() == 13) then + target:delMod(MOD_RACC, 20); + elseif(effect:getPower() == 14) then + target:delMod(MOD_ACC, effect:getSubPower()); + elseif(effect:getPower() == 15) then + target:delMod(MOD_MACC, effect:getSubPower()); + elseif(effect:getPower() == 16) then + target:delMod(MOD_RACC, effect:getSubPower()); + end end; \ No newline at end of file Index: scripts/globals/effects/aftermath_lv2.lua =================================================================== --- scripts/globals/effects/aftermath_lv2.lua (revision 3520) +++ scripts/globals/effects/aftermath_lv2.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT AFTERMATH LVL2 +-- Beneficial status effect from +-- specific WS and Weapon combination ----------------------------------- ----------------------------------- @@ -9,6 +9,44 @@ ----------------------------------- function onEffectGain(target,effect) + if(effect:getPower() == 1) then + -- Occasionally deal 2x Dmg in battleutils + elseif(effect:getPower() == 2) then + target:addMod(MOD_SUBTLE_BLOW, 10); + elseif(effect:getPower() == 3) then + target:addMod(MOD_CRITHITRATE, 5); + elseif(effect:getPower() == 4) then + target:addMod(MOD_REGEN, 8); + elseif(effect:getPower() == 5) then + target:addMod(MOD_ATTP, 10); + elseif(effect:getPower() == 6) then + target:addMod(MOD_DMG, -20); + elseif(effect:getPower() == 7) then + target:addMod(MOD_HASTE_ABILITY, 26); + elseif(effect:getPower() == 8) then + target:addMod(MOD_SPIKES, 5); + target:addMod(MOD_SPIKES_DMG, 40); + elseif(effect:getPower() == 9) then + target:addMod(MOD_STORETP, 7); + elseif(effect:getPower() == 10) then + target:addMod(MOD_ACC, 20); + elseif(effect:getPower() == 11) then + target:addMod(MOD_REFRESH, 8); + elseif(effect:getPower() == 12) then + target:addMod(MOD_ENMITY, -20); + elseif(effect:getPower() == 13) then + target:addMod(MOD_RACC, 20); + elseif(effect:getPower() == 14) then + target:addMod(MOD_ATT, effect:getSubPower()); + elseif(effect:getPower() == 15) then + target:addMod(MOD_ACC, effect:getSubPower()); + elseif(effect:getPower() == 16) then + target:addMod(MOD_MATT, effect:getSubPower()); + elseif(effect:getPower() == 17) then + target:addMod(MOD_RATT, effect:getSubPower()); + elseif(effect:getPower() == 18) then + target:addMod(MOD_MACC, effect:getSubPower()); + end end; ----------------------------------- @@ -23,4 +61,42 @@ ----------------------------------- function onEffectLose(target,effect) + if(effect:getPower() == 1) then + -- Occasionally deal 2x Dmg in battleutils + elseif(effect:getPower() == 2) then + target:delMod(MOD_SUBTLE_BLOW, 10); + elseif(effect:getPower() == 3) then + target:delMod(MOD_CRITHITRATE, 5); + elseif(effect:getPower() == 4) then + target:delMod(MOD_REGEN, 8); + elseif(effect:getPower() == 5) then + target:delMod(MOD_ATTP, 10); + elseif(effect:getPower() == 6) then + target:delMod(MOD_DMG, -20); + elseif(effect:getPower() == 7) then + target:delMod(MOD_HASTE_ABILITY, 26); + elseif(effect:getPower() == 8) then + target:delMod(MOD_SPIKES, 5); + target:delMod(MOD_SPIKES_DMG, 40); + elseif(effect:getPower() == 9) then + target:delMod(MOD_STORETP, 7); + elseif(effect:getPower() == 10) then + target:delMod(MOD_ACC, 20); + elseif(effect:getPower() == 11) then + target:delMod(MOD_REFRESH, 8); + elseif(effect:getPower() == 12) then + target:delMod(MOD_ENMITY, -20); + elseif(effect:getPower() == 13) then + target:delMod(MOD_RACC, 20); + elseif(effect:getPower() == 14) then + target:delMod(MOD_ATT, effect:getSubPower()); + elseif(effect:getPower() == 15) then + target:delMod(MOD_ACC, effect:getSubPower()); + elseif(effect:getPower() == 16) then + target:delMod(MOD_MATT, effect:getSubPower()); + elseif(effect:getPower() == 17) then + target:delMod(MOD_RATT, effect:getSubPower()); + elseif(effect:getPower() == 18) then + target:delMod(MOD_MACC, effect:getSubPower()); + end end; \ No newline at end of file Index: scripts/globals/effects/aftermath_lv3.lua =================================================================== --- scripts/globals/effects/aftermath_lv3.lua (revision 3520) +++ scripts/globals/effects/aftermath_lv3.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT AFTERMATH LVL3 +-- Beneficial status effect from +-- specific WS and Weapon combination ----------------------------------- ----------------------------------- @@ -9,6 +9,41 @@ ----------------------------------- function onEffectGain(target,effect) + if(effect:getPower() == 1) then + -- Occasionally deal 2x Dmg in battleutils + elseif(effect:getPower() == 2) then + target:addMod(MOD_SUBTLE_BLOW, 10); + elseif(effect:getPower() == 3) then + target:addMod(MOD_CRITHITRATE, 5); + elseif(effect:getPower() == 4) then + target:addMod(MOD_REGEN, 8); + elseif(effect:getPower() == 5) then + target:addMod(MOD_ATTP, 10); + elseif(effect:getPower() == 6) then + target:addMod(MOD_DMG, -20); + elseif(effect:getPower() == 7) then + target:addMod(MOD_HASTE_ABILITY, 26); + elseif(effect:getPower() == 8) then + target:addMod(MOD_SPIKES, 5); + target:addMod(MOD_SPIKES_DMG, 40); + elseif(effect:getPower() == 9) then + target:addMod(MOD_STORETP, 7); + elseif(effect:getPower() == 10) then + target:addMod(MOD_ACC, 20); + elseif(effect:getPower() == 11) then + target:addMod(MOD_REFRESH, 8); + elseif(effect:getPower() == 12) then + target:addMod(MOD_ENMITY, -20); + elseif(effect:getPower() == 13) then + target:addMod(MOD_RACC, 20); + elseif(effect:getPower() == 14) then + target:addMod(MOD_DOUBLE_ATTACK, effect:getSubPower()); + elseif(effect:getPower() == 15) then + target:addMod(MOD_DOUBLE_ATTACK, (effect:getSubPower() * 2)); + target:addMod(MOD_TRIPLE_ATTACK, effect:getSubPower()); + elseif(effect:getPower() == 16) then + -- Occasionally deal 2x-3x Dmg in battleutils + end end; ----------------------------------- @@ -23,4 +58,39 @@ ----------------------------------- function onEffectLose(target,effect) + if(effect:getPower() == 1) then + -- Occasionally deal 2x Dmg in battleutils + elseif(effect:getPower() == 2) then + target:delMod(MOD_SUBTLE_BLOW, 10); + elseif(effect:getPower() == 3) then + target:delMod(MOD_CRITHITRATE, 5); + elseif(effect:getPower() == 4) then + target:delMod(MOD_REGEN, 8); + elseif(effect:getPower() == 5) then + target:delMod(MOD_ATTP, 10); + elseif(effect:getPower() == 6) then + target:delMod(MOD_DMG, -20); + elseif(effect:getPower() == 7) then + target:delMod(MOD_HASTE_ABILITY, 26); + elseif(effect:getPower() == 8) then + target:delMod(MOD_SPIKES, 5); + target:delMod(MOD_SPIKES_DMG, 40); + elseif(effect:getPower() == 9) then + target:delMod(MOD_STORETP, 7); + elseif(effect:getPower() == 10) then + target:delMod(MOD_ACC, 20); + elseif(effect:getPower() == 11) then + target:delMod(MOD_REFRESH, 8); + elseif(effect:getPower() == 12) then + target:delMod(MOD_ENMITY, -20); + elseif(effect:getPower() == 13) then + target:delMod(MOD_RACC, 20); + elseif(effect:getPower() == 14) then + target:delMod(MOD_DOUBLE_ATTACK, effect:getSubPower()); + elseif(effect:getPower() == 15) then + target:delMod(MOD_DOUBLE_ATTACK, (effect:getSubPower() * 2)); + target:delMod(MOD_TRIPLE_ATTACK, effect:getSubPower()); + elseif(effect:getPower() == 16) then + -- Occasionally deal 2x-3x Dmg in battleutils + end end; \ No newline at end of file Index: scripts/globals/effects/aggressor.lua =================================================================== --- scripts/globals/effects/aggressor.lua (revision 3520) +++ scripts/globals/effects/aggressor.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- -- EFFECT_AGGRESSOR --- +-- Enhances Accuracy impairs Evasion ----------------------------------- require("scripts/globals/status"); @@ -11,8 +10,10 @@ ----------------------------------- function onEffectGain(target,effect) - target:addMod(MOD_ACC,25); - target:addMod(MOD_EVA,-25); + + target:addMod(MOD_RACC, effect:getSubPower()); + target:addMod(MOD_EVA, (-25 + effect:getPower())); + target:addMod(MOD_ACC, 25); end; ----------------------------------- @@ -27,6 +28,8 @@ ----------------------------------- function onEffectLose(target,effect) - target:delMod(MOD_ACC,25); - target:delMod(MOD_EVA,-25); + + target:delMod(MOD_RACC, effect:getSubPower()); + target:delMod(MOD_EVA, (-25 + effect:getPower())); + target:delMod(MOD_ACC, 25); end; \ No newline at end of file Index: scripts/globals/effects/amnesia.lua =================================================================== --- scripts/globals/effects/amnesia.lua (revision 3520) +++ scripts/globals/effects/amnesia.lua (working copy) @@ -1,7 +1,9 @@ ----------------------------------- --- --- --- +-- EFFECT_AMNESIA +-- Harmful Fire based status effect. +-- Victim loses combat memory, +-- preventing use of JAs WSs & Pet +-- Commands ----------------------------------- ----------------------------------- Index: scripts/globals/effects/arcane_crest.lua =================================================================== --- scripts/globals/effects/arcane_crest.lua (revision 3520) +++ scripts/globals/effects/arcane_crest.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_ARCANE_CREST +-- Lowers Acc Eva MAcc MEva and TP +-- Gain for Arcana. ----------------------------------- ----------------------------------- @@ -9,6 +9,11 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_ACCP, effect:getPower()); + target:addMod(MOD_EVAP, effect:getPower()); + target:addMod(MOD_MACC, effect:getPower()); + target:addMod(MOD_MEVA, effect:getPower()); + target:addMod(MOD_STORETP, effect:getPower()); end; ----------------------------------- @@ -23,4 +28,9 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_ACCP, effect:getPower()); + target:delMod(MOD_EVAP, effect:getPower()); + target:delMod(MOD_MACC, effect:getPower()); + target:delMod(MOD_MEVA, effect:getPower()); + target:delMod(MOD_STORETP, effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/aria.lua =================================================================== --- scripts/globals/effects/aria.lua (revision 3520) +++ scripts/globals/effects/aria.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_ARIA +-- Increases Charm Resistance to +-- Party Members within target AoE ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_CHARMRES,effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_CHARMRES,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/aubade.lua =================================================================== --- scripts/globals/effects/aubade.lua (revision 3520) +++ scripts/globals/effects/aubade.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------- -- --- --- +-- EFFECT_AUBADE +-- Increases Sleep Resistance to +-- Party Members within target AoE ----------------------------------- ----------------------------------- @@ -9,6 +10,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_SLEEPRES,effect:getPower()); end; ----------------------------------- @@ -23,4 +25,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_SLEEPRES,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/ballad.lua =================================================================== --- scripts/globals/effects/ballad.lua (revision 3520) +++ scripts/globals/effects/ballad.lua (working copy) @@ -18,7 +18,9 @@ ----------------------------------- function onEffectTick(target,effect) - target:addMP(effect:getPower()); + local mp = effect:getPower() + effect:getSubPower(); + + target:addMP(mp); end; ----------------------------------- Index: scripts/globals/effects/baraero.lua =================================================================== --- scripts/globals/effects/baraero.lua (revision 3520) +++ scripts/globals/effects/baraero.lua (working copy) @@ -11,7 +11,9 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_WINDRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -26,5 +28,7 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_WINDRES,effect:getPower()); + target:delMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/baramnesia.lua =================================================================== --- scripts/globals/effects/baramnesia.lua (revision 3520) +++ scripts/globals/effects/baramnesia.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- -- +-- EFFECT_BARAMNESIA -- --- ----------------------------------- ----------------------------------- @@ -9,6 +9,9 @@ ----------------------------------- function onEffectGain(target,effect) + + target:addMod(MOD_AMNESIARES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -23,4 +26,7 @@ ----------------------------------- function onEffectLose(target,effect) + + target:delMod(MOD_AMNESIARES,effect:getPower()); + target:delMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barblind.lua =================================================================== --- scripts/globals/effects/barblind.lua (revision 3520) +++ scripts/globals/effects/barblind.lua (working copy) @@ -12,6 +12,7 @@ function onEffectGain(target,effect) target:addMod(MOD_BLINDRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -27,4 +28,5 @@ function onEffectLose(target,effect) target:delMod(MOD_BLINDRES,effect:getPower()); + target:delMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barblizzard.lua =================================================================== --- scripts/globals/effects/barblizzard.lua (revision 3520) +++ scripts/globals/effects/barblizzard.lua (working copy) @@ -11,7 +11,9 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_ICERES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -26,5 +28,7 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_ICERES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barfire.lua =================================================================== --- scripts/globals/effects/barfire.lua (revision 3520) +++ scripts/globals/effects/barfire.lua (working copy) @@ -11,7 +11,9 @@ ----------------------------------- function onEffectGain(target,effect) - target:addMod(MOD_FIRERES,effect:getPower()); + + target:addMod(MOD_FIRERES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -26,5 +28,7 @@ ----------------------------------- function onEffectLose(target,effect) - target:delMod(MOD_FIRERES,effect:getPower()); + + target:delMod(MOD_FIRERES,effect:getPower()); + target:delMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barparalyze.lua =================================================================== --- scripts/globals/effects/barparalyze.lua (revision 3520) +++ scripts/globals/effects/barparalyze.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------- -- --- EFFECT_BARAMNESIA +-- EFFECT_BARPARALYZE -- ----------------------------------- @@ -12,6 +12,7 @@ function onEffectGain(target,effect) target:addMod(MOD_PARALYZERES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -27,4 +28,5 @@ function onEffectLose(target,effect) target:delMod(MOD_PARALYZERES,effect:getPower()); + target:delMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barpetrify.lua =================================================================== --- scripts/globals/effects/barpetrify.lua (revision 3520) +++ scripts/globals/effects/barpetrify.lua (working copy) @@ -12,6 +12,7 @@ function onEffectGain(target,effect) target:addMod(MOD_PETRIFYRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -27,4 +28,5 @@ function onEffectLose(target,effect) target:delMod(MOD_PETRIFYRES,effect:getPower()); + target:delMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barpoison.lua =================================================================== --- scripts/globals/effects/barpoison.lua (revision 3520) +++ scripts/globals/effects/barpoison.lua (working copy) @@ -10,6 +10,7 @@ function onEffectGain(target,effect) target:addMod(MOD_POISONRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -25,4 +26,5 @@ function onEffectLose(target,effect) target:delMod(MOD_POISONRES,effect:getPower()); + target:delMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barsilence.lua =================================================================== --- scripts/globals/effects/barsilence.lua (revision 3520) +++ scripts/globals/effects/barsilence.lua (working copy) @@ -12,6 +12,7 @@ function onEffectGain(target,effect) target:addMod(MOD_SILENCERES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -27,4 +28,5 @@ function onEffectLose(target,effect) target:delMod(MOD_SILENCERES,effect:getPower()); + target:delMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barsleep.lua =================================================================== --- scripts/globals/effects/barsleep.lua (revision 3520) +++ scripts/globals/effects/barsleep.lua (working copy) @@ -12,6 +12,7 @@ function onEffectGain(target,effect) target:addMod(MOD_SLEEPRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -27,4 +28,5 @@ function onEffectLose(target,effect) target:delMod(MOD_SLEEPRES,effect:getPower()); + target:delMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barstone.lua =================================================================== --- scripts/globals/effects/barstone.lua (revision 3520) +++ scripts/globals/effects/barstone.lua (working copy) @@ -11,7 +11,9 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_EARTHRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -26,5 +28,7 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_EARTHRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barthunder.lua =================================================================== --- scripts/globals/effects/barthunder.lua (revision 3520) +++ scripts/globals/effects/barthunder.lua (working copy) @@ -11,7 +11,9 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_THUNDERRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -26,5 +28,7 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_THUNDERRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barvirus.lua =================================================================== --- scripts/globals/effects/barvirus.lua (revision 3520) +++ scripts/globals/effects/barvirus.lua (working copy) @@ -12,6 +12,7 @@ function onEffectGain(target,effect) target:addMod(MOD_VIRUSRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -27,4 +28,5 @@ function onEffectLose(target,effect) target:delMod(MOD_VIRUSRES,effect:getPower()); + target:delMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/barwater.lua =================================================================== --- scripts/globals/effects/barwater.lua (revision 3520) +++ scripts/globals/effects/barwater.lua (working copy) @@ -11,7 +11,9 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_WATERRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; ----------------------------------- @@ -26,5 +28,7 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_WATERRES,effect:getPower()); + target:addMod(MOD_MDEF, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/berserk.lua =================================================================== --- scripts/globals/effects/berserk.lua (revision 3520) +++ scripts/globals/effects/berserk.lua (working copy) @@ -11,9 +11,11 @@ ----------------------------------- function onEffectGain(target,effect) -target:addMod(MOD_ATTP,25); -target:addMod(MOD_RATTP, 25); -target:addMod(MOD_DEFP,-25); + + target:addMod(MOD_DEFP, effect:getPower()); + target:addMod(MOD_ATTP, effect:getSubPower()); + target:addMod(MOD_RATTP, effect:getSubPower()); + target:addMod(MOD_CRITHITRATE, effect:getTier()); end; ----------------------------------- @@ -28,7 +30,9 @@ ----------------------------------- function onEffectLose(target,effect) -target:delMod(MOD_ATTP,25); -target:delMod(MOD_DEFP,-25); -target:delMod(MOD_RATTP, 25); + + target:delMod(MOD_DEFP, effect:getPower()); + target:delMod(MOD_ATTP, effect:getSubPower()); + target:delMod(MOD_RATTP, effect:getSubPower()); + target:delMod(MOD_CRITHITRATE, effect:getTier()); end; \ No newline at end of file Index: scripts/globals/effects/blood_rage.lua =================================================================== --- scripts/globals/effects/blood_rage.lua (revision 3520) +++ scripts/globals/effects/blood_rage.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_BLOOD_RAGE +-- Enhances Crit Hit Rate fo party +-- members within the AoE. ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_CRITHITRATE,effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_CRITHITRATE,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/capriccio.lua =================================================================== --- scripts/globals/effects/capriccio.lua (revision 3520) +++ scripts/globals/effects/capriccio.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------- -- --- --- +-- EFFECT_CAPRICCIO +-- Increases Petrification Resistance +-- to Party Members within target AoE ----------------------------------- ----------------------------------- @@ -9,6 +10,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_PETRIFYRES,effect:getPower()); end; ----------------------------------- @@ -23,4 +25,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_PETRIFYRES,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/carol.lua =================================================================== --- scripts/globals/effects/carol.lua (revision 3520) +++ scripts/globals/effects/carol.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- +-- Carol +-- Increases a targets given elemental resistance -- --- --- ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(effect:getSubPower(), effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(effect:getSubPower(), effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/curse_i.lua =================================================================== --- scripts/globals/effects/curse_i.lua (revision 0) +++ scripts/globals/effects/curse_i.lua (working copy) @@ -0,0 +1,36 @@ +----------------------------------- +-- +-- +-- +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + --NOTE: The power amount dictates the amount to REDUCE MAX VALUES BY. E.g. Power=75 means 'reduce max hp/mp by 75%' + target:addMod(MOD_HPP,-effect:getPower()); + target:addMod(MOD_MPP,-effect:getPower()); + target:addMod(MOD_MOVE,-effect:getPower()); +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) + --restore HP and MP to its former state. Remove 100% slow + target:delMod(MOD_HPP,-effect:getPower()); + target:delMod(MOD_MPP,-effect:getPower()); + target:delMod(MOD_MOVE,-effect:getPower()); +end; \ No newline at end of file Index: scripts/globals/effects/dark_seal.lua =================================================================== --- scripts/globals/effects/dark_seal.lua (revision 3520) +++ scripts/globals/effects/dark_seal.lua (working copy) @@ -1,14 +1,20 @@ ----------------------------------- --- --- --- +-- EFFECT_DARK_SEAL +-- Increases MACC of next Dark +-- Magic Spell cast ----------------------------------- ----------------------------------- --- onEffectGain Action +-- EFFECT_DARK_SEAL +-- Enhances acc of your next magic +-- spell. Each merit after 1st +-- reduces Dark Mag casting time +-- by 10%. ----------------------------------- function onEffectGain(target,effect) + + target:addMod(MOD_DARK_MAG_CAST, ((effect:getPower() - 1) * 10)) end; ----------------------------------- @@ -23,4 +29,6 @@ ----------------------------------- function onEffectLose(target,effect) + + target:delMod(MOD_DARK_MAG_CAST, ((effect:getPower() - 1) * 10)) end; \ No newline at end of file Index: scripts/globals/effects/defense_down.lua =================================================================== --- scripts/globals/effects/defense_down.lua (revision 3520) +++ scripts/globals/effects/defense_down.lua (working copy) @@ -11,10 +11,89 @@ ----------------------------------- function onEffectGain(target,effect) - if(effect:getPower()>100) then + omod = target:getMod(MOD_PIERCERES); + omod1 = target:getMod(MOD_SLASHRES); + omod2 = target:getMod(MOD_IMPACTRES); + omod3 = target:getMod(MOD_HTHRES); + if(effect:getPower()>100 and effect:getPower()< 500) then effect:setPower(50); + target:addMod(MOD_DEFP,-effect:getPower()); end - target:addMod(MOD_DEFP,-effect:getPower()); + if(effect:getPower()<100) then + target:addMod(MOD_DEFP,-effect:getPower()); + end + if(effect:getPower() == 500) then + target:addMod(MOD_PIERCERES,(omod * .5)); + target:addMod(MOD_SLASHRES,(omod1 * .5)); + target:addMod(MOD_IMPACTRES,(omod2 * .5)); + target:addMod(MOD_HTHRES,(omod3 * .5)); + end + if(effect:getPower() == 525) then + target:addMod(MOD_PIERCERES,(omod * .535)); + target:addMod(MOD_SLASHRES,(omod1 * .535)); + target:addMod(MOD_IMPACTRES,(omod2 * .535)); + target:addMod(MOD_HTHRES,(omod3 * .535)); + end + if(effect:getPower() == 550) then + target:addMod(MOD_PIERCERES,(omod * .57)); + target:addMod(MOD_SLASHRES,(omod1 * .57)); + target:addMod(MOD_IMPACTRES,(omod2 * .57)); + target:addMod(MOD_HTHRES,(omod3 * .57)); + end + if(effect:getPower() == 575) then + target:addMod(MOD_PIERCERES,(omod * .605)); + target:addMod(MOD_SLASHRES,(omod1 * .605)); + target:addMod(MOD_IMPACTRES,(omod2 * .605)); + target:addMod(MOD_HTHRES,(omod3 * .605)); + end + if(effect:getPower() == 600) then + target:addMod(MOD_PIERCERES,(omod * .703)); + target:addMod(MOD_SLASHRES,(omod1 * .703)); + target:addMod(MOD_IMPACTRES,(omod2 * .703)); + target:addMod(MOD_HTHRES,(omod3 * .703)); + end + if(effect:getPower() == 625) then + target:addMod(MOD_PIERCERES,(omod * .738)); + target:addMod(MOD_SLASHRES,(omod1 * .738)); + target:addMod(MOD_IMPACTRES,(omod2 * .738)); + target:addMod(MOD_HTHRES,(omod3 * .738)); + end + if(effect:getPower() == 650) then + target:addMod(MOD_PIERCERES,(omod * .773)); + target:addMod(MOD_SLASHRES,(omod1 * .773)); + target:addMod(MOD_IMPACTRES,(omod2 * .773)); + target:addMod(MOD_HTHRES,(omod3 * .773)); + end + if(effect:getPower() == 675) then + target:addMod(MOD_PIERCERES,(omod * .808)); + target:addMod(MOD_SLASHRES,(omod1 * .808)); + target:addMod(MOD_IMPACTRES,(omod2 * .808)); + target:addMod(MOD_HTHRES,(omod3 * .808)); + end + if(effect:getPower() == 700) then + target:addMod(MOD_PIERCERES,(omod * .969)); + target:addMod(MOD_SLASHRES,(omod1 * .969)); + target:addMod(MOD_IMPACTRES,(omod2 * .969)); + target:addMod(MOD_HTHRES,(omod3 * .969)); + end + if(effect:getPower() == 725 or effect:getPower() == 750 or effect:getPower() == 775) then + target:addMod(MOD_PIERCERES,omod); + target:addMod(MOD_SLASHRES,omod1); + target:addMod(MOD_IMPACTRES,omod2); + target:addMod(MOD_HTHRES,omod3); + end + if(effect:getPower() == 825 or effect:getPower() == 850 or effect:getPower() == 875) then + target:addMod(MOD_PIERCERES,omod); + target:addMod(MOD_SLASHRES,omod1); + target:addMod(MOD_IMPACTRES,omod2); + target:addMod(MOD_HTHRES,omod3); + end + if(effect:getPower() == 925 or effect:getPower() == 950 or effect:getPower() == 975) then + target:addMod(MOD_PIERCERES,omod); + target:addMod(MOD_SLASHRES,omod1); + target:addMod(MOD_IMPACTRES,omod2); + target:addMod(MOD_HTHRES,omod3); + end end; ----------------------------------- @@ -29,5 +108,82 @@ ----------------------------------- function onEffectLose(target,effect) - target:delMod(MOD_DEFP,-effect:getPower()); + if(effect:getPower()>100 and effect:getPower()<500)then + target:delMod(MOD_DEFP,-effect:getPower()); + end + if(effect:getPower()<100) then + target:delMod(MOD_DEFP,-effect:getPower()); + end + if(effect:getPower() == 500) then -- Banish I + target:delMod(MOD_PIERCERES,(omod * .5)); + target:delMod(MOD_SLASHRES,(omod1 * .5)); + target:delMod(MOD_IMPACTRES,(omod2 * .5)); + target:delMod(MOD_HTHRES,(omod3 * .5)); + end + if(effect:getPower() == 525) then -- Banish I with Ring or Mitts /+1 + target:delMod(MOD_PIERCERES,(omod * .535)); + target:delMod(MOD_SLASHRES,(omod1 * .535)); + target:delMod(MOD_IMPACTRES,(omod2 * .535)); + target:delMod(MOD_HTHRES,(omod3 * .535)); + end + if(effect:getPower() == 550) then -- Banish I with Ring and Mitts /+1 + target:delMod(MOD_PIERCERES,(omod * .57)); + target:delMod(MOD_SLASHRES,(omod1 * .57)); + target:delMod(MOD_IMPACTRES,(omod2 * .57)); + target:delMod(MOD_HTHRES,(omod3 * .57)); + end + if(effect:getPower() == 575) then -- Banish I with Ring and Mitts +2 + target:delMod(MOD_PIERCERES,(omod * .605)); + target:delMod(MOD_SLASHRES,(omod1 * .605)); + target:delMod(MOD_IMPACTRES,(omod2 * .605)); + target:delMod(MOD_HTHRES,(omod3 * .605)); + end + if(effect:getPower() == 600) then -- Banish II + target:delMod(MOD_PIERCERES,(omod * .703)); + target:delMod(MOD_SLASHRES,(omod1 * .703)); + target:delMod(MOD_IMPACTRES,(omod2 * .703)); + target:delMod(MOD_HTHRES,(omod3 * .703)); + end + if(effect:getPower() == 625) then -- Banish II with Ring or Mitts /+1 + target:delMod(MOD_PIERCERES,(omod * .738)); + target:delMod(MOD_SLASHRES,(omod1 * .738)); + target:delMod(MOD_IMPACTRES,(omod2 * .738)); + target:delMod(MOD_HTHRES,(omod3 * .738)); + end + if(effect:getPower() == 650) then -- Banish II with Ring and Mitts /+1 + target:delMod(MOD_PIERCERES,(omod * .773)); + target:delMod(MOD_SLASHRES,(omod1 * .773)); + target:delMod(MOD_IMPACTRES,(omod2 * .773)); + target:delMod(MOD_HTHRES,(omod3 * .773)); + end + if(effect:getPower() == 675) then -- Banish II with Ring and Mitts /+1 + target:delMod(MOD_PIERCERES,(omod * .805)); + target:delMod(MOD_SLASHRES,(omod1 * .805)); + target:delMod(MOD_IMPACTRES,(omod2 * .805)); + target:delMod(MOD_HTHRES,(omod3 * .805)); + end + if(effect:getPower() == 700) then -- Banish II + target:delMod(MOD_PIERCERES,(omod * .969)); + target:delMod(MOD_SLASHRES,(omod1 * .969)); + target:delMod(MOD_IMPACTRES,(omod2 * .969)); + target:delMod(MOD_HTHRES,(omod3 * .969)); + end + if(effect:getPower() == 725 or effect:getPower() == 750 or effect:getPower() == 775) then -- Banish III with Ring and Mitts + target:delMod(MOD_PIERCERES,omod); + target:delMod(MOD_SLASHRES,omod1); + target:delMod(MOD_IMPACTRES,omod2); + target:delMod(MOD_HTHRES,omod3); + end + if(effect:getPower() == 825 or effect:getPower() == 850 or effect:getPower() == 875) then -- Banish IV with Ring and Mitts + target:delMod(MOD_PIERCERES,omod); + target:delMod(MOD_SLASHRES,omod1); + target:delMod(MOD_IMPACTRES,omod2); + target:delMod(MOD_HTHRES,omod3); + end + if(effect:getPower() == 925 or effect:getPower() == 950 or effect:getPower() == 975) then -- Banish V with Ring and Mitts + target:delMod(MOD_PIERCERES,omod); + target:delMod(MOD_SLASHRES,omod1); + target:delMod(MOD_IMPACTRES,omod2); + target:delMod(MOD_HTHRES,omod3); + end end; \ No newline at end of file Index: scripts/globals/effects/dia.lua =================================================================== --- scripts/globals/effects/dia.lua (revision 3520) +++ scripts/globals/effects/dia.lua (working copy) @@ -1,15 +1,18 @@ ------------------------------------ --- +------------------------------------------- -- EFFECT_DIA --- ----------------------------------- +-- Lowers an enemy's defense and +-- gradually deals light elemental damage. +------------------------------------------- -- Quick Explanation of Algorithm: -- Dia 1: Power of 1. Results in reduced defense of ~5.27% (27/512) and 1 hp/tick damage. -- Dia 2: Power of 2. Results in reduced defense of ~10.35% (53/512) and 2 hp/tick damage. -- Dia 3: Power of 3. Results in reduced defense of ~15.4% (79/512) and 3 hp/tick damage. ------------------------------------ +-- Dia 4: Power of 4. Results in reduced defense of ~20.5% (105/512) and 4 hp/tick damage. +-- Dia 5: Power of 5. Results in reduced defense of ~25.6% (131/512) and 5 hp/tick damage. +------------------------------------------- require("scripts/globals/status"); +require("scripts/globals/magic"); ----------------------------------- -- onEffectGain Action @@ -26,11 +29,12 @@ ----------------------------------- function onEffectTick(target,effect) + if(target:hasStatusEffect(EFFECT_STONESKIN)) then local skin = target:getMod(MOD_STONESKIN); - local dmg = effect:getPower(); + local dmg = effect:getPower() + effect:getSubPower(); if(skin >= dmg) then --absorb all damage - target:delMod(MOD_STONESKIN,effect:getPower()); + target:delMod(MOD_STONESKIN,(effect:getPower() + effect:getSubPower())); else target:delStatusEffect(EFFECT_STONESKIN); target:delHP(dmg - skin); @@ -38,7 +42,9 @@ end else - target:delHP(effect:getPower()); + -- printf("Dia Power %u",effect:getPower()); + -- printf("Dia SubPower %u",effect:getSubPower()); + target:delHP(effect:getPower() + effect:getSubPower()); target:wakeUp(); end end; Index: scripts/globals/effects/dirge.lua =================================================================== --- scripts/globals/effects/dirge.lua (revision 3520) +++ scripts/globals/effects/dirge.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_DIRGE +-- Enmity - and gains it back over time +-- I'm sure it's not correct but a stop gap until it's implemented. ----------------------------------- ----------------------------------- @@ -9,6 +9,9 @@ ----------------------------------- function onEffectGain(target,effect) + emod = effect:getPower() * -1; + emod = emod + (target:getMod(MOD_ALL_SONGS) * 2); + target:addMod(MOD_ENMITY,emod); end; ----------------------------------- @@ -16,6 +19,12 @@ ----------------------------------- function onEffectTick(target,effect) + -- the effect gains enmity of 1 every 3 ticks depending on the source of the enmity boost + enmity_effect_size = (effect:getPower() + (target:getMod(MOD_ALL_SONGS) * 2)); + if(enmity_effect_size > 0) then + effect:setPower(enmity_effect_size - 1); + target:delMod(MOD_ENMITY,-1); + end end; ----------------------------------- @@ -23,4 +32,8 @@ ----------------------------------- function onEffectLose(target,effect) + if(enmity_effect_size > 0) then + enmity_effect_size = enmity_effect_size * -1; + target:delMod(MOD_ENMITY,enmity_effect_size); + end end; \ No newline at end of file Index: scripts/globals/effects/disease.lua =================================================================== --- scripts/globals/effects/disease.lua (revision 3520) +++ scripts/globals/effects/disease.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- EFFECT_NONE --- +-- EFFECT_DISEASE +-- Covered in Healing effect +-- Can not regain HP or MP by /heal ----------------------------------- ----------------------------------- Index: scripts/globals/effects/doom.lua =================================================================== --- scripts/globals/effects/doom.lua (revision 3520) +++ scripts/globals/effects/doom.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- --- --- +-- EFFECT_DOOM +-- Countdown from 10 then die. ----------------------------------- ----------------------------------- Index: scripts/globals/effects/dragon_breaker.lua =================================================================== --- scripts/globals/effects/dragon_breaker.lua (revision 3520) +++ scripts/globals/effects/dragon_breaker.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_DRAGON_BREAKER +-- Lowers Acc Eva MAcc MEva and TP +-- Gain for Dragons. ----------------------------------- ----------------------------------- @@ -9,6 +9,11 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_ACCP, effect:getPower()); + target:addMod(MOD_EVAP, effect:getPower()); + target:addMod(MOD_MACC, effect:getPower()); + target:addMod(MOD_MEVA, effect:getPower()); + target:addMod(MOD_STORETP, effect:getPower()); end; ----------------------------------- @@ -23,4 +28,9 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_ACCP, effect:getPower()); + target:delMod(MOD_EVAP, effect:getPower()); + target:delMod(MOD_MACC, effect:getPower()); + target:delMod(MOD_MEVA, effect:getPower()); + target:delMod(MOD_STORETP, effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/elegy.lua =================================================================== --- scripts/globals/effects/elegy.lua (revision 3520) +++ scripts/globals/effects/elegy.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- --- EFFECT_NONE --- +-- EFFECT_ELEGY +-- Reduces an enemy's attack speed ----------------------------------- require("scripts/globals/status"); Index: scripts/globals/effects/elemental_sforzo.lua =================================================================== --- scripts/globals/effects/elemental_sforzo.lua (revision 0) +++ scripts/globals/effects/elemental_sforzo.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------- +-- EFFECT_ELEMENTAL_SFORZO +-- Grants immunity to all magic +-- attacks. +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_UDMGMAGIC, -256); +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_UDMGMAGIC, -256); +end; Index: scripts/globals/effects/embrava.lua =================================================================== --- scripts/globals/effects/embrava.lua (revision 3520) +++ scripts/globals/effects/embrava.lua (working copy) @@ -1,21 +1,17 @@ ----------------------------------- --- --- --- +-- EFFECT_EMBRAVA +-- Adds Regen Regain and Haste AoE +-- Stacks with other Status ----------------------------------- ------------------------------------ --- onEffectGain Action ------------------------------------ - function onEffectGain(target,effect) - local regen = effect:getPower(); - local refresh = effect:getSubPower(); - local haste = effect:getTier() - - target:addMod(MOD_REGEN, regen); - target:addMod(MOD_REFRESH, refresh); - target:addMod(MOD_HASTE_MAGIC, haste); + local regen = effect:getPower(); + local refresh = effect:getSubPower(); + local haste = effect:getTier() + + target:addMod(MOD_REGEN, regen); + target:addMod(MOD_REFRESH, refresh); + target:addMod(MOD_HASTE_MAGIC, haste); end; ----------------------------------- @@ -30,11 +26,12 @@ ----------------------------------- function onEffectLose(target,effect) - local regen = effect:getPower(); - local refresh = effect:getSubPower(); - local haste = effect:getTier() - - target:delMod(MOD_REGEN, regen); - target:delMod(MOD_REFRESH, refresh); - target:delMod(MOD_HASTE_MAGIC, haste); -end; \ No newline at end of file + local regen = effect:getPower(); + local refresh = effect:getSubPower(); + local haste = effect:getTier() + + target:delMod(MOD_REGEN, regen); + target:delMod(MOD_REFRESH, refresh); + target:delMod(MOD_HASTE_MAGIC, haste); +end; + Index: scripts/globals/effects/enfire.lua =================================================================== --- scripts/globals/effects/enfire.lua (revision 3520) +++ scripts/globals/effects/enfire.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- --- --- +-- EFFECT_ENFIRE +-- Enchants weapon with fire dmg ----------------------------------- require("scripts/globals/status"); Index: scripts/globals/effects/enmity_boost.lua =================================================================== --- scripts/globals/effects/enmity_boost.lua (revision 3520) +++ scripts/globals/effects/enmity_boost.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- -- --- --- +-- EFFECT_ENMITY_BOOST +-- Increases enmity ----------------------------------- require("scripts/globals/status"); Index: scripts/globals/effects/fantasia.lua =================================================================== --- scripts/globals/effects/fantasia.lua (revision 3520) +++ scripts/globals/effects/fantasia.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_FANTASIA +-- Increases Blindness Resistance to +-- Party Members within target AoE ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_BLINDRES,effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_BLINDRES,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/fugue.lua =================================================================== --- scripts/globals/effects/fugue.lua (revision 3520) +++ scripts/globals/effects/fugue.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_FUGUE +-- Increases Gravity Resistance to +-- Party Members within target AoE ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_GRAVITYRES,effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_GRAVITYRES,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/futae.lua =================================================================== --- scripts/globals/effects/futae.lua (revision 3520) +++ scripts/globals/effects/futae.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_FUTAE +-- 50% Bonus to Ninjutsu Dmg +-- Expends 2 ninja tools. ----------------------------------- ----------------------------------- @@ -9,6 +9,8 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_NIN_MAG_DMG, effect:getPower()); + target:addMod(MOD_MATT, effect:getSubPower()); end; ----------------------------------- @@ -23,4 +25,6 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_NIN_MAG_DMG, effect:getPower()); + target:delMod(MOD_MATT, effect:getSubPower()); end; \ No newline at end of file Index: scripts/globals/effects/gavotte.lua =================================================================== --- scripts/globals/effects/gavotte.lua (revision 3520) +++ scripts/globals/effects/gavotte.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_GAVOTTE +-- Increases Bind Resistance to +-- Party Members within target AoE ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_BINDRES,effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_BINDRES,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/hamanoha.lua =================================================================== --- scripts/globals/effects/hamanoha.lua (revision 3520) +++ scripts/globals/effects/hamanoha.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_HAMANOHA +-- Lowers Acc Eva MAcc MEva and TP +-- Gain for Demons. ----------------------------------- ----------------------------------- @@ -9,6 +9,11 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_ACCP, effect:getPower()); + target:addMod(MOD_EVAP, effect:getPower()); + target:addMod(MOD_MACC, effect:getPower()); + target:addMod(MOD_MEVA, effect:getPower()); + target:addMod(MOD_STORETP, effect:getPower()); end; ----------------------------------- @@ -23,4 +28,9 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_ACCP, effect:getPower()); + target:delMod(MOD_EVAP, effect:getPower()); + target:delMod(MOD_MACC, effect:getPower()); + target:delMod(MOD_MEVA, effect:getPower()); + target:delMod(MOD_STORETP, effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/hum.lua =================================================================== --- scripts/globals/effects/hum.lua (revision 3520) +++ scripts/globals/effects/hum.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_HUM +-- Increases Paralyze Resistance to +-- Party Members within target AoE ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_PARALYZERES,effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_PARALYZERES,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/hymnus.lua =================================================================== --- scripts/globals/effects/hymnus.lua (revision 3520) +++ scripts/globals/effects/hymnus.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------- -- --- --- +-- EFFECT_HYMNUS +-- Grants Reraise to Party Members +-- within target AoE ----------------------------------- ----------------------------------- @@ -9,6 +10,7 @@ ----------------------------------- function onEffectGain(target,effect) + -- power level is the raise number (3) end; ----------------------------------- @@ -16,6 +18,9 @@ ----------------------------------- function onEffectTick(target,effect) + if(target:getHP() <= 0) then + target:sendRaise(effect:getPower()); + end end; ----------------------------------- Index: scripts/globals/effects/ifrits_favor.lua =================================================================== --- scripts/globals/effects/ifrits_favor.lua (revision 3520) +++ scripts/globals/effects/ifrits_favor.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- +-- Effect: Ifrit's Favor +-- Effect: Enhances Double Attack -- --- --- ----------------------------------- ----------------------------------- @@ -9,6 +9,10 @@ ----------------------------------- function onEffectGain(target,effect) + if(effect:getPower()>100) then + effect:setPower(50); + end + target:addMod(MOD_DOUBLE_ATTACK,effect:getPower()); end; ----------------------------------- @@ -23,4 +27,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_DOUBLE_ATTACK,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/innin.lua =================================================================== --- scripts/globals/effects/innin.lua (revision 3520) +++ scripts/globals/effects/innin.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- +-- Effect: +-- Innin -- --- --- ----------------------------------- require("scripts/globals/status"); ----------------------------------- Index: scripts/globals/effects/issekigan.lua =================================================================== --- scripts/globals/effects/issekigan.lua (revision 0) +++ scripts/globals/effects/issekigan.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------- +-- EFFECT_ISSEKIGAN +-- Increases chance of payying and +-- gives an enmity bonus upon +-- successful parry. +----------------------------------- + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_PARRY_RATE, effect:getPower()); +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_PARRY_RATE, effect:getPower()); +end; \ No newline at end of file Index: scripts/globals/effects/kaustra.lua =================================================================== --- scripts/globals/effects/kaustra.lua (revision 3520) +++ scripts/globals/effects/kaustra.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- -- EFFECT_KAUSTRA --- +-- Relentless dark damage slowly +-- devours an enemy. ----------------------------------- require("scripts/globals/status"); @@ -12,7 +12,6 @@ ----------------------------------- function onEffectGain(target,effect) - end; ----------------------------------- @@ -30,16 +29,17 @@ target:delHP(dmg - skin); target:wakeUp(); end + else target:delHP(effect:getPower()); target:wakeUp(); end end; + ----------------------------------- -- onEffectLose Action ----------------------------------- function onEffectLose(target,effect) - end; \ No newline at end of file Index: scripts/globals/effects/klimaform.lua =================================================================== --- scripts/globals/effects/klimaform.lua (revision 3520) +++ scripts/globals/effects/klimaform.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_KILAFORM +-- Increases MACC for spells of the +-- same element as current weather. ----------------------------------- ----------------------------------- Index: scripts/globals/effects/last_resort.lua =================================================================== --- scripts/globals/effects/last_resort.lua (revision 3520) +++ scripts/globals/effects/last_resort.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- -- EFFECT_LAST_RESORT --- +-- Enhances attacks - weakens defense ----------------------------------- require("scripts/globals/status"); @@ -11,9 +10,9 @@ ----------------------------------- function onEffectGain(target,effect) - target:addMod(MOD_ATTP,15 + target:getMerit(MERIT_LAST_RESORT_EFFECT)); - -- print(target:getMerit(MERIT_LAST_RESORT_EFFECT)); - target:addMod(MOD_DEFP,-15 - target:getMerit(MERIT_LAST_RESORT_EFFECT)); + + target:addMod(MOD_ATTP,15 + effect:getSubPower()); + target:addMod(MOD_DEFP,((-15 - effect:getSubPower()) + effect:getTier())); target:addMod(MOD_HASTE_ABILITY, effect:getPower()) end; @@ -29,7 +28,8 @@ ----------------------------------- function onEffectLose(target,effect) - target:delMod(MOD_ATTP,15 + target:getMerit(MERIT_LAST_RESORT_EFFECT)); - target:delMod(MOD_DEFP,-15 - target:getMerit(MERIT_LAST_RESORT_EFFECT)); + + target:delMod(MOD_ATTP,15 + effect:getSubPower()); + target:delMod(MOD_DEFP,((-15 - effect:getSubPower()) + effect:getTier())); target:delMod(MOD_HASTE_ABILITY, effect:getPower()) end; \ No newline at end of file Index: scripts/globals/effects/madrigal.lua =================================================================== --- scripts/globals/effects/madrigal.lua (revision 3520) +++ scripts/globals/effects/madrigal.lua (working copy) @@ -1,15 +1,18 @@ ----------------------------------- --- -- EFFECT_MADRIGAL -- getPower returns the TIER (e.g. 1,2,3,4) ----------------------------------- + require("scripts/globals/status"); + ----------------------------------- -- onEffectGain Action ----------------------------------- function onEffectGain(target,effect) - target:addMod(MOD_ACC, effect:getPower()); + + target:addMod(MOD_ATT, effect:getTier()); + target:addMod(MOD_ACC,((effect:getPower() * 15) + effect:getSubPower())); end; ----------------------------------- @@ -24,5 +27,7 @@ ----------------------------------- function onEffectLose(target,effect) - target:delMod(MOD_ACC, effect:getPower()); + + target:delMod(MOD_ATT, effect:getTier()); + target:delMod(MOD_ACC,((effect:getPower() * 15) + effect:getSubPower())); end; \ No newline at end of file Index: scripts/globals/effects/magic_acc_down.lua =================================================================== --- scripts/globals/effects/magic_acc_down.lua (revision 3520) +++ scripts/globals/effects/magic_acc_down.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------- -- --- EFFECT_NONE --- +-- EFFECT_MAGIC_ACC_DOWN +-- Increases / Decreases +-- Magic Acc ----------------------------------- ----------------------------------- @@ -9,7 +10,9 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_MACC,effect:getPower()); end; +end; ----------------------------------- -- onEffectTick Action @@ -23,4 +26,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_MACC,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/mambo.lua =================================================================== --- scripts/globals/effects/mambo.lua (revision 3520) +++ scripts/globals/effects/mambo.lua (working copy) @@ -10,11 +10,12 @@ -- onEffectGain Action ----------------------------------- -function onEffectGain(target,effect) +function onEffectGain(target,effect) + if(effect:getPower()==1) then - target:addMod(MOD_EVA, 15); + target:addMod(MOD_EVA, 15 + (effect:getSubPower() * 3)); elseif(effect:getPower()==2) then - target:addMod(MOD_EVA, 28); + target:addMod(MOD_EVA, 28 + (effect:getSubPower() * 7)); end end; @@ -30,9 +31,10 @@ ----------------------------------- function onEffectLose(target,effect) + if(effect:getPower()==1) then - target:delMod(MOD_EVA, 15); + target:delMod(MOD_EVA, 15 + (effect:getSubPower() * 3)); elseif(effect:getPower()==2) then - target:delMod(MOD_EVA, 28); + target:delMod(MOD_EVA, 28 + (effect:getSubPower() * 7)); end end; \ No newline at end of file Index: scripts/globals/effects/mana_wall.lua =================================================================== --- scripts/globals/effects/mana_wall.lua (revision 3520) +++ scripts/globals/effects/mana_wall.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- -- +-- EFFECT_MANA_WALL -- --- ----------------------------------- ----------------------------------- Index: scripts/globals/effects/manawell.lua =================================================================== --- scripts/globals/effects/manawell.lua (revision 0) +++ scripts/globals/effects/manawell.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------- +-- EFFECT_MANAWELL +-- Negates the cost of the next +-- magic spell the target casts. +----------------------------------- + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/effects/march.lua =================================================================== --- scripts/globals/effects/march.lua (revision 3520) +++ scripts/globals/effects/march.lua (working copy) @@ -1,20 +1,22 @@ ----------------------------------- --- -- EFFECT_MARCH -- getPower returns the TIER (e.g. 1,2,3,4) -- DO NOT ALTER ANY OF THE EFFECT VALUES! DO NOT ALTER EFFECT POWER! -- Todo: Find a better way of doing this. Need to account for varying modifiers + CASTER's skill (not target) ----------------------------------- + require("scripts/globals/status"); + ----------------------------------- -- onEffectGain Action ----------------------------------- function onEffectGain(target,effect) - if(effect:getPower()==1) then - target:addMod(MOD_HASTE_MAGIC, 64); - elseif(effect:getPower()==2) then - target:addMod(MOD_HASTE_MAGIC, 96); + + if(effect:getPower() == 1) then + target:addMod(MOD_HASTE_MAGIC, (64 + (effect:getSubPower() * 16))); + elseif(effect:getPower() == 2) then + target:addMod(MOD_HASTE_MAGIC, (96 + (effect:getSubPower() * 16))); end end; @@ -30,9 +32,10 @@ ----------------------------------- function onEffectLose(target,effect) - if(effect:getPower()==1) then - target:delMod(MOD_HASTE_MAGIC, 64); - elseif(effect:getPower()==2) then - target:delMod(MOD_HASTE_MAGIC, 96); + + if(effect:getPower() == 1) then + target:delMod(MOD_HASTE_MAGIC, (64 + (effect:getSubPower() * 16))); + elseif(effect:getPower() == 2) then + target:delMod(MOD_HASTE_MAGIC, (96 + (effect:getSubPower() * 16))); end end; \ No newline at end of file Index: scripts/globals/effects/minne.lua =================================================================== --- scripts/globals/effects/minne.lua (revision 3520) +++ scripts/globals/effects/minne.lua (working copy) @@ -1,5 +1,4 @@ ----------------------------------- --- -- EFFECT_MINNE -- getPower returns the TIER (e.g. 1,2,3,4) -- DO NOT ALTER ANY OF THE EFFECT VALUES! DO NOT ALTER EFFECT POWER! @@ -11,16 +10,19 @@ ----------------------------------- function onEffectGain(target,effect) + + target:addMod(MOD_ENMITY, effect:getTier()); + if(effect:getPower()==1) then - target:addMod(MOD_DEF, 14); + target:addMod(MOD_DEF, (14 + effect:getSubPower())); elseif(effect:getPower()==2) then - target:addMod(MOD_DEF, 28); + target:addMod(MOD_DEF, (28 + effect:getSubPower())); elseif(effect:getPower()==3) then - target:addMod(MOD_DEF, 40); + target:addMod(MOD_DEF, (40 + effect:getSubPower())); elseif(effect:getPower()==4) then - target:addMod(MOD_DEF, 48); + target:addMod(MOD_DEF, (48 + effect:getSubPower())); elseif(effect:getPower()==5) then - target:addMod(MOD_DEF, 60); + target:addMod(MOD_DEF, (60 + effect:getSubPower())); end end; @@ -36,15 +38,18 @@ ----------------------------------- function onEffectLose(target,effect) + + target:delMod(MOD_ENMITY, effect:getTier()); + if(effect:getPower()==1) then - target:delMod(MOD_DEF, 14); + target:delMod(MOD_DEF, (14 + effect:getSubPower())); elseif(effect:getPower()==2) then - target:delMod(MOD_DEF, 28); + target:delMod(MOD_DEF, (28 + effect:getSubPower())); elseif(effect:getPower()==3) then - target:delMod(MOD_DEF, 40); + target:delMod(MOD_DEF, (40 + effect:getSubPower())); elseif(effect:getPower()==4) then - target:delMod(MOD_DEF, 48); + target:delMod(MOD_DEF, (48 + effect:getSubPower())); elseif(effect:getPower()==5) then - target:delMod(MOD_DEF, 60); + target:delMod(MOD_DEF, (60 + effect:getSubPower())); end end; \ No newline at end of file Index: scripts/globals/effects/minuet.lua =================================================================== --- scripts/globals/effects/minuet.lua (revision 3520) +++ scripts/globals/effects/minuet.lua (working copy) @@ -1,5 +1,4 @@ ----------------------------------- --- -- EFFECT_MINUET -- getPower returns the TIER (e.g. 1,2,3,4) -- DO NOT ALTER ANY OF THE EFFECT VALUES! DO NOT ALTER EFFECT POWER! @@ -11,14 +10,24 @@ ----------------------------------- function onEffectGain(target,effect) + + target:addMod(MOD_ACC, effect:getTier()); + if(effect:getPower()==1) then - target:addMod(MOD_ATT, 15); + target:addMod(MOD_ATT, (15 + effect:getSubPower())); + target:addMod(MOD_RATT, (15 + effect:getSubPower())); elseif(effect:getPower()==2) then - target:addMod(MOD_ATT, 32); + target:addMod(MOD_ATT, (32 + effect:getSubPower())); + target:addMod(MOD_RATT, (32 + effect:getSubPower())); elseif(effect:getPower()==3) then - target:addMod(MOD_ATT, 48); + target:addMod(MOD_ATT, (48 + effect:getSubPower())); + target:addMod(MOD_RATT, (48 + effect:getSubPower())); elseif(effect:getPower()==4) then - target:addMod(MOD_ATT, 56); + target:addMod(MOD_ATT, (56 + effect:getSubPower())); + target:addMod(MOD_RATT, (56 + effect:getSubPower())); + elseif(effect:getPower()==5) then + target:addMod(MOD_ATT, (62 + effect:getSubPower())); + target:addMod(MOD_RATT, (62 + effect:getSubPower())); end end; @@ -34,13 +43,23 @@ ----------------------------------- function onEffectLose(target,effect) + + target:delMod(MOD_ACC, effect:getTier()); + if(effect:getPower()==1) then - target:delMod(MOD_ATT, 15); + target:delMod(MOD_ATT, (15 + effect:getSubPower())); + target:delMod(MOD_RATT, (15 + effect:getSubPower())); elseif(effect:getPower()==2) then - target:delMod(MOD_ATT, 32); + target:delMod(MOD_ATT, (32 + effect:getSubPower())); + target:delMod(MOD_RATT, (32 + effect:getSubPower())); elseif(effect:getPower()==3) then - target:delMod(MOD_ATT, 48); + target:delMod(MOD_ATT, (48 + effect:getSubPower())); + target:delMod(MOD_RATT, (48 + effect:getSubPower())); elseif(effect:getPower()==4) then - target:delMod(MOD_ATT, 56); + target:delMod(MOD_ATT, (56 + effect:getSubPower())); + target:delMod(MOD_RATT, (56 + effect:getSubPower())); + elseif(effect:getPower()==5) then + target:delMod(MOD_ATT, (62 + effect:getSubPower())); + target:delMod(MOD_RATT, (62 + effect:getSubPower())); end end; \ No newline at end of file Index: scripts/globals/effects/multi_strikes.lua =================================================================== --- scripts/globals/effects/multi_strikes.lua (revision 3520) +++ scripts/globals/effects/multi_strikes.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- -- --- --- +-- EFFECT_MULTI_STRIKES +-- Author: mvd1987 ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_DOUBLE_ATTACK, effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_DOUBLE_ATTACK, effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/negate_amnesia.lua =================================================================== --- scripts/globals/effects/negate_amnesia.lua (revision 3520) +++ scripts/globals/effects/negate_amnesia.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- --- --- +-- EFFECT_NEGATE_AMNESIA +-- Amnesia Resistance +100 ----------------------------------- ----------------------------------- @@ -9,6 +8,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_AMNESIARES, 100); end; ----------------------------------- @@ -23,4 +23,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_AMNESIARES, 100); end; \ No newline at end of file Index: scripts/globals/effects/negate_doom.lua =================================================================== --- scripts/globals/effects/negate_doom.lua (revision 3520) +++ scripts/globals/effects/negate_doom.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- --- --- +-- EFFECT_NEGATE_DOOM +-- DooM Resistance +100 ----------------------------------- ----------------------------------- @@ -9,6 +8,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_DOOMRES, 100); end; ----------------------------------- @@ -23,4 +23,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_DOOMRES, 100); end; \ No newline at end of file Index: scripts/globals/effects/negate_petrify.lua =================================================================== --- scripts/globals/effects/negate_petrify.lua (revision 3520) +++ scripts/globals/effects/negate_petrify.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- --- --- +-- EFFECT_NEGATE_PETRIFY +-- Pterify Resistance +100 ----------------------------------- ----------------------------------- @@ -9,6 +8,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_PETRIFYRES, 100); end; ----------------------------------- @@ -23,4 +23,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_PETRIFYRES, 100); end; \ No newline at end of file Index: scripts/globals/effects/negate_poison.lua =================================================================== --- scripts/globals/effects/negate_poison.lua (revision 3520) +++ scripts/globals/effects/negate_poison.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- --- --- +-- EFFECT_NEGATE_POISON +-- Poison Resistance +100 ----------------------------------- ----------------------------------- @@ -9,6 +8,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_POISONRES, 100); end; ----------------------------------- @@ -23,4 +23,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_POISONRES, 100); end; \ No newline at end of file Index: scripts/globals/effects/negate_terror.lua =================================================================== --- scripts/globals/effects/negate_terror.lua (revision 3520) +++ scripts/globals/effects/negate_terror.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- --- --- +-- EFFECT_NEGATE_TERROR +-- Terror Resistance +100 ----------------------------------- ----------------------------------- @@ -9,6 +8,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_TERRORRES, 100); end; ----------------------------------- @@ -23,4 +23,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_TERRORRES, 100); end; \ No newline at end of file Index: scripts/globals/effects/nether_void.lua =================================================================== --- scripts/globals/effects/nether_void.lua (revision 3520) +++ scripts/globals/effects/nether_void.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_NETHER_VOID +-- Increases the absorption of your +-- next dark magic spell. ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_ABSORB_POTENCY, effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_ABSORB_POTENCY, effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/nightingale.lua =================================================================== --- scripts/globals/effects/nightingale.lua (revision 3520) +++ scripts/globals/effects/nightingale.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- --- --- +-- EFFECT_NIGHTINGALE +-- Halves recast times of songs. ----------------------------------- ----------------------------------- Index: scripts/globals/effects/one_for_all.lua =================================================================== --- scripts/globals/effects/one_for_all.lua (revision 0) +++ scripts/globals/effects/one_for_all.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------- +-- EFFECT_ONE_FOR_ALL +-- Grants a Magic Shiel effect for +-- all party members in AoE +----------------------------------- + +require("scripts/globals/status"); + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_UDMGMAGIC, 100); +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_UDMGMAGIC, 100); +end; Index: scripts/globals/effects/operetta.lua =================================================================== --- scripts/globals/effects/operetta.lua (revision 3520) +++ scripts/globals/effects/operetta.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_OPERETTA +-- Puppet's, Scop's, and Jester's +-- Operettas ----------------------------------- ----------------------------------- @@ -9,6 +9,14 @@ ----------------------------------- function onEffectGain(target,effect) + + if(effect:getPower()==1) then + target:addMod(MOD_SILENCERES, (20 + (effect:getSubPower() * 5))); + elseif(effect:getPower()==2) then + target:addMod(MOD_SILENCERES, (40 + (effect:getSubPower() * 5))); + elseif(effect:getPower()==3) then + target:addMod(MOD_SILENCERES, (60 + (effect:getSubPower() * 5))); + end end; ----------------------------------- @@ -23,4 +31,12 @@ ----------------------------------- function onEffectLose(target,effect) + + if(effect:getPower()==1) then + target:delMod(MOD_SILENCERES, (20 + (effect:getSubPower() * 5))); + elseif(effect:getPower()==2) then + target:delMod(MOD_SILENCERES, (40 + (effect:getSubPower() * 5))); + elseif(effect:getPower()==3) then + target:delMod(MOD_SILENCERES, (60 + (effect:getSubPower() * 5))); + end end; \ No newline at end of file Index: scripts/globals/effects/paeon.lua =================================================================== --- scripts/globals/effects/paeon.lua (revision 3520) +++ scripts/globals/effects/paeon.lua (working copy) @@ -1,5 +1,4 @@ ----------------------------------- --- -- EFFECT_PAEON -- getPower returns the TIER (e.g. 1,2,3,4) -- DO NOT ALTER ANY OF THE EFFECT VALUES! DO NOT ALTER EFFECT POWER! @@ -18,7 +17,10 @@ ----------------------------------- function onEffectTick(target,effect) - target:addHP(effect:getPower()); + + local hp = effect:getPower() + effect:getSubPower(); + + target:addHP(hp); end; ----------------------------------- Index: scripts/globals/effects/palisade.lua =================================================================== --- scripts/globals/effects/palisade.lua (revision 0) +++ scripts/globals/effects/palisade.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------- +-- EFFECT_PALISADE +-- Increases chances of blocking +-- with shield, eliminates enmity +-- loss. +----------------------------------- + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_BLOCK_RATE,20); +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_BLOCK_RATE,20); +end; \ No newline at end of file Index: scripts/globals/effects/pastoral.lua =================================================================== --- scripts/globals/effects/pastoral.lua (revision 3520) +++ scripts/globals/effects/pastoral.lua (working copy) @@ -1,14 +1,16 @@ ----------------------------------- -- --- --- ------------------------------------ +-- EFFECT_PASTORAL +-- Increases Poison Resistance to +-- Party Members within target AoE +---------------------------------- ----------------------------------- -- onEffectGain Action ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_POISONRES,effect:getPower()); end; ----------------------------------- @@ -23,4 +25,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_POISONRES,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/pax.lua =================================================================== --- scripts/globals/effects/pax.lua (revision 3520) +++ scripts/globals/effects/pax.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------- -- +-- EFFECT_PAX +-- Reduces a player's enmity generation -- --- ----------------------------------- ----------------------------------- @@ -9,6 +10,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_ENMITY,effect:getPower()); end; ----------------------------------- @@ -23,4 +25,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_ENMITY,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/perfect_counter.lua =================================================================== --- scripts/globals/effects/perfect_counter.lua (revision 3520) +++ scripts/globals/effects/perfect_counter.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- -- +-- EFFECT_PERFECT_COUNTER -- --- ----------------------------------- ----------------------------------- Index: scripts/globals/effects/plague.lua =================================================================== --- scripts/globals/effects/plague.lua (revision 3520) +++ scripts/globals/effects/plague.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------- -- -- Plague ---Plague is a harmful status effect that reduces a character's TP and MP over time. +-- Plague is a harmful status effect that reduces a character's TP and MP over time. +-- Covered in Healing effect, can not regain HP or MP by /heal -- Also, causes Steps to only grant One Finishing Move when Main Job is Dancer. -- Normal power is 5. ----------------------------------- Index: scripts/globals/effects/potency.lua =================================================================== --- scripts/globals/effects/potency.lua (revision 3520) +++ scripts/globals/effects/potency.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- -- --- --- +-- EFFECT_POTENCY +-- Increases Crit Hit % ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_CRITHITRATE,effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_CRITHITRATE,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/prelude.lua =================================================================== --- scripts/globals/effects/prelude.lua (revision 3520) +++ scripts/globals/effects/prelude.lua (working copy) @@ -1,14 +1,31 @@ ----------------------------------- --- --- --- +-- +-- EFFECT_PRELUDE +-- getPower returns the TIER (e.g. 1,2,3,4) +-- DO NOT ALTER ANY OF THE EFFECT VALUES! DO NOT ALTER EFFECT POWER! +-- Todo: Find a better way of doing this. Need to account for varying modifiers + CASTER's skill (not target) ----------------------------------- - +require("scripts/globals/status"); ----------------------------------- -- onEffectGain Action ----------------------------------- function onEffectGain(target,effect) + preludePower = 15; + preludePower2 = 34; + local mod = 0; + + mod = mod + target:getMod(MOD_PRELUDE) + target:getMod(MOD_ALL_SONGS); + + preludePower = preludePower + (mod * 3); + preludePower2 = preludePower2 + (mod * 7); + + + if(effect:getPower()==1) then + target:addMod(MOD_RACC, preludePower); + elseif(effect:getPower()==2) then + target:addMod(MOD_RACC, preludePower2); + end end; ----------------------------------- @@ -23,4 +40,9 @@ ----------------------------------- function onEffectLose(target,effect) + if(effect:getPower()==1) then + target:delMod(MOD_RACC, preludePower); + elseif(effect:getPower()==2) then + target:delMod(MOD_RACC, preludePower2); + end end; \ No newline at end of file Index: scripts/globals/effects/reprisal.lua =================================================================== --- scripts/globals/effects/reprisal.lua (revision 3520) +++ scripts/globals/effects/reprisal.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------- --- --- --- +-- EFFECT_REPRISAL +-- Increases chances of blocking +-- with shield, reflects a portion +-- of blocked dmg back to attacker. ----------------------------------- require("scripts/globals/status"); @@ -11,6 +12,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_BLOCK_RATE,10); target:addMod(MOD_SPIKES,6); target:addMod(MOD_SPIKES_DMG, effect:getPower()); end; @@ -27,6 +29,7 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_BLOCK_RATE,10); target:delMod(MOD_SPIKES,6); target:delMod(MOD_SPIKES_DMG, effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/requiem.lua =================================================================== --- scripts/globals/effects/requiem.lua (revision 3520) +++ scripts/globals/effects/requiem.lua (working copy) @@ -5,6 +5,7 @@ ----------------------------------- require("scripts/globals/status"); +require("scripts/globals/magic"); ----------------------------------- -- onEffectGain Action @@ -18,11 +19,13 @@ ----------------------------------- function onEffectTick(target,effect) + local power = effect:getPower(); + if(target:hasStatusEffect(EFFECT_STONESKIN)) then local skin = target:getMod(MOD_STONESKIN); - local dmg = effect:getPower(); + local dmg = power; if(skin >= dmg) then --absorb all damage - target:delMod(MOD_STONESKIN,effect:getPower()); + target:delMod(MOD_STONESKIN,power); else target:delStatusEffect(EFFECT_STONESKIN); target:delHP(dmg - skin); @@ -30,7 +33,7 @@ end else - target:delHP(effect:getPower()); + target:delHP(power); target:wakeUp(); end end; Index: scripts/globals/effects/reraise.lua =================================================================== --- scripts/globals/effects/reraise.lua (revision 3520) +++ scripts/globals/effects/reraise.lua (working copy) @@ -25,6 +25,6 @@ function onEffectLose(target,effect) if(target:getHP() <= 0) then - target:sendReraise(effect:getPower()); + target:sendRaise(effect:getPower()); end end; \ No newline at end of file Index: scripts/globals/effects/retaliation.lua =================================================================== --- scripts/globals/effects/retaliation.lua (revision 3520) +++ scripts/globals/effects/retaliation.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_RETALIATION +-- Allows you to counterattack but +-- reduces movement speed. ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_MOVE, -30); end; ----------------------------------- @@ -16,6 +17,7 @@ ----------------------------------- function onEffectTick(target,effect) + target:delMod(MOD_MOVE, -30); end; ----------------------------------- Index: scripts/globals/effects/rhapsody.lua =================================================================== --- scripts/globals/effects/rhapsody.lua (revision 3520) +++ scripts/globals/effects/rhapsody.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------- --- --- --- +-- EFFECT_RHAPSODY +-- Increases Confusion Resistance to +-- Party Members within target AoE +-- Addle ?? ----------------------------------- ----------------------------------- @@ -9,6 +10,7 @@ ----------------------------------- function onEffectGain(target,effect) + -- target:addMod(MOD_CONFUSIONRES,effect:getPower()); end; ----------------------------------- @@ -23,4 +25,5 @@ ----------------------------------- function onEffectLose(target,effect) + -- target:delMod(MOD_CONFUSIONRES,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/round.lua =================================================================== --- scripts/globals/effects/round.lua (revision 3520) +++ scripts/globals/effects/round.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_ROUND +-- Increases Curse Resistance to +-- Party Members within target AoE ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_CURSERES,effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_CURSERES,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/saboteur.lua =================================================================== --- scripts/globals/effects/saboteur.lua (revision 3520) +++ scripts/globals/effects/saboteur.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_SABOTEUR +-- Enhances the next enfeebling magic +-- spell's effect and duration. ----------------------------------- ----------------------------------- Index: scripts/globals/effects/sacrosanctity.lua =================================================================== --- scripts/globals/effects/sacrosanctity.lua (revision 0) +++ scripts/globals/effects/sacrosanctity.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------- +-- EFFECT_SACROSANCTITY +-- Reduces magic defense for party +-- members within AoE by 75% +----------------------------------- + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/effects/sanction.lua =================================================================== --- scripts/globals/effects/sanction.lua (revision 3520) +++ scripts/globals/effects/sanction.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- -- +-- EFFECT_SANCTION -- --- ----------------------------------- ----------------------------------- @@ -16,6 +16,11 @@ ----------------------------------- function onEffectTick(target,effect) + if(effect:getPower() == 1) then + target:addHP(3); + elseif(effect:getPower() == 2) then + target:addMP(3); + end end; ----------------------------------- Index: scripts/globals/effects/scarlet_delirium_i.lua =================================================================== --- scripts/globals/effects/scarlet_delirium_i.lua (revision 0) +++ scripts/globals/effects/scarlet_delirium_i.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------- +-- EFFECT_SCARLET_DELIRIUM_I +-- (Charging) +-- Channels dmg taken into enhanced +-- atk and magic atk. Dmg proportional +-- to next hit taken hp loss / 2. +----------------------------------- + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/effects/scarlet_delirium_ii.lua =================================================================== --- scripts/globals/effects/scarlet_delirium_ii.lua (revision 0) +++ scripts/globals/effects/scarlet_delirium_ii.lua (working copy) @@ -0,0 +1,32 @@ +----------------------------------- +-- EFFECT_SCARLET_DELIRIUM_II +-- (Charged) +-- Channels dmg taken into enhanced +-- atk and magic atk. Dmg proportional +-- to next hit taken hp loss / 2. +----------------------------------- + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_SCARLET_DMG,effect:getPower()); + target:addMod(MOD_SCARLET_MDMG,effect:getPower()); +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_SCARLET_DMG,effect:getPower()); + target:delMod(MOD_SCARLET_MDMG,effect:getPower()); +end; \ No newline at end of file Index: scripts/globals/effects/scherzo.lua =================================================================== --- scripts/globals/effects/scherzo.lua (revision 3520) +++ scripts/globals/effects/scherzo.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_SCHERZO +-- Mitigates Impact of severly +-- damaging attacks. ----------------------------------- ----------------------------------- Index: scripts/globals/effects/seigan.lua =================================================================== --- scripts/globals/effects/seigan.lua (revision 3520) +++ scripts/globals/effects/seigan.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- +-- Effect: +-- Seigan -- --- --- ----------------------------------- require("scripts/globals/status"); @@ -11,7 +11,16 @@ ----------------------------------- function onEffectGain(target,effect) - target:addMod(MOD_COUNTER,(target:getMod(MOD_ZANSHIN)/4)); + + local head = caster:getEquipID(SLOT_HEAD); + local pEquipMods = 0; + + -- Equipment Bonus + if (head == 11075 or head == 11175) then -- Unkai Kabuto +2 & +1 + pEquipMods = 5; + end + + target:addMod(MOD_COUNTER,((target:getMod(MOD_ZANSHIN)/4)+pEquipMods)); target:addMod(MOD_FASTCAST,-50); end; Index: scripts/globals/effects/sepulcher.lua =================================================================== --- scripts/globals/effects/sepulcher.lua (revision 3520) +++ scripts/globals/effects/sepulcher.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_SEPULCHER +-- Lowers Acc Eva MAcc MEva and TP +-- Gain for Undead. ----------------------------------- ----------------------------------- @@ -9,6 +9,11 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_ACCP, effect:getPower()); + target:addMod(MOD_EVAP, effect:getPower()); + target:addMod(MOD_MACC, effect:getPower()); + target:addMod(MOD_MEVA, effect:getPower()); + target:addMod(MOD_STORETP, effect:getPower()); end; ----------------------------------- @@ -23,4 +28,9 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_ACCP, effect:getPower()); + target:delMod(MOD_EVAP, effect:getPower()); + target:delMod(MOD_MACC, effect:getPower()); + target:delMod(MOD_MEVA, effect:getPower()); + target:delMod(MOD_STORETP, effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/serenade.lua =================================================================== --- scripts/globals/effects/serenade.lua (revision 3520) +++ scripts/globals/effects/serenade.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_SERENADE +-- Increases Disease Resistance to +-- Party Members within target AoE ----------------------------------- ----------------------------------- @@ -9,6 +9,7 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_VIRUSRES,effect:getPower()); end; ----------------------------------- @@ -23,4 +24,5 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_VIRUSRES,effect:getPower()); end; \ No newline at end of file Index: scripts/globals/effects/sirvente.lua =================================================================== --- scripts/globals/effects/sirvente.lua (revision 3520) +++ scripts/globals/effects/sirvente.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_SIRVENTE +-- Enmity - and gains it back over time +-- I'm sure it's not correct but a stop gap until it's implemented. ----------------------------------- ----------------------------------- @@ -9,6 +9,8 @@ ----------------------------------- function onEffectGain(target,effect) + emod = effect:getPower() * -1 + target:addMod(MOD_ENMITY,emod); end; ----------------------------------- @@ -16,6 +18,12 @@ ----------------------------------- function onEffectTick(target,effect) + -- the effect gains enmity of 1 every 3 ticks depending on the source of the enmity boost + local enmity_effect_size = effect:getPower(); + if(enmity_effect_size > 0) then + effect:setPower(enmity_effect_size - 1) + target:delMod(MOD_ENMITY,-1); + end end; ----------------------------------- @@ -23,4 +31,9 @@ ----------------------------------- function onEffectLose(target,effect) + local enmity_effect_size = effect:getPower(); + if(enmity_effect_size > 0) then + enmity_effect_size = enmity_effect_size * -1; + target:delMod(MOD_ENMITY,enmity_effect_size); + end end; \ No newline at end of file Index: scripts/globals/effects/souleater.lua =================================================================== --- scripts/globals/effects/souleater.lua (revision 3520) +++ scripts/globals/effects/souleater.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_SOULEATER +-- Consumes 10% of your HP to +-- enhance attacks. ----------------------------------- require("scripts/globals/status"); @@ -11,6 +11,14 @@ ----------------------------------- function onEffectGain(target,effect) + if(target:getObjType() == TYPE_PC) then + local merit = target:getMerit(MERIT_MUTED_SOUL); + local amount = 0; + if (merit > 0) then + amount = -1 * merit * 10; + end + target:addMod(MOD_ENMITY, amount) + end target:addMod(MOD_ACC,25); end; @@ -26,5 +34,13 @@ ----------------------------------- function onEffectLose(target,effect) + if(target:getObjType() == TYPE_PC) then + local merit = target:getMerit(MERIT_MUTED_SOUL); + local amount = 0; + if (merit > 0) then + amount = -1 * merit * 10; + end + target:delMod(MOD_ENMITY, amount) + end target:delMod(MOD_ACC,25); end; \ No newline at end of file Index: scripts/globals/effects/spirit_surge.lua =================================================================== --- scripts/globals/effects/spirit_surge.lua (revision 3520) +++ scripts/globals/effects/spirit_surge.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- -- +-- EFFECT_SPIRIT_SURGE -- --- ----------------------------------- ----------------------------------- @@ -9,6 +9,34 @@ ----------------------------------- function onEffectGain(target,effect) + -- TODO: The dragoon's MAX HP increases by (25% of wyvern MAXHP) + -- local petMaxHP = target:getPet():getMaxHP(); + -- ... but there's no LUA function to change MAX HP ... + + -- The dragoon is healed by wyvern's remaining HP + local petHP = target:getPet():getHP(); + target:addHP(petHP); + + -- The wyvern's current TP is transfered to the dragoon + local petTP = target:getPet():getTP(); + target:addTP(petTP); + + -- The wyvern is "absorbed" into the dragoon (Call Wyvern will not allow a resummon during the effect) + target:despawnPet(); + + -- All Jump recast times are reset + target:resetAbilityRecast(158); -- Jump + target:resetAbilityRecast(159); -- High Jump + target:resetAbilityRecast(160); -- Super Jump + + -- The dragoon gets a Strength boost relative to his level + target:addMod(MOD_STR,effect:getPower()); + + -- The dragoon gets a 50 Accuracy boost + target:addMod(MOD_ACC,50); + + -- The dragoon gets 25% Haste (256/1024, see http://wiki.bluegartr.com/bg/Job_Ability_Haste for haste calculation) + target:addMod(MOD_HASTE_ABILITY,256); end; ----------------------------------- @@ -23,4 +51,14 @@ ----------------------------------- function onEffectLose(target,effect) + -- TODO: The dragoon's MAX HP returns to normal (when the MAXHP boost in onEffectGain() gets implemented) + + -- The dragoon loses the Strength boost + target:delMod(MOD_STR,effect:getPower()); + + -- The dragoon loses the 50 Accuracy boost + target:delMod(MOD_ACC,50); + + -- The dragoon loses 25% Haste + target:delMod(MOD_HASTE_ABILITY,256); end; \ No newline at end of file Index: scripts/globals/effects/spontaneity.lua =================================================================== --- scripts/globals/effects/spontaneity.lua (revision 0) +++ scripts/globals/effects/spontaneity.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------- +-- EFFECT_SPONTANEITY +-- Reduces casting time of the next +-- magic spell the target casts. +----------------------------------- + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/effects/store_tp.lua =================================================================== --- scripts/globals/effects/store_tp.lua (revision 0) +++ scripts/globals/effects/store_tp.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------- +-- +-- MOD_STORETP +-- +----------------------------------- + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STORETP, effect:getPower()); +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STORETP, effect:getPower()); +end; \ No newline at end of file Index: scripts/globals/effects/sublimation_activated.lua =================================================================== --- scripts/globals/effects/sublimation_activated.lua (revision 3520) +++ scripts/globals/effects/sublimation_activated.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT SUBLIMATION_ACTIVATED +-- Gradually creates a storage of +-- MP while reducing your HP. ----------------------------------- ----------------------------------- Index: scripts/globals/effects/sublimation_complete.lua =================================================================== --- scripts/globals/effects/sublimation_complete.lua (revision 3520) +++ scripts/globals/effects/sublimation_complete.lua (working copy) @@ -1,7 +1,6 @@ ----------------------------------- --- --- --- +-- EFFECT_SUBLIMATION_COMPLETE +-- MP Storage Pool Complete ----------------------------------- ----------------------------------- Index: scripts/globals/effects/third_eye.lua =================================================================== --- scripts/globals/effects/third_eye.lua (revision 3520) +++ scripts/globals/effects/third_eye.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- Effect +-- Third Eye +-- Augmented with Saotome Haidate - +1 - +2 ----------------------------------- ----------------------------------- Index: scripts/globals/effects/transcendency.lua =================================================================== --- scripts/globals/effects/transcendency.lua (revision 3520) +++ scripts/globals/effects/transcendency.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------- --- --- --- +-- EFFECT_TRANSCENDENCY +-- Maxes your character out +-- Makes you a God ----------------------------------- ----------------------------------- @@ -9,6 +9,21 @@ ----------------------------------- function onEffectGain(target,effect) + target:addMod(MOD_HP, 9999); + target:addMod(MOD_MP, 9999); + target:addMod(MOD_STR, 999); + target:addMod(MOD_DEX, 999); + target:addMod(MOD_AGI, 999); + target:addMod(MOD_VIT, 999); + target:addMod(MOD_INT, 999); + target:addMod(MOD_MND, 999); + target:addMod(MOD_CHR, 999); + target:addMod(MOD_ATT, 999); + target:addMod(MOD_DEF, 999); + target:addMod(MOD_REGEN, 300); + target:addMod(MOD_REFRESH, 300); + target:addMod(MOD_REGAIN, 50); + target:addMod(MOD_DMG, -90); end; ----------------------------------- @@ -23,4 +38,19 @@ ----------------------------------- function onEffectLose(target,effect) + target:delMod(MOD_HP, 9999); + target:delMod(MOD_MP, 9999); + target:delMod(MOD_STR, 999); + target:delMod(MOD_DEX, 999); + target:delMod(MOD_AGI, 999); + target:delMod(MOD_VIT, 999); + target:delMod(MOD_INT, 999); + target:delMod(MOD_MND, 999); + target:delMod(MOD_CHR, 999); + target:delMod(MOD_ATT, 999); + target:delMod(MOD_DEF, 999); + target:delMod(MOD_REGEN, 300); + target:delMod(MOD_REFRESH, 300); + target:delMod(MOD_REGAIN, 50); + target:delMod(MOD_DMG, -90); end; \ No newline at end of file Index: scripts/globals/effects/troubadour.lua =================================================================== --- scripts/globals/effects/troubadour.lua (revision 3520) +++ scripts/globals/effects/troubadour.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------- --- --- --- +-- EFFECT_TROUBADOUR +-- Increases casting time for songs +-- by 1.5 and double effect and +-- duration ----------------------------------- ----------------------------------- Index: scripts/globals/effects/warding_circle.lua =================================================================== --- scripts/globals/effects/warding_circle.lua (revision 3520) +++ scripts/globals/effects/warding_circle.lua (working copy) @@ -11,7 +11,7 @@ ----------------------------------- function onEffectGain(target,effect) - target:addMod(MOD_DEMON_KILLER,8); + target:addMod(MOD_DEMON_KILLER,effect:getPower()); end; ----------------------------------- @@ -26,5 +26,5 @@ ----------------------------------- function onEffectLose(target,effect) - target:delMod(MOD_DEMON_KILLER,8); + target:delMod(MOD_DEMON_KILLER,effect:getPower()); end; Index: scripts/globals/effects/weakness.lua =================================================================== --- scripts/globals/effects/weakness.lua (revision 3520) +++ scripts/globals/effects/weakness.lua (working copy) @@ -43,6 +43,7 @@ target:delMod(MOD_HPP,-75); target:delMod(MOD_MPP,-75); target:delMod(MOD_HASTE_MAGIC,-1024); + target:updateHealth(); if(effect:getPower() == 2) then -- handle double weakness Index: scripts/globals/festivals.lua =================================================================== --- scripts/globals/festivals.lua (revision 0) +++ scripts/globals/festivals.lua (working copy) @@ -0,0 +1,196 @@ +----------------------------------------------- +----- Special In Game Events/Festivals ------ +----------------------------------------------- + +package.loaded["scripts/globals/festivals"] = nil; +require("scripts/globals/status"); +require("scripts/globals/settings"); + +--------------------------------------------------------- +--------------------------------------------------------- +------------ Harvest Festivals -------------------- +------------ Author: Metalfiiish -------------------- +--------------------------------------------------------- +--------------------------------------------------------- + +function isHalloweenEnabled() + local option = 0; + if(HALLOWEEN_2005 == 1) then + option = 1; + elseif(HALLOWEEN_2008 == 1) then + option = 2; + elseif(HALLOWEEN_2009 == 1) then + option = 3; + elseif(HALLOWEEN_2010 == 1) then + option = 4; + end + return option; +end; + +-- Add two custom dragon skins: @420/421 +-- @422 dancing weapon +-- @ 433/432 golem +-- 265 dark eye, 266 Giant version +-- 290 dark bombs +-- 301 dark flour dude +-- 313 black spiders +-- 488 gob +-- 531 - 548 shade +-- 564/579 skele + +function npcCostumeCheck(player,npc) + + -- Possible costume values: + Yagudo = 580; + Quadav = 0; + Shade = 548; + Orc = 0; + Ghost = 368; + Hound = 365; + Skeleton = 564; + Dark_Stalker = 547; + + halloween_costum_list = {Yagudo,Shade,Ghost,Hound}; + + player:addStatusEffect(EFFECT_COSTUME,halloween_costum_list[math.random(1,table.getn(halloween_costum_list)) ],0,3600); + +end; + + +function halloweenItemsCheck(player) + local headSlot = player:getEquipID(SLOT_HEAD); + local mainHand = player:getEquipID(SLOT_MAIN); + local reward = 0; + + -- Normal Quality Rewards + local pumpkinHead = 13916 + local pumpkinHead2 = 15176; + local trickStaff = 17565; + local trickStaff2 = 17587; + + reward_list = {pumpkinHead,pumpkinHead2,trickStaff,trickStaff2}; + + -- Checks for HQ Upgrade + for ri = 1, table.getn(reward_list) do + printf("Checking for HQ"); + if(headSlot == reward_list[ri] or mainHand == reward_list[ri]) then + if(headSlot == pumpkinHead and player:hasItem(13917) == false) then + reward = 13917; -- Horror Head + elseif(headSlot == pumpkinHead2 and player:hasItem(15177) == false) then + reward = 15177; -- Horror Head II + elseif(mainHand == trickStaff and player:hasItem(17566) == false) then + reward = 17566; -- Treat Staff + elseif(mainHand == trickStaff2 and player:hasItem(17588) == false) then + reward = 17588; -- Treat Staff II + end + printf("HQ was %u",reward); + return reward; + end + end + + -- Checks the possible item rewards to ensure player doesnt already have the item we are about to give them + local cnt = table.getn(reward_list); + printf("Cnt starts at: %u",cnt); + printf("Reward List: %u",reward_list[1]); + printf("Reward List: %u",reward_list[2]); + printf("Reward List: %u",reward_list[3]); + printf("Reward List: %u",reward_list[4]); + while cnt ~= 0 do + printf("...in loop..cnt = %u",cnt); + + local picked = reward_list[math.random(1,table.getn(reward_list))]; + printf("Picked reward: %u",picked); + if(player:hasItem(picked) == false) then + printf("Hit if"); + reward = picked; + cnt = 0; + else + printf("Hit else"); + table.remove(reward_list,picked); + cnt = cnt - 1; + end + printf("Item reward: %u",reward); + return reward; + end; +end; + +function onHalloweenTrade(player,trade,npc) + local contentEnabled = isHalloweenEnabled(); + local item = trade:getItem(); + printf("Started with item %u",item); + ------------------- + -- 2005 edition --- + ------------------- + if(contentEnabled == 1) then + printf("Content is eabled!"); + ----------------------------------- + -- Treats allowed + ----------------------------------- + treats_table = {4510, -- Acorn Cookie + 5646, -- Bloody Chocolate + 4496, -- Bubble Chocolate + 4397, -- Cinna-cookie + 4394, -- Ginger Cookie + 4495, -- Goblin Chocolate + 4413, -- Apple Pie + 4488, -- Jack-o'-Pie + 4421, -- Melon Pie + 4563, -- Pamama Tart + 4446, -- Pumpkin Pie + 4414, -- Rolanberry Pie + 4406, -- Baked Apple + 5729, -- Bavarois + 5745, -- Cherry Bavarois + 5653, -- Cherry Muffin + 5655, -- Coffee Muffin + 5718, -- Cream Puff + 5144, -- Crimson Jelly + 5681, -- Cupid Chocolate + 5672, -- Dried Berry + 5567, -- Dried Date + 4556, -- Icecap Rolanberry + 5614, -- Konigskuchen + 5230, -- Love Chocolate + 4502, -- Marron Glace + 4393, -- Orange Kuchen + 5147, -- Snoll Gelato + 4270, -- Sweet Rice Cake + 5645, -- Witch Nougat + 5552, -- Black Pudding + 5550, -- Buche au Chocolat + 5616, -- Lebkuchen House + 5633, -- Chocolate Cake + 5542, -- Gateau aux Fraises + 5572, -- Irmik Helvasi + 5625, -- Maple Cake + 5559, -- Mille Feuille + 5557, -- Mont Blanc + 5629, -- Orange Cake + 5631, -- Pumpkin Cake + 5577, -- Sutlac + 5627}; -- Yogurt Cake + + for itemInList = 1, table.getn(treats_table) do + printf("...running item check..."); + if(item == treats_table[itemInList]) then + + local itemReward = halloweenItemsCheck(player); + + if(itemReward ~= 0 and player:getFreeSlotsCount() >= 1) then -- Math.random added so you have 33% chance on getting item /and math.random(1,3) < 2 + local TextIDs = "scripts/zones/" .. player:getZoneName() .. "/TextIDs"; + package.loaded[TextIDs] = nil; + require(TextIDs); + player:addItem(itemReward); + player:messageSpecial(ITEM_OBTAINED,itemReward); + elseif(player:canUseCostume()) then + npcCostumeCheck(player,npc); + end + player:tradeComplete(); + break; + end + end + end +end; + + + Index: scripts/globals/fieldsofvalor.lua =================================================================== --- scripts/globals/fieldsofvalor.lua (revision 3520) +++ scripts/globals/fieldsofvalor.lua (working copy) @@ -274,13 +274,13 @@ FOV_EVENT_YUHTUNGA =0x003d; FOV_EVENT_YHOATOR =0x003d; FOV_EVENT_WEST_ALTEPA =0x003d; -FOV_EVENT_EAST_ALTEPA =0x003d; --test +FOV_EVENT_EAST_ALTEPA =0x003d; FOV_EVENT_BEAUCEDINE =0x00da; FOV_EVENT_XARCABARD =0x0030; FOV_EVENT_BEHEMOTH =0x003d; FOV_EVENT_ZITAH =0x003d; FOV_EVENT_ROMAEVE =0x003d; -FOV_EVENT_TERIGGAN =0x003d; --test +FOV_EVENT_TERIGGAN =0x003d; FOV_EVENT_SORROWS =0x003d; ---------------------------------- @@ -510,10 +510,7 @@ if(killer:getVar("fov_regimeid") == rid) then --player is doing this regime - -- Need to add difference because a lvl1 can xp with a level 75 at ro'maeve - local difference = math.abs(mob:getMainLvl() - killer:getMainLvl()); - - if(partyType < 2 and mob:checkBaseExp() and killer:checkDistance(mob) < 100 and difference <= 15) then + if(partyType < 2 and mob:checkBaseExp() and killer:checkDistance(mob) < 100) then --get the number of mobs needed/killed local needed = killer:getVar("fov_numneeded"..index); local killed = killer:getVar("fov_numkilled"..index); @@ -549,7 +546,7 @@ end --TODO: display msgs (based on zone annoyingly, so will need killer:getZone() then a lookup) - killer:addExp(reward); + killer:addExp(reward*EXP_RATE); if (k1 ~= 0) then killer:setVar("fov_numkilled1",0); end if (k2 ~= 0) then killer:setVar("fov_numkilled2",0); end if (k3 ~= 0) then killer:setVar("fov_numkilled3",0); end Index: scripts/globals/gear_sets.lua =================================================================== --- scripts/globals/gear_sets.lua (revision 3520) +++ scripts/globals/gear_sets.lua (working copy) @@ -15,7 +15,7 @@ item_set = {16084,{14546,14961,15625,15711,MOD_DOUBLE_ATTACK,5}, -- Ares's set (5% DA) 16088,{14550,14965,15629,15715,MOD_CRITHITRATE,5}, -- Skadi's set (5% critrate is guess) - 16092,{14554,14969,15633,15719,MOD_HASTE_GEAR,50}, -- Usukane's set (5% Haste) + 16092,{14554,14969,15633,15719,MOD_HASTE_GEAR,50}, -- Usukane's set (5% Haste) 16107,{14569,14984,15648,15734,MOD_ACC,20}, -- Denali Jacket Set (Increases Accuracy +20) 16106,{14568,14983,15647,15733,MOD_HPP,10}, -- Askar Korazin Set (Max HP Boost %10) 16069,{14530,14940,15609,15695,MOD_SUBTLE_BLOW,8}, -- Pahluwan Khazagand Set (8% is guess) @@ -23,18 +23,22 @@ 16096,{14558,14973,15637,15723,MOD_FASTCAST,5}, -- Marduk's Jubbah Set (5% fastcast) 16108,{14570,14985,15649,15735,MOD_MDEF,10}, -- Goliard Saio Set - Total Set Bonus +10% Magic Def. Bonus 16064,{14527,14935,15606,15690,MOD_REFRESH,1}, -- Yigit Gomlek Set (1mp per tick) Adds "Refresh" effect - 11503,{13759,12745,14210,11413,MOD_HASTE_GEAR,50}, -- Perle Hauberk Set 5% haste + 11503,{13759,12745,14210,11413,MOD_HASTE_GEAR,50}, -- Perle Hauberk Set 5% haste 11504,{13760,12746,14257,11414,MOD_STORETP,8}, -- Aurore Doublet Set store tp +8 11505,{13778,12747,14258,11415,MOD_FASTCAST,10}, -- Teal Saio Set fastcast 10% - 10890,{10462,10512,11980,10610,MOD_HASTE_GEAR,61}, -- Calma Armor Set haste%6 + 10890,{10462,10512,11980,10610,MOD_HASTE_GEAR,61}, -- Calma Armor Set haste%6 10892,{10464,10514,11982,10612,MOD_MACC,5}, -- Magavan Armor Set magic accuracy +5 - 10891,{10463,10513,11981,10611,MOD_CRITHITRATE,5}}; -- Mustela Harness Set crit rate 5% + 10891,{10463,10513,11981,10611,MOD_CRITHITRATE,5}; -- Mustela Harness Set crit rate 5% + 10877,{10451,10501,11970,10601,MOD_CRITHITRATE,6}; -- Athos's Armor set crit rate +6%. (crit rate 3% for the first 2 pieces, +1% for each additional piece) + 10878,{10452,10502,11971,10602,MOD_FASTCAST,10}; -- Rubeus' Armor set "Fast Cast" effect +10% (2 or 3 pieces equipped: Fast Cast +4, 4 or 5 pieces equipped: Fast Cast +10) + 10876,{10450,10500,11969,10600,MOD_REFRESH,2}; -- Ogier's Armor set 1 -3 pieces 1% Refresh, 4-5 pieces 2% Refresh + 27652,{27792,27932,28075,28212,MOD_MATT,9}; -- Morrigan's Armor +1 set Magic Attack Bonus +9 with all 5 pieces + 27651,{27791,27931,28074,28211,MOD_FASTCAST,9}; -- Marduk's Armor +1 Fast Cast +9% with full set + 27649,{27789,27929,28072,28209,MOD_CRITHITRATE,9}; -- Skadi's Armor +1 Crit hit rate +9% with full set + 27648,{27788,27928,28071,28208,MOD_DOUBLE_ATTACK,9}; -- Ares' Armor +1 Double Attack effect +9% with full set + 27650,{27790,27930,28073,28210,MOB_HASTE_GEAR,90}}; -- Usukane Armor +1 Haste (Gear) +9% with full set +function checkForGearSet(player) - - - -function checkForGearSet(player) - local head = player:getEquipID(SLOT_HEAD); local body = player:getEquipID(SLOT_BODY); local hands = player:getEquipID(SLOT_HANDS); @@ -300,44 +304,7 @@ 11362 -- Twilight Mail -- Set Bonus: Auto-Reraise -======= -Voidwatch -======= ---Ogier's Armor Set -------------- -10876 -- Ogier's Helm -10450 -- Ogier's Surcoat -10500 -- Ogier's Gauntlets -11969 -- Ogier's Breeches -10600 -- Ogier's Leggings --- Set Bonus: Adds "Refresh" Effect --- Provides 1 mp/tick for 2-3 pieces worn, 2 mp/tick for 4-5 pieces worn. - ---Athos's Armor Set -------------- -10877 -- Athos's Chapeau -10451 -- Athos's Tabard -10501 -- Athos's Gloves -11970 -- Athos's Tights -10601 -- Athos's Boots --- Set Bonus: Increases rate of critical hits. --- Gives +3% for the first 2 pieces and +1% for every additional piece. - ---Rubeus Armor Set -------------- -10878 -- Rubeus Bandeau -10452 -- Rubeus Jacket -10502 -- Rubeus Gloves -11971 -- Rubeus Spats -10602 -- Rubeus Boots --- Set Bonus: Enhances "Fast Cast" Effect --- 2 or 3 pieces equipped: Fast Cast +4 --- 4 or 5 pieces equipped: Fast Cast +10 - - - - ======= Empyrean +2 ======= Index: scripts/globals/harvest_festivals.lua =================================================================== --- scripts/globals/harvest_festivals.lua (revision 0) +++ scripts/globals/harvest_festivals.lua (working copy) @@ -0,0 +1,235 @@ +--------------------------------------------------------- +--------------------------------------------------------- +------------ Harvest Festivals -------------------- +------------ Author: Metalfiiish -------------------- +--------------------------------------------------------- +--------------------------------------------------------- + +package.loaded["scripts/globals/harvest_festivals"] = nil; +require("scripts/globals/status"); +require("scripts/globals/settings"); + +--------------------------------------------------------- +--------------------------------------------------------- + + +function isHalloweenEnabled() + local option = 0; + if(HALLOWEEN_2005 == 1) then + option = 1; + elseif(HALLOWEEN_2008 == 1) then + option = 2; + elseif(HALLOWEEN_2009 == 1) then + option = 3; + elseif(HALLOWEEN_2010 == 1) then + option = 4; + end + return option; +end; + + + +function playerCostumeCheck(player,npc) +---- Other neat looking halloween type costumes +-- two dragon skins: @420/421 +-- @422 dancing weapon +-- @ 433/432 golem +-- 265 dark eye, 266 Giant version +-- 290 dark bombs +-- 301 dark mandy +-- 313 black spiders +-- 488 gob +-- 531 - 548 shade +-- 564/579 skele + + -- Possible costume values: + Yagudo = math.random(580,607); + Quadav = math.random(644,671); + Shade = math.random(535,538); + Orc = math.random(612,639); + Ghost = 368; + Hound = 365; + Skeleton = 564; + Dark_Stalker = math.random(531,534); + + halloween_costume_list = {Quadav,Orc,Yagudo,Shade,Ghost,Hound,Skeleton,Dark_Stalker}; + + player:addStatusEffect(EFFECT_COSTUME,halloween_costume_list[math.random(1,table.getn(halloween_costume_list)) ],0,3600); + +end; + + +function halloweenItemsCheck(player) + local headSlot = player:getEquipID(SLOT_HEAD); + local mainHand = player:getEquipID(SLOT_MAIN); + local reward = 0; + + -- Normal Quality Rewards + local pumpkinHead = 13916 + local pumpkinHead2 = 15176; + local trickStaff = 17565; + local trickStaff2 = 17587; + + reward_list = {pumpkinHead,pumpkinHead2,trickStaff,trickStaff2}; + + -- Checks for HQ Upgrade + for ri = 1, table.getn(reward_list) do + printf("Checking for HQ"); + if(headSlot == reward_list[ri] or mainHand == reward_list[ri]) then + if(headSlot == pumpkinHead and player:hasItem(13917) == false) then + reward = 13917; -- Horror Head + elseif(headSlot == pumpkinHead2 and player:hasItem(15177) == false) then + reward = 15177; -- Horror Head II + elseif(mainHand == trickStaff and player:hasItem(17566) == false) then + reward = 17566; -- Treat Staff + elseif(mainHand == trickStaff2 and player:hasItem(17588) == false) then + reward = 17588; -- Treat Staff II + end + printf("HQ was %u",reward); + return reward; + end + end + + -- Checks the possible item rewards to ensure player doesnt already have the item we are about to give them + local cnt = table.getn(reward_list); + printf("Cnt starts at: %u",cnt); + printf("Reward List: %u",reward_list[1]); + printf("Reward List: %u",reward_list[2]); + printf("Reward List: %u",reward_list[3]); + printf("Reward List: %u",reward_list[4]); + while cnt ~= 0 do + printf("...in loop..cnt = %u",cnt); + + local picked = reward_list[math.random(1,table.getn(reward_list))]; + printf("Picked reward: %u",picked); + if(player:hasItem(picked) == false) then + printf("Hit if"); + reward = picked; + cnt = 0; + else + printf("Hit else"); + table.remove(reward_list,picked); + cnt = cnt - 1; + end + printf("Item reward: %u",reward); + return reward; + end; +end; + +function onHalloweenTrade(player,trade,npc) + local contentEnabled = isHalloweenEnabled(); + local item = trade:getItem(); + printf("Started with item %u",item); + ------------------- + -- 2005 edition --- + ------------------- + if(contentEnabled == 1) then + printf("Content is eabled!"); + ----------------------------------- + -- Treats allowed + ----------------------------------- + treats_table = {4510, -- Acorn Cookie + 5646, -- Bloody Chocolate + 4496, -- Bubble Chocolate + 4397, -- Cinna-cookie + 4394, -- Ginger Cookie + 4495, -- Goblin Chocolate + 4413, -- Apple Pie + 4488, -- Jack-o'-Pie + 4421, -- Melon Pie + 4563, -- Pamama Tart + 4446, -- Pumpkin Pie + 4414, -- Rolanberry Pie + 4406, -- Baked Apple + 5729, -- Bavarois + 5745, -- Cherry Bavarois + 5653, -- Cherry Muffin + 5655, -- Coffee Muffin + 5718, -- Cream Puff + 5144, -- Crimson Jelly + 5681, -- Cupid Chocolate + 5672, -- Dried Berry + 5567, -- Dried Date + 4556, -- Icecap Rolanberry + 5614, -- Konigskuchen + 5230, -- Love Chocolate + 4502, -- Marron Glace + 4393, -- Orange Kuchen + 5147, -- Snoll Gelato + 4270, -- Sweet Rice Cake + 5645, -- Witch Nougat + 5552, -- Black Pudding + 5550, -- Buche au Chocolat + 5616, -- Lebkuchen House + 5633, -- Chocolate Cake + 5542, -- Gateau aux Fraises + 5572, -- Irmik Helvasi + 5625, -- Maple Cake + 5559, -- Mille Feuille + 5557, -- Mont Blanc + 5629, -- Orange Cake + 5631, -- Pumpkin Cake + 5577, -- Sutlac + 5627}; -- Yogurt Cake + + for itemInList = 1, table.getn(treats_table) do + printf("...running item check..."); + if(item == treats_table[itemInList]) then + + local itemReward = halloweenItemsCheck(player); + + if(itemReward ~= 0 and player:getFreeSlotsCount() >= 1) then -- Math.random added so you have 33% chance on getting item, re-add "and math.random(1,3) < 2" + local TextIDs = "scripts/zones/" .. player:getZoneName() .. "/TextIDs"; + package.loaded[TextIDs] = nil; + require(TextIDs); + player:addItem(itemReward); + player:messageSpecial(ITEM_OBTAINED,itemReward); + elseif(player:canUseCostume()) then + playerCostumeCheck(player,npc); + end + player:tradeComplete(); + break; + end + end + end +end; + +function applyHalloweenNpcCostumes() +-- npcID, skinID (skin ID can be found in mob_change_skin Sql table) + npc_costume_map = {17735787,40, -- Proud_Beard - Bastok Mines + 17735742,41, -- Faustin - Bastok Mines + 17814119,42, -- Aulavia - Bastok Mines + 17735744,43, -- Mille - Bastok Mines + 17735810,44, -- Emaliveulaux - Bastok Mines + 17739805,45, -- Olwyn - Bastok Markets + 17719306,46, -- Apairemant - Southern Sandoria + 17719303,47, -- Machielle - Southern Sandoria + 17719305,48, -- Phamelise - Southern Sandoria + 17719485,49, -- Pourette - Southern Sandoria + 17719304,50, -- Corua -- Southern Sandoria + 17723497,51, -- Attarena - Northern Sandoria + 17723492,52, -- Antonian - Northern Sandoria + 17723487,53, -- Vichuel - Northern Sandoria + 17764401,54, -- Kuzah_Hpirohpon - Windurst Woods + 17764400,55, -- Meriri - Windurst Woods + 17764464,56, -- Nhobi_Zalkia - Windurst Woods + 17764465,57, -- Millerovieunet - Windurst Woods + 17764462,58, -- Taraihi-Perunhi - Windurst Woods + 17752101,59, -- Ness_Rugetomal - Windurst Waters + 17752098,60, -- Upih_Khachla - Windurst Waters + 17752097,61, -- Ensasa - Windurst Waters + 17752103,62, -- Ahyeekih - Windurst Waters + 17752102,63}; -- Maqu_Molpih - Windurst Waters + printf("List made"); + for costumePair = 1, table.getn(npc_costume_map), 2 do + printf("Looping NPC..%u",npc_costume_map[costumePair]); + printf("..with costume..%u",npc_costume_map[costumePair + 1]); + hfNpc = GetNPCByID(npc_costume_map[costumePair]); + printf("In the middle"); + hfNpc:changeSkin(npc_costume_map[costumePair + 1]); + printf("Harvest Festival NPC's have been costume-ized!"); + end +end; + + + Index: scripts/globals/harvesting.lua =================================================================== --- scripts/globals/harvesting.lua (revision 3520) +++ scripts/globals/harvesting.lua (working copy) @@ -82,6 +82,8 @@ Body = player:getEquipID(SLOT_BODY); Legs = player:getEquipID(SLOT_LEGS); Feet = player:getEquipID(SLOT_FEET); + Waist = player:getEquipID(SLOT_WAIST); + Neck = player:getEquipID(SLOT_NECK); if(Body == 14374 or Body == 14375) then sicklebreak = sicklebreak + 0.073; @@ -92,6 +94,12 @@ if(Feet == 14176 or Feet == 14177) then sicklebreak = sicklebreak + 0.073; end + if(Waist == 11769) then + sicklebreak = sicklebreak + 0.073; + end + if(Neck == 10926) then + sicklebreak = sicklebreak + 0.073; + end if(sicklebreak < HARVESTING_BREAK_CHANCE) then broke = 1; Index: scripts/globals/items/aalak_axe.lua =================================================================== --- scripts/globals/items/aalak_axe.lua (revision 0) +++ scripts/globals/items/aalak_axe.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 20831 +-- Item: Aalak Axe +-- Item Effect: Pet Dbl Atk +2% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_MAIN) == 20831 or target:getEquipID(SLOT_SUB) == 20831) then + pet:addMod(MOD_DOUBLE_ATTACK, 2); + else + pet:delMod(MOD_DOUBLE_ATTACK, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/aalak_axe_+1.lua =================================================================== --- scripts/globals/items/aalak_axe_+1.lua (revision 0) +++ scripts/globals/items/aalak_axe_+1.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 20832 +-- Item: Aalak Axe +1 +-- Item Effect: Pet Dbl Atk +3% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_MAIN) == 20832 or target:getEquipID(SLOT_SUB) == 20832) then + pet:addMod(MOD_DOUBLE_ATTACK, 3); + else + pet:delMod(MOD_DOUBLE_ATTACK, 3); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/acrobats_belt.lua =================================================================== --- scripts/globals/items/acrobats_belt.lua (revision 0) +++ scripts/globals/items/acrobats_belt.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 15866 +-- Item: Acrobat's Belt +-- Enchantment: AGI +3 +-- Durration: 10 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,600,15866); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, 3); +end; Index: scripts/globals/items/adaman_bolt_quiver.lua =================================================================== --- scripts/globals/items/adaman_bolt_quiver.lua (revision 0) +++ scripts/globals/items/adaman_bolt_quiver.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5913 +-- Item: Adaman Bolt Quiver +-- When used, you will obtain one stack of Adaman Bolts +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(19801,99); +end; \ No newline at end of file Index: scripts/globals/items/adaman_bullet_pouch.lua =================================================================== --- scripts/globals/items/adaman_bullet_pouch.lua (revision 0) +++ scripts/globals/items/adaman_bullet_pouch.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 5915 +-- Item: Adaman Bullet Pouch +-- Effect: When used, you will obtain stack of Adaman Bullets +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(19803,99); +end; + Index: scripts/globals/items/agaricus_mushroom.lua =================================================================== --- scripts/globals/items/agaricus_mushroom.lua (revision 0) +++ scripts/globals/items/agaricus_mushroom.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5680 +-- Item: Agaricus Mushroom +-- Food Effect: 5 Mins, All Races +----------------------------------------- +-- Strength -4 +-- Mind 2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5680); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, -4); + target:addMod(MOD_MND, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, -4); + target:delMod(MOD_MND, 2); +end; Index: scripts/globals/items/aileens_delight.lua =================================================================== --- scripts/globals/items/aileens_delight.lua (revision 0) +++ scripts/globals/items/aileens_delight.lua (working copy) @@ -0,0 +1,72 @@ +----------------------------------------- +-- ID: 5674 +-- Item: Aileen's Delight +-- Food Effect: 60 Mins, All Races +----------------------------------------- +-- HP 51 +-- MP 51 +-- Strength 4 +-- Dexterity 4 +-- Vitality 4 +-- Intelligence 4 +-- Agility 4 +-- Mind 5 +-- Charisma 4 +-- MP Recovered while healing 4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,3600,5674); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 51); + target:addMod(MOD_MP, 51); + target:addMod(MOD_STR, 4); + target:addMod(MOD_DEX, 4); + target:addMod(MOD_VIT, 4); + target:addMod(MOD_AGI, 4); + target:addMod(MOD_INT, 4); + target:addMod(MOD_MND, 4); + target:addMod(MOD_CHR, 4); + target:addMod(MOD_MPHEAL, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 51); + target:delMod(MOD_MP, 51); + target:delMod(MOD_STR, 4); + target:delMod(MOD_DEX, 4); + target:delMod(MOD_VIT, 4); + target:delMod(MOD_AGI, 4); + target:delMod(MOD_INT, 4); + target:delMod(MOD_MND, 4); + target:delMod(MOD_CHR, 4); + target:delMod(MOD_MPHEAL, 4); +end; Index: scripts/globals/items/aiming_gloves.lua =================================================================== --- scripts/globals/items/aiming_gloves.lua (revision 0) +++ scripts/globals/items/aiming_gloves.lua (working copy) @@ -0,0 +1,42 @@ +----------------------------------------- +-- ID: 14957 +-- Item: Aiming Gloves +-- Enchantment: Ranged Accuracy +3 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,14957); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_RACC, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_RACC, 3); +end; \ No newline at end of file Index: scripts/globals/items/airmids_gorget.lua =================================================================== --- scripts/globals/items/airmids_gorget.lua (revision 0) +++ scripts/globals/items/airmids_gorget.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 10963 +-- Item: Arimid's Gorget +-- Enchantment: Reraise III +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 3600; + target:delStatusEffect(EFFECT_RERAISE); + target:addStatusEffect(EFFECT_RERAISE,3,0,duration); +end; \ No newline at end of file Index: scripts/globals/items/alabaligi.lua =================================================================== --- scripts/globals/items/alabaligi.lua (revision 0) +++ scripts/globals/items/alabaligi.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5461 +-- Item: Alabaligi +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 2 +-- Mind -4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5461); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 2); + target:addMod(MOD_MND, -4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 2); + target:delMod(MOD_MND, -4); +end; Index: scripts/globals/items/angler_stewpot.lua =================================================================== --- scripts/globals/items/angler_stewpot.lua (revision 0) +++ scripts/globals/items/angler_stewpot.lua (working copy) @@ -0,0 +1,65 @@ +----------------------------------------- +-- ID: 5611 +-- Item: Angler's Stewpot +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% +-- MP +10 +-- HP Recoverd while healing 5 +-- MP Recovered while healing 1 +-- Accuracy +15% Cap 15 +-- Ranged Accuracy 15% Cap 15 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5611); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HPP, 10); + target:addMod(MOD_MP, 10); + target:addMod(MOD_HPHEAL, 5); + target:addMod(MOD_MPHEAL, 1); + target:addMod(MOD_FOOD_ACCP, 15); + target:addMod(MOD_FOOD_ACC_CAP, 15); + target:addMod(MOD_FOOD_RACCP, 15); + target:addMod(MOD_FOOD_RACC_CAP, 15); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HPP, 10); + target:delMod(MOD_MP, 10); + target:delMod(MOD_HPHEAL, 5); + target:delMod(MOD_MPHEAL, 1); + target:delMod(MOD_FOOD_ACCP, 15); + target:delMod(MOD_FOOD_ACC_CAP, 15); + target:delMod(MOD_FOOD_RACCP, 15); + target:delMod(MOD_FOOD_RACC_CAP, 15); +end; Index: scripts/globals/items/ankylosis_wand.lua =================================================================== --- scripts/globals/items/ankylosis_wand.lua (revision 0) +++ scripts/globals/items/ankylosis_wand.lua (working copy) @@ -0,0 +1,34 @@ +----------------------------------------- +-- ID: 18888 +-- Item: Ankylosis Wand +-- Enchantment: Bind +-- Latent Effect: Magic Accuracy +20 Magic Atk Bonus +20 +-- Latent activated when bound. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + if (target:delStatusEffect(EFFECT_BIND) == true) then + target:addMod(MOD_MACC, 20); + target:addMod(MOD_MATT, 20); + elseif (target:delStatusEffect(EFFECT_BIND) == false) then + target:delMod(MOD_MACC, 20); + target:delMod(MOD_MATT, 20); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 60; + target:delStatusEffect(EFFECT_BIND); + target:addStatusEffect(EFFECT_BIND,1,0,duration); +end; \ No newline at end of file Index: scripts/globals/items/anniversary_ring.lua =================================================================== --- scripts/globals/items/anniversary_ring.lua (revision 0) +++ scripts/globals/items/anniversary_ring.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 15793 +-- Item: Anniversary Ring +-- Experience point bonus +----------------------------------------- +-- Bonus: +100% +-- Duration: 720 min +-- Max bonus: 3000 exp +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_DEDICATION) == true) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_DEDICATION,100,0,43200); + target:addMod(MOD_DEDICATION_CAP, 3000); +end; \ No newline at end of file Index: scripts/globals/items/anubiss_knife.lua =================================================================== --- scripts/globals/items/anubiss_knife.lua (revision 0) +++ scripts/globals/items/anubiss_knife.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------------- +-- ID: 17624 +-- Item: Anubis's Knife +-- Enchantment: Poison +-- Durration: 3 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 180; + target:delStatusEffect(EFFECT_POISON); + target:addStatusEffect(EFFECT_POISON,1,0,duration); +end; \ No newline at end of file Index: scripts/globals/items/ark_saber.lua =================================================================== --- scripts/globals/items/ark_saber.lua (revision 0) +++ scripts/globals/items/ark_saber.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 18912 +-- Ark Saber +-- Enchantment: 60Min, Costume - Ark Angel HM +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,784,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/ark_scythe.lua =================================================================== --- scripts/globals/items/ark_scythe.lua (revision 0) +++ scripts/globals/items/ark_scythe.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 18563 +-- Ark Scythe +-- Enchantment: 60Min, Costume - Ark Angel TT +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,787,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/ark_sword.lua =================================================================== --- scripts/globals/items/ark_sword.lua (revision 0) +++ scripts/globals/items/ark_sword.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 18913 +-- Ark Sword +-- Enchantment: 60Min, Costume - Ark Angel EV +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,785,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/ark_tabar.lua =================================================================== --- scripts/globals/items/ark_tabar.lua (revision 0) +++ scripts/globals/items/ark_tabar.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 18545 +-- Ark Tabar +-- Enchantment: 60Min, Costume - Ark Angel MR +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,786,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/ark_tachi.lua =================================================================== --- scripts/globals/items/ark_tachi.lua (revision 0) +++ scripts/globals/items/ark_tachi.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 18464 +-- Ark Tachi +-- Enchantment: 60Min, Costume - Ark Angel GK +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,788,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/armored_ring.lua =================================================================== --- scripts/globals/items/armored_ring.lua (revision 0) +++ scripts/globals/items/armored_ring.lua (working copy) @@ -0,0 +1,41 @@ +----------------------------------------- +-- ID: 15783 +-- Item: Armored Ring +-- Enchantment: DEF +8 +-- Durration: 30 Mins +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,15783); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEF, 8); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEF, 8); +end; + Index: scripts/globals/items/assailants_axe.lua =================================================================== --- scripts/globals/items/assailants_axe.lua (revision 0) +++ scripts/globals/items/assailants_axe.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 18488 +-- Item: Assailant's Axe +-- Enchantment: Accuracy +3 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18488); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ACC, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ACC, 3); +end; + Index: scripts/globals/items/assassins_ring.lua =================================================================== --- scripts/globals/items/assassins_ring.lua (revision 0) +++ scripts/globals/items/assassins_ring.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 14678 +-- Item: Assassin's Ring +-- Enchantment: Ranged Accuracy +20 +-- Durration: 3 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,180,14678); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_RACC, 20); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_RACC, 20); +end; + Index: scripts/globals/items/astral_pot.lua =================================================================== --- scripts/globals/items/astral_pot.lua (revision 0) +++ scripts/globals/items/astral_pot.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 18243 +-- Item: Astral Pot +-- Enchantment: Avatar MAB +22 +-- Charges: 20 Reuse Delay: 30 Mins +-- Duration: 5 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,300,18243); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_PET_MABB, 22); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_PET_MABB, 22); +end; \ No newline at end of file Index: scripts/globals/items/augmenting_belt.lua =================================================================== --- scripts/globals/items/augmenting_belt.lua (revision 0) +++ scripts/globals/items/augmenting_belt.lua (working copy) @@ -0,0 +1,40 @@ +----------------------------------------- +-- ID: 15889 +-- Item: Augmenting Belt +-- Enchantment: HP while healing +2 +-- Durration: 30 Mins +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,15889); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HPHEAL, 2); +end; \ No newline at end of file Index: scripts/globals/items/axe_of_trials.lua =================================================================== --- scripts/globals/items/axe_of_trials.lua (revision 0) +++ scripts/globals/items/axe_of_trials.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16735 +-- Equip: Axe of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 16735) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 20); + target:addMod(MOD_EARTHDEF, 10); + target:addMod(MOD_WATERDEF, 10); + else + target:delMod(MOD_HP, 20); + target:delMod(MOD_EARTHDEF, 10); + target:delMod(MOD_WATERDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/aymur.lua =================================================================== --- scripts/globals/items/aymur.lua (revision 0) +++ scripts/globals/items/aymur.lua (working copy) @@ -0,0 +1,67 @@ +----------------------------------------- +-- ID: 18999 - 19086 - 19088 - 19620 - 19718 - 19827 - 19956 +-- Item: Aymur +-- Item Effect: Pet Attack Bonus +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + // Aymur Lvl 75 - 2 + if (target:getEquipID(SLOT_MAIN) == 18999 or target:getEquipID(SLOT_SUB) == 18999) then + pet:addMod(MOD_ATT, 10); + else + pet:delMod(MOD_ATT, 10); + end + // Aymur Lvl 80 + if (target:getEquipID(SLOT_MAIN) == 19068 or target:getEquipID(SLOT_SUB) == 19068) then + pet:addMod(MOD_ATT, 22); + else + pet:delMod(MOD_ATT, 22); + end + // Aymur Lvl 85 + if (target:getEquipID(SLOT_MAIN) == 19088 or target:getEquipID(SLOT_SUB) == 19088) then + pet:addMod(MOD_ATT, 35); + else + pet:delMod(MOD_ATT, 35); + end + // Aymur Lvl 90 + if (target:getEquipID(SLOT_MAIN) == 19620 or target:getEquipID(SLOT_SUB) == 19620) then + pet:addMod(MOD_ATT, 48); + else + pet:delMod(MOD_ATT, 48); + end + // Aymur Lvl 95 + if (target:getEquipID(SLOT_MAIN) == 19718 or target:getEquipID(SLOT_SUB) == 19718) then + pet:addMod(MOD_ATT, 48); + else + pet:delMod(MOD_ATT, 48); + end + // Aymur Lvl 99 + if (target:getEquipID(SLOT_MAIN) == 19827 or target:getEquipID(SLOT_SUB) == 19827) then + pet:addMod(MOD_ATT, 60); + else + pet:delMod(MOD_ATT, 60); + end + // Aymur Lvl 99 - 2 + if (target:getEquipID(SLOT_MAIN) == 19956 or target:getEquipID(SLOT_SUB) == 19956) then + pet:addMod(MOD_ATT, 60); + else + pet:delMod(MOD_ATT, 60); + end + +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/bannaret_mail.lua =================================================================== --- scripts/globals/items/bannaret_mail.lua (revision 0) +++ scripts/globals/items/bannaret_mail.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 14531 +-- Item: Bannaret Mail +-- Enchantment: HP +15 Eminity +2 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,14531); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 15); + target:addMod(MOD_ENMITY, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 15); + target:delMod(MOD_ENMITY, 2); +end; \ No newline at end of file Index: scripts/globals/items/bar_of_campfire_chocolate.lua =================================================================== --- scripts/globals/items/bar_of_campfire_chocolate.lua (revision 0) +++ scripts/globals/items/bar_of_campfire_chocolate.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 5941 +-- Item: Bar of Campfire Chocolate +-- Food Effect: 30Min, All Races +----------------------------------------- +-- Mind +1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,1800,5941); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MND, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MND, 1); +end; Index: scripts/globals/items/bastok_markets_gate_glyph.lua =================================================================== --- scripts/globals/items/bastok_markets_gate_glyph.lua (revision 0) +++ scripts/globals/items/bastok_markets_gate_glyph.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 4188 +-- Item: Bastok Markets Gate Glyph +-- Enchantment: "Teleport" (Bastok Markets) +----------------------------------------- + +require("scripts/globals/teleports"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + bastokMarketsGlyph(target); +end; \ No newline at end of file Index: scripts/globals/items/bastok_mines_gate_glyph.lua =================================================================== --- scripts/globals/items/bastok_mines_gate_glyph.lua (revision 0) +++ scripts/globals/items/bastok_mines_gate_glyph.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 4187 +-- Item: Bastok Mines Gate Glyph +-- Enchantment: "Teleport" (Bastok Mines) +----------------------------------------- + +require("scripts/globals/teleports"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + bastokMinesGlyph(target); +end; \ No newline at end of file Index: scripts/globals/items/bastore_bream.lua =================================================================== --- scripts/globals/items/bastore_bream.lua (revision 3520) +++ scripts/globals/items/bastore_bream.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/bastore_sardine.lua =================================================================== --- scripts/globals/items/bastore_sardine.lua (revision 3520) +++ scripts/globals/items/bastore_sardine.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/bastore_sweeper.lua =================================================================== --- scripts/globals/items/bastore_sweeper.lua (revision 0) +++ scripts/globals/items/bastore_sweeper.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5473 +-- Item: Bastore Sweeper +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity -5 +-- Vitality 3 +-- Defense +15% +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5473); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, -5); + target:addMod(MOD_VIT, 3); + target:addMod(MOD_DEFP, 15); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, -5); + target:delMod(MOD_VIT, 3); + target:delMod(MOD_DEFP, 15); +end; Index: scripts/globals/items/beef_stewpot.lua =================================================================== --- scripts/globals/items/beef_stewpot.lua (revision 0) +++ scripts/globals/items/beef_stewpot.lua (working copy) @@ -0,0 +1,65 @@ +----------------------------------------- +-- ID: 5547 +-- Item: Beef Stewpot +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% Cap 50 +-- MP +10 +-- HP Recoverd while healing 5 +-- MP Recovered while healing 1 +-- Attack +15% Cap 40 +-- Evasion +5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5611); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_FOOD_HP_CAP, 50); + target:addMod(MOD_MP, 10); + target:addMod(MOD_HPHEAL, 5); + target:addMod(MOD_MPHEAL, 1); + target:addMod(MOD_FOOD_ATTP, 15); + target:addMod(MOD_FOOD_ATT_CAP, 40); + target:addMod(MOD_EVA, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_FOOD_HP_CAP, 50); + target:delMod(MOD_MP, 10); + target:delMod(MOD_HPHEAL, 5); + target:delMod(MOD_MPHEAL, 1); + target:delMod(MOD_FOOD_ATTP, 15); + target:delMod(MOD_FOOD_ATT_CAP, 40); + target:delMod(MOD_EVA, 5); +end; Index: scripts/globals/items/betta.lua =================================================================== --- scripts/globals/items/betta.lua (revision 0) +++ scripts/globals/items/betta.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5139 +-- Item: Betta +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 3 +-- Mind -5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5139); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 3); + target:addMod(MOD_MND, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 3); + target:delMod(MOD_MND, -5); +end; Index: scripts/globals/items/bibiki_slug.lua =================================================================== --- scripts/globals/items/bibiki_slug.lua (revision 3520) +++ scripts/globals/items/bibiki_slug.lua (working copy) @@ -18,7 +18,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/bibikibo.lua =================================================================== --- scripts/globals/items/bibikibo.lua (revision 0) +++ scripts/globals/items/bibikibo.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 4314 +-- Item: Bibikibo +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 1 +-- Mind -3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,4314); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 1); + target:addMod(MOD_MND, -3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 1); + target:delMod(MOD_MND, -3); +end; Index: scripts/globals/items/black_bubble-eye.lua =================================================================== --- scripts/globals/items/black_bubble-eye.lua (revision 3520) +++ scripts/globals/items/black_bubble-eye.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/black_eel.lua =================================================================== --- scripts/globals/items/black_eel.lua (revision 3520) +++ scripts/globals/items/black_eel.lua (working copy) @@ -18,7 +18,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/black_ghost.lua =================================================================== --- scripts/globals/items/black_ghost.lua (revision 0) +++ scripts/globals/items/black_ghost.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5138 +-- Item: Black Ghost +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 4 +-- Mind -6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5138); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 4); + target:addMod(MOD_MND, -6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 4); + target:delMod(MOD_MND, -6); +end; Index: scripts/globals/items/black_sole.lua =================================================================== --- scripts/globals/items/black_sole.lua (revision 3520) +++ scripts/globals/items/black_sole.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/blaze_feather.lua =================================================================== --- scripts/globals/items/blaze_feather.lua (revision 0) +++ scripts/globals/items/blaze_feather.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 5257 +-- Item: Blaze Feather +-- Effect: Blaze Spikes +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local legs = target:getEquipID(SLOT_LEGS); + local int = target:getStat(MOD_INT); + local magicAtk = target:getMod(MOD_MATT); + local power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)); + + -- Equipment Bonus Amount + if (legs == 15622) then -- Mercenarys Trousers + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (4/256)); + elseif (legs == 15121 or legs == 15584) then -- Duelist Tights & +1 + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (6/256)); + elseif (legs == 10714) then -- Duelist Tights +2 + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (8/256)); + end + + if(target:addStatusEffect(EFFECT_BLAZE_SPIKES,power,0,90)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; \ No newline at end of file Index: scripts/globals/items/blaze_hose.lua =================================================================== --- scripts/globals/items/blaze_hose.lua (revision 3520) +++ scripts/globals/items/blaze_hose.lua (working copy) @@ -1,23 +1,23 @@ ------------------------------------------ --- ID: 15652 --- Item: Blaze Hose --- Item Effect: Blaze Spikes ------------------------------------------ - -require("scripts/globals/settings"); - ------------------------------------------ --- OnItemCheck ------------------------------------------ - -function onItemCheck(target) - return 0; -end; - ------------------------------------------ --- OnItemUse ------------------------------------------ - -function onItemUse(target) - target:addStatusEffect(EFFECT_BLAZE_SPIKES, 15, 0, 180); -end; \ No newline at end of file +----------------------------------------- +-- ID: 15652 +-- Item: Blaze Hose +-- Enchantment: Blaze Spikes +-- Durration: 5 Mins +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:delStatusEffect(EFFECT_BLAZE_SPIKES); + target:addStatusEffect(EFFECT_BLAZE_SPIKES,0,0,300); +end; Index: scripts/globals/items/blind_ring.lua =================================================================== --- scripts/globals/items/blind_ring.lua (revision 0) +++ scripts/globals/items/blind_ring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15834 +-- Item: Blind Ring +-- Enchantment: Blind +-- Durration: 1 Min +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_BLINDNESS, 5, 0, 60)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; Index: scripts/globals/items/blindfish.lua =================================================================== --- scripts/globals/items/blindfish.lua (revision 0) +++ scripts/globals/items/blindfish.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 4313 +-- Item: Blindfish +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 2 +-- Mind -4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,4313); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 2); + target:addMod(MOD_MND, -4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 2); + target:delMod(MOD_MND, -4); +end; Index: scripts/globals/items/block_of_rock_cheese.lua =================================================================== --- scripts/globals/items/block_of_rock_cheese.lua (revision 0) +++ scripts/globals/items/block_of_rock_cheese.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 4593 +-- Item: Block of Rock Cheese +-- Food Effect: 30Min, All Races +----------------------------------------- +-- Health % 5.5 +-- Health Cap 45 +-- HP Recovered while healing 1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,1800,4593); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 5.5); + target:addMod(MOD_FOOD_HP_CAP, 45); + target:addMod(MOD_HPHEAL, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 5.5); + target:delMod(MOD_FOOD_HP_CAP, 45); + target:delMod(MOD_HPHEAL, 1); +end; Index: scripts/globals/items/blowfish.lua =================================================================== --- scripts/globals/items/blowfish.lua (revision 0) +++ scripts/globals/items/blowfish.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5812 +-- Item: Blowfish +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 1 +-- Mind -3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5812); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 3); + target:addMod(MOD_MND, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 3); + target:delMod(MOD_MND, -5); +end; Index: scripts/globals/items/bluetail.lua =================================================================== --- scripts/globals/items/bluetail.lua (revision 0) +++ scripts/globals/items/bluetail.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 4399 +-- Item: Bluetail +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 3 +-- Mind -5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,4399); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 3); + target:addMod(MOD_MND, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 3); + target:delMod(MOD_MND, -5); +end; Index: scripts/globals/items/bolt_belt.lua =================================================================== --- scripts/globals/items/bolt_belt.lua (revision 0) +++ scripts/globals/items/bolt_belt.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15289 +-- Bolt Belt +-- When used, you will obtain 1 Stack of Bronze Bolts +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(17339,99); +end; \ No newline at end of file Index: scripts/globals/items/bottle_of_ascetics_gambir.lua =================================================================== --- scripts/globals/items/bottle_of_ascetics_gambir.lua (revision 0) +++ scripts/globals/items/bottle_of_ascetics_gambir.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------------- +-- ID: 5842 +-- Item: Bottle of Ascetic's Gambir +-- Item Effect: Temporarily increases magic atk power and acc +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5842)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MACC, 30); + target:addMod(MOD_MATT, 30); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MACC, 30); + target:delMod(MOD_MATT, 30); +end; Index: scripts/globals/items/bottle_of_ascetics_tonic.lua =================================================================== --- scripts/globals/items/bottle_of_ascetics_tonic.lua (revision 0) +++ scripts/globals/items/bottle_of_ascetics_tonic.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------------- +-- ID: 5841 +-- Item: Bottle of Ascetic's Tonic +-- Item Effect: Temporarily increases magic atk power and acc +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5841)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MACC, 10); + target:addMod(MOD_MATT, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MACC, 10); + target:delMod(MOD_MATT, 10); +end; Index: scripts/globals/items/bottle_of_assassins_drink.lua =================================================================== --- scripts/globals/items/bottle_of_assassins_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_assassins_drink.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5388 +-- Item: Bottle of Assassin's Drink +-- Item Effect: +50 MAcc +-- Durration: 60 Secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5838)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MACC, 50); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MACC, 50); +end; Index: scripts/globals/items/bottle_of_barbarians_drink.lua =================================================================== --- scripts/globals/items/bottle_of_barbarians_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_barbarians_drink.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5385 +-- Item: Bottle of Barbarian's Drink +-- Item Effect: +50% Attk +-- Durration: 60 Secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5835)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ATTP, 50); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ATTP, 50); +end; Index: scripts/globals/items/bottle_of_berserkers_drink.lua =================================================================== --- scripts/globals/items/bottle_of_berserkers_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_berserkers_drink.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5849 +-- Item: Bottle of Berserker's Drink +-- Item Effect: Increases Dbl Attk 100% +-- Duration: 60 secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5849)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DOUBLE_ATTACK, 100); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DOUBLE_ATTACK, 100); +end; Index: scripts/globals/items/bottle_of_berserkers_tonic.lua =================================================================== --- scripts/globals/items/bottle_of_berserkers_tonic.lua (revision 0) +++ scripts/globals/items/bottle_of_berserkers_tonic.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5851 +-- Item: Bottle of Berserker's Tonic +-- Item Effect: Increases Dbl Attk 80% +-- Duration: 60 secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5851)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DOUBLE_ATTACK, 80); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DOUBLE_ATTACK, 80); +end; Index: scripts/globals/items/bottle_of_bravers_drink.lua =================================================================== --- scripts/globals/items/bottle_of_bravers_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_bravers_drink.lua (working copy) @@ -0,0 +1,61 @@ +----------------------------------------- +-- ID: 5390 +-- Item: Bottle of Braver's Drink +-- Item Effect: +15 All Attribs +-- Durration: 180 Secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,180,5390)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 15); + target:addMod(MOD_DEX, 15); + target:addMod(MOD_AGI, 15); + target:addMod(MOD_VIT, 15); + target:addMod(MOD_INT, 15); + target:addMod(MOD_MND, 15); + target:addMod(MOD_CHR, 15); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 15); + target:delMod(MOD_DEX, 15); + target:delMod(MOD_AGI, 15); + target:delMod(MOD_VIT, 15); + target:delMod(MOD_INT, 15); + target:delMod(MOD_MND, 15); + target:delMod(MOD_CHR, 15); +end; Index: scripts/globals/items/bottle_of_buffalo_bonanza_milk.lua =================================================================== --- scripts/globals/items/bottle_of_buffalo_bonanza_milk.lua (revision 0) +++ scripts/globals/items/bottle_of_buffalo_bonanza_milk.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------------- +-- ID: 5742 +-- Item: Bottle of Buffalo Bonanza Milk +-- Item Effect: Restores 120 HP over 60 seconds. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_REGEN) == false) then + target:addStatusEffect(EFFECT_REGEN,2,1,60); + else + target:messageBasic(423); + end +end; + Index: scripts/globals/items/bottle_of_cantarella.lua =================================================================== --- scripts/globals/items/bottle_of_cantarella.lua (revision 0) +++ scripts/globals/items/bottle_of_cantarella.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 4246 +-- Item: Bottle of Cantarella +-- Item Effect: Poison 10HP / 3Tic +-- Duration: 10 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:hasStatusEffect(EFFECT_POISON) == false) then + target:addStatusEffect(EFFECT_POISON,10,3,600); + else + target:messageBasic(423); + end +end; Index: scripts/globals/items/bottle_of_catholicon.lua =================================================================== --- scripts/globals/items/bottle_of_catholicon.lua (revision 0) +++ scripts/globals/items/bottle_of_catholicon.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 4206 +-- Item: Catholicon +-- Item Effect: Removes up to 3 negative status effects +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local effect = target:eraseStatusEffect(); + if(effect == EFFECT_NONE) then + target:messageBasic(423); -- no effect + else + local z = 0; + while z <= 3 do + target:eraseStatusEffect(); + if(effect == EFFECT_NONE) then + z = 3; + end + z = z + 1; + end; + end + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/bottle_of_catholicon_+1.lua =================================================================== --- scripts/globals/items/bottle_of_catholicon_+1.lua (revision 0) +++ scripts/globals/items/bottle_of_catholicon_+1.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 4208 +-- Item: Bottle of Catholicon +1 +-- Item Effect: Removes up to 7 negative status effects +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local effect = target:eraseStatusEffect(); + if(effect == EFFECT_NONE) then + target:messageBasic(423); -- no effect + else + local z = 0; + while z <= 7 do + target:eraseStatusEffect(); + if(effect == EFFECT_NONE) then + z = 7; + end + z = z + 1; + end; + end + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/bottle_of_champions_drink.lua =================================================================== --- scripts/globals/items/bottle_of_champions_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_champions_drink.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5392 +-- Item: Bottle of Champion's Drink +-- Item Effect: Potency +-- Durration: 60 Secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5843)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_CRITHITRATE, 50); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_CRITHITRATE, 50); +end; Index: scripts/globals/items/bottle_of_champions_gambir.lua =================================================================== --- scripts/globals/items/bottle_of_champions_gambir.lua (revision 0) +++ scripts/globals/items/bottle_of_champions_gambir.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------------- +-- ID: 5844 +-- Item: Bottle of Champion's Gambir +-- Item Effect: Temporarily increases potency and haste +-- Duration: 60 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5844)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HASTE_MAGIC, 154); + target:addMod(MOD_CRITHITRATE, 50); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HASTE_MAGIC, 154); + target:delMod(MOD_CRITHITRATE, 50); +end; Index: scripts/globals/items/bottle_of_champions_tonic.lua =================================================================== --- scripts/globals/items/bottle_of_champions_tonic.lua (revision 0) +++ scripts/globals/items/bottle_of_champions_tonic.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------------- +-- ID: 5843 +-- Item: Bottle of Champion's Tonic +-- Item Effect: Temporarily increases potency and haste +-- Duration: 60 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5843)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HASTE_MAGIC, 154); + target:addMod(MOD_CRITHITRATE, 30); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HASTE_MAGIC, 154); + target:delMod(MOD_CRITHITRATE, 30); +end; Index: scripts/globals/items/bottle_of_clerics_drink.lua =================================================================== --- scripts/globals/items/bottle_of_clerics_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_clerics_drink.lua (working copy) @@ -0,0 +1,52 @@ +----------------------------------------- +-- ID: 5395 +-- Item: Bottle of Cleric's Drink +-- Item Effect: Removes most status ailments AoE +----------------------------------------- + +--TODO: Make AoE + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + local effect = target:eraseStatusEffect(); + if(effect == EFFECT_NONE) then + target:messageBasic(423); -- no effect + else + while effect ~= EFFECT_NONE do + target:eraseStatusEffect(); + end; + end + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/bottle_of_dawn_mulsum.lua =================================================================== --- scripts/globals/items/bottle_of_dawn_mulsum.lua (revision 0) +++ scripts/globals/items/bottle_of_dawn_mulsum.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5411 +-- Item: Bottle of Dawn Mulsum +-- Item Effect: Restores 25-45% HP to Pet +----------------------------------------- + +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + pet = target:getPet(); + mHP = pet:getMaxHP(); + cHP = pet:getHP(); + local rand = math.random(25,45) / 100; + rHP = mHP * rand; + if (mHP == cHP) then + result = 56; -- Does not let player use item if their pet's hp is full + end + if (pet:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + pet:addStatusEffect(EFFECT_MEDICINE,0,0,180); + pet:addHP(rHP) + target:messageBasic(25,0,rHP); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/bottle_of_fanatics_drink.lua =================================================================== --- scripts/globals/items/bottle_of_fanatics_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_fanatics_drink.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5434 +-- Item: Bottle of Fanatic's Drink +-- Item Effect: Temp nullifies all physical dmg +-- Duration: 60 secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5434)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_UDMGPHYS,-100); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_UDMGPHYS,-100); +end; + Index: scripts/globals/items/bottle_of_fanatics_tonic.lua =================================================================== --- scripts/globals/items/bottle_of_fanatics_tonic.lua (revision 0) +++ scripts/globals/items/bottle_of_fanatics_tonic.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5845 +-- Item: Bottle of Fanatic's Tonic +-- Item Effect: Temp nullifies 50% physical dmg +-- Duration: 60 secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5845)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_UDMGPHYS, -50); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_UDMGPHYS, -50); +end; Index: scripts/globals/items/bottle_of_fighters_drink.lua =================================================================== --- scripts/globals/items/bottle_of_fighters_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_fighters_drink.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5386 +-- Item: Bottle of Fighter's Drink +-- Item Effect: +50% Acc +-- Durration: 60 Secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5836)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ACCP, 50); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ACCP, 50); +end; Index: scripts/globals/items/bottle_of_fools_drink.lua =================================================================== --- scripts/globals/items/bottle_of_fools_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_fools_drink.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5435 +-- Item: Bottle of Fool's Drink +-- Item Effect: Temp nullifies all magic dmg +-- Duration: 60 secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5435)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_UDMGMAGIC,-256); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_UDMGMAGIC,-256); +end; \ No newline at end of file Index: scripts/globals/items/bottle_of_fools_tonic.lua =================================================================== --- scripts/globals/items/bottle_of_fools_tonic.lua (revision 0) +++ scripts/globals/items/bottle_of_fools_tonic.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5846 +-- Item: Bottle of Fool's Tonic +-- Item Effect: Temp nullifies 50% magical dmg +-- Duration: 60 secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5846)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_UDMGMAGIC, -128); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_UDMGMAGIC, -128); +end; Index: scripts/globals/items/bottle_of_frontier_soda.lua =================================================================== --- scripts/globals/items/bottle_of_frontier_soda.lua (revision 0) +++ scripts/globals/items/bottle_of_frontier_soda.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------------- +-- ID: 5944 +-- Item: Bottle of Frontier Soda +-- Item Effect: Restores 20 TP over 60 seconds. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_REGAIN) == false) then + target:addStatusEffect(EFFECT_REGAIN,1,3,60); + else + target:messageBasic(423); + end +end; + Index: scripts/globals/items/bottle_of_giants_drink.lua =================================================================== --- scripts/globals/items/bottle_of_giants_drink.lua (revision 3520) +++ scripts/globals/items/bottle_of_giants_drink.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------------- --- ID: 4172 --- Item: Reraiser +-- ID: 5241 +-- Item: Bottle of Giant's Drink -- Item Effect: +100% HP +-- Durration: 15 mins ----------------------------------------- require("scripts/globals/status"); @@ -11,7 +12,11 @@ ----------------------------------------- function onItemCheck(target) - return 0; +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; end; ----------------------------------------- @@ -19,7 +24,26 @@ ----------------------------------------- function onItemUse(target) - duration = 900; - target:delStatusEffect(EFFECT_MAX_HP_BOOST); - target:addStatusEffect(EFFECT_MAX_HP_BOOST,100,0,duration); + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,900,5241)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HPP, 100); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HPP, 100); +end; Index: scripts/globals/items/bottle_of_gnostics_drink.lua =================================================================== --- scripts/globals/items/bottle_of_gnostics_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_gnostics_drink.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5394 +-- Item: Bottle of Gnostic's Drink +-- Item Effect: Pax (Enmity Down) +-- Duration: 3 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,180,5394)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ENMITY,-30); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ENMITY,-30); +end; Index: scripts/globals/items/bottle_of_lethe_water.lua =================================================================== --- scripts/globals/items/bottle_of_lethe_water.lua (revision 0) +++ scripts/globals/items/bottle_of_lethe_water.lua (working copy) @@ -0,0 +1,36 @@ +----------------------------------------- +-- ID: 4210 +-- Item: Bottle of Lethe Water +-- Item Effect: Removes up to 3 status effects from target +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local effect = target:dispelStatusEffect(); + if(effect == EFFECT_NONE) then + target:messageBasic(423); -- no effect + else + local z = 0; + while z <= 3 do + target:dispelStatusEffect(); + if(effect == EFFECT_NONE) then + z = 3; + end + z = z + 1; + end; + end +end; + Index: scripts/globals/items/bottle_of_lethe_water_+1.lua =================================================================== --- scripts/globals/items/bottle_of_lethe_water_+1.lua (revision 0) +++ scripts/globals/items/bottle_of_lethe_water_+1.lua (working copy) @@ -0,0 +1,36 @@ +----------------------------------------- +-- ID: 4212 +-- Item: Bottle of Lethe Water +1 +-- Item Effect: Removes up to 5 status effects from target +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local effect = target:dispelStatusEffect(); + if(effect == EFFECT_NONE) then + target:messageBasic(423); -- no effect + else + local z = 0; + while z <= 5 do + target:dispelStatusEffect(); + if(effect == EFFECT_NONE) then + z = 5; + end + z = z + 1; + end; + end +end; + Index: scripts/globals/items/bottle_of_monarchs_drink.lua =================================================================== --- scripts/globals/items/bottle_of_monarchs_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_monarchs_drink.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5393 +-- Item: Bottle of Monarch's Drink +-- Item Effect: Regain 3/sec 180 TP +-- Duration 3 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,180,5393)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_REGAIN, 30); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_REGAIN, 30); +end; \ No newline at end of file Index: scripts/globals/items/bottle_of_movalpolos_water.lua =================================================================== --- scripts/globals/items/bottle_of_movalpolos_water.lua (revision 0) +++ scripts/globals/items/bottle_of_movalpolos_water.lua (working copy) @@ -0,0 +1,39 @@ +----------------------------------------- +-- ID: 5165 +-- Item: Bottle of Movalpolos Water +-- Item Effect: Refresh 2 MP 3/Tic under 85% MP. +-- Duration: 30 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local mMP = target:getMaxMP(); + local cMP = target:getMP(); + if(VanadielDayElement() == LIGHTDAY) then + if(cMP < (mMP * .85)) then + if(target:hasStatusEffect(EFFECT_REFRESH) == false) then + target:addStatusEffect(EFFECT_REFRESH,2,3,1800); + else + target:messageBasic(423); + end + else + target:messageBasic(423); + end + else + target:messageBasic(423); + end +end; + Index: scripts/globals/items/bottle_of_mulsum.lua =================================================================== --- scripts/globals/items/bottle_of_mulsum.lua (revision 3520) +++ scripts/globals/items/bottle_of_mulsum.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- ID: 4128 --- Item: Ether +-- ID: 4156 +-- Item: Bottle of Mulsum -- Item Effect: Restores 10 MP ----------------------------------------- Index: scripts/globals/items/bottle_of_oracles_drink.lua =================================================================== --- scripts/globals/items/bottle_of_oracles_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_oracles_drink.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5387 +-- Item: Bottle of Oracle's Drink +-- Item Effect: +50 MAtt +-- Durration: 60 Secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5837)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MATT, 50); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MATT, 50); +end; Index: scripts/globals/items/bottle_of_orange_juice.lua =================================================================== --- scripts/globals/items/bottle_of_orange_juice.lua (revision 3520) +++ scripts/globals/items/bottle_of_orange_juice.lua (working copy) @@ -19,8 +19,13 @@ ----------------------------------------- function onItemUse(target) + local power = 1; + local legs = target:getEquipID(SLOT_LEGS); + if (legs == 11966 or legs == 11968) then -- Dream Trousers +1 & Dream Pants +1 + power = power + 1; + end if(target:hasStatusEffect(EFFECT_REFRESH) == false) then - target:addStatusEffect(EFFECT_REFRESH,1,3,90); + target:addStatusEffect(EFFECT_REFRESH,power,3,90); else target:messageBasic(423); end Index: scripts/globals/items/bottle_of_shepherds_drink.lua =================================================================== --- scripts/globals/items/bottle_of_shepherds_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_shepherds_drink.lua (working copy) @@ -0,0 +1,53 @@ +----------------------------------------- +-- ID: 5396 +-- Item: Bottle of Shepherd's Drink +-- Item Effect: Restor Pet's HP +----------------------------------------- + +--TODO: Make AoE + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + pet = target:getPet(); + result = 0; + if (pet:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + mHP = pet:getMaxHP(); + cHP = pet:getHP(); + + if (mHP == cHP) then + value = 56; -- Does not let player use item if their pet's hp is full + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local rHP = mHP - cHP; + pet:addStatusEffect(EFFECT_MEDICINE,0,0,180); + pet:addHP(rHP); + target:messageBasic(24,0,rHP); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/bottle_of_soldiers_drink.lua =================================================================== --- scripts/globals/items/bottle_of_soldiers_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_soldiers_drink.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5391 +-- Item: Bottle of Soldier's Drink +-- Item Effect: +50% Attk +-- Durration: 30 Secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,30,5391)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ATTP, 50); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ATTP, 50); +end; Index: scripts/globals/items/bottle_of_sprinters_drink.lua =================================================================== --- scripts/globals/items/bottle_of_sprinters_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_sprinters_drink.lua (working copy) @@ -0,0 +1,36 @@ +----------------------------------------- +-- ID: 5397 +-- Item: Bottle of Sprinter's Drink +-- Item Effect: Increases Movement Speed +100 +-- Duration: 60 Secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5397)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MOVE,100); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MOVE,100); +end; Index: scripts/globals/items/bottle_of_spys_drink.lua =================================================================== --- scripts/globals/items/bottle_of_spys_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_spys_drink.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5389 +-- Item: Bottle of Spy's Drink +-- Item Effect: +30% Haste +-- Durration: 120 Secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,120,5389)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HASTE_MAGIC, 307); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HASTE_MAGIC, 307); +end; Index: scripts/globals/items/bottle_of_stalwarts_gambir.lua =================================================================== --- scripts/globals/items/bottle_of_stalwarts_gambir.lua (revision 0) +++ scripts/globals/items/bottle_of_stalwarts_gambir.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5840 +-- Item: Bottle of Stalwart's Gambir +-- Item Effect: Temporarily increases atk power and acc +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5840)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ACC, 30); + target:addMod(MOD_ATT, 30); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ACC, 30); + target:delMod(MOD_ATT, 30); +end; \ No newline at end of file Index: scripts/globals/items/bottle_of_stalwarts_tonic.lua =================================================================== --- scripts/globals/items/bottle_of_stalwarts_tonic.lua (revision 0) +++ scripts/globals/items/bottle_of_stalwarts_tonic.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5839 +-- Item: Bottle of Stalwart's Tonic +-- Item Effect: Temporarily increases atk power and acc +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5839)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ACC, 10); + target:addMod(MOD_ATT, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ACC, 10); + target:delMod(MOD_ATT, 10); +end; \ No newline at end of file Index: scripts/globals/items/bottle_of_strange_juice.lua =================================================================== --- scripts/globals/items/bottle_of_strange_juice.lua (revision 0) +++ scripts/globals/items/bottle_of_strange_juice.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 5438 +-- Item: Bottle of Strange Juice +-- Item Effect: Restores 200 MP over 300 seconds. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + worked = 0; + if(target:hasStatusEffect(EFFECT_REFRESH) == false) then + target:addStatusEffect(EFFECT_REFRESH,2,3,300); + else + target:messageBasic(423); + end +end; + Index: scripts/globals/items/bottle_of_swiftshot_drink.lua =================================================================== --- scripts/globals/items/bottle_of_swiftshot_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_swiftshot_drink.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5850 +-- Item: Bottle of Swiftshot Drink +-- Item Effect: Increases likelihood of shooting 2x +-- Duration: 60 secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5850)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_RAPID_SHOT, 100); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_RAPID_SHOT, 100); +end; Index: scripts/globals/items/bottle_of_swiftshot_tonic.lua =================================================================== --- scripts/globals/items/bottle_of_swiftshot_tonic.lua (revision 0) +++ scripts/globals/items/bottle_of_swiftshot_tonic.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5852 +-- Item: Bottle of Swiftshot Tonic +-- Item Effect: Increases likelihood of shooting 2x +-- Duration: 60 secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,60,5852)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_RAPID_SHOT, 80); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_RAPID_SHOT, 80); +end; Index: scripts/globals/items/bottle_of_vicars_drink.lua =================================================================== --- scripts/globals/items/bottle_of_vicars_drink.lua (revision 0) +++ scripts/globals/items/bottle_of_vicars_drink.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------------- +-- ID: 5439 +-- Item: Bottle of Vicar's Drink +-- Item Effect: Removes most status ailments AoE +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + local effect = target:eraseStatusEffect(); + if(effect == EFFECT_NONE) then + target:messageBasic(423); -- no effect + else + while effect ~= EFFECT_NONE do + target:eraseStatusEffect(); + end; + end + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/bottle_of_wizards_drink.lua =================================================================== --- scripts/globals/items/bottle_of_wizards_drink.lua (revision 3520) +++ scripts/globals/items/bottle_of_wizards_drink.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------------- --- ID: 4172 --- Item: Wizards Drink +-- ID: 5242 +-- Item: Bottle of Wizard's Drink -- Item Effect: +100% MP +-- Durration: 15 mins ----------------------------------------- require("scripts/globals/status"); @@ -11,7 +12,11 @@ ----------------------------------------- function onItemCheck(target) - return 0; +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; end; ----------------------------------------- @@ -19,7 +24,26 @@ ----------------------------------------- function onItemUse(target) - duration = 900; - target:delStatusEffect(EFFECT_MAX_MP_BOOST); - target:addStatusEffect(EFFECT_MAX_MP_BOOST,100,0,duration); + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,900,5242)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MPP, 100); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MPP, 100); +end; Index: scripts/globals/items/bowl_of_loach_gruel.lua =================================================================== --- scripts/globals/items/bowl_of_loach_gruel.lua (revision 0) +++ scripts/globals/items/bowl_of_loach_gruel.lua (working copy) @@ -0,0 +1,62 @@ +----------------------------------------- +-- ID: 5670 +-- Item: Bowl of Loach Gruel +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Make Group Effect +-- Dexterity 2 +-- Agility 2 +-- Accuracy 7% Cap 30 +-- HP 7% Cap 30 +-- Evasion 4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5670); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 2); + target:addMod(MOD_AGI, 2); + target:addMod(MOD_FOOD_ACCP, 7); + target:addMod(MOD_FOOD_ACC_CAP, 30); + target:addMod(MOD_FOOD_HPP, 7); + target:addMod(MOD_FOOD_HP_CAP, 30); + target:addMod(MOD_EVA, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 2); + target:delMod(MOD_AGI, 2); + target:delMod(MOD_FOOD_ACCP, 7); + target:delMod(MOD_FOOD_ACC_CAP, 30); + target:delMod(MOD_FOOD_HPP, 7); + target:delMod(MOD_FOOD_HP_CAP, 30); + target:delMod(MOD_EVA, 4); +end; Index: scripts/globals/items/bowl_of_loach_slop.lua =================================================================== --- scripts/globals/items/bowl_of_loach_slop.lua (revision 0) +++ scripts/globals/items/bowl_of_loach_slop.lua (working copy) @@ -0,0 +1,56 @@ +----------------------------------------- +-- ID: 5669 +-- Item: Bowl of Loach Slop +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Make Group Effect +-- Accuracy 7% Cap 15 +-- HP 7% Cap 15 +-- Evasion 3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5669); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_ACCP, 7); + target:addMod(MOD_FOOD_ACC_CAP, 15); + target:addMod(MOD_FOOD_HPP, 7); + target:addMod(MOD_FOOD_HP_CAP, 15); + target:addMod(MOD_EVA, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_ACCP, 7); + target:delMod(MOD_FOOD_ACC_CAP, 15); + target:delMod(MOD_FOOD_HPP, 7); + target:delMod(MOD_FOOD_HP_CAP, 15); + target:delMod(MOD_EVA, 3); +end; Index: scripts/globals/items/bowl_of_loach_soup.lua =================================================================== --- scripts/globals/items/bowl_of_loach_soup.lua (revision 0) +++ scripts/globals/items/bowl_of_loach_soup.lua (working copy) @@ -0,0 +1,61 @@ +----------------------------------------- +-- ID: 5671 +-- Item: Bowl of Loach Soup +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- Dexterity 4 +-- Agility 4 +-- Accuracy 7% Cap 50 +-- HP 7% Cap 50 +-- Evasion 5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5671); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 4); + target:addMod(MOD_AGI, 4); + target:addMod(MOD_FOOD_ACCP, 7); + target:addMod(MOD_FOOD_ACC_CAP, 50); + target:addMod(MOD_FOOD_HPP, 7); + target:addMod(MOD_FOOD_HP_CAP, 50); + target:addMod(MOD_EVA, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 4); + target:delMod(MOD_AGI, 4); + target:delMod(MOD_FOOD_ACCP, 7); + target:delMod(MOD_FOOD_ACC_CAP, 50); + target:delMod(MOD_FOOD_HPP, 7); + target:delMod(MOD_FOOD_HP_CAP, 50); + target:delMod(MOD_EVA, 5); +end; Index: scripts/globals/items/bowl_of_moogurt.lua =================================================================== --- scripts/globals/items/bowl_of_moogurt.lua (revision 0) +++ scripts/globals/items/bowl_of_moogurt.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5935 +-- Item: Bowl of Moogurt +-- Food Effect: 30Min, All Races +----------------------------------------- +-- HP 20 +-- Vitality 3 +-- Defense 1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,1800,5935); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 20); + target:addMod(MOD_VIT, 3); + target:addMod(MOD_DEF, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 20); + target:delMod(MOD_VIT, 3); + target:delMod(MOD_DEF, 1); +end; Index: scripts/globals/items/bowl_of_nashmau_stew.lua =================================================================== --- scripts/globals/items/bowl_of_nashmau_stew.lua (revision 0) +++ scripts/globals/items/bowl_of_nashmau_stew.lua (working copy) @@ -0,0 +1,77 @@ +----------------------------------------- +-- ID: 5595 +-- Item: Bowl of Nashmau Stew +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- MP -100 +-- Vitality -10 +-- Agility -10 +-- Intelligence -10 +-- Mind -10 +-- Charisma -10 +-- Accuracy +15% Cap 25 +-- Attack +18% Cap 60 +-- Defense -100 +-- Evasion -100 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5595); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MP, -100); + target:addMod(MOD_VIT, -10); + target:addMod(MOD_AGI, -10); + target:addMod(MOD_INT, -10); + target:addMod(MOD_MND, -10); + target:addMod(MOD_CHR, -10); + target:addMod(MOD_FOOD_ACCP, 18); + target:addMod(MOD_FOOD_ACC_CAP, 25); + target:addMod(MOD_FOOD_ATTP, 15); + target:addMod(MOD_FOOD_ATT_CAP, 60); + target:addMod(MOD_DEF, -100); + target:addMod(MOD_EVA, -100); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MP, -100); + target:delMod(MOD_VIT, -10); + target:delMod(MOD_AGI, -10); + target:delMod(MOD_INT, -10); + target:delMod(MOD_MND, -10); + target:delMod(MOD_CHR, -10); + target:delMod(MOD_FOOD_ACCP, 18); + target:delMod(MOD_FOOD_ACC_CAP, 25); + target:delMod(MOD_FOOD_ATTP, 15); + target:delMod(MOD_FOOD_ATT_CAP, 60); + target:delMod(MOD_DEF, -100); + target:delMod(MOD_EVA, -100); +end; Index: scripts/globals/items/bowl_of_pebble_soup.lua =================================================================== --- scripts/globals/items/bowl_of_pebble_soup.lua (revision 0) +++ scripts/globals/items/bowl_of_pebble_soup.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 4455 +-- Item: Bowl of Pebble Soup +-- Food Effect: 3 Hr, All Races +----------------------------------------- +-- MP Recovered while healing 2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,4455); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MPHEAL, 2); +end; Index: scripts/globals/items/bowl_of_sprightly_soup.lua =================================================================== --- scripts/globals/items/bowl_of_sprightly_soup.lua (revision 0) +++ scripts/globals/items/bowl_of_sprightly_soup.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5930 +-- Item: Bowl of Sprightly Soup +-- Food Effect: 3Hrs, All Races +----------------------------------------- +-- MP 30 +-- Mind 4 +-- HP Recovered While Healing 4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5930); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MP, 30); + target:addMod(MOD_MND, 4); + target:addMod(MOD_HPHEAL, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MP, 30); + target:delMod(MOD_MND, 4); + target:delMod(MOD_HPHEAL, 4); +end; Index: scripts/globals/items/bowl_of_sutlac.lua =================================================================== --- scripts/globals/items/bowl_of_sutlac.lua (revision 0) +++ scripts/globals/items/bowl_of_sutlac.lua (working copy) @@ -0,0 +1,55 @@ +----------------------------------------- +-- ID: 5577 +-- Item: Bowl of Sutlac +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +8 +-- MP +10 +-- INT +1 +-- MP Recovered while healing +2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5577); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 8); + target:addMod(MOD_MP, 10); + target:addMod(MOD_INT, 1); + target:addMod(MOD_MPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 8); + target:delMod(MOD_MP, 10); + target:delMod(MOD_INT, 1); + target:delMod(MOD_MPHEAL, 2); +end; Index: scripts/globals/items/bowl_of_sutlac_+1.lua =================================================================== --- scripts/globals/items/bowl_of_sutlac_+1.lua (revision 0) +++ scripts/globals/items/bowl_of_sutlac_+1.lua (working copy) @@ -0,0 +1,55 @@ +----------------------------------------- +-- ID: 5578 +-- Item: Bowl of Sutlac +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10 +-- MP +10 +-- INT +2 +-- MP Recovered while healing +2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5578); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 10); + target:addMod(MOD_MP, 10); + target:addMod(MOD_INT, 2); + target:addMod(MOD_MPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 10); + target:delMod(MOD_MP, 10); + target:delMod(MOD_INT, 2); + target:delMod(MOD_MPHEAL, 2); +end; Index: scripts/globals/items/bowl_of_ulbuconut_milk.lua =================================================================== --- scripts/globals/items/bowl_of_ulbuconut_milk.lua (revision 0) +++ scripts/globals/items/bowl_of_ulbuconut_milk.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5976 +-- Item: Bowl of Ulbuconut Milk +-- Food Effect: 3Min, All Races +----------------------------------------- +-- Charisma +3 +-- Vitality -2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,180,5976); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_CHR, 3); + target:addMod(MOD_VIT, -2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_CHR, 3); + target:delMod(MOD_VIT, -2); +end; Index: scripts/globals/items/bowl_of_ulbuconut_milk_+1.lua =================================================================== --- scripts/globals/items/bowl_of_ulbuconut_milk_+1.lua (revision 0) +++ scripts/globals/items/bowl_of_ulbuconut_milk_+1.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5977 +-- Item: Bowl of Ulbuconut Milk +1 +-- Food Effect: 3Min, All Races +----------------------------------------- +-- Charisma +4 +-- Vitality -1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,180,5977); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_CHR, 4); + target:addMod(MOD_VIT, -1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_CHR, 4); + target:delMod(MOD_VIT, -1); +end; Index: scripts/globals/items/bowl_of_zesti_zoni.lua =================================================================== --- scripts/globals/items/bowl_of_zesti_zoni.lua (revision 0) +++ scripts/globals/items/bowl_of_zesti_zoni.lua (working copy) @@ -0,0 +1,66 @@ +----------------------------------------- +-- ID: 5619 +-- Item: Bowl of Zesti Zoni +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- HP 10 +-- MP 10 +-- Strength 1 +-- Dexterity 1 +-- Vitality 1 +-- Agility 1 +-- MP Recovered while healing 1 +-- HP Recovered while healing 1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5619); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 10); + target:addMod(MOD_MP, 10); + target:addMod(MOD_STR, 1); + target:addMod(MOD_DEX, 1); + target:addMod(MOD_VIT, 1); + target:addMod(MOD_AGI, 1); + target:addMod(MOD_HPHEAL, 1); + target:addMod(MOD_MPHEAL, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 10); + target:delMod(MOD_MP, 10); + target:delMod(MOD_STR, 1); + target:delMod(MOD_DEX, 1); + target:delMod(MOD_VIT, 1); + target:delMod(MOD_AGI, 1); + target:delMod(MOD_HPHEAL, 1); + target:delMod(MOD_MPHEAL, 1); +end; Index: scripts/globals/items/breath_mantle.lua =================================================================== --- scripts/globals/items/breath_mantle.lua (revision 0) +++ scripts/globals/items/breath_mantle.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 15486 +-- Item: Breath Mantle +-- Enchantment: HP +18 Eminity +3 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,15486); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 18); + target:addMod(MOD_ENMITY, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 18); + target:delMod(MOD_ENMITY, 3); +end; \ No newline at end of file Index: scripts/globals/items/broach_lance.lua =================================================================== --- scripts/globals/items/broach_lance.lua (revision 0) +++ scripts/globals/items/broach_lance.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 18122 +-- Item: Broach Lance +-- Item Effect: TP +10 +-- Durration: Instant +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addTP(10); +end; Index: scripts/globals/items/bronze_bandolier.lua =================================================================== --- scripts/globals/items/bronze_bandolier.lua (revision 0) +++ scripts/globals/items/bronze_bandolier.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15926 +-- Bronze Bandolier +-- When used, you will obtain 1 Stack Bronze Bullets +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(17343,99); +end; \ No newline at end of file Index: scripts/globals/items/bubble_breeze.lua =================================================================== --- scripts/globals/items/bubble_breeze.lua (revision 0) +++ scripts/globals/items/bubble_breeze.lua (working copy) @@ -0,0 +1,20 @@ +----------------------------------------- +-- ID: 5937 +-- Item: Bubble Breeze +-- Effect: Ephemereal Firework +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; \ No newline at end of file Index: scripts/globals/items/bunch_of_gysahl_greens.lua =================================================================== --- scripts/globals/items/bunch_of_gysahl_greens.lua (revision 3520) +++ scripts/globals/items/bunch_of_gysahl_greens.lua (working copy) @@ -34,8 +34,15 @@ ----------------------------------- function onEffectGain(target,effect) - target:addMod(MOD_AGI, 3); - target:addMod(MOD_VIT, -5); + chocoboShirt = 0; + if(target:getEquipID(SLOT_BODY) == 10293) then + chocoboShirt = 1; + target:addMod(MOD_AGI, 13); + target:addMod(MOD_VIT, -5); + else + target:addMod(MOD_AGI, 3); + target:addMod(MOD_VIT, -5); + end end; ----------------------------------------- @@ -43,6 +50,11 @@ ----------------------------------------- function onEffectLose(target,effect) - target:delMod(MOD_AGI, 3); - target:delMod(MOD_VIT, -5); + if(chocoboShirt == 1) then + target:delMod(MOD_AGI, 13); + target:delMod(MOD_VIT, -5); + else + target:delMod(MOD_AGI, 3); + target:delMod(MOD_VIT, -5); + end end; Index: scripts/globals/items/bunch_of_pamamas.lua =================================================================== --- scripts/globals/items/bunch_of_pamamas.lua (revision 0) +++ scripts/globals/items/bunch_of_pamamas.lua (working copy) @@ -0,0 +1,93 @@ +----------------------------------------- +-- ID: 4468 +-- Item: Bunch of Pamamas +-- Food Effect: 30Min, All Races +----------------------------------------- +-- Strength -3 +-- Intelligence 1 +-- Additional Effect with Opo-Opo Crown +-- HP 50 +-- MP 50 +-- CHR 14 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,1800,4468); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + pEquipMods = 0; + pEquipMods2 = 0; + local head = target:getEquipID(SLOT_HEAD); + local main = target:getEquipID(SLOT_MAIN); + if (head == 13870) then -- Opo-Opo Crown + pEquipMods = 1; + end + if (main == 17592 or main == 17590) then -- Kinkobo - Primate Staff + pEquipMods2 = 1; + end + if (main == 17591) then -- Primate Staff +1 + pEquipMods2 = 2; + end + if (pEquipMods == 1) then + target:addMod(MOD_HP, 50); + target:addMod(MOD_MP, 50); + target:addMod(MOD_AGI, -3); + target:addMod(MOD_CHR, 14); + end + if (pEquipMods2 == 1) then + target:addMod(MOD_DELAY, -90); + target:addMod(MOD_ACC, 10); + end + if (pEquipMods2 == 2) then + target:addMod(MOD_DELAY, -80); + target:addMod(MOD_ACC, 12); + end + target:addMod(MOD_STR, -3); + target:addMod(MOD_INT, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + if (pEquipMods == 1) then + target:delMod(MOD_HP, 50); + target:delMod(MOD_MP, 50); + target:delMod(MOD_AGI, -3); + target:delMod(MOD_CHR, 14); + end + if (pEquipMods2 == 1) then + target:delMod(MOD_DELAY, -90); + target:delMod(MOD_ACC, 10); + end + if (pEquipMods2 == 2) then + target:delMod(MOD_DELAY, -80); + target:delMod(MOD_ACC, 12); + end + target:delMod(MOD_STR, -3); + target:delMod(MOD_INT, 1); +end; Index: scripts/globals/items/bunch_of_wild_pamamas.lua =================================================================== --- scripts/globals/items/bunch_of_wild_pamamas.lua (revision 3520) +++ scripts/globals/items/bunch_of_wild_pamamas.lua (working copy) @@ -5,6 +5,10 @@ ----------------------------------------- -- Strength -3 -- Intelligence 1 +-- Additional Effect with Opo-Opo Crown +-- HP 50 +-- MP 50 +-- CHR 14 ----------------------------------------- require("scripts/globals/status"); @@ -34,6 +38,33 @@ ----------------------------------- function onEffectGain(target,effect) + pEquipMods = 0; + pEquipMods2 = 0; + local head = target:getEquipID(SLOT_HEAD); + local main = target:getEquipID(SLOT_MAIN); + if (head == 13870) then -- Opo-Opo Crown + pEquipMods = 1; + end + if (main == 17592 or main == 17590) then -- Kinkobo - Primate Staff + pEquipMods2 = 1; + end + if (main == 17591) then -- Primate Staff +1 + pEquipMods2 = 2; + end + if (pEquipMods == 1) then + target:addMod(MOD_HP, 50); + target:addMod(MOD_MP, 50); + target:addMod(MOD_AGI, -3); + target:addMod(MOD_CHR, 14); + end + if (pEquipMods2 == 1) then + target:addMod(MOD_DELAY, -90); + target:addMod(MOD_ACC, 10); + end + if (pEquipMods2 == 2) then + target:addMod(MOD_DELAY, -80); + target:addMod(MOD_ACC, 12); + end target:addMod(MOD_STR, -3); target:addMod(MOD_INT, 1); end; @@ -43,6 +74,20 @@ ----------------------------------------- function onEffectLose(target,effect) + if (pEquipMods == 1) then + target:delMod(MOD_HP, 50); + target:delMod(MOD_MP, 50); + target:delMod(MOD_AGI, -3); + target:delMod(MOD_CHR, 14); + end + if (pEquipMods2 == 1) then + target:delMod(MOD_DELAY, -90); + target:delMod(MOD_ACC, 10); + end + if (pEquipMods2 == 2) then + target:delMod(MOD_DELAY, -80); + target:delMod(MOD_ACC, 12); + end target:delMod(MOD_STR, -3); target:delMod(MOD_INT, 1); end; Index: scripts/globals/items/burdock_root.lua =================================================================== --- scripts/globals/items/burdock_root.lua (revision 0) +++ scripts/globals/items/burdock_root.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5651 +-- Item: Burdock Root +-- Food Effect: 5Min, All Races +----------------------------------------- +-- Agility 2 +-- Vitality -4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5651); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, 2); + target:addMod(MOD_VIT, -4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, 2); + target:delMod(MOD_VIT, -4); +end; Index: scripts/globals/items/caedarva_frog.lua =================================================================== --- scripts/globals/items/caedarva_frog.lua (revision 0) +++ scripts/globals/items/caedarva_frog.lua (working copy) @@ -0,0 +1,60 @@ +----------------------------------------- +-- ID: 5465 +-- Item: Caedarva Frog +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 2 +-- Agility 2 +-- Mind -4 +-- Evasion 5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5465); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 2); + target:addMod(MOD_MND, -4); + target:addMod(MOD_AGI, 2); + target:addMod(MOD_EVA, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 2); + target:delMod(MOD_MND, -4); + target:delMod(MOD_AGI, 2); + target:delMod(MOD_EVA, 5); +end; Index: scripts/globals/items/callers_pendant.lua =================================================================== --- scripts/globals/items/callers_pendant.lua (revision 0) +++ scripts/globals/items/callers_pendant.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11619 +-- Item: Callers Pendant +-- Item Effect: Pet Regain +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_NECK) == 11619) then + pet:addMod(MOD_REGAIN, 3); + else + pet:delMod(MOD_REGAIN, 3); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/caloussu_ring.lua =================================================================== --- scripts/globals/items/caloussu_ring.lua (revision 0) +++ scripts/globals/items/caloussu_ring.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 10777 +-- Item: Caloussu Ring +-- Item Effect: Enchantment: DEF +30 +-- Durration : 5 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,300,10777); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEF, 30); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEF, 30); +end; \ No newline at end of file Index: scripts/globals/items/candy_cane.lua =================================================================== --- scripts/globals/items/candy_cane.lua (revision 0) +++ scripts/globals/items/candy_cane.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5622 +-- Item: Candy Cane +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- Intelligence 4 +-- Mind 4 +-- MP Recovery while healing 2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5622); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_INT, 4); + target:addMod(MOD_MND, 4); + target:addMod(MOD_MPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_INT, 4); + target:delMod(MOD_MND, 4); + target:delMod(MOD_MPHEAL, 2); +end; Index: scripts/globals/items/candy_ring.lua =================================================================== --- scripts/globals/items/candy_ring.lua (revision 0) +++ scripts/globals/items/candy_ring.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5621 +-- Item: Candy Ring +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- Dexterity 4 +-- Agility 4 +-- Charisma 4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5621); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 4); + target:addMod(MOD_AGI, 4); + target:addMod(MOD_CHR, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 4); + target:delMod(MOD_AGI, 4); + target:delMod(MOD_CHR, 4); +end; Index: scripts/globals/items/cathedral_salad.lua =================================================================== --- scripts/globals/items/cathedral_salad.lua (revision 0) +++ scripts/globals/items/cathedral_salad.lua (working copy) @@ -0,0 +1,59 @@ +----------------------------------------- +-- ID: 5679 +-- Item: Cathedral Salad +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- MP 15% Cap 90 +-- Agility 7 +-- Mind 7 +-- Strength -5 +-- Vitality -5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD)) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5679); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_MPP, 15); + target:addMod(MOD_FOOD_MP_CAP, 90); + target:addMod(MOD_AGI, 7); + target:addMod(MOD_MND, 7); + target:addMod(MOD_STR, -5); + target:addMod(MOD_VIT, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_MPP, 15); + target:delMod(MOD_FOOD_MP_CAP, 90); + target:delMod(MOD_AGI, 7); + target:delMod(MOD_MND, 7); + target:delMod(MOD_STR, -5); + target:delMod(MOD_VIT, -5); +end; Index: scripts/globals/items/chanoixs_gorget.lua =================================================================== --- scripts/globals/items/chanoixs_gorget.lua (revision 0) +++ scripts/globals/items/chanoixs_gorget.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16270 +-- Item: Chanoixs Gorget +-- Item Effect: Pet HP +50 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_NECK) == 16270) then + pet:addMod(MOD_HP, 50); + else + pet:delMod(MOD_HP, 50); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/charivari_earring.lua =================================================================== --- scripts/globals/items/charivari_earring.lua (revision 0) +++ scripts/globals/items/charivari_earring.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 10296 +-- Item: Charivari Earring +-- Item Effect: Pet Acc Racc and Macc +3 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_EAR1) == 10296 or target:getEquipID(SLOT_EAR2) == 10296) then + pet:addMod(MOD_ACC, 3); + pet:addMod(MOD_RACC, 3); + pet:addMod(MOD_MACC, 3); + else + pet:delMod(MOD_ACC, 3); + pet:delMod(MOD_RACC, 3); + pet:delMod(MOD_MACC, 3); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/charm_wand.lua =================================================================== --- scripts/globals/items/charm_wand.lua (revision 0) +++ scripts/globals/items/charm_wand.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 18399 +-- Item : Charm Wand +-- This earring functions in the same way as the spell Reraise III. +-- Durration: 1 Hr +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 3600; + target:delStatusEffect(EFFECT_RERAISE); + target:addStatusEffect(EFFECT_RERAISE,3,0,duration); +end; Index: scripts/globals/items/charm_wand_+1.lua =================================================================== --- scripts/globals/items/charm_wand_+1.lua (revision 0) +++ scripts/globals/items/charm_wand_+1.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 18400 +-- Item : Charm Wand +1 +-- This earring functions in the same way as the spell Reraise III. +-- Durration: 1 Hr +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 3600; + target:delStatusEffect(EFFECT_RERAISE); + target:addStatusEffect(EFFECT_RERAISE,3,0,duration); +end; Index: scripts/globals/items/charred_salisbury_steak.lua =================================================================== --- scripts/globals/items/charred_salisbury_steak.lua (revision 0) +++ scripts/globals/items/charred_salisbury_steak.lua (working copy) @@ -0,0 +1,60 @@ +----------------------------------------- +-- ID: 5925 +-- Item: Charred Salisbury Steak +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- HP 32 +-- Strength 8 +-- Intelligence -6 +-- Attack 23% +-- StoreTP -10 +-- Dragon Killer 5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5925); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 32); + target:addMod(MOD_STR, 8); + target:addMod(MOD_INT, -6); + target:addMod(MOD_FOOD_ATTP, 23); + target:addMod(MOD_STORETP, -10); + target:addMod(MOD_DRAGON_KILLER, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 32); + target:delMod(MOD_STR, 8); + target:delMod(MOD_INT, -6); + target:delMod(MOD_FOOD_ATTP, 23); + target:delMod(MOD_STORETP, -10); + target:delMod(MOD_DRAGON_KILLER, 5); +end; Index: scripts/globals/items/cheval_salmon.lua =================================================================== --- scripts/globals/items/cheval_salmon.lua (revision 3520) +++ scripts/globals/items/cheval_salmon.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/chocobiscuit.lua =================================================================== --- scripts/globals/items/chocobiscuit.lua (revision 0) +++ scripts/globals/items/chocobiscuit.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5934 +-- Item: Chocobiscuit +-- Food Effect: 3Min, All Races +----------------------------------------- +-- Magic Regen While Healing 3 +-- Charisma 3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,180,5934); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MPHEAL, 3); + target:addMod(MOD_CHR, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MPHEAL, 3); + target:delMod(MOD_CHR, 3); +end; Index: scripts/globals/items/chocobo_beret.lua =================================================================== --- scripts/globals/items/chocobo_beret.lua (revision 0) +++ scripts/globals/items/chocobo_beret.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 11500 +-- Chocobo Beret +-- Enchantment: 60Min, Costume - Blue adolescent chocobo (INCOMPLETE) +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,(math.random(1996,2002)),0,3600); +end; \ No newline at end of file Index: scripts/globals/items/chocobo_pullus_torque.lua =================================================================== --- scripts/globals/items/chocobo_pullus_torque.lua (revision 0) +++ scripts/globals/items/chocobo_pullus_torque.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 16273 +-- Pullus Torque +-- Enchantment: 60Min, Costume - chicobo +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,1997,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/chocobo_shirt.lua =================================================================== --- scripts/globals/items/chocobo_shirt.lua (revision 0) +++ scripts/globals/items/chocobo_shirt.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 10293 +-- Item: Chocobo Shirt +-- Effect: When used, you will obtain 4-10 of crystals of the day +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local amount = math.random(4,10) + if(VanadielDayElement() == 0) then -- Fireday + target:addItem(4096,amount); + elseif(VanadielDayElement() == 1) then -- Earthsday + target:addItem(4099,amount); + elseif(VanadielDayElement() == 2) then -- Watersday + target:addItem(4101,amount); + elseif(VanadielDayElement() == 3) then -- Windsday + target:addItem(4098,amount); + elseif(VanadielDayElement() == 4) then -- Iceday + target:addItem(4097,amount); + elseif(VanadielDayElement() == 5) then -- Lightningday + target:addItem(4100,amount); + elseif(VanadielDayElement() == 6) then -- Lightsday + target:addItem(4102,amount); + elseif(VanadielDayElement() == 7) then -- Darksday + target:addItem(4103,amount); + end +end; \ No newline at end of file Index: scripts/globals/items/chocolate_cake.lua =================================================================== --- scripts/globals/items/chocolate_cake.lua (revision 0) +++ scripts/globals/items/chocolate_cake.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5633 +-- Item: Chocolate Cake +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- MP +3% +-- MP Recovered while healing +6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5633); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MPP, 3); + target:addMod(MOD_MPHEAL, 6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MPP, 3); + target:delMod(MOD_MPHEAL, 6); +end; Index: scripts/globals/items/chunk_of_orobon_meat.lua =================================================================== --- scripts/globals/items/chunk_of_orobon_meat.lua (revision 0) +++ scripts/globals/items/chunk_of_orobon_meat.lua (working copy) @@ -0,0 +1,63 @@ +----------------------------------------- +-- ID: 5563 +-- Item: Chunk of Orobon Meat +-- Effect: 5 Minutes, food effect, Galka Only +----------------------------------------- +-- HP 10 +-- MP -10 +-- Strength +6 +-- Intelligence -8 +-- Demon Killer 10 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getRace() ~= 8) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5563); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 10); + target:addMod(MOD_MP, -10); + target:addMod(MOD_STR, 6); + target:addMod(MOD_INT, -8); + target:addMod(MOD_DEMON_KILLER, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 10); + target:delMod(MOD_MP, -10); + target:delMod(MOD_STR, 6); + target:delMod(MOD_INT, -8); + target:delMod(MOD_DEMON_KILLER, 10); +end; \ No newline at end of file Index: scripts/globals/items/chunk_of_smelling_salts.lua =================================================================== --- scripts/globals/items/chunk_of_smelling_salts.lua (revision 0) +++ scripts/globals/items/chunk_of_smelling_salts.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------------- +-- ID: 5320 +-- Item: Chunk of Smelling Salts +-- Item Effect: Recover Pets from Sleep +-- Duration: 180 Secs Medicated +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + pet = target:getPet(); + if (pet:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,180,5320)) then + target:messageBasic(205); + pet:delStatusEffect(EFFECT_SLEEP_I); + pet:delStatusEffect(EFFECT_SLEEP_II); + pet:delStatusEffect(EFFECT_LULLABY); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/cirque_earring.lua =================================================================== --- scripts/globals/items/cirque_earring.lua (revision 0) +++ scripts/globals/items/cirque_earring.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 11720 +-- Item: Cirque Earring +-- Item Effect: Automation Atk +2 RAtk +2 MAB+2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_EAR1) == 11720 or target:getEquipID(SLOT_EAR2) == 11720) then + pet:addMod(MOD_ATT, 2); + pet:addMod(MOD_RATT, 2); + pet:addMod(MOD_MATT, 2); + else + pet:delMod(MOD_ATT, 2); + pet:delMod(MOD_RATT, 2); + pet:delMod(MOD_MATT, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/cirque_guanti_+1.lua =================================================================== --- scripts/globals/items/cirque_guanti_+1.lua (revision 0) +++ scripts/globals/items/cirque_guanti_+1.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 11221 +-- Item: Cirque Guanti +1 +-- Item Effect: Automation Str +10 Dex +10 Agi +10 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 11221) then + pet:addMod(MOD_STR, 10); + pet:addMod(MOD_DEX, 10); + pet:addMod(MOD_AGI, 10); + else + pet:delMod(MOD_STR, 10); + pet:delMod(MOD_DEX, 10); + pet:delMod(MOD_AGI, 10); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/cirque_guanti_+2.lua =================================================================== --- scripts/globals/items/cirque_guanti_+2.lua (revision 0) +++ scripts/globals/items/cirque_guanti_+2.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 11121 +-- Item: Cirque Guanti +2 +-- Item Effect: Automation Str +13 Dex +13 Agi +13 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 11121) then + pet:addMod(MOD_STR, 13); + pet:addMod(MOD_DEX, 13); + pet:addMod(MOD_AGI, 13); + else + pet:delMod(MOD_STR, 13); + pet:delMod(MOD_DEX, 13); + pet:delMod(MOD_AGI, 13); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/cirque_pantaloni_+1.lua =================================================================== --- scripts/globals/items/cirque_pantaloni_+1.lua (revision 0) +++ scripts/globals/items/cirque_pantaloni_+1.lua (working copy) @@ -0,0 +1,35 @@ +----------------------------------------- +-- ID: 11241 +-- Item: Cirque Pantaloni +1 +-- Item Effect: Automation Combat Skill +5 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_LEGS) == 11241) then + pet:addMod(MOD_HTH, 5); + pet:addMod(MOD_ARCHERY, 5); + pet:addMod(MOD_MARKSMAN, 5); + pet:addMod(MOD_ELEM, 5); + else + pet:delMod(MOD_HTH, 5); + pet:delMod(MOD_ARCHERY, 5); + pet:delMod(MOD_MARKSMAN, 5); + pet:delMod(MOD_ELEM, 5); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/cirque_pantaloni_+2.lua =================================================================== --- scripts/globals/items/cirque_pantaloni_+2.lua (revision 0) +++ scripts/globals/items/cirque_pantaloni_+2.lua (working copy) @@ -0,0 +1,35 @@ +----------------------------------------- +-- ID: 11141 +-- Item: Cirque Pantaloni +2 +-- Item Effect: Automation Combat Skill +10 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_LEGS) == 11141) then + pet:addMod(MOD_HTH, 10); + pet:addMod(MOD_ARCHERY, 10); + pet:addMod(MOD_MARKSMAN, 10); + pet:addMod(MOD_ELEM, 10); + else + pet:delMod(MOD_HTH, 10); + pet:delMod(MOD_ARCHERY, 10); + pet:delMod(MOD_MARKSMAN, 10); + pet:delMod(MOD_ELEM, 10); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/cirque_scarpe_+1.lua =================================================================== --- scripts/globals/items/cirque_scarpe_+1.lua (revision 0) +++ scripts/globals/items/cirque_scarpe_+1.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 11261 +-- Item: Cirque Scarpe +1 +-- Item Effect: Automation INT +10 MND +10 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 11261) then + pet:addMod(MOD_INT, 10); + pet:addMod(MOD_MND, 10); + else + pet:delMod(MOD_INT, 10); + pet:delMod(MOD_MND, 10); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/cirque_scarpe_+2.lua =================================================================== --- scripts/globals/items/cirque_scarpe_+2.lua (revision 0) +++ scripts/globals/items/cirque_scarpe_+2.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 11161 +-- Item: Cirque Scarpe +2 +-- Item Effect: Automation INT +13 MND +13 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 11161) then + pet:addMod(MOD_INT, 13); + pet:addMod(MOD_MND, 13); + else + pet:delMod(MOD_INT, 13); + pet:delMod(MOD_MND, 13); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/club_of_trials.lua =================================================================== --- scripts/globals/items/club_of_trials.lua (revision 0) +++ scripts/globals/items/club_of_trials.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 17456 +-- Equip: Club of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 17456) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 10); + target:addMod(MOD_MP, 10); + target:addMod(MOD_EARTHDEF, 10); + target:addMod(MOD_WATERDEF, 10); + else + target:delMod(MOD_HP, 10); + target:delMod(MOD_MP, 10); + target:delMod(MOD_EARTHDEF, 10); + target:delMod(MOD_WATERDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/cluster_of_paprika.lua =================================================================== --- scripts/globals/items/cluster_of_paprika.lua (revision 0) +++ scripts/globals/items/cluster_of_paprika.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5740 +-- Item: Cluster of Paprika +-- Food Effect: 5Min, All Races +----------------------------------------- +-- Agility 1 +-- Vitality -3 +-- Defense -1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5740); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, 1); + target:addMod(MOD_VIT, -3); + target:addMod(MOD_DEF, -1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, 1); + target:delMod(MOD_VIT, -3); + target:delMod(MOD_DEF, -1); +end; Index: scripts/globals/items/cobalt_jellyfish.lua =================================================================== --- scripts/globals/items/cobalt_jellyfish.lua (revision 3520) +++ scripts/globals/items/cobalt_jellyfish.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/cobra_staff.lua =================================================================== --- scripts/globals/items/cobra_staff.lua (revision 0) +++ scripts/globals/items/cobra_staff.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 18614 +-- Item: Cobra Staff +-- Enchantment: "Retrace" (Windurst) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(94) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + cobraStaff(target); +end; \ No newline at end of file Index: scripts/globals/items/combat_casters_quiver.lua =================================================================== --- scripts/globals/items/combat_casters_quiver.lua (revision 0) +++ scripts/globals/items/combat_casters_quiver.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15958 +-- Combat Caster Quiver +-- When used, you will obtain 1 Combat Casters Arrow +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(18740,1); +end; \ No newline at end of file Index: scripts/globals/items/cone_calamary.lua =================================================================== --- scripts/globals/items/cone_calamary.lua (revision 0) +++ scripts/globals/items/cone_calamary.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5128 +-- Item: Cone Calamary +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 3 +-- Mind -5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5128); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 3); + target:addMod(MOD_MND, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 3); + target:delMod(MOD_MND, -5); +end; Index: scripts/globals/items/container_of_carnal_incense.lua =================================================================== --- scripts/globals/items/container_of_carnal_incense.lua (revision 0) +++ scripts/globals/items/container_of_carnal_incense.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------------- +-- ID: 5243 +-- Item: Container of Carnal Incense +-- Item Effect: Temp nullifies all physical dmg +-- Duration: 20 secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,20,5243)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_UDMGPHYS,-100); + target:addMod(MOD_UDMGBREATH,-100); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_UDMGPHYS,-100); + target:delMod(MOD_UDMGBREATH,-100); +end; \ No newline at end of file Index: scripts/globals/items/container_of_celestial_incense.lua =================================================================== --- scripts/globals/items/container_of_celestial_incense.lua (revision 0) +++ scripts/globals/items/container_of_celestial_incense.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5245 +-- Item: Container of Celestial Incense +-- Item Effect: Temp nullifies all ranged attack dmg +-- Duration: 20 secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,20,5245)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_UDMGRANGE,-100); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_UDMGRANGE,-100); +end; \ No newline at end of file Index: scripts/globals/items/container_of_spiritual_incense.lua =================================================================== --- scripts/globals/items/container_of_spiritual_incense.lua (revision 0) +++ scripts/globals/items/container_of_spiritual_incense.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5244 +-- Item: Container of Spiritual Incense +-- Item Effect: Temp nullifies all magic dmg +-- Duration: 20 secs +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,20,5244)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_UDMGMAGIC,-256); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_UDMGMAGIC,-256); +end; \ No newline at end of file Index: scripts/globals/items/copper_frog.lua =================================================================== --- scripts/globals/items/copper_frog.lua (revision 3520) +++ scripts/globals/items/copper_frog.lua (working copy) @@ -18,7 +18,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/coral_butterfly.lua =================================================================== --- scripts/globals/items/coral_butterfly.lua (revision 0) +++ scripts/globals/items/coral_butterfly.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 4580 +-- Item: Coral Butterfly +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 2 +-- Mind -4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,4580); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 2); + target:addMod(MOD_MND, -4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 2); + target:delMod(MOD_MND, -4); +end; Index: scripts/globals/items/cotton_candy.lua =================================================================== --- scripts/globals/items/cotton_candy.lua (revision 0) +++ scripts/globals/items/cotton_candy.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 5708 +-- Item: Cotton Candy +-- Food Effect: 5 Min, All Races +----------------------------------------- +-- MP % 10 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD)) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5708); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MPP, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MPP, 10); +end; Index: scripts/globals/items/counter_earring.lua =================================================================== --- scripts/globals/items/counter_earring.lua (revision 0) +++ scripts/globals/items/counter_earring.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 14786 +-- Item: Counter Earring +-- Enchantment: Counter 5 +-- Charges: 20 Reuse Delay: 30 Secs +-- Duration: 30 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,30,14786); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_COUNTER, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_COUNTER, 5); +end; \ No newline at end of file Index: scripts/globals/items/crab_stewpot.lua =================================================================== --- scripts/globals/items/crab_stewpot.lua (revision 0) +++ scripts/globals/items/crab_stewpot.lua (working copy) @@ -0,0 +1,65 @@ +----------------------------------------- +-- ID: 5544 +-- Item: Crab Stewpot +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% Cap 50 +-- MP +10 +-- HP Recoverd while healing 5 +-- MP Recovered while healing 1 +-- Defense +15% Cap 50 +-- Evasion +5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5544); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_FOOD_HP_CAP, 50); + target:addMod(MOD_MP, 10); + target:addMod(MOD_HPHEAL, 5); + target:addMod(MOD_MPHEAL, 1); + target:addMod(MOD_FOOD_DEFP, 15); + target:addMod(MOD_FOOD_DEF_CAP, 50); + target:addMod(MOD_EVA, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_FOOD_HP_CAP, 50); + target:delMod(MOD_MP, 10); + target:delMod(MOD_HPHEAL, 5); + target:delMod(MOD_MPHEAL, 1); + target:delMod(MOD_FOOD_DEFP, 15); + target:delMod(MOD_FOOD_DEF_CAP, 50); + target:delMod(MOD_EVA, 5); +end; Index: scripts/globals/items/crayfish.lua =================================================================== --- scripts/globals/items/crayfish.lua (revision 3520) +++ scripts/globals/items/crayfish.lua (working copy) @@ -18,7 +18,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/creek_maillot_+1.lua =================================================================== --- scripts/globals/items/creek_maillot_+1.lua (revision 0) +++ scripts/globals/items/creek_maillot_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10268 +-- Creek Maillot +1 +-- When used, you will obtain 1 Berry Snowcone +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5710,1); +end; \ No newline at end of file Index: scripts/globals/items/creek_top_+1.lua =================================================================== --- scripts/globals/items/creek_top_+1.lua (revision 0) +++ scripts/globals/items/creek_top_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10269 +-- Creek Top +1 +-- When used, you will obtain 1 Berry Snowcone +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5710,1); +end; \ No newline at end of file Index: scripts/globals/items/crescent_fish.lua =================================================================== --- scripts/globals/items/crescent_fish.lua (revision 3520) +++ scripts/globals/items/crescent_fish.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/cup_of_date_tea.lua =================================================================== --- scripts/globals/items/cup_of_date_tea.lua (revision 0) +++ scripts/globals/items/cup_of_date_tea.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5926 +-- Item: Cup of Date Tea +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- HP 20 +-- MP 30 +-- Vitality -1 +-- Charisma 5 +-- Intelligence 3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5926); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 20); + target:addMod(MOD_MP, 30); + target:addMod(MOD_VIT, -1); + target:addMod(MOD_CHR, 5); + target:addMod(MOD_INT, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 20); + target:delMod(MOD_MP, 30); + target:delMod(MOD_VIT, -1); + target:delMod(MOD_CHR, 5); + target:delMod(MOD_INT, 3); +end; Index: scripts/globals/items/curaga_earring.lua =================================================================== --- scripts/globals/items/curaga_earring.lua (revision 0) +++ scripts/globals/items/curaga_earring.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 14759 +-- Item : Curaga Earring +-- This earring functions in the same way as the spell Curaga. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:curaga(); +end; Index: scripts/globals/items/cynosure_ring.lua =================================================================== --- scripts/globals/items/cynosure_ring.lua (revision 0) +++ scripts/globals/items/cynosure_ring.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 10781 +-- Item: Cynosure Ring +-- Enchantment: Magical Accuracy +5 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,10781); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MACC, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MACC, 5); +end; \ No newline at end of file Index: scripts/globals/items/czars_belt.lua =================================================================== --- scripts/globals/items/czars_belt.lua (revision 0) +++ scripts/globals/items/czars_belt.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 15868 +-- Item: Czar's Belt +-- Enchantment: VIT +10 +-- Durration: 60 Secs +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,60,15868); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_VIT, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_VIT, 10); +end; \ No newline at end of file Index: scripts/globals/items/daedalus_hammer.lua =================================================================== --- scripts/globals/items/daedalus_hammer.lua (revision 0) +++ scripts/globals/items/daedalus_hammer.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------------- +-- ID: 18867 +-- Item: Daedalus Hammer +-- Enchantment: Adds Refresh +-- Duration: 60 Secs +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 60; + target:delStatusEffect(EFFECT_REFRESH); + target:addStatusEffect(EFFECT_REFRESH,1,1,duration); +end; \ No newline at end of file Index: scripts/globals/items/daedalus_wing.lua =================================================================== --- scripts/globals/items/daedalus_wing.lua (revision 3520) +++ scripts/globals/items/daedalus_wing.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------------- --- ID: 4202 --- Daedalus Wing --- Increases TP of the user by 100 +-- ID: 4202 +-- Item: Daedalus Wing +-- Effect: Increases TP of the user by 100 ----------------------------------------- ----------------------------------------- @@ -9,7 +9,11 @@ ----------------------------------------- function onItemCheck(target) - return 0; + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; end; ----------------------------------------- @@ -18,4 +22,5 @@ function onItemUse(target) target:addTP(100); + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); end; \ No newline at end of file Index: scripts/globals/items/dagger_of_trials.lua =================================================================== --- scripts/globals/items/dagger_of_trials.lua (revision 0) +++ scripts/globals/items/dagger_of_trials.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 17616 +-- Equip: Dagger of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 17616) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 20); + target:addMod(MOD_ICEDEF, 10); + target:addMod(MOD_EARTHDEF, 10); + else + target:delMod(MOD_HP, 20); + target:delMod(MOD_ICEDEF, 10); + target:delMod(MOD_EARTHDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/dark_adaman_bullet_pouch.lua =================================================================== --- scripts/globals/items/dark_adaman_bullet_pouch.lua (revision 0) +++ scripts/globals/items/dark_adaman_bullet_pouch.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5873 +-- Item: Dark Adaman Bullet Pouch +-- Effect: When used, you will obtain one stack of Dark Adaman Bullets +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(19184,99); +end; \ No newline at end of file Index: scripts/globals/items/dark_bass.lua =================================================================== --- scripts/globals/items/dark_bass.lua (revision 3520) +++ scripts/globals/items/dark_bass.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/dark_card_case.lua =================================================================== --- scripts/globals/items/dark_card_case.lua (revision 0) +++ scripts/globals/items/dark_card_case.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5409 +-- Item: Dark Card Case +-- Effect: When used, you will obtain one stack of Dark Cards +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(2183,99); +end; \ No newline at end of file Index: scripts/globals/items/date.lua =================================================================== --- scripts/globals/items/date.lua (revision 0) +++ scripts/globals/items/date.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5566 +-- Item: Date +-- Food Effect: 5 Mins, All Races +----------------------------------------- +-- Intelligence 1 +-- Agility -3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5566); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_INT, 1); + target:addMod(MOD_AGI, -3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_INT, 1); + target:delMod(MOD_AGI, -3); +end; Index: scripts/globals/items/deadeye_earring.lua =================================================================== --- scripts/globals/items/deadeye_earring.lua (revision 0) +++ scripts/globals/items/deadeye_earring.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 14787 +-- Item: Deadeye Earring +-- Enchantment: Ranged Attack +20 +-- Durration: 3 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,180,14787); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_RATT, 20); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_RATT, 20); +end; \ No newline at end of file Index: scripts/globals/items/death_chakram.lua =================================================================== --- scripts/globals/items/death_chakram.lua (revision 0) +++ scripts/globals/items/death_chakram.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 18231 +-- Item: Death Chakram +-- Enchantment: MP +5% +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18231); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MMP, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MMP, 5); +end; \ No newline at end of file Index: scripts/globals/items/deathball.lua =================================================================== --- scripts/globals/items/deathball.lua (revision 0) +++ scripts/globals/items/deathball.lua (working copy) @@ -0,0 +1,34 @@ +----------------------------------------- +-- ID: 4566 +-- Item: Deathball +-- Food Effect: 3 Mins, All Races +----------------------------------------- +-- Poison 2HP / 3Tic +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,180,4566); + if(target:hasStatusEffect(EFFECT_POISON) == false) then + target:addStatusEffect(EFFECT_POISON,2,3,180); + else + target:messageBasic(423); + end +end; Index: scripts/globals/items/deathbone_knife.lua =================================================================== --- scripts/globals/items/deathbone_knife.lua (revision 0) +++ scripts/globals/items/deathbone_knife.lua (working copy) @@ -0,0 +1,24 @@ +----------------------------------------- +-- ID: 18035 +-- Item: Deathbone Knife +-- Item Effect: Restores 10 TP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addTP(10); +end; \ No newline at end of file Index: scripts/globals/items/decennial_coat_+1.lua =================================================================== --- scripts/globals/items/decennial_coat_+1.lua (revision 0) +++ scripts/globals/items/decennial_coat_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10253 +-- Decennial Coat +1 +-- When used, you will obtain 1 Moogurt +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5935,1); +end; \ No newline at end of file Index: scripts/globals/items/decennial_crown_+1.lua =================================================================== --- scripts/globals/items/decennial_crown_+1.lua (revision 0) +++ scripts/globals/items/decennial_crown_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10432 +-- Decennial Crown +1 +-- When used, you will obtain one Chocobiscuit +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5934,1); +end; \ No newline at end of file Index: scripts/globals/items/decennial_dress_+1.lua =================================================================== --- scripts/globals/items/decennial_dress_+1.lua (revision 0) +++ scripts/globals/items/decennial_dress_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10254 +-- Decennial Dress +1 +-- When used, you will obtain 1 Moogurt +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5935,1); +end; \ No newline at end of file Index: scripts/globals/items/decennial_hose_+1.lua =================================================================== --- scripts/globals/items/decennial_hose_+1.lua (revision 0) +++ scripts/globals/items/decennial_hose_+1.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 10596 +-- Item: Decennial Hose +1 +-- Effect: Enchantment Invisible, Sneak, & Deodorize +-- Durration: 3 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local duration = 180; + local duration2 = 180; + if (target:getEquipID(SLOT_BACK) == 13692) then -- Skulker's Cape + duration = duration * 1.5; + duration2 = duration2 * 1.5; + end + if (target:getEquipID(SLOT_FEET) == 15753) then -- Dream Boots +1 + duration2 = duration2 * 1.5; + end + if (target:getEquipID(SLOT_HANDS) == 15753) then -- Dream Mittens +1 + duration2 = duration2 * 1.5; + end + if (not target:hasStatusEffect(EFFECT_INVISIBLE)) then + target:addStatusEffect(EFFECT_INVISIBLE,0,10,duration); + end + if (not target:hasStatusEffect(EFFECT_SNEAK)) then + target:addStatusEffect(EFFECT_SNEAK,1,10,duration2); + end + if (not target:hasStatusEffect(EFFECT_DEODORIZE)) then + target:addStatusEffect(EFFECT_DEODORIZE,1,10,180); + end +end; Index: scripts/globals/items/decennial_tiara_+1.lua =================================================================== --- scripts/globals/items/decennial_tiara_+1.lua (revision 0) +++ scripts/globals/items/decennial_tiara_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10433 +-- Decennial Tiara +1 +-- When used, you will obtain one Chocobiscuit +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5934,1); +end; \ No newline at end of file Index: scripts/globals/items/decennial_tights_+1.lua =================================================================== --- scripts/globals/items/decennial_tights_+1.lua (revision 0) +++ scripts/globals/items/decennial_tights_+1.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 10595 +-- Item: Decennial Tights +1 +-- Effect: Enchantment Invisible, Sneak, & Deodorize +-- Durration: 3 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local duration = 180 + local duration2 = 180 + if (target:getEquipID(SLOT_BACK) == 13692) then -- Skulker's Cape + duration = duration * 1.5; + duration2 = duration2 * 1.5; + end + if (target:getEquipID(SLOT_FEET) == 15753) then -- Dream Boots +1 + duration2 = duration2 * 1.5; + end + if (target:getEquipID(SLOT_HANDS) == 15753) then -- Dream Mittens +1 + duration2 = duration2 * 1.5; + end + if (not target:hasStatusEffect(EFFECT_INVISIBLE)) then + target:addStatusEffect(EFFECT_INVISIBLE,0,10,duration); + end + if (not target:hasStatusEffect(EFFECT_SNEAK)) then + target:addStatusEffect(EFFECT_SNEAK,1,10,duration2); + end + if (not target:hasStatusEffect(EFFECT_DEODORIZE)) then + target:addStatusEffect(EFFECT_DEODORIZE,1,10,180); + end +end; Index: scripts/globals/items/deductive_brocade_obi.lua =================================================================== --- scripts/globals/items/deductive_brocade_obi.lua (revision 0) +++ scripts/globals/items/deductive_brocade_obi.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 15861 +-- Item: Deductive Brocade Obi +-- Enchantment: MND +10 +-- Durration: 60 Secs +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,60,15861); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MND, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MND, 10); +end; \ No newline at end of file Index: scripts/globals/items/deductive_gold_obi.lua =================================================================== --- scripts/globals/items/deductive_gold_obi.lua (revision 0) +++ scripts/globals/items/deductive_gold_obi.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 15460 +-- Item: Deductive Gold Obi +-- Enchantment: MND +3 +-- Durration: 60 Secs +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,60,15460); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MND, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MND, 3); +end; \ No newline at end of file Index: scripts/globals/items/demoralizer.lua =================================================================== --- scripts/globals/items/demoralizer.lua (revision 0) +++ scripts/globals/items/demoralizer.lua (working copy) @@ -0,0 +1,42 @@ +----------------------------------------- +-- ID: 5304 +-- Item: Demoralizer +-- Effect: Decreases TP of the target by 100 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:delTP(100); + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/demoralizer_+1.lua =================================================================== --- scripts/globals/items/demoralizer_+1.lua (revision 0) +++ scripts/globals/items/demoralizer_+1.lua (working copy) @@ -0,0 +1,42 @@ +----------------------------------------- +-- ID: 5305 +-- Item: Demoralizer +1 +-- Effect: Decreases TP of the target by 300 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:setTP(0); + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/denizanasi.lua =================================================================== --- scripts/globals/items/denizanasi.lua (revision 0) +++ scripts/globals/items/denizanasi.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5447 +-- Item: Denizanasi +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 1 +-- Mind -3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5447); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 1); + target:addMod(MOD_MND, -3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 1); + target:delMod(MOD_MND, -3); +end; Index: scripts/globals/items/destrier_beret.lua =================================================================== --- scripts/globals/items/destrier_beret.lua (revision 0) +++ scripts/globals/items/destrier_beret.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 11811 +-- Destrier Beret +-- EEnchantment: 60Min, Costume - Chocobo Egg (INCOMPLETE) +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,1996,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/dhalmel_whistle.lua =================================================================== --- scripts/globals/items/dhalmel_whistle.lua (revision 0) +++ scripts/globals/items/dhalmel_whistle.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 15505 +-- Item: Dhalmel Whistle +-- Enchantment: AGI +6 +-- Durration: 3 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,180,15505); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, 6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, 6); +end; + Index: scripts/globals/items/dil.lua =================================================================== --- scripts/globals/items/dil.lua (revision 0) +++ scripts/globals/items/dil.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5457 +-- Item: Dil +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 4 +-- Mind -6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5457); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 4); + target:addMod(MOD_MND, -6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 4); + target:delMod(MOD_MND, -6); +end; Index: scripts/globals/items/dish_of_spaghetti_nero_di_seppia_+1.lua =================================================================== --- scripts/globals/items/dish_of_spaghetti_nero_di_seppia_+1.lua (revision 0) +++ scripts/globals/items/dish_of_spaghetti_nero_di_seppia_+1.lua (working copy) @@ -0,0 +1,68 @@ +----------------------------------------- +-- ID: 5202 +-- Item: Dish of Spaghetti Nero Di Seppia +1 +-- Food Effect: 60 Mins, All Races +----------------------------------------- +-- HP % 17 (cap 140) +-- Dexterity 3 +-- Vitality 2 +-- Agility -1 +-- Mind -2 +-- Charisma -1 +-- Double Attack 1 +-- Store TP 6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,3600,5202); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 17); + target:addMod(MOD_FOOD_HP_CAP, 140); + target:addMod(MOD_DEX, 3); + target:addMod(MOD_VIT, 2); + target:addMod(MOD_AGI, -1); + target:addMod(MOD_MND, -2); + target:addMod(MOD_CHR, -1); + target:addMod(MOD_DOUBLE_ATTACK, 1); + target:addMod(MOD_STORETP, 6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 17); + target:delMod(MOD_FOOD_HP_CAP, 140); + target:delMod(MOD_DEX, 3); + target:delMod(MOD_VIT, 2); + target:delMod(MOD_AGI, -1); + target:delMod(MOD_MND, -2); + target:delMod(MOD_CHR, -1); + target:delMod(MOD_DOUBLE_ATTACK, 1); + target:delMod(MOD_STORETP, 6); +end; Index: scripts/globals/items/dish_of_spaghetti_ortolana.lua =================================================================== --- scripts/globals/items/dish_of_spaghetti_ortolana.lua (revision 0) +++ scripts/globals/items/dish_of_spaghetti_ortolana.lua (working copy) @@ -0,0 +1,56 @@ +----------------------------------------- +-- ID: 5658 +-- Item: Dish of Spafhetti Ortolana +-- Food Effect: 30 Mins, All Races +----------------------------------------- +-- Agility 2 +-- Vitality 2 +-- HP +30% Cap 70 +-- StoreTP +6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,3600,5658); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_VIT, 2); + target:addMod(MOD_AGI, 2); + target:addMod(MOD_FOOD_HPP, 30); + target:addMod(MOD_FOOD_HP_CAP, 70); + target:addMod(MOD_STORETP, 6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_VIT, 2); + target:delMod(MOD_AGI, 2); + target:delMod(MOD_FOOD_HPP, 30); + target:delMod(MOD_FOOD_HP_CAP, 70); + target:delMod(MOD_STORETP, 6); +end; Index: scripts/globals/items/dish_of_spaghetti_ortolana_+1.lua =================================================================== --- scripts/globals/items/dish_of_spaghetti_ortolana_+1.lua (revision 0) +++ scripts/globals/items/dish_of_spaghetti_ortolana_+1.lua (working copy) @@ -0,0 +1,56 @@ +----------------------------------------- +-- ID: 5659 +-- Item: Dish of Spafhetti Ortolana +-- Food Effect: 1 Hr, All Races +----------------------------------------- +-- Agility 2 +-- Vitality 2 +-- HP +30% Cap 75 +-- StoreTP +6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,7200,5659); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_VIT, 2); + target:addMod(MOD_AGI, 2); + target:addMod(MOD_FOOD_HPP, 30); + target:addMod(MOD_FOOD_HP_CAP, 75); + target:addMod(MOD_STORETP, 6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_VIT, 2); + target:delMod(MOD_AGI, 2); + target:delMod(MOD_FOOD_HPP, 30); + target:delMod(MOD_FOOD_HP_CAP, 75); + target:delMod(MOD_STORETP, 6); +end; Index: scripts/globals/items/dish_of_spaghetti_tonno_rosso.lua =================================================================== --- scripts/globals/items/dish_of_spaghetti_tonno_rosso.lua (revision 0) +++ scripts/globals/items/dish_of_spaghetti_tonno_rosso.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5623 +-- Item: Dish of Spaghetti Tonno Rosso +-- Food Effect: 30 Mins, All Races +----------------------------------------- +-- Health % 13 +-- Health Cap 180 +-- Dexterity 1 +-- Vitality 2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,3600,5623); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 13); + target:addMod(MOD_FOOD_HP_CAP, 180); + target:addMod(MOD_DEX, 1); + target:addMod(MOD_VIT, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 13); + target:delMod(MOD_FOOD_HP_CAP, 180); + target:delMod(MOD_DEX, 1); + target:delMod(MOD_VIT, 2); +end; Index: scripts/globals/items/dish_of_spaghetti_tonno_rosso_+1.lua =================================================================== --- scripts/globals/items/dish_of_spaghetti_tonno_rosso_+1.lua (revision 0) +++ scripts/globals/items/dish_of_spaghetti_tonno_rosso_+1.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5624 +-- Item: Dish of Spaghetti Tonno Rosso +1 +-- Food Effect: 60 Mins, All Races +----------------------------------------- +-- Health % 13 +-- Health Cap 185 +-- Dexterity 2 +-- Vitality 3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,7200,5624); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 13); + target:addMod(MOD_FOOD_HP_CAP, 185); + target:addMod(MOD_DEX, 2); + target:addMod(MOD_VIT, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 13); + target:delMod(MOD_FOOD_HP_CAP, 185); + target:delMod(MOD_DEX, 2); + target:delMod(MOD_VIT, 3); +end; Index: scripts/globals/items/dish_of_spaghetti_vongole_rosso_+1.lua =================================================================== --- scripts/globals/items/dish_of_spaghetti_vongole_rosso_+1.lua (revision 0) +++ scripts/globals/items/dish_of_spaghetti_vongole_rosso_+1.lua (working copy) @@ -0,0 +1,63 @@ +----------------------------------------- +-- ID: 5198 +-- Item: Dish of Spaghetti Vongole Rosso +1 +-- Food Effect: 60Min, All Races +----------------------------------------- +-- Health % 20 +-- Health Cap 95 +-- Vitality 2 +-- Mind -1 +-- Defense % 25 +-- Defense Cap 35 +-- Store TP 6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,3600,5198); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 20); + target:addMod(MOD_FOOD_HP_CAP, 95); + target:addMod(MOD_VIT, 2); + target:addMod(MOD_MND, -1); + target:addMod(MOD_FOOD_DEFP, 25); + target:addMod(MOD_FOOD_DEF_CAP, 35); + target:addMod(MOD_STORETP, 6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 20); + target:delMod(MOD_FOOD_HP_CAP, 95); + target:delMod(MOD_VIT, 2); + target:delMod(MOD_MND, -1); + target:delMod(MOD_FOOD_DEFP, 25); + target:delMod(MOD_FOOD_DEF_CAP, 35); + target:delMod(MOD_STORETP, 6); +end; Index: scripts/globals/items/dispel_couse.lua =================================================================== --- scripts/globals/items/dispel_couse.lua (revision 0) +++ scripts/globals/items/dispel_couse.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 18095 +-- Item: Dispel Couse +-- Enchantment: Sames as Dispel +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local dispel = target:dispelStatusEffect(); + if(dispel == EFFECT_NONE) then + skill:setMsg(MSG_NO_EFFECT); + else + skill:setMsg(MSG_DISPEL); + end +end; \ No newline at end of file Index: scripts/globals/items/diverters_ring.lua =================================================================== --- scripts/globals/items/diverters_ring.lua (revision 0) +++ scripts/globals/items/diverters_ring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15833 +-- Item: Diverters Ring +-- Item Effect: Avatar Enmity +2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_RING1) == 15833 or target:getEquipID(SLOT_RING2) == 15833) then + pet:addMod(MOD_ENMITY, 2); + else + pet:delMod(MOD_ENMITY, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/dominus_shield.lua =================================================================== --- scripts/globals/items/dominus_shield.lua (revision 3520) +++ scripts/globals/items/dominus_shield.lua (working copy) @@ -1,30 +1,37 @@ ------------------------------------------ --- ID: 14491 --- Item: Dominus Shield --- Item Effect: Restores 20-35 MP ------------------------------------------ - -require("scripts/globals/settings"); - ------------------------------------------ --- OnItemCheck ------------------------------------------ - -function onItemCheck(target) - return 0; -end; - ------------------------------------------ --- OnItemUse ------------------------------------------ - -function onItemUse(target) - mpHeal = math.random(60,85); - - dif = target:getMaxMP() - target:getMP(); - if(mpHeal > dif) then - mpHeal = dif; - end - target:addMP(mpHeal); - target:messageBasic(276,0,mpHeal); +----------------------------------------- +-- ID: 12411 +-- Item: Ether +-- Item Effect: Restores 60 MP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; +mMP = target:getMaxMP(); +cMP = target:getMP(); +diff = mMP - cMP; + +if (mMP == cMP) then + result = 56; -- Does not let player use item if their mp is full +end + +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if (diff > 60) then + target:addMP(60); + elseif (diff < 60) then + target:addMP(diff); + end; end; \ No newline at end of file Index: scripts/globals/items/dose_of_baraero_ointment.lua =================================================================== --- scripts/globals/items/dose_of_baraero_ointment.lua (revision 0) +++ scripts/globals/items/dose_of_baraero_ointment.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 5249 +-- Item: Dose of Baraero Ointment +-- Item Effect: Wind Resistance +20 ? +-- Duration: 5 Mins ? +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_BARAERO,20,0,300,0,1);) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end + return EFFECT_BARAERO; +end; Index: scripts/globals/items/dose_of_barblizzard_ointment.lua =================================================================== --- scripts/globals/items/dose_of_barblizzard_ointment.lua (revision 0) +++ scripts/globals/items/dose_of_barblizzard_ointment.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 5248 +-- Item: Dose of Barblizzard Ointment +-- Item Effect: Ice Resistance +20 ? +-- Duration: 5 Mins ? +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_BARBLIZZARD,20,0,300,0,1);) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end + return EFFECT_BARBLIZZARD; +end; Index: scripts/globals/items/dose_of_barfire_ointment.lua =================================================================== --- scripts/globals/items/dose_of_barfire_ointment.lua (revision 0) +++ scripts/globals/items/dose_of_barfire_ointment.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 5247 +-- Item: Dose of Barfire Ointment +-- Item Effect: Fire Resistance +20 ? +-- Duration: 5 Mins ? +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_BARFIRE,20,0,300,0,1);) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end + return EFFECT_BARFIRE; +end; Index: scripts/globals/items/dose_of_barstone_ointment.lua =================================================================== --- scripts/globals/items/dose_of_barstone_ointment.lua (revision 0) +++ scripts/globals/items/dose_of_barstone_ointment.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 5250 +-- Item: Dose of Barstone Ointment +-- Item Effect: Earth Resistance +20 ? +-- Duration: 5 Mins ? +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_BARSTONE,20,0,300,0,1);) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end + return EFFECT_BARSTONE; +end; Index: scripts/globals/items/dose_of_barthunder_ointment.lua =================================================================== --- scripts/globals/items/dose_of_barthunder_ointment.lua (revision 0) +++ scripts/globals/items/dose_of_barthunder_ointment.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 5251 +-- Item: Dose of Barthunder Ointment +-- Item Effect: Thunder Resistance +20 ? +-- Duration: 5 Mins ? +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_BARTHUNDER,20,0,300,0,1);) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end + return EFFECT_BARTHUNDER; +end; Index: scripts/globals/items/dose_of_barwater_ointment.lua =================================================================== --- scripts/globals/items/dose_of_barwater_ointment.lua (revision 0) +++ scripts/globals/items/dose_of_barwater_ointment.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 5252 +-- Item: Dose of Barwater Ointment +-- Item Effect: Water Resistance +20 ? +-- Duration: 5 Mins ? +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_BARWATER,20,0,300,0,1);) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end + return EFFECT_BARWATER; +end; Index: scripts/globals/items/drachenstich.lua =================================================================== --- scripts/globals/items/drachenstich.lua (revision 0) +++ scripts/globals/items/drachenstich.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 19792 +-- Item: Drachenstich +-- Item Effect: Wyvern Dmg -5% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_MAIN) == 19792) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_DMG, -5); + else + pet:delMod(MOD_DMG, -5); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/draconis_lance.lua =================================================================== --- scripts/globals/items/draconis_lance.lua (revision 0) +++ scripts/globals/items/draconis_lance.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 16843 +-- Item: Draconis Lance +-- Item Effect: Wyvern Acc Atk +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_MAIN) == 16843) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_ATT, 10); + pet:addMod(MOD_ACC, 10); + else + pet:delMod(MOD_ATT, 10); + pet:delMod(MOD_ACC, 10); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/dragon_fruit.lua =================================================================== --- scripts/globals/items/dragon_fruit.lua (revision 0) +++ scripts/globals/items/dragon_fruit.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5662 +-- Item: Dragon Fruit +-- Food Effect: 5 Mins, All Races +----------------------------------------- +-- Intelligence 4 +-- Agility -6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5662); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_INT, 4); + target:addMod(MOD_AGI, -6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_INT, 4); + target:delMod(MOD_AGI, -6); +end; Index: scripts/globals/items/dragon_heart.lua =================================================================== --- scripts/globals/items/dragon_heart.lua (revision 0) +++ scripts/globals/items/dragon_heart.lua (working copy) @@ -0,0 +1,63 @@ +----------------------------------------- +-- ID: 4486 +-- Item: Dragon Heart +-- Food Effect: 3 Hr, Galka Only +----------------------------------------- +-- Strength 7 +-- Intelligence -9 +-- MP -40 +-- HP 40 +-- Dragon Killer 10 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:getRace() ~= 8) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,4486); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 7); + target:addMod(MOD_INT, -9); + target:addMod(MOD_MP, -40); + target:addMod(MOD_HP, 40); + target:addMod(MOD_DRAGON_KILLER, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 7); + target:delMod(MOD_INT, -9); + target:delMod(MOD_MP, -40); + target:delMod(MOD_HP, 40); + target:delMod(MOD_DRAGON_KILLER, 10); +end; Index: scripts/globals/items/dragon_tank.lua =================================================================== --- scripts/globals/items/dragon_tank.lua (revision 0) +++ scripts/globals/items/dragon_tank.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 11002 +-- Dragon Tank +-- When used, you will obtain one Dragon Fruit au Lait +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5933,1); +end; \ No newline at end of file Index: scripts/globals/items/dragonkin_earring.lua =================================================================== --- scripts/globals/items/dragonkin_earring.lua (revision 0) +++ scripts/globals/items/dragonkin_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11038 +-- Item: Dragonkin Earring +-- Item Effect: Pet Wyvern Physical Dmg taken -2% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_EAR1) == 11038 or target:getEquipID(SLOT_EAR2) == 11038) then + pet:addMod(MOD_DMGPHYS, -2); + else + pet:addMod(MOD_DMGPHYS, -2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/dream_boots_+1.lua =================================================================== --- scripts/globals/items/dream_boots_+1.lua (revision 0) +++ scripts/globals/items/dream_boots_+1.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------------- +-- ID: 15753 +-- Item: Dream Boots +1 +-- Enchantment: Sneak +-- Durration: 3 Mins 20 Secs +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local duration = 200; + duration = duration + (duration * target:getMod(MOD_SNEAK_DUR)); + if (not target:hasStatusEffect(EFFECT_SNEAK)) then + target:addStatusEffect(EFFECT_SNEAK,1,10,duration); + end +end; Index: scripts/globals/items/dream_hat_+1.lua =================================================================== --- scripts/globals/items/dream_hat_+1.lua (revision 0) +++ scripts/globals/items/dream_hat_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15179 +-- Dream Hat +1 +-- When used, you will obtain one Ginger Cookie +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(4394,1); +end; \ No newline at end of file Index: scripts/globals/items/dream_mittens_+1.lua =================================================================== --- scripts/globals/items/dream_mittens_+1.lua (revision 0) +++ scripts/globals/items/dream_mittens_+1.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------------- +-- ID: 10383 +-- Item: Dream Mittens +1 +-- Enchantment: Invisible +-- Durration: 3 Mins 20 Secs +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if (not target:hasStatusEffect(EFFECT_INVISIBLE)) then + target:addStatusEffect(EFFECT_INVISIBLE,0,10,200); + end +end; Index: scripts/globals/items/ducal_guards_ring.lua =================================================================== --- scripts/globals/items/ducal_guards_ring.lua (revision 0) +++ scripts/globals/items/ducal_guards_ring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 14657 +-- Item: Ducal Guard Ring +-- Enchantment: Ducal Recal +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(243) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + ducalGaurdRing(target); +end; Index: scripts/globals/items/duchy_earring.lua =================================================================== --- scripts/globals/items/duchy_earring.lua (revision 0) +++ scripts/globals/items/duchy_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16042 +-- Item: Duchy Earring +-- Enchantment: "Teleport" (Upper Jueno) +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/teleports"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(244) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duchyEarring(target); +end; \ No newline at end of file Index: scripts/globals/items/dune_gilet_+1.lua =================================================================== --- scripts/globals/items/dune_gilet_+1.lua (revision 0) +++ scripts/globals/items/dune_gilet_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10271 +-- Dune Gilet +1 +-- When used, you will obtain 1 Berry Snowcone +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5710,1); +end; \ No newline at end of file Index: scripts/globals/items/dusty_elixir.lua =================================================================== --- scripts/globals/items/dusty_elixir.lua (revision 0) +++ scripts/globals/items/dusty_elixir.lua (working copy) @@ -0,0 +1,37 @@ +----------------------------------------- +-- ID: 5433 +-- Item: Dusty Elixir +-- Item Effect: Instantly restores 25% of HP and MP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; +mHP = target:getMaxHP(); +cHP = target:getHP(); +mMP = target:getMaxMP(); +cMP = target:getMP(); + + +if (mHP == cHP and mMP == cMP) then + result = 56; -- Does not let player use item if their hp and mp are full +end + +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addHP((target:getMaxHP()/100)*25); + target:addMP((target:getMaxMP()/100)*25); + target:messageBasic(26); +end; \ No newline at end of file Index: scripts/globals/items/dusty_ether.lua =================================================================== --- scripts/globals/items/dusty_ether.lua (revision 0) +++ scripts/globals/items/dusty_ether.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5432 +-- Item: Dusty Ether +-- Item Effect: Restores 150 MP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addMP(150*ITEM_POWER); + target:messageBasic(25,0,150); +end; Index: scripts/globals/items/dusty_potion.lua =================================================================== --- scripts/globals/items/dusty_potion.lua (revision 0) +++ scripts/globals/items/dusty_potion.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 5431 +-- Item: Dusty Potion +-- Item Effect: Restores 150 HP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +value = 0; +mHP = target:getMaxHP(); +cHP = target:getHP(); + +if (mHP == cHP) then + value = 56; -- Does not let player use item if their hp is full +end + +return value; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addHP(150*ITEM_POWER); + target:messageBasic(24,0,150); +end; \ No newline at end of file Index: scripts/globals/items/dusty_reraise.lua =================================================================== --- scripts/globals/items/dusty_reraise.lua (revision 0) +++ scripts/globals/items/dusty_reraise.lua (working copy) @@ -0,0 +1,36 @@ +----------------------------------------- +-- ID: 5436 +-- Item: Dusty Scroll of ReRaise +-- Effect: Brings you back from the dead~! +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + power = 1; + duration = 1800; + if(target:hasStatusEffect(EFFECT_RERAISE) ==true)then + effect = target:getStatusEffect(EFFECT_RERAISE); + oPower = effect:getPower(); + if(oPower > power) then + target:messageBasic(283); -- Higher Tiered verson means no effect! + else + target:delStatusEffect(EFFECT_RERAISE); + target:addStatusEffect(EFFECT_RERAISE,power,0,duration); + end + else + target:addStatusEffect(EFFECT_RERAISE,power,0,duration); + end +end; \ No newline at end of file Index: scripts/globals/items/dusty_wing.lua =================================================================== --- scripts/globals/items/dusty_wing.lua (revision 3520) +++ scripts/globals/items/dusty_wing.lua (working copy) @@ -1,15 +1,21 @@ ----------------------------------------- --- ID: 5440 --- Dusty Wing --- Increases TP of the user by 300 +-- ID: 5440 +-- Item: Dusty Wing +-- Effect: Increases TP of the user by 300 ----------------------------------------- +require("scripts/globals/status"); + ----------------------------------------- -- OnItemCheck ----------------------------------------- function onItemCheck(target) - return 0; + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; end; ----------------------------------------- @@ -17,5 +23,6 @@ ----------------------------------------- function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); target:addTP(300); end; \ No newline at end of file Index: scripts/globals/items/earth_card_case.lua =================================================================== --- scripts/globals/items/earth_card_case.lua (revision 0) +++ scripts/globals/items/earth_card_case.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5405 +-- Item: Earth Card Case +-- Effect: When used, you will obtain one stack of Wind Cards +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(2179,99); +end; \ No newline at end of file Index: scripts/globals/items/eastern_san_doria_gate_glyph.lua =================================================================== --- scripts/globals/items/eastern_san_doria_gate_glyph.lua (revision 0) +++ scripts/globals/items/eastern_san_doria_gate_glyph.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 4190 +-- Item: East San d'Oria Gate Glyph +-- Enchantment: "Teleport" (East San d'Oria) +----------------------------------------- + +require("scripts/globals/teleports"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + sandoriaEastGlyph(target); +end; \ No newline at end of file Index: scripts/globals/items/ecphoria_ring.lua =================================================================== --- scripts/globals/items/ecphoria_ring.lua (revision 0) +++ scripts/globals/items/ecphoria_ring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15817 +-- Item: Ecphoria Ring +-- Item Effect: Remedies amnesia. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:hasStatusEffect(EFFECT_AMNESIA) == true) then + target:delStatusEffect(EFFECT_AMNESIA); + else + target:messageBasic(423); -- no effect + end +end; + Index: scripts/globals/items/elshimo_frog.lua =================================================================== --- scripts/globals/items/elshimo_frog.lua (revision 3520) +++ scripts/globals/items/elshimo_frog.lua (working copy) @@ -19,7 +19,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/elshimo_pachira_fruit.lua =================================================================== --- scripts/globals/items/elshimo_pachira_fruit.lua (revision 0) +++ scripts/globals/items/elshimo_pachira_fruit.lua (working copy) @@ -0,0 +1,34 @@ +----------------------------------------- +-- ID: 5604 +-- Item: Elshimo Pachira Fruit +-- Effect: 2 Mins, All Races +----------------------------------------- +-- Poison 1HP / 3Tic - 40 Total +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,120,5604); + if(target:hasStatusEffect(EFFECT_POISON) == false) then + target:addStatusEffect(EFFECT_POISON,1,3,120); + else + target:messageBasic(423); + end +end; Index: scripts/globals/items/empire_earring.lua =================================================================== --- scripts/globals/items/empire_earring.lua (revision 0) +++ scripts/globals/items/empire_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16049 +-- Item: Empire Earring +-- Enchantment: "Teleport" (Aht Urhgan Whitegate) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(50) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + toAhtUrhganWhitegate(target) +end; \ No newline at end of file Index: scripts/globals/items/enif_gambieras.lua =================================================================== --- scripts/globals/items/enif_gambieras.lua (revision 0) +++ scripts/globals/items/enif_gambieras.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 10367 +-- Item: Enif Gambieras +-- Item Effect: Wyvern HP +80 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 10367) then + pet:addMod(MOD_HP, 80); + else + pet:delMod(MOD_HP, 80); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/enthralling_brocade_obi.lua =================================================================== --- scripts/globals/items/enthralling_brocade_obi.lua (revision 0) +++ scripts/globals/items/enthralling_brocade_obi.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 15862 +-- Item: Enthralling Brocade Obi +-- Enchantment: CHR 10 +-- Charges: 30 Reuse Delay: 600 Secs +-- Duration: 60 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,60,15862); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_CHR, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_CHR, 10); +end; \ No newline at end of file Index: scripts/globals/items/enthralling_gold_obi.lua =================================================================== --- scripts/globals/items/enthralling_gold_obi.lua (revision 0) +++ scripts/globals/items/enthralling_gold_obi.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 15461 +-- Item: Enthralling Gold Obi +-- Enchantment: CHR 3 +-- Charges: 30 Reuse Delay: 600 Secs +-- Duration: 60 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,60,15461); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_CHR, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_CHR, 3); +end; \ No newline at end of file Index: scripts/globals/items/evokers_bracers.lua =================================================================== --- scripts/globals/items/evokers_bracers.lua (revision 0) +++ scripts/globals/items/evokers_bracers.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 13975 +-- Item: Evoker's Bracers +-- Item Effect: Avatar Enmity -2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 13975) then + if(pet:getPetType() == PETTYPE_AVATAR) then + pet:addMod(MOD_ENMITY, -2); + else + pet:delMod(MOD_ENMITY, -2); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/evokers_bracers_+1.lua =================================================================== --- scripts/globals/items/evokers_bracers_+1.lua (revision 0) +++ scripts/globals/items/evokers_bracers_+1.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 14904 +-- Item: Evoker's Bracers +1 +-- Item Effect: Avatar Enmity -2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 14904) then + if(pet:getPetType() == PETTYPE_AVATAR) then + pet:addMod(MOD_ENMITY, -2); + else + pet:delMod(MOD_ENMITY, -2); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/federation_earring.lua =================================================================== --- scripts/globals/items/federation_earring.lua (revision 0) +++ scripts/globals/items/federation_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16041 +-- Item: Federation Earring +-- Enchantment: "Teleport" (Windurst Waters) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(238) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + federationEarring(target); +end; \ No newline at end of file Index: scripts/globals/items/federation_signet_staff.lua =================================================================== --- scripts/globals/items/federation_signet_staff.lua (revision 0) +++ scripts/globals/items/federation_signet_staff.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 17585 +-- Item: Federation Signet Staff +-- Item Effect: Grants target Signet +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:getNation() ~= 2) then + result = 56; + end + if (target:checkSoloPartyAlliance() == 0) then + result = 56; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:delStatusEffect(EFFECT_SIGNET); + target:addStatusEffect(EFFECT_SIGNET,0,0,18000,0,0); +end; + + Index: scripts/globals/items/federation_stables_scarf.lua =================================================================== --- scripts/globals/items/federation_stables_scarf.lua (revision 0) +++ scripts/globals/items/federation_stables_scarf.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 13181 +-- Item: Federation Stables Scarf +-- Enchantment: "Teleport" (Windurst Chocobo Stables) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(241) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + federationStablesScarf(target); +end; \ No newline at end of file Index: scripts/globals/items/felicifruit.lua =================================================================== --- scripts/globals/items/felicifruit.lua (revision 0) +++ scripts/globals/items/felicifruit.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5964 +-- Item: Felicifruit +-- Food Effect: 5Min, All Races +----------------------------------------- +-- Agility -7 +-- Intelligence 5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5964); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, -7); + target:addMod(MOD_INT, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, -7); + target:delMod(MOD_INT, 5); +end; Index: scripts/globals/items/ferine_earring.lua =================================================================== --- scripts/globals/items/ferine_earring.lua (revision 0) +++ scripts/globals/items/ferine_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11711 +-- Item: Ferine Earring +-- Item Effect: Pet Accuracy +3 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_EAR1) == 11711 or target:getEquipID(SLOT_EAR2) == 11711) then + pet:addMod(MOD_ACC, 3); + else + pet:addMod(MOD_ACC, 3); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/ferine_mantle.lua =================================================================== --- scripts/globals/items/ferine_mantle.lua (revision 0) +++ scripts/globals/items/ferine_mantle.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11555 +-- Item: Ferine Mantle +-- Item Effect: Pet: Accuracy +10 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_BACK) == 11555) then + pet:addMod(MOD_ACC, 10); + else + pet:delMod(MOD_ACC, 10); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/ferine_necklace.lua =================================================================== --- scripts/globals/items/ferine_necklace.lua (revision 0) +++ scripts/globals/items/ferine_necklace.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11617 +-- Item: Ferine Necklace +-- Item Effect: Pet Double Attack +2% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_NECK) == 11617) then + pet:addMod(MOD_DOUBLE_ATTACK, 2); + else + pet:delMod(MOD_DOUBLE_ATTACK, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/ferine_quijotes_+1.lua =================================================================== --- scripts/globals/items/ferine_quijotes_+1.lua (revision 0) +++ scripts/globals/items/ferine_quijotes_+1.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11232 +-- Item: Ferine Quijotes +1 +-- Item Effect: Pet -1% Dmg +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_LEGS) == 11232) then + pet:addMod(MOD_DMG, -1); + else + pet:delMod(MOD_DMG, -1); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/ferine_quijotes_+2.lua =================================================================== --- scripts/globals/items/ferine_quijotes_+2.lua (revision 0) +++ scripts/globals/items/ferine_quijotes_+2.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11132 +-- Item: Ferine Quijotes +2 +-- Item Effect: Pet -2% Dmg +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_LEGS) == 11132) then + pet:addMod(MOD_DMG, -2); + else + pet:delMod(MOD_DMG, -2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/fidelity_mantle.lua =================================================================== --- scripts/globals/items/fidelity_mantle.lua (revision 0) +++ scripts/globals/items/fidelity_mantle.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11531 +-- Item: Fidelity Mantle +-- Item Effect: Pet Store TP +3 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_BACK) == 11531) then + pet:addMod(MOD_STORETP, 3); + else + pet:delMod(MOD_STORETP, 3); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/fire_card_case.lua =================================================================== --- scripts/globals/items/fire_card_case.lua (revision 0) +++ scripts/globals/items/fire_card_case.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5402 +-- Item: Fire Card Case +-- Effect: When used, you will obtain one stack of Fire Cards +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(2176,99); +end; \ No newline at end of file Index: scripts/globals/items/fire_feather.lua =================================================================== --- scripts/globals/items/fire_feather.lua (revision 0) +++ scripts/globals/items/fire_feather.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 5256 +-- Item: Fire Feather +-- Effect: Enfire +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENFIRE,25,0,90)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; \ No newline at end of file Index: scripts/globals/items/flask_of_healing_mist.lua =================================================================== --- scripts/globals/items/flask_of_healing_mist.lua (revision 0) +++ scripts/globals/items/flask_of_healing_mist.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5832 +-- Item: Flask of Healing Mist +-- Item Effect: Restores 600 HP AoE 10' radius +----------------------------------------- + +-- TODO: Make AoE + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + mHP = target:getMaxHP(); + cHP = target:getHP(); + if (mHP == cHP) then + result = 56; -- Does not let player use item if their hp is full + end + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); + target:messageBasic(25,0,target:addHP(600)); + +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/flask_of_healing_powder.lua =================================================================== --- scripts/globals/items/flask_of_healing_powder.lua (revision 0) +++ scripts/globals/items/flask_of_healing_powder.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5322 +-- Item: Flask of Healing Powder +-- Item Effect: Restores 25% MP AoE 10' radius +----------------------------------------- + +-- TODO: Make AoE + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + mMP = target:getMaxHP(); + cMP = target:getHP(); + rMP = mHP * .25; + if (mHP == cHP) then + result = 56; -- Does not let player use item if their HP is full + end + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); + target:messageBasic(25,0,target:addHP(rHP)); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/flask_of_holy_water.lua =================================================================== --- scripts/globals/items/flask_of_holy_water.lua (revision 3520) +++ scripts/globals/items/flask_of_holy_water.lua (working copy) @@ -23,6 +23,16 @@ curse = target:getStatusEffect(EFFECT_CURSE_I); curse2 = target:getStatusEffect(EFFECT_CURSE_II); bane = target:getStatusEffect(EFFECT_BANE); + local ring1 = target:getEquipID(SLOT_RING1); + local ring2 = target:getEquipID(SLOT_RING2); + local pEquipMods = 0.25; + + if(ring1 == 10795 or ring2 == 10795) then -- Blenmot's & +1 Ring + pEquipMods = pEquipMods + .10 + end + if(ring1 == 10794 or ring2 == 10794) then + pEquipMods = pEquipMods + .05 + end if(curse ~= nil and curse2 ~= nil and bane ~= nil) then target:delStatusEffect(EFFECT_CURSE_I); @@ -46,7 +56,7 @@ elseif(bane ~= nil) then target:delStatusEffect(EFFECT_BANE); final = EFFECT_BANE; - elseif(target:hasStatusEffect(EFFECT_DOOM) and math.random() <= 0.25) then + elseif(target:hasStatusEffect(EFFECT_DOOM) and math.random() <= pEquipMods) then -- remove doom target:delStatusEffect(EFFECT_DOOM); target:messageBasic(359); Index: scripts/globals/items/flask_of_invitriol.lua =================================================================== --- scripts/globals/items/flask_of_invitriol.lua (revision 0) +++ scripts/globals/items/flask_of_invitriol.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 4171 +-- Item: Flask of Vitriol +-- Item Effect: Defense -20% +-- Duration: 3 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,180,4171)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEFP, -20); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEFP, -20); +end; \ No newline at end of file Index: scripts/globals/items/flask_of_mana_mist.lua =================================================================== --- scripts/globals/items/flask_of_mana_mist.lua (revision 0) +++ scripts/globals/items/flask_of_mana_mist.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------------- +-- ID: 5833 +-- Item: Flask of Mana Mist +-- Item Effect: Restores 300 MP AoE 10' radius +----------------------------------------- + +-- TODO: Make AoE + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + mMP = target:getMaxMP(); + cMP = target:getMP(); + if (mHP == cHP) then + result = 56; -- Does not let player use item if their mp is full + end + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); + target:messageBasic(25,0,target:addMP(300)); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/flask_of_primeval_brew.lua =================================================================== --- scripts/globals/items/flask_of_primeval_brew.lua (revision 0) +++ scripts/globals/items/flask_of_primeval_brew.lua (working copy) @@ -0,0 +1,77 @@ +----------------------------------------- +-- ID: 5853 +-- Item: Flask of Primeval Brew +-- Item Effect: Makes you a God +-- Duration: 3 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,180,5853)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 9999); + target:addMod(MOD_MP, 9999); + target:addMod(MOD_STR, 999); + target:addMod(MOD_DEX, 999); + target:addMod(MOD_AGI, 999); + target:addMod(MOD_VIT, 999); + target:addMod(MOD_INT, 999); + target:addMod(MOD_MND, 999); + target:addMod(MOD_CHR, 999); + target:addMod(MOD_ATT, 999); + target:addMod(MOD_DEF, 999); + target:addMod(MOD_REGEN, 300); + target:addMod(MOD_REFRESH, 300); + target:addMod(MOD_REGAIN, 50); + target:addMod(MOD_DMG, -90); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 9999); + target:delMod(MOD_MP, 9999); + target:delMod(MOD_STR, 999); + target:delMod(MOD_DEX, 999); + target:delMod(MOD_AGI, 999); + target:delMod(MOD_VIT, 999); + target:delMod(MOD_INT, 999); + target:delMod(MOD_MND, 999); + target:delMod(MOD_CHR, 999); + target:delMod(MOD_ATT, 999); + target:delMod(MOD_DEF, 999); + target:delMod(MOD_REGEN, 300); + target:delMod(MOD_REFRESH, 300); + target:delMod(MOD_REGAIN, 50); + target:delMod(MOD_DMG, -90); +end; Index: scripts/globals/items/flask_of_strange_milk.lua =================================================================== --- scripts/globals/items/flask_of_strange_milk.lua (revision 0) +++ scripts/globals/items/flask_of_strange_milk.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------------- +-- ID: 5437 +-- Item: Flask of Strange Milk +-- Item Effect: Restores 500 HP over 300 seconds. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_REGEN) == false) then + target:addStatusEffect(EFFECT_REGEN,5,3,300); + else + target:messageBasic(423); + end +end; + Index: scripts/globals/items/flask_of_vitriol.lua =================================================================== --- scripts/globals/items/flask_of_vitriol.lua (revision 0) +++ scripts/globals/items/flask_of_vitriol.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 4171 +-- Item: Flask of Vitriol +-- Item Effect: Defense -20% +-- Duration: 3 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,180,4171)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEFP, -20); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEFP, -20); +end; \ No newline at end of file Index: scripts/globals/items/flask_of_walahra_water.lua =================================================================== --- scripts/globals/items/flask_of_walahra_water.lua (revision 0) +++ scripts/globals/items/flask_of_walahra_water.lua (working copy) @@ -0,0 +1,60 @@ +----------------------------------------- +-- ID: 5354 +-- Item: Flask of Walahra Water +-- Item Effect: HP +5% MP +5% +-- Durration: Medicated 3 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + mHP = target:getMaxHP(); + cHP = target:getHP(); + mMP = target:getMaxMP(); + cMP = target:getMP(); + + if (mHP == cHP and mMP == cMP) then + result = 56; -- Does not let player use item if their hp and mp are full + end + + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + if(target:addStatusEffect(EFFECT_MEDICINE,0,0,180,5354)) then + target:messageBasic(205); + target:addHP((target:getMaxHP()/100)*5); + target:addMP((target:getMaxMP()/100)*5); + target:messageBasic(26); + + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; Index: scripts/globals/items/flexible_pole.lua =================================================================== --- scripts/globals/items/flexible_pole.lua (revision 0) +++ scripts/globals/items/flexible_pole.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 18586 +-- Item: Flexible Pole +-- Enchantment: Attack +3 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18586); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ATT, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ATT, 3); +end; + Index: scripts/globals/items/forest_carp.lua =================================================================== --- scripts/globals/items/forest_carp.lua (revision 3520) +++ scripts/globals/items/forest_carp.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/fourth_staff.lua =================================================================== --- scripts/globals/items/fourth_staff.lua (revision 0) +++ scripts/globals/items/fourth_staff.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 18613 +-- Item: Fourth Staff +-- Enchantment: "Retrace" (Bastok) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(87) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + fourthStaff(target); +end; \ No newline at end of file Index: scripts/globals/items/frayed_pouch_of_advancement.lua =================================================================== --- scripts/globals/items/frayed_pouch_of_advancement.lua (revision 0) +++ scripts/globals/items/frayed_pouch_of_advancement.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------------- +-- ID: 5855 +-- Item: Frayed Pouch (A) +-- Effect: When used, you will obtain 1-12 Coins of Advancement +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local amount = math.random(1,12) + target:addItem(2604,amount); +end; + Index: scripts/globals/items/frayed_pouch_of_birth.lua =================================================================== --- scripts/globals/items/frayed_pouch_of_birth.lua (revision 0) +++ scripts/globals/items/frayed_pouch_of_birth.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------------- +-- ID: 5854 +-- Item: Frayed Pouch (B) +-- Effect: When used, you will obtain 1-12 Coins of Birth +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local amount = math.random(1,12) + target:addItem(2603,amount); +end; + Index: scripts/globals/items/frayed_pouch_of_decay.lua =================================================================== --- scripts/globals/items/frayed_pouch_of_decay.lua (revision 0) +++ scripts/globals/items/frayed_pouch_of_decay.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------------- +-- ID: 5857 +-- Item: Frayed Pouch (D) +-- Effect: When used, you will obtain 1-12 Coins of Decay +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local amount = math.random(1,12) + target:addItem(2606,amount); +end; + Index: scripts/globals/items/frayed_pouch_of_glory.lua =================================================================== --- scripts/globals/items/frayed_pouch_of_glory.lua (revision 0) +++ scripts/globals/items/frayed_pouch_of_glory.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------------- +-- ID: 5856 +-- Item: Frayed Pouch (G) +-- Effect: When used, you will obtain 1-12 Coins of Glory +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local amount = math.random(1,12) + target:addItem(2605,amount); +end; + Index: scripts/globals/items/frayed_pouch_of_ruin.lua =================================================================== --- scripts/globals/items/frayed_pouch_of_ruin.lua (revision 0) +++ scripts/globals/items/frayed_pouch_of_ruin.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------------- +-- ID: 5858 +-- Item: Frayed Pouch (R) +-- Effect: When used, you will obtain 1-12 Coins of Ruin +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local amount = math.random(1,12) + target:addItem(2607,amount); +end; + Index: scripts/globals/items/fum-long_salmon_sub.lua =================================================================== --- scripts/globals/items/fum-long_salmon_sub.lua (revision 0) +++ scripts/globals/items/fum-long_salmon_sub.lua (working copy) @@ -0,0 +1,60 @@ +----------------------------------------- +-- ID: 4266 +-- Item: Fum-Long Salmon Sub +-- Food Effect: 60Min, All Races +----------------------------------------- +-- Agility 1 +-- Vitality 1 +-- Dexterity 2 +-- Intelligence 2 +-- Mind -2 +-- Ranged Accuracy 3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,3600,4266); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, 1); + target:addMod(MOD_VIT, 1); + target:addMod(MOD_DEX, 2); + target:addMod(MOD_INT, 1); + target:addMod(MOD_MND, -2); + target:addMod(MOD_RACC, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, 1); + target:delMod(MOD_VIT, 1); + target:delMod(MOD_DEX, 2); + target:delMod(MOD_INT, 1); + target:delMod(MOD_MND, -2); + target:delMod(MOD_RACC, 3); +end; Index: scripts/globals/items/gaiardas_ring.lua =================================================================== --- scripts/globals/items/gaiardas_ring.lua (revision 0) +++ scripts/globals/items/gaiardas_ring.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 10775 +-- Item: Gaiardas Ring +-- Enchantment: Attack +10 +-- Durration: 5 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,300,10775); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ATT, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ATT, 10); +end; + Index: scripts/globals/items/gamushara_earring.lua =================================================================== --- scripts/globals/items/gamushara_earring.lua (revision 0) +++ scripts/globals/items/gamushara_earring.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 14788 +-- Item: Gamushara Earring +-- Enchantment: Attack +22 +-- Durration: 3 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,180,14788); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ATK, 22); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ATK, 22); +end; + Index: scripts/globals/items/gargouille_quiver.lua =================================================================== --- scripts/globals/items/gargouille_quiver.lua (revision 0) +++ scripts/globals/items/gargouille_quiver.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5912 +-- Item: Gargouille Quiver +-- When used, you will obtain one stack of Gargouille Arrows +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(19800,99); +end; \ No newline at end of file Index: scripts/globals/items/gargoyle_boots.lua =================================================================== --- scripts/globals/items/gargoyle_boots.lua (revision 0) +++ scripts/globals/items/gargoyle_boots.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- ID: 15326 +-- Item: Gargoyle Boots +-- Enchantment: Wyvern Stoneskin +-- Durration: 1 Min +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local pet = target:getPet(); + if(pet:addStatusEffect(EFFECT_STONESKIN, 200, 0, 60)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; Index: scripts/globals/items/gateau_aux_fraises.lua =================================================================== --- scripts/globals/items/gateau_aux_fraises.lua (revision 0) +++ scripts/globals/items/gateau_aux_fraises.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5542 +-- Item: Gateau aux fraises +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP 8 +-- MP 8% Cap 50 +-- Intelligence 1 +-- MP Recovered while healing 1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5542); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 8); + target:addMod(MOD_INT, 1); + target:addMod(MOD_FOOD_MPP, 8); + target:addMod(MOD_FOOD_MP_CAP, 50); + target:addMod(MOD_MPHEAL, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 8); + target:delMod(MOD_INT, 1); + target:delMod(MOD_FOOD_MPP, 8); + target:delMod(MOD_FOOD_MP_CAP, 50); + target:delMod(MOD_MPHEAL, 1); +end; Index: scripts/globals/items/gaubious_ring.lua =================================================================== --- scripts/globals/items/gaubious_ring.lua (revision 0) +++ scripts/globals/items/gaubious_ring.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 10776 +-- Item: Gaubious Ring +-- Enchantment: Accuracy +10 +-- Durration: 5 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,300,10776); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ACC, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ACC, 10); +end; + Index: scripts/globals/items/geo-acumen.lua =================================================================== --- scripts/globals/items/geo-acumen.lua (revision 0) +++ scripts/globals/items/geo-acumen.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6114 +-- Item: Geo-Acumen +-- Teaches the Geomancer Magic Geo-Acumen +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(811); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(811); +end; \ No newline at end of file Index: scripts/globals/items/geo-agi.lua =================================================================== --- scripts/globals/items/geo-agi.lua (revision 0) +++ scripts/globals/items/geo-agi.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6108 +-- Item: Geo-AGI +-- Teaches the Geomancer Magic Geo-AGI +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(805); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(805); +end; \ No newline at end of file Index: scripts/globals/items/geo-attunement.lua =================================================================== --- scripts/globals/items/geo-attunement.lua (revision 0) +++ scripts/globals/items/geo-attunement.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6119 +-- Item: Geo-Attunement +-- Teaches the Geomancer Magic Geo-Atunement +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(816); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(816); +end; \ No newline at end of file Index: scripts/globals/items/geo-barrier.lua =================================================================== --- scripts/globals/items/geo-barrier.lua (revision 0) +++ scripts/globals/items/geo-barrier.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6113 +-- Item: Geo-Barrier +-- Teaches the Geomancer Magic Geo-Barrier +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(810); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(810); +end; \ No newline at end of file Index: scripts/globals/items/geo-chr.lua =================================================================== --- scripts/globals/items/geo-chr.lua (revision 0) +++ scripts/globals/items/geo-chr.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6111 +-- Item: Geo-CHR +-- Teaches the Geomancer Magic Geo-CHR +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(808); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(808); +end; \ No newline at end of file Index: scripts/globals/items/geo-dex.lua =================================================================== --- scripts/globals/items/geo-dex.lua (revision 0) +++ scripts/globals/items/geo-dex.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6106 +-- Item: Geo-DEX +-- Teaches the Geomancer Magic Geo-DEX +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(803); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(803); +end; \ No newline at end of file Index: scripts/globals/items/geo-fade.lua =================================================================== --- scripts/globals/items/geo-fade.lua (revision 0) +++ scripts/globals/items/geo-fade.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6122 +-- Item: Geo-Fade +-- Teaches the Geomancer Magic Geo-Fade +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(819); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(819); +end; \ No newline at end of file Index: scripts/globals/items/geo-fend.lua =================================================================== --- scripts/globals/items/geo-fend.lua (revision 0) +++ scripts/globals/items/geo-fend.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6115 +-- Item: Geo-Fend +-- Teaches the Geomancer Magic Geo-Fend +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(812); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(812); +end; \ No newline at end of file Index: scripts/globals/items/geo-focus.lua =================================================================== --- scripts/globals/items/geo-focus.lua (revision 0) +++ scripts/globals/items/geo-focus.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6118 +-- Item: Geo-Focus +-- Teaches the Geomancer Magic Geo-Focus +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(815); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(815); +end; \ No newline at end of file Index: scripts/globals/items/geo-frailty.lua =================================================================== --- scripts/globals/items/geo-frailty.lua (revision 0) +++ scripts/globals/items/geo-frailty.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6121 +-- Item: Geo-Frailty +-- Teaches the Geomancer Magic Geo-Frailty +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(818); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(818); +end; \ No newline at end of file Index: scripts/globals/items/geo-fury.lua =================================================================== --- scripts/globals/items/geo-fury.lua (revision 0) +++ scripts/globals/items/geo-fury.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6112 +-- Item: Geo-Fury +-- Teaches the Geomancer Magic Geo-Fury +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(809); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(809); +end; \ No newline at end of file Index: scripts/globals/items/geo-gravity.lua =================================================================== --- scripts/globals/items/geo-gravity.lua (revision 0) +++ scripts/globals/items/geo-gravity.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6130 +-- Item: Geo-Gravity +-- Teaches the Geomancer Magic Geo-Gravity +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(827); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(827); +end; \ No newline at end of file Index: scripts/globals/items/geo-int.lua =================================================================== --- scripts/globals/items/geo-int.lua (revision 0) +++ scripts/globals/items/geo-int.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6109 +-- Item: Geo-INT +-- Teaches the Geomancer Magic Geo-INT +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(806); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(806); +end; \ No newline at end of file Index: scripts/globals/items/geo-languor.lua =================================================================== --- scripts/globals/items/geo-languor.lua (revision 0) +++ scripts/globals/items/geo-languor.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6127 +-- Item: Geo-Languor +-- Teaches the Geomancer Magic Geo-Languor +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(824); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(824); +end; \ No newline at end of file Index: scripts/globals/items/geo-malaise.lua =================================================================== --- scripts/globals/items/geo-malaise.lua (revision 0) +++ scripts/globals/items/geo-malaise.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6123 +-- Item: Geo-Malaise +-- Teaches the Geomancer Magic Geo-Malaise +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(820); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(820); +end; \ No newline at end of file Index: scripts/globals/items/geo-mnd.lua =================================================================== --- scripts/globals/items/geo-mnd.lua (revision 0) +++ scripts/globals/items/geo-mnd.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6110 +-- Item: Geo-MND +-- Teaches the Geomancer Magic Geo-MND +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(807); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(807); +end; \ No newline at end of file Index: scripts/globals/items/geo-paralysis.lua =================================================================== --- scripts/globals/items/geo-paralysis.lua (revision 0) +++ scripts/globals/items/geo-paralysis.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6129 +-- Item: Geo-Paralysis +-- Teaches the Geomancer Magic Geo-Paralysis +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(826); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(826); +end; \ No newline at end of file Index: scripts/globals/items/geo-poison.lua =================================================================== --- scripts/globals/items/geo-poison.lua (revision 0) +++ scripts/globals/items/geo-poison.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6103 +-- Item: Geo-Poison +-- Teaches the Geomancer Magic Geo-Poison +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(799); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(799); +end; \ No newline at end of file Index: scripts/globals/items/geo-precision.lua =================================================================== --- scripts/globals/items/geo-precision.lua (revision 0) +++ scripts/globals/items/geo-precision.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6116 +-- Item: Geo-Precision +-- Teaches the Geomancer Magic Geo-Precision +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(813); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(813); +end; \ No newline at end of file Index: scripts/globals/items/geo-refresh.lua =================================================================== --- scripts/globals/items/geo-refresh.lua (revision 0) +++ scripts/globals/items/geo-refresh.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6104 +-- Item: Geo-Refresh +-- Teaches the Geomancer Magic Geo-Refresh +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(800); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(800); +end; \ No newline at end of file Index: scripts/globals/items/geo-regen.lua =================================================================== --- scripts/globals/items/geo-regen.lua (revision 0) +++ scripts/globals/items/geo-regen.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6102 +-- Item: Geo-Regen +-- Teaches the Geomancer Magic Geo-Regen +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(798); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(798); +end; \ No newline at end of file Index: scripts/globals/items/geo-slip.lua =================================================================== --- scripts/globals/items/geo-slip.lua (revision 0) +++ scripts/globals/items/geo-slip.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6124 +-- Item: Geo-Slip +-- Teaches the Geomancer Magic Geo-Slip +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(821); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(821); +end; \ No newline at end of file Index: scripts/globals/items/geo-slow.lua =================================================================== --- scripts/globals/items/geo-slow.lua (revision 0) +++ scripts/globals/items/geo-slow.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6128 +-- Item: Geo-Slow +-- Teaches the Geomancer Magic Geo-Slow +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(825); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(825); +end; \ No newline at end of file Index: scripts/globals/items/geo-str.lua =================================================================== --- scripts/globals/items/geo-str.lua (revision 0) +++ scripts/globals/items/geo-str.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6105 +-- Item: Geo-STR +-- Teaches the Geomancer Magic Geo-STR +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(802); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(802); +end; \ No newline at end of file Index: scripts/globals/items/geo-torpor.lua =================================================================== --- scripts/globals/items/geo-torpor.lua (revision 0) +++ scripts/globals/items/geo-torpor.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6125 +-- Item: Geo-Torpor +-- Teaches the Geomancer Magic Geo-Torpor +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(822); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(822); +end; \ No newline at end of file Index: scripts/globals/items/geo-vex.lua =================================================================== --- scripts/globals/items/geo-vex.lua (revision 0) +++ scripts/globals/items/geo-vex.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6126 +-- Item: Geo-Vex +-- Teaches the Geomancer Magic Geo-Vex +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(823); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(823); +end; \ No newline at end of file Index: scripts/globals/items/geo-vit.lua =================================================================== --- scripts/globals/items/geo-vit.lua (revision 0) +++ scripts/globals/items/geo-vit.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6107 +-- Item: Geo-VIT +-- Teaches the Geomancer Magic Geo-VIT +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(804); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(804); +end; \ No newline at end of file Index: scripts/globals/items/geo-voidance.lua =================================================================== --- scripts/globals/items/geo-voidance.lua (revision 0) +++ scripts/globals/items/geo-voidance.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6117 +-- Item: Geo-Voidance +-- Teaches the Geomancer Magic Geo-Voidance +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(814); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(814); +end; \ No newline at end of file Index: scripts/globals/items/geo-wilt.lua =================================================================== --- scripts/globals/items/geo-wilt.lua (revision 0) +++ scripts/globals/items/geo-wilt.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6120 +-- Item: Geo-Wilt +-- Teaches the Geomancer Magic Geo-Wilt +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(817); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(817); +end; \ No newline at end of file Index: scripts/globals/items/getsul_ring.lua =================================================================== --- scripts/globals/items/getsul_ring.lua (revision 0) +++ scripts/globals/items/getsul_ring.lua (working copy) @@ -0,0 +1,39 @@ +----------------------------------------- +-- ID: 14681 +-- Getsul Ring +-- Enchantment: Max HP +20% +-- Uses: 20 Duration: 3 Mins +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,180,14681); + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HPP, 20); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HPP, 20); +end; \ No newline at end of file Index: scripts/globals/items/gimlet_spear.lua =================================================================== --- scripts/globals/items/gimlet_spear.lua (revision 0) +++ scripts/globals/items/gimlet_spear.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 18117 +-- Item: Gimlet Spear +-- Enchantment: Attack +3 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18117); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ATT, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ATT, 3); +end; + Index: scripts/globals/items/glyph_axe.lua =================================================================== --- scripts/globals/items/glyph_axe.lua (revision 0) +++ scripts/globals/items/glyph_axe.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16654 +-- Item: Glyph Axe +-- Item Effect: Pet Regain +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_MAIN) == 16654 or target:getEquipID(SLOT_SUB) == 16654) then + pet:addMod(MOD_REGAIN, 1); + else + pet:delMod(MOD_REGAIN, 1); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/gobbie_gavel.lua =================================================================== --- scripts/globals/items/gobbie_gavel.lua (revision 0) +++ scripts/globals/items/gobbie_gavel.lua (working copy) @@ -0,0 +1,24 @@ +----------------------------------------- +-- ID: 17032 +-- Gobbie Gavel +-- Enchantment: 60Min, Costume - Random Goblin +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,(math.random(484,511)),0,3600); +end; \ No newline at end of file Index: scripts/globals/items/gold_carp.lua =================================================================== --- scripts/globals/items/gold_carp.lua (revision 3520) +++ scripts/globals/items/gold_carp.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/gold_lobster.lua =================================================================== --- scripts/globals/items/gold_lobster.lua (revision 3520) +++ scripts/globals/items/gold_lobster.lua (working copy) @@ -18,7 +18,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/greedie.lua =================================================================== --- scripts/globals/items/greedie.lua (revision 3520) +++ scripts/globals/items/greedie.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/grilled_lik.lua =================================================================== --- scripts/globals/items/grilled_lik.lua (revision 0) +++ scripts/globals/items/grilled_lik.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5648 +-- Item: Grilled Lik +-- Food Effect: 60 Mins, All Races +----------------------------------------- +-- Dexterity 4 +-- Mind -1 +---------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,7200,5648); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 4); + target:addMod(MOD_MND, -1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 4); + target:delMod(MOD_MND, -1); +end; Index: scripts/globals/items/gurnard.lua =================================================================== --- scripts/globals/items/gurnard.lua (revision 0) +++ scripts/globals/items/gurnard.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5132 +-- Item: Gurnard +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 2 +-- Mind -4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5132); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 2); + target:addMod(MOD_MND, -4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 2); + target:delMod(MOD_MND, -4); +end; Index: scripts/globals/items/gyokuto_obi.lua =================================================================== --- scripts/globals/items/gyokuto_obi.lua (revision 3520) +++ scripts/globals/items/gyokuto_obi.lua (working copy) @@ -1,9 +1,11 @@ ----------------------------------------- -- ID: 15860 -- Gyokuto Obi --- Enchantment: 60Min, Costume - Large Rarab +-- Enchantment: Costume - Large Rarab +-- Durration: 60 Mins ----------------------------------------- +require("scripts/globals/settings"); require("scripts/globals/status"); ----------------------------------------- Index: scripts/globals/items/halo_claymore.lua =================================================================== --- scripts/globals/items/halo_claymore.lua (revision 3520) +++ scripts/globals/items/halo_claymore.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------------- --- ID: 13682 --- Ether Tank --- When used, you will obtain one Ether +-- ID: 16603 +-- Item: Halo Claymore +-- Enchantment: TP +10 +-- Durration: Instant ----------------------------------------- ----------------------------------------- @@ -9,11 +10,8 @@ ----------------------------------------- function onItemCheck(target) -result = 0; - if (target:getFreeSlotsCount() == 0) then - result = 308; - end -return result; + result = 0; + return result; end; ----------------------------------------- Index: scripts/globals/items/hamsi.lua =================================================================== --- scripts/globals/items/hamsi.lua (revision 0) +++ scripts/globals/items/hamsi.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5449 +-- Item: Hamsi +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 1 +-- Mind -3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5449); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 1); + target:addMod(MOD_MND, -3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 1); + target:delMod(MOD_MND, -3); +end; Index: scripts/globals/items/hanafubuki.lua =================================================================== --- scripts/globals/items/hanafubuki.lua (revision 0) +++ scripts/globals/items/hanafubuki.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 18427 +-- Item: Hanafubuki +-- Item Effect: TP +10 +-- Durration: Instant +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addTP(10); +end; Index: scripts/globals/items/handful_of_roasted_almonds.lua =================================================================== --- scripts/globals/items/handful_of_roasted_almonds.lua (revision 0) +++ scripts/globals/items/handful_of_roasted_almonds.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 5649 +-- Item: Handful of Roasted Almonds +-- Food Effect: 5Min, All Races +----------------------------------------- +-- HP 30 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5649); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 30); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 30); +end; Index: scripts/globals/items/head_of_grauberg_lettuce.lua =================================================================== --- scripts/globals/items/head_of_grauberg_lettuce.lua (revision 0) +++ scripts/globals/items/head_of_grauberg_lettuce.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5688 +-- Item: Head of Grauberg Lettuce +-- Food Effect: 5Min, All Races +----------------------------------------- +-- Agility 1 +-- Vitality -3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5688); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, 1); + target:addMod(MOD_VIT, -3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, 1); + target:delMod(MOD_VIT, -3); +end; Index: scripts/globals/items/healing_feather.lua =================================================================== --- scripts/globals/items/healing_feather.lua (revision 0) +++ scripts/globals/items/healing_feather.lua (working copy) @@ -0,0 +1,42 @@ +----------------------------------------- +-- ID: 18239 +-- Item: Healing Feather +-- Enchantment: Enhances Healing Magic +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,600,18239); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_CURE_POTENCY, 15); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_CURE_POTENCY, 15); +end; \ No newline at end of file Index: scripts/globals/items/heavy_metal_pouch.lua =================================================================== --- scripts/globals/items/heavy_metal_pouch.lua (revision 0) +++ scripts/globals/items/heavy_metal_pouch.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------------- +-- ID: 5910 +-- Item: Heavy Metal Pouch +-- Effect: When used, you will obtain 3-19 Heavy Metal Sheets +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local amount = math.random(3,19) + target:addItem(3509,amount); +end; + Index: scripts/globals/items/hecteyes_belt.lua =================================================================== --- scripts/globals/items/hecteyes_belt.lua (revision 0) +++ scripts/globals/items/hecteyes_belt.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 10852 +-- Hecteyes Belt +-- Enchantment: 60Min, Costume - Hecteyes +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,384,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/high_breath_mantle.lua =================================================================== --- scripts/globals/items/high_breath_mantle.lua (revision 0) +++ scripts/globals/items/high_breath_mantle.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 15487 +-- Item: High Breath Mantle +-- Enchantment: HP +38 Eminity +5 +-- Durration: 30 Mins Charges: 50 +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,15487); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 38); + target:addMod(MOD_ENMITY, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 38); + target:delMod(MOD_ENMITY, 5); +end; \ No newline at end of file Index: scripts/globals/items/high_mana_wand.lua =================================================================== --- scripts/globals/items/high_mana_wand.lua (revision 0) +++ scripts/globals/items/high_mana_wand.lua (working copy) @@ -0,0 +1,42 @@ +----------------------------------------- +-- ID: 18403 +-- Item: High Mana Wand +-- Enchantment: MP Recovered while Healing +4 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18403); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MPHEAL, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MPHEAL, 4); +end; \ No newline at end of file Index: scripts/globals/items/hikogami_yukata.lua =================================================================== --- scripts/globals/items/hikogami_yukata.lua (revision 0) +++ scripts/globals/items/hikogami_yukata.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 11861 +-- Hikogami Yukata +-- When used, you will obtain 1 Super Scoop +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(17003,1); +end; \ No newline at end of file Index: scripts/globals/items/himegami_yukata.lua =================================================================== --- scripts/globals/items/himegami_yukata.lua (revision 0) +++ scripts/globals/items/himegami_yukata.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 11862 +-- Himegami Yukata +-- When used, you will obtain 1 Super Scoop +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(17003,1); +end; \ No newline at end of file Index: scripts/globals/items/homam_gambieras.lua =================================================================== --- scripts/globals/items/homam_gambieras.lua (revision 0) +++ scripts/globals/items/homam_gambieras.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15661 +-- Item: Homam Gambieras +-- Item Effect: Wyvern HP +50 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 15661) then + pet:addMod(MOD_HP, 50); + else + pet:delMod(MOD_HP, 50); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/homing_ring.lua =================================================================== --- scripts/globals/items/homing_ring.lua (revision 0) +++ scripts/globals/items/homing_ring.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 15541 +-- Item: Homing Ring +-- Enchantment: "Teleport" (Outpost) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + homingRing(target); +end; \ No newline at end of file Index: scripts/globals/items/hydra_doublet.lua =================================================================== --- scripts/globals/items/hydra_doublet.lua (revision 3520) +++ scripts/globals/items/hydra_doublet.lua (working copy) @@ -1,30 +1,27 @@ ------------------------------------------ --- ID: 15170 --- Item: Stoneskin torque --- Item Effect: gives refresh ------------------------------------------ - -require("scripts/globals/settings"); - ------------------------------------------ --- OnItemCheck ------------------------------------------ - -function onItemCheck(target) - return 0; -end; - ------------------------------------------ --- OnItemUse ------------------------------------------ - -function onItemUse(target) - - if(target:hasStatusEffect(EFFECT_REFRESH)) then - target:messageBasic(423); - else - -- delete old - target:delStatusEffect(EFFECT_REFRESH); - target:addStatusEffect(EFFECT_REFRESH, 4, 3, 180); - end +----------------------------------------- +-- ID: 14515 +-- Item: Hydra Doublet +-- Enchantment: Adds Auto Refresh +-- Duration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 1800; + target:delStatusEffect(EFFECT_AUTO_REFRESH); + target:addStatusEffect(EFFECT_AUTO_REFRESH,4,1,duration); end; \ No newline at end of file Index: scripts/globals/items/hydra_harness.lua =================================================================== --- scripts/globals/items/hydra_harness.lua (revision 0) +++ scripts/globals/items/hydra_harness.lua (working copy) @@ -0,0 +1,46 @@ +----------------------------------------- +-- ID: 14516 +-- Item: Hydra Harness +-- Enchantment: Attack +25 Ranged Attack +25 +-- Durration: 3 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,180,14516); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ATT, 25); + target:addMod(MOD_RATT, 25); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ATT, 25); + target:delMod(MOD_RATT, 25); +end; + Index: scripts/globals/items/hydra_haubert.lua =================================================================== --- scripts/globals/items/hydra_haubert.lua (revision 3520) +++ scripts/globals/items/hydra_haubert.lua (working copy) @@ -1,30 +1,27 @@ ------------------------------------------ --- ID: 15170 --- Item: Stoneskin torque --- Item Effect: gives refresh ------------------------------------------ - -require("scripts/globals/settings"); - ------------------------------------------ --- OnItemCheck ------------------------------------------ - -function onItemCheck(target) - return 0; -end; - ------------------------------------------ --- OnItemUse ------------------------------------------ - -function onItemUse(target) - - if(target:hasStatusEffect(EFFECT_REFRESH)) then - target:messageBasic(423); - else - -- delete old - target:delStatusEffect(EFFECT_REFRESH); - target:addStatusEffect(EFFECT_REFRESH, 3, 3, 180); - end +----------------------------------------- +-- ID: 14517 +-- Item: Hydra Haubert +-- Enchantment: Adds Auto Refresh +-- Duration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 1800; + target:delStatusEffect(EFFECT_AUTO_REFRESH); + target:addStatusEffect(EFFECT_AUTO_REFRESH,3,1,duration); end; \ No newline at end of file Index: scripts/globals/items/hydra_mitts.lua =================================================================== --- scripts/globals/items/hydra_mitts.lua (revision 0) +++ scripts/globals/items/hydra_mitts.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 14925 +-- Item: Hydra Mitts +-- Enchantment: Accuracy +15 Ranged Accuracy +15 +-- Durration: 5 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,300,14925); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_RACC, 15); + target:addMod(MOD_ACC, 15); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_RACC, 15); + target:delMod(MOD_ACC, 15); +end; \ No newline at end of file Index: scripts/globals/items/hydra_tights.lua =================================================================== --- scripts/globals/items/hydra_tights.lua (revision 0) +++ scripts/globals/items/hydra_tights.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15596 +-- Item: Hydra Tights +-- Enchantment: Haste +-- Duration: 3 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_HASTE, 102, 0, 180)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; \ No newline at end of file Index: scripts/globals/items/ice_card_case.lua =================================================================== --- scripts/globals/items/ice_card_case.lua (revision 0) +++ scripts/globals/items/ice_card_case.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5403 +-- Item: Ice Card Case +-- Effect: When used, you will obtain one stack of Ice Cards +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(2177,99); +end; \ No newline at end of file Index: scripts/globals/items/icefish.lua =================================================================== --- scripts/globals/items/icefish.lua (revision 3520) +++ scripts/globals/items/icefish.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/idis_ledelsens.lua =================================================================== --- scripts/globals/items/idis_ledelsens.lua (revision 0) +++ scripts/globals/items/idis_ledelsens.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 28219 +-- Item: Idi's Ledelsend +-- Effect: Wyvern Evasion +2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 28219) then + pet:addMod(MOD_EVA, 2); + else + pet:delMod(MOD_EVA, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/imperial_omelette.lua =================================================================== --- scripts/globals/items/imperial_omelette.lua (revision 3520) +++ scripts/globals/items/imperial_omelette.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------------- -- ID: 4331 --- Item: imperial_omelette --- Food Effect: 240Min, All Races +-- Item: Imperial Omelette +-- Food Effect: 240 Mins, All Races ----------------------------------------- -- Non Elvaan Stats -- Strength 5 @@ -12,6 +12,7 @@ -- Attack Cap 70 -- Ranged ATT % 22 -- Ranged ATT Cap 70 +----------------------------------------- -- Elvaan Stats -- Strength 6 -- Health 20 @@ -23,7 +24,6 @@ -- Attack Cap 85 -- Ranged ATT % 22 -- Ranged ATT Cap 85 - ----------------------------------------- require("scripts/globals/status"); @@ -98,7 +98,7 @@ target:delMod(MOD_DEX, 2); target:delMod(MOD_INT, -2); target:delMod(MOD_MND, 5); - target:delMod(MOD_CHR, 4); + target:delMod(MOD_CHR, 4); target:delMod(MOD_FOOD_ATTP, 22); target:delMod(MOD_FOOD_ATT_CAP, 85); target:delMod(MOD_FOOD_RATTP, 22); Index: scripts/globals/items/invisible_mantle.lua =================================================================== --- scripts/globals/items/invisible_mantle.lua (revision 3520) +++ scripts/globals/items/invisible_mantle.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------------- --- ID: 15170 --- Item: Stoneskin torque --- Item Effect: gives invisible +-- ID: 13685 +-- Item: Invisible Mantle +-- Item Effect: Invisible +-- Duration: 3 Mins Charges: 20 ----------------------------------------- require("scripts/globals/settings"); @@ -20,11 +21,13 @@ function onItemUse(target) - if(target:hasStatusEffect(EFFECT_INVISIBLE)) then - target:messageBasic(423); - else - -- delete old - target:delStatusEffect(EFFECT_INVISIBLE); - target:addStatusEffect(EFFECT_INVISIBLE, 0, 10, 180* SNEAK_INVIS_DURATION_MULTIPLIER); - end + if(target:hasStatusEffect(EFFECT_INVISIBLE)) then + target:messageBasic(423); + else + local duration = 180; + duration = duration + (duration * target:getMod(MOD_INVIS_DUR)); + if (not target:hasStatusEffect(EFFECT_INVISIBLE)) then + target:addStatusEffect(EFFECT_INVISIBLE,0,10,duration); + end + end end; \ No newline at end of file Index: scripts/globals/items/irmik_helvasi.lua =================================================================== --- scripts/globals/items/irmik_helvasi.lua (revision 0) +++ scripts/globals/items/irmik_helvasi.lua (working copy) @@ -0,0 +1,59 @@ +----------------------------------------- +-- ID: 5572 +-- Item: Irmik Helvasi +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% Cap 70 +-- MP +3% Cap 13 +-- Intelligence +1 +-- MP Recovered while healing +7 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5572); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_FOOD_HP_CAP, 70); + target:addMod(MOD_FOOD_MPP, 3); + target:addMod(MOD_FOOD_MP_CAP, 13); + target:addMod(MOD_INT, 1); + target:addMod(MOD_MPHEAL, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_FOOD_HP_CAP, 70); + target:delMod(MOD_FOOD_MPP, 3); + target:delMod(MOD_FOOD_MP_CAP, 13); + target:delMod(MOD_INT, 1); + target:delMod(MOD_MPHEAL, 1); +end; Index: scripts/globals/items/irmik_helvasi_+1.lua =================================================================== --- scripts/globals/items/irmik_helvasi_+1.lua (revision 0) +++ scripts/globals/items/irmik_helvasi_+1.lua (working copy) @@ -0,0 +1,59 @@ +----------------------------------------- +-- ID: 5573 +-- Item: Irmik Helvasi +1 +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% Cap 80 +-- MP +3% Cap 15 +-- Intelligence +1 +-- MP Recovered while healing +7 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5573); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_FOOD_HP_CAP, 80); + target:addMod(MOD_FOOD_MPP, 3); + target:addMod(MOD_FOOD_MP_CAP, 15); + target:addMod(MOD_INT, 1); + target:addMod(MOD_MPHEAL, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_FOOD_HP_CAP, 80); + target:delMod(MOD_FOOD_MPP, 3); + target:delMod(MOD_FOOD_MP_CAP, 15); + target:delMod(MOD_INT, 1); + target:delMod(MOD_MPHEAL, 1); +end; Index: scripts/globals/items/iron_musketeers_quiver.lua =================================================================== --- scripts/globals/items/iron_musketeers_quiver.lua (revision 0) +++ scripts/globals/items/iron_musketeers_quiver.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15957 +-- Iron Musketeer Quiver +-- When used, you will obtain 1 Iron Musketeer's Bolt +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(18739,1); +end; \ No newline at end of file Index: scripts/globals/items/istakoz.lua =================================================================== --- scripts/globals/items/istakoz.lua (revision 0) +++ scripts/globals/items/istakoz.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5453 +-- Item: Istakoz +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity -5 +-- Vitality 3 +-- Defense +15.4% +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5453); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, -5); + target:addMod(MOD_VIT, 3); + target:addMod(MOD_DEFP, 16); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, -5); + target:delMod(MOD_VIT, 3); + target:delMod(MOD_DEFP, 16); +end; Index: scripts/globals/items/istiridye.lua =================================================================== --- scripts/globals/items/istiridye.lua (revision 0) +++ scripts/globals/items/istiridye.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5456 +-- Item: Istiridye +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity -5 +-- Vitality 4 +-- Defense +17.07% +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5456); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, -5); + target:addMod(MOD_VIT, 4); + target:addMod(MOD_DEFP, 17.07); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, -5); + target:delMod(MOD_VIT, 4); + target:delMod(MOD_DEFP, 17.07); +end; Index: scripts/globals/items/jacknife.lua =================================================================== --- scripts/globals/items/jacknife.lua (revision 0) +++ scripts/globals/items/jacknife.lua (working copy) @@ -0,0 +1,59 @@ +----------------------------------------- +-- ID: 5123 +-- Item: Jacknife +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity -5 +-- Vitality 4 +-- Defence 16% Cap 50 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5123); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, -5); + target:addMod(MOD_VIT, 4); + target:addMod(MOD_FOOD_DEFP, 16); + target:addMod(MOD_FOOD_DEF_CAP, 50); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, -5); + target:delMod(MOD_VIT, 4); + target:delMod(MOD_FOOD_DEFP, 16); + target:delMod(MOD_FOOD_DEF_CAP, 50); +end; Index: scripts/globals/items/janizary_earring.lua =================================================================== --- scripts/globals/items/janizary_earring.lua (revision 0) +++ scripts/globals/items/janizary_earring.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 14785 +-- Item: Janizary Earring +-- Enchantment: DEF 32 +-- Charges: 20 Reuse Delay: 30 Mins +-- Duration: 60 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,60,14785); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEF, 32); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEF, 32); +end; \ No newline at end of file Index: scripts/globals/items/janus_guard.lua =================================================================== --- scripts/globals/items/janus_guard.lua (revision 0) +++ scripts/globals/items/janus_guard.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10808 +-- Janus Guard +-- When used, you will obtain one Saruta Orange +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(4392,1); +end; \ No newline at end of file Index: scripts/globals/items/jar_of_marinara_sauce.lua =================================================================== --- scripts/globals/items/jar_of_marinara_sauce.lua (revision 0) +++ scripts/globals/items/jar_of_marinara_sauce.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5747 +-- Item: Jar of Marinara Sauce +-- Food Effect: 5Min, All Races +----------------------------------------- +-- Mind 2 +-- Intelligence 1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5747); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MND, 2); + target:addMod(MOD_INT, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MND, 2); + target:delMod(MOD_INT, 1); +end; Index: scripts/globals/items/jet_sickle.lua =================================================================== --- scripts/globals/items/jet_sickle.lua (revision 0) +++ scripts/globals/items/jet_sickle.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 18945 +-- Item: Jet Sickle +-- Item Effect: TP +10 +-- Durration: Instant +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addTP(10); +end; Index: scripts/globals/items/jolt_axe.lua =================================================================== --- scripts/globals/items/jolt_axe.lua (revision 0) +++ scripts/globals/items/jolt_axe.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 17954 +-- Item: Jolt Axe +-- Enchantment: Attack +3 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,17954); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ATT, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ATT, 3); +end; + Index: scripts/globals/items/jug_of_selbina_milk.lua =================================================================== --- scripts/globals/items/jug_of_selbina_milk.lua (revision 3520) +++ scripts/globals/items/jug_of_selbina_milk.lua (working copy) @@ -19,8 +19,13 @@ ----------------------------------------- function onItemUse(target) + local body = caster:getEquipID(SLOT_BODY); if(target:hasStatusEffect(EFFECT_REGEN) == false) then - target:addStatusEffect(EFFECT_REGEN,1,3,180); + if (body == 14520) then -- Dream Robe +1 + target:addStatusEffect(EFFECT_REGEN,1,3,120); + else + target:addStatusEffect(EFFECT_REGEN,1,3,150); + end else target:messageBasic(423); end Index: scripts/globals/items/juglan_jumble.lua =================================================================== --- scripts/globals/items/juglan_jumble.lua (revision 0) +++ scripts/globals/items/juglan_jumble.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5923 +-- Item: Juglan Jumble +-- Food Effect: 5 Mins, All Races +----------------------------------------- +-- Bird Killer 12 +-- MP Recovered While Healing 4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5923); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_BIRD_KILLER, 12); + target:addMod(MOD_MPHEAL, 8); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_BIRD_KILLER, 12); + target:delMod(MOD_MPHEAL, 8); +end; Index: scripts/globals/items/kalamar.lua =================================================================== --- scripts/globals/items/kalamar.lua (revision 0) +++ scripts/globals/items/kalamar.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5448 +-- Item: Kalamar +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 3 +-- Mind -5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5448); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 3); + target:addMod(MOD_MND, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 3); + target:delMod(MOD_MND, -5); +end; Index: scripts/globals/items/kaplumbaga.lua =================================================================== --- scripts/globals/items/kaplumbaga.lua (revision 0) +++ scripts/globals/items/kaplumbaga.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5464 +-- Item: Kaplumbaga +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 3 +-- Mind -5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5464); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 3); + target:addMod(MOD_MND, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 3); + target:delMod(MOD_MND, -5); +end; Index: scripts/globals/items/karagoz_mantle.lua =================================================================== --- scripts/globals/items/karagoz_mantle.lua (revision 0) +++ scripts/globals/items/karagoz_mantle.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11571 +-- Item: Karagoz Mantle +-- Item Effect: Automation: Accuracy +12 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_BACK) == 11571) then + pet:addMod(MOD_ACC, 12); + else + pet:delMod(MOD_ACC, 12); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/kawahori_kabuto.lua =================================================================== --- scripts/globals/items/kawahori_kabuto.lua (revision 0) +++ scripts/globals/items/kawahori_kabuto.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------------- +-- ID: 16071 +-- Item: Kawahori Kabuto +-- Enchantment: Blindness +-- Durration: 3 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_BLINDNESS) == false) then + target:addStatusEffect(EFFECT_BLINDNESS,25,0,180); + else + target:messageBasic(423); + end +end; Index: scripts/globals/items/kayabaligi.lua =================================================================== --- scripts/globals/items/kayabaligi.lua (revision 0) +++ scripts/globals/items/kayabaligi.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5460 +-- Item: Kayabaligi +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 4 +-- Mind -6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5460); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 4); + target:addMod(MOD_MND, -6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 4); + target:delMod(MOD_MND, -6); +end; Index: scripts/globals/items/kazham_earring.lua =================================================================== --- scripts/globals/items/kazham_earring.lua (revision 0) +++ scripts/globals/items/kazham_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16046 +-- Item: Kazham Earring +-- Enchantment: "Teleport" (Kazham) +----------------------------------------- + +require("scripts/globals/teleports") +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(250) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + kazhamEarring(target); +end; \ No newline at end of file Index: scripts/globals/items/kers_sollerets.lua =================================================================== --- scripts/globals/items/kers_sollerets.lua (revision 0) +++ scripts/globals/items/kers_sollerets.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 28213 +-- Item: Ker's Sollerets +-- Item Effect: Wyvern ATK +13 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 28213) then + pet:addMod(MOD_ATT, 13); + else + pet:delMod(MOD_ATT, 13); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/key_ring_belt.lua =================================================================== --- scripts/globals/items/key_ring_belt.lua (revision 0) +++ scripts/globals/items/key_ring_belt.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15880 +-- Key Ring Belt +-- When used, you will obtain 1 Skeleton Key +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(1115,1); +end; \ No newline at end of file Index: scripts/globals/items/kingdom_earring.lua =================================================================== --- scripts/globals/items/kingdom_earring.lua (revision 0) +++ scripts/globals/items/kingdom_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16039 +-- Item: Kingdom Earring +-- Enchantment: "Teleport" (Southern San d'Oria) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(230) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + kingdomEarring(target); +end; \ No newline at end of file Index: scripts/globals/items/kingdom_signet_staff.lua =================================================================== --- scripts/globals/items/kingdom_signet_staff.lua (revision 0) +++ scripts/globals/items/kingdom_signet_staff.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 17583 +-- Item: Kingdom Signet Staff +-- Item Effect: Grants target Signet +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:getNation() ~= 0) then + result = 56; + end + if (target:checkSoloPartyAlliance() == 0) then + result = 56; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:delStatusEffect(EFFECT_SIGNET); + target:addStatusEffect(EFFECT_SIGNET,0,0,18000,0,0); +end; + + Index: scripts/globals/items/kingdom_stables_collar.lua =================================================================== --- scripts/globals/items/kingdom_stables_collar.lua (revision 0) +++ scripts/globals/items/kingdom_stables_collar.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 13179 +-- Item: Kingdom Stables Collar +-- Enchantment: "Teleport" (San d'Oria Chocobo Stables) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(230) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + kingdomStablesScarf(target); +end; \ No newline at end of file Index: scripts/globals/items/kinkobo.lua =================================================================== --- scripts/globals/items/kinkobo.lua (revision 0) +++ scripts/globals/items/kinkobo.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 17592 +-- Item: Kinkobo +-- Enchantment: Subtle Blow +-- Duration: 60 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,3600,17592); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_SUBTLE_BLOW, 20); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_SUBTLE_BLOW, 20); +end; \ No newline at end of file Index: scripts/globals/items/kitron.lua =================================================================== --- scripts/globals/items/kitron.lua (revision 0) +++ scripts/globals/items/kitron.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 4273 +-- Item: Kitron +-- Food Effect: 5Min, All Races +----------------------------------------- +-- Agility -6 +-- Intelligence 4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,4273); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, -6); + target:addMod(MOD_INT, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, -6); + target:delMod(MOD_INT, 4); +end; Index: scripts/globals/items/knuckles_of_trials.lua =================================================================== --- scripts/globals/items/knuckles_of_trials.lua (revision 0) +++ scripts/globals/items/knuckles_of_trials.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 17507 +-- Equip: Knuckles of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 17507) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 20); + target:addMod(MOD_EARTHDEF, 10); + target:addMod(MOD_WATERDEF, 10); + else + target:delMod(MOD_HP, 20); + target:delMod(MOD_EARTHDEF, 10); + target:delMod(MOD_WATERDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/koccos_earring.lua =================================================================== --- scripts/globals/items/koccos_earring.lua (revision 0) +++ scripts/globals/items/koccos_earring.lua (working copy) @@ -0,0 +1,22 @@ +----------------------------------------- +-- ID: 15998 +-- Kocco's Earring +-- This earring functions in the same way as the spell Reraise II. +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 3600; + target:delStatusEffect(EFFECT_RERAISE); + target:addStatusEffect(EFFECT_RERAISE,2,0,duration); +end; Index: scripts/globals/items/kodachi_of_trials.lua =================================================================== --- scripts/globals/items/kodachi_of_trials.lua (revision 0) +++ scripts/globals/items/kodachi_of_trials.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 17773 +-- Equip: Kodachi of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 17773) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 20); + target:addMod(MOD_FIREDEF, 10); + target:addMod(MOD_LIGHTDEF, 10); + else + target:delMod(MOD_HP, 20); + target:delMod(MOD_FIREDEF, 10); + target:delMod(MOD_LIGHTDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/koen.lua =================================================================== --- scripts/globals/items/koen.lua (revision 0) +++ scripts/globals/items/koen.lua (working copy) @@ -0,0 +1,22 @@ +----------------------------------------- +-- ID: 6430 +-- Item: Koen +-- Enchantment: "Enfire" +-- Charges: 30 Reuse: 300 Secs +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENFIRE; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/kohlrouladen.lua =================================================================== --- scripts/globals/items/kohlrouladen.lua (revision 3520) +++ scripts/globals/items/kohlrouladen.lua (working copy) @@ -1,11 +1,14 @@ ----------------------------------------- -- ID: 5760 --- Item: kohlrouladen --- Food Effect: 1hour?, All Races +-- Item: Kohlrouladen +-- Food Effect: 2 Hours, All Races ----------------------------------------- -- Strength 3 -- Agility 3 -- Intelligence -5 +-- Ranged Accuracy 10% Cap 65 +-- Ranged Attack 8% Cap 60 +-- Enmity -4 ----------------------------------------- require("scripts/globals/status"); @@ -27,7 +30,7 @@ ----------------------------------------- function onItemUse(target) - target:addStatusEffect(EFFECT_FOOD,0,0,3600,5760); + target:addStatusEffect(EFFECT_FOOD,0,0,7200,5760); end; ----------------------------------------- @@ -38,6 +41,11 @@ target:addMod(MOD_STR, 3); target:addMod(MOD_AGI, 3); target:addMod(MOD_INT, -5); + target:addMod(MOD_FOOD_RACCP, 14); + target:addMod(MOD_FOOD_RACC_CAP, 65); + target:addMod(MOD_FOOD_RATTP, 8); + target:addMod(MOD_FOOD_RATT_CAP, 60); + target:addMod(MOD_ENMITY, -4); end; ----------------------------------------- @@ -48,4 +56,9 @@ target:delMod(MOD_STR, 3); target:delMod(MOD_AGI, 3); target:delMod(MOD_INT, -5); + target:delMod(MOD_FOOD_RACCP, 14); + target:delMod(MOD_FOOD_RACC_CAP, 65); + target:delMod(MOD_FOOD_RATTP, 8); + target:delMod(MOD_FOOD_RATT_CAP, 60); + target:delMod(MOD_ENMITY, -4); end; Index: scripts/globals/items/kohlrouladen_+1.lua =================================================================== --- scripts/globals/items/kohlrouladen_+1.lua (revision 0) +++ scripts/globals/items/kohlrouladen_+1.lua (working copy) @@ -0,0 +1,64 @@ +----------------------------------------- +-- ID: 5761 +-- Item: Kohlrouladen +1 +-- Food Effect: 2 Hours, All Races +----------------------------------------- +-- Strength 4 +-- Agility 4 +-- Intelligence -4 +-- Ranged Accuracy 10% Cap 70 +-- Ranged Attack 8% Cap 65 +-- Enmity -4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,3600,5761); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 4); + target:addMod(MOD_AGI, 4); + target:addMod(MOD_INT, -4); + target:addMod(MOD_FOOD_RACCP, 15); + target:addMod(MOD_FOOD_RACC_CAP, 70); + target:addMod(MOD_FOOD_RATTP, 10); + target:addMod(MOD_FOOD_RATT_CAP, 65); + target:addMod(MOD_ENMITY, -4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 4); + target:delMod(MOD_AGI, 4); + target:delMod(MOD_INT, -4); + target:delMod(MOD_FOOD_RACCP, 15); + target:delMod(MOD_FOOD_RACC_CAP, 70); + target:delMod(MOD_FOOD_RATTP, 10); + target:delMod(MOD_FOOD_RATT_CAP, 65); + target:delMod(MOD_ENMITY, -4); +end; Index: scripts/globals/items/kupofrieds_ring.lua =================================================================== --- scripts/globals/items/kupofrieds_ring.lua (revision 0) +++ scripts/globals/items/kupofrieds_ring.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 15840 +-- Item: Kupofrieds Ring +-- Experience point bonus +----------------------------------------- +-- Bonus: +100% +-- Duration: 1440 min +-- Max bonus: 6000 exp +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_DEDICATION) == true) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_DEDICATION,100,0,86400); + target:addMod(MOD_DEDICATION_CAP, 6000); +end; \ No newline at end of file Index: scripts/globals/items/lamiabane.lua =================================================================== --- scripts/globals/items/lamiabane.lua (revision 0) +++ scripts/globals/items/lamiabane.lua (working copy) @@ -0,0 +1,42 @@ +----------------------------------------- +-- ID: 18693 +-- Equip: Lamiabane +-- Latent effect: Enhances Magic Atk Bonus +2 +-- Enchantment: Adds "Refresh" +-- Durration: 60 Mins +-- Active while in Mamook, Arrapago Reef, or Halvung +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + +zone = target:getZone(); + +ranged = target:getEquipID(SLOT_RANGED); + + if (ranged == 18693) then + if (zone == 65 or zone == 54 or zone == 62) then + target:addMod(MOD_MATT, 2); + elseif (zone ~= 65 or zone ~= 54 or zone ~= 62) then + target:delMod(MOD_MATT, 2); + end + elseif (ranged ~= 18693 and zone == 65 or zone == 54 or zone == 62) then + target:delMod(MOD_MATT, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 3600; + target:delStatusEffect(EFFECT_REFRESH); + target:addStatusEffect(EFFECT_REFRESH,3,1,duration); +end; \ No newline at end of file Index: scripts/globals/items/lancers_earring.lua =================================================================== --- scripts/globals/items/lancers_earring.lua (revision 0) +++ scripts/globals/items/lancers_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11716 +-- Item: Lancer's Earring +-- Item Effect: Pet HP +20 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_EAR1) == 11716 or target:getEquipID(SLOT_EAR2) == 11716) then + pet:addMod(MOD_HP, 20); + else + pet:addMod(MOD_HP, 20); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/lancers_pelerine.lua =================================================================== --- scripts/globals/items/lancers_pelerine.lua (revision 0) +++ scripts/globals/items/lancers_pelerine.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16208 +-- Item: Lancer's Pelerine +-- Item Effect: Pet HP +30 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_BACK) == 16208) then + pet:addMod(MOD_HP,30); + else + pet:delMod(MOD_HP,30); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/laurel_crown.lua =================================================================== --- scripts/globals/items/laurel_crown.lua (revision 0) +++ scripts/globals/items/laurel_crown.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15213 +-- Item: Laurel Crown +-- Enchantment: "Teleport" (Ru'Lude Gardens) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck // TODO Check Ballista Points +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(243) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse // TODO Remove 1 Ballista Point +----------------------------------------- + +function onItemUse(target) + laurelCrown(target); +end; \ No newline at end of file Index: scripts/globals/items/lebkuchen_house.lua =================================================================== --- scripts/globals/items/lebkuchen_house.lua (revision 0) +++ scripts/globals/items/lebkuchen_house.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5616 +-- Item: Lebkuchen House +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- MP 10% Cap 45 +-- Intelligence 3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5616); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_MPP, 10); + target:addMod(MOD_FOOD_MP_CAP, 45); + target:addMod(MOD_INT, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_MPP, 10); + target:delMod(MOD_FOOD_MP_CAP, 45); + target:delMod(MOD_INT, 3); +end; Index: scripts/globals/items/lebkuchen_manse.lua =================================================================== --- scripts/globals/items/lebkuchen_manse.lua (revision 0) +++ scripts/globals/items/lebkuchen_manse.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5617 +-- Item: Lebkuchen Manse +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- MP 10% Cap 55 +-- Intelligence 4 +-- HP Recovered while healing 3 +-- MP Recovered while healing 2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5617); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_MPP, 10); + target:addMod(MOD_FOOD_MP_CAP, 55); + target:addMod(MOD_INT, 4); + target:addMod(MOD_HPHEAL, 3); + target:addMod(MOD_MPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_MPP, 10); + target:delMod(MOD_FOOD_MP_CAP, 55); + target:delMod(MOD_INT, 4); + target:delMod(MOD_HPHEAL, 3); + target:delMod(MOD_MPHEAL, 2); +end; Index: scripts/globals/items/leech_belt.lua =================================================================== --- scripts/globals/items/leech_belt.lua (revision 0) +++ scripts/globals/items/leech_belt.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 10850 +-- Leech Belt +-- Enchantment: 60Min, Costume - Leech 1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,276,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/lieutenants_cape.lua =================================================================== --- scripts/globals/items/lieutenants_cape.lua (revision 3520) +++ scripts/globals/items/lieutenants_cape.lua (working copy) @@ -1,25 +1,54 @@ ------------------------------------------ --- ID: 14493 --- Item: Healing Vest --- Item Effect: Restores 50% hp and 25% mp ------------------------------------------ - -require("scripts/globals/settings"); - ------------------------------------------ --- OnItemCheck ------------------------------------------ - -function onItemCheck(target) - return 0; -end; - ------------------------------------------ --- OnItemUse ------------------------------------------ - -function onItemUse(target) - target:addHP((target:getMaxHP()/100)*50); - target:addMP((target:getMaxMP()/100)*25); - target:messageBasic(26); +----------------------------------------- +-- ID: 16230 +-- Item: Lieutenants Cape +-- Enchantment: Restore 50% HP & 25% MP +-- Max Charges: 100 Use Delay: 30 secs +-- Casting Time: 8 secs Reuse Delay: 30 mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + mHP = target:getMaxHP(); + cHP = target:getHP(); + mMP = target:getMaxMP(); + cMP = target:getMP(); + + if (mHP == cHP and mMP == cMP) then + result = 56; -- Does not let player use item if their hp and mp are full + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,14957); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addHP((target:getMaxHP()/100)*50); + target:addMP((target:getMaxMP()/100)*25); + target:messageBasic(26); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) end; \ No newline at end of file Index: scripts/globals/items/lieutenants_sash.lua =================================================================== --- scripts/globals/items/lieutenants_sash.lua (revision 0) +++ scripts/globals/items/lieutenants_sash.lua (working copy) @@ -0,0 +1,32 @@ +----------------------------------------- +-- ID: 15912 +-- Item: Lieutenant's Sash +-- Enchantment: Remove Food Effects +-- Max Charges: 100 Use Delay: 12 secs +-- Casting Time: 15 secs Reuse Delay: 30 mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) ~= true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_FOOD) == true) then + target:delStatusEffect(EFFECT_FOOD); + end +end; Index: scripts/globals/items/light_card_case.lua =================================================================== --- scripts/globals/items/light_card_case.lua (revision 0) +++ scripts/globals/items/light_card_case.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5408 +-- Item: Light Card Case +-- Effect: When used, you will obtain one stack of Light Cards +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(2182,99); +end; \ No newline at end of file Index: scripts/globals/items/lion_tamer.lua =================================================================== --- scripts/globals/items/lion_tamer.lua (revision 0) +++ scripts/globals/items/lion_tamer.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- ID: 17961 +-- Item: Lion Tamer +-- Effect: Pet DEF +10 +-- Enchantment: "Enfire" +-- Charges: 50 Reuse: 300 Secs +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_MAIN) == 17961 or target:getEquipID(SLOT_SUB) == 17961) then + pet:addMod(MOD_DEF, 10); + else + pet:delMod(MOD_DEF, 10); + end + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENFIRE; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/lionhead.lua =================================================================== --- scripts/globals/items/lionhead.lua (revision 3520) +++ scripts/globals/items/lionhead.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/little_worm_belt.lua =================================================================== --- scripts/globals/items/little_worm_belt.lua (revision 0) +++ scripts/globals/items/little_worm_belt.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15454 +-- Little Worm Belt +-- When used, you will obtain 1 Little Worm +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(17396,1); +end; \ No newline at end of file Index: scripts/globals/items/lucent_axe.lua =================================================================== --- scripts/globals/items/lucent_axe.lua (revision 0) +++ scripts/globals/items/lucent_axe.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 18481 +-- Item: Lucent Axe +-- Enchantment: Delay 442 +-- Charges: 50 Duration: 30 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18481); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DELAY, -51); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DELAY, -51); +end; \ No newline at end of file Index: scripts/globals/items/lucent_lance.lua =================================================================== --- scripts/globals/items/lucent_lance.lua (revision 0) +++ scripts/globals/items/lucent_lance.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 18108 +-- Item: Lucent Lance +-- Enchantment: Delay 442 +-- Charges: 50 Duration: 30 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18108); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DELAY, -50); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DELAY, -50); +end; \ No newline at end of file Index: scripts/globals/items/lucent_scythe.lua =================================================================== --- scripts/globals/items/lucent_scythe.lua (revision 0) +++ scripts/globals/items/lucent_scythe.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 18062 +-- Item: Lucent Scythe +-- Enchantment: Delay 475 +-- Charges: 50 Duration: 30 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18062); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DELAY, -53); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DELAY, -53); +end; \ No newline at end of file Index: scripts/globals/items/lucent_sword.lua =================================================================== --- scripts/globals/items/lucent_sword.lua (revision 0) +++ scripts/globals/items/lucent_sword.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 18384 +-- Item: Lucent Sword +-- Enchantment: Delay 410 +-- Charges: 50 Duration: 30 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18384); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DELAY, -46); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DELAY, -46); +end; \ No newline at end of file Index: scripts/globals/items/lucid_elixir_i.lua =================================================================== --- scripts/globals/items/lucid_elixir_i.lua (revision 0) +++ scripts/globals/items/lucid_elixir_i.lua (working copy) @@ -0,0 +1,37 @@ +----------------------------------------- +-- ID: 5830 +-- Item: Lucid Elixir I +-- Item Effect: Instantly restores 25% of HP and MP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; +mHP = target:getMaxHP(); +cHP = target:getHP(); +mMP = target:getMaxMP(); +cMP = target:getMP(); + + +if (mHP == cHP and mMP == cMP) then + result = 56; -- Does not let player use item if their hp and mp are full +end + +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addHP((target:getMaxHP()/100)*25); + target:addMP((target:getMaxMP()/100)*25); + target:messageBasic(26); +end; \ No newline at end of file Index: scripts/globals/items/lucid_elixir_ii.lua =================================================================== --- scripts/globals/items/lucid_elixir_ii.lua (revision 0) +++ scripts/globals/items/lucid_elixir_ii.lua (working copy) @@ -0,0 +1,37 @@ +----------------------------------------- +-- ID: 5831 +-- Item: Lucid Elixir II +-- Item Effect: Instantly restores 50% of HP and MP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; +mHP = target:getMaxHP(); +cHP = target:getHP(); +mMP = target:getMaxMP(); +cMP = target:getMP(); + + +if (mHP == cHP and mMP == cMP) then + result = 56; -- Does not let player use item if their hp and mp are full +end + +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addHP((target:getMaxHP()/100)*5); + target:addMP((target:getMaxMP()/100)*5); + target:messageBasic(26); +end; \ No newline at end of file Index: scripts/globals/items/lucid_ether_i.lua =================================================================== --- scripts/globals/items/lucid_ether_i.lua (revision 0) +++ scripts/globals/items/lucid_ether_i.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 5827 +-- Item: Lucid Ether I +-- Item Effect: Restores 250 MP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + value = 0; + mMP = target:getMaxMP(); + cMP = target:getMP(); + + if (mMP == cMP) then + value = 56; -- Does not let player use item if their hp is full + end + + return value; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addMP(250*ITEM_POWER); + target:messageBasic(25,0,250); +end; Index: scripts/globals/items/lucid_ether_ii.lua =================================================================== --- scripts/globals/items/lucid_ether_ii.lua (revision 0) +++ scripts/globals/items/lucid_ether_ii.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 5828 +-- Item: Lucid Ether II +-- Item Effect: Restores 500 MP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + value = 0; + mMP = target:getMaxMP(); + cMP = target:getMP(); + + if (mMP == cMP) then + value = 56; -- Does not let player use item if their hp is full + end + + return value; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addMP(500*ITEM_POWER); + target:messageBasic(25,0,500); +end; Index: scripts/globals/items/lucid_ether_iii.lua =================================================================== --- scripts/globals/items/lucid_ether_iii.lua (revision 0) +++ scripts/globals/items/lucid_ether_iii.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 5829 +-- Item: Lucid Ether III +-- Item Effect: Restores 750 MP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + value = 0; + mMP = target:getMaxMP(); + cMP = target:getMP(); + + if (mMP == cMP) then + value = 56; -- Does not let player use item if their hp is full + end + + return value; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addMP(750*ITEM_POWER); + target:messageBasic(25,0,750); +end; Index: scripts/globals/items/lucid_potion_i.lua =================================================================== --- scripts/globals/items/lucid_potion_i.lua (revision 0) +++ scripts/globals/items/lucid_potion_i.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 5824 +-- Item: Lucid Potion I +-- Item Effect: Restores 500 HP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +value = 0; +mHP = target:getMaxHP(); +cHP = target:getHP(); + +if (mHP == cHP) then + value = 56; -- Does not let player use item if their hp is full +end + +return value; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addHP(500*ITEM_POWER); + target:messageBasic(24,0,500); +end; \ No newline at end of file Index: scripts/globals/items/lucid_potion_ii.lua =================================================================== --- scripts/globals/items/lucid_potion_ii.lua (revision 0) +++ scripts/globals/items/lucid_potion_ii.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 5825 +-- Item: Lucid Potion II +-- Item Effect: Restores 1000 HP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +value = 0; +mHP = target:getMaxHP(); +cHP = target:getHP(); + +if (mHP == cHP) then + value = 56; -- Does not let player use item if their hp is full +end + +return value; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addHP(1000*ITEM_POWER); + target:messageBasic(24,0,1000); +end; \ No newline at end of file Index: scripts/globals/items/lucid_potion_iii.lua =================================================================== --- scripts/globals/items/lucid_potion_iii.lua (revision 0) +++ scripts/globals/items/lucid_potion_iii.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 5826 +-- Item: Lucid Potion III +-- Item Effect: Restores 1500 HP +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +value = 0; +mHP = target:getMaxHP(); +cHP = target:getHP(); + +if (mHP == cHP) then + value = 56; -- Does not let player use item if their hp is full +end + +return value; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addHP(1500*ITEM_POWER); + target:messageBasic(24,0,1500); +end; \ No newline at end of file Index: scripts/globals/items/lugworm_belt.lua =================================================================== --- scripts/globals/items/lugworm_belt.lua (revision 0) +++ scripts/globals/items/lugworm_belt.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15453 +-- Lugworm Belt +-- When used, you will obtain 1 Lugworm +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(17395,1); +end; \ No newline at end of file Index: scripts/globals/items/lunar_cap.lua =================================================================== --- scripts/globals/items/lunar_cap.lua (revision 0) +++ scripts/globals/items/lunar_cap.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------------- +-- ID: 16145 +-- Item: Lunar Cap +-- Enchantment: Adds Regen +-- Duration: 60 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck -- TODO check for party member with Sol Cap +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 3600; + target:delStatusEffect(EFFECT_REGEN; + target:addStatusEffect(EFFECT_REGEN,1,1,duration); +end; \ No newline at end of file Index: scripts/globals/items/lungfish.lua =================================================================== --- scripts/globals/items/lungfish.lua (revision 0) +++ scripts/globals/items/lungfish.lua (working copy) @@ -0,0 +1,53 @@ +----------------------------------------- +-- ID: 4315 +-- Item: Lungfish +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity -2 +-- Mind 4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,4315); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, -2); + target:addMod(MOD_MND, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, -2); + target:delMod(MOD_MND, 4); +end; Index: scripts/globals/items/m&p_cracker.lua =================================================================== --- scripts/globals/items/m&p_cracker.lua (revision 0) +++ scripts/globals/items/m&p_cracker.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5640 +-- Item: M&P Cracker +-- Food Effect: 3Min, All Races +----------------------------------------- +-- Vitality 5 +-- Mind -5 +-- Defense % 25 +-- Attack Cap 154 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,180,5640); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_VIT, 5); + target:addMod(MOD_MND, -5); + target:addMod(MOD_FOOD_DEFP, 25); + target:addMod(MOD_FOOD_DEF_CAP, 154); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_VIT, 5); + target:delMod(MOD_MND, -5); + target:delMod(MOD_FOOD_DEFP, 25); + target:delMod(MOD_FOOD_DEF_CAP, 154); +end; Index: scripts/globals/items/m&p_doner_kabob.lua =================================================================== --- scripts/globals/items/m&p_doner_kabob.lua (revision 0) +++ scripts/globals/items/m&p_doner_kabob.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5717 +-- Item: M&P Doner Kabob +-- Food Effect: 5Min, All Races +----------------------------------------- +-- HP 5% +-- MP 5% +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5717); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HPP, 5); + target:addMod(MOD_MPP, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HPP, 5); + target:delMod(MOD_MPP, 5); +end; Index: scripts/globals/items/m&p_dumpling.lua =================================================================== --- scripts/globals/items/m&p_dumpling.lua (revision 0) +++ scripts/globals/items/m&p_dumpling.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5641 +-- Item: M&P Dumpling +-- Food Effect: 3Min, All Races +----------------------------------------- +-- Intelligence 5 +-- Agility -5 +-- MP 30 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,180,5641); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MP, 30); + target:addMod(MOD_INT, 5); + target:addMod(MOD_AGI, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MP, 30); + target:delMod(MOD_INT, 5); + target:delMod(MOD_AGI, -5); +end; Index: scripts/globals/items/maats_cap.lua =================================================================== --- scripts/globals/items/maats_cap.lua (revision 0) +++ scripts/globals/items/maats_cap.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15194 +-- Item: Maat's Cap +-- Enchantment: "Teleport" (Ru'Lude Gardens) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(243) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + maatsCap(target); +end; \ No newline at end of file Index: scripts/globals/items/maestros_baton.lua =================================================================== --- scripts/globals/items/maestros_baton.lua (revision 0) +++ scripts/globals/items/maestros_baton.lua (working copy) @@ -0,0 +1,24 @@ +----------------------------------------- +-- ID: 18880 +-- Maestro's Baton +-- Enchantment: 60Min, Costume - Hecteyes +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,738,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/magnus_stone_pouch.lua =================================================================== --- scripts/globals/items/magnus_stone_pouch.lua (revision 0) +++ scripts/globals/items/magnus_stone_pouch.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 5443 +-- Item: Magnus Stone Pouch +-- Effect: When used, you will obtain one stack of Magnus stones +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(19262,99); +end; + Index: scripts/globals/items/maharajas_belt.lua =================================================================== --- scripts/globals/items/maharajas_belt.lua (revision 0) +++ scripts/globals/items/maharajas_belt.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 15870 +-- Item: Maharaja's Belt +-- Enchantment: AGI +10 +-- Durration: 1 Min +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,60,15870); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, 3); +end; Index: scripts/globals/items/mamoolbane.lua =================================================================== --- scripts/globals/items/mamoolbane.lua (revision 0) +++ scripts/globals/items/mamoolbane.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 18692 +-- Item: Mamoolbane +-- Enchantment: Evasion +10 +-- Duration: 60 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + target:getZone(); + result = 0; + if(zone ~= 54 or zone ~= 62 or zone ~= 65) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,3600,18692); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_EVA, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_EVA, 10); +end; \ No newline at end of file Index: scripts/globals/items/mana_wand.lua =================================================================== --- scripts/globals/items/mana_wand.lua (revision 0) +++ scripts/globals/items/mana_wand.lua (working copy) @@ -0,0 +1,42 @@ +----------------------------------------- +-- ID: 18402 +-- Item: Mana Wand +-- Enchantment: MP Recovered while Healing +2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18402); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MPHEAL, 2); +end; \ No newline at end of file Index: scripts/globals/items/maple_cake.lua =================================================================== --- scripts/globals/items/maple_cake.lua (revision 0) +++ scripts/globals/items/maple_cake.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5625 +-- Item: Maple Cake +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP Recoverd while healing 1 +-- MP Recovered while healing 4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5625); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HPHEAL, 1); + target:addMod(MOD_MPHEAL, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HPHEAL, 1); + target:delMod(MOD_MPHEAL, 4); +end; Index: scripts/globals/items/marduks_crackows_+1.lua =================================================================== --- scripts/globals/items/marduks_crackows_+1.lua (revision 0) +++ scripts/globals/items/marduks_crackows_+1.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 28211 +-- Item: Marduk's Crackows +1 +-- Item Effect: Avatar ATK +3 Haste +2% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 28211) then + pet:addMod(MOD_ATT, 2); + pet:addMod(MOD_HASTE_GEAR, 20); + else + pet:delMod(MOD_ATT, 2); + pet:delMod(MOD_HASTE_GEAR, 20); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/marine_gilet_+1.lua =================================================================== --- scripts/globals/items/marine_gilet_+1.lua (revision 0) +++ scripts/globals/items/marine_gilet_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10264 +-- Marine Gilet +1 +-- When used, you will obtain 1 Berry Snowcone +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5710,1); +end; \ No newline at end of file Index: scripts/globals/items/marine_top_+1.lua =================================================================== --- scripts/globals/items/marine_top_+1.lua (revision 0) +++ scripts/globals/items/marine_top_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10265 +-- Marine Top +1 +-- When used, you will obtain 1 Berry Snowcone +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5710,1); +end; \ No newline at end of file Index: scripts/globals/items/meatloaf.lua =================================================================== --- scripts/globals/items/meatloaf.lua (revision 0) +++ scripts/globals/items/meatloaf.lua (working copy) @@ -0,0 +1,56 @@ +----------------------------------------- +-- ID: 5689 +-- Item: Meatloaf +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- Strength 6 +-- Agility 2 +-- Intelligence -3 +-- Attack 20% Cap 75 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD)) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5689); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 6); + target:addMod(MOD_AGI, 2); + target:addMod(MOD_INT, -3); + target:addMod(MOD_FOOD_ATTP, 20); + target:addMod(MOD_FOOD_ATT_CAP, 75); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 6); + target:delMod(MOD_AGI, 2); + target:delMod(MOD_INT, -3); + target:delMod(MOD_FOOD_ATTP, 20); + target:delMod(MOD_FOOD_ATT_CAP, 75); +end; Index: scripts/globals/items/meatloaf_+1.lua =================================================================== --- scripts/globals/items/meatloaf_+1.lua (revision 0) +++ scripts/globals/items/meatloaf_+1.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5690 +-- Item: Meatloaf +1 +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Needs verification +-- Strength 6 +-- Agility 2 +-- Intelligence -2 +-- Attack 25% Cap 85 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD)) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5690); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 6); + target:addMod(MOD_AGI, 2); + target:addMod(MOD_INT, -2); + target:addMod(MOD_FOOD_ATTP, 25); + target:addMod(MOD_FOOD_ATT_CAP, 85); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 6); + target:delMod(MOD_AGI, 2); + target:delMod(MOD_INT, -2); + target:delMod(MOD_FOOD_ATTP, 25); + target:delMod(MOD_FOOD_ATT_CAP, 85); +end; Index: scripts/globals/items/megalixir.lua =================================================================== --- scripts/globals/items/megalixir.lua (revision 3520) +++ scripts/globals/items/megalixir.lua (working copy) @@ -1,10 +1,11 @@ ----------------------------------------- -- ID: 4145 --- Item: Elixir +-- Item: Mega Elixir -- Item Effect: Instantly restores 100% of HP and MP ----------------------------------------- require("scripts/globals/settings"); +require("scripts/globals/status"); ----------------------------------------- -- OnItemCheck Index: scripts/globals/items/megrim_crown.lua =================================================================== --- scripts/globals/items/megrim_crown.lua (revision 0) +++ scripts/globals/items/megrim_crown.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 16077 +-- Item: Megrim Crown +-- Enchantment: ??? Random +-- Durration: 15 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + var = math.random(1,8); + DEFmod = math.random(5,15) + ATKmod = math.random(5,15) + ACCmod = math.random(5,15) + if (var == 1) then + if (target:hasStatusEffect(EFFECT_DEFENSE_BOOST) == false) then + target:addStatusEffect(EFFECT_DEFEFENSE_BOOST,DEFmod,0,900); + end + elseif (var == 2) then + if (target:hasStatusEffect(EFFECT_ATTACK_BOOST) == false) then + target:addStatusEffect(EFFECT_ATTACK_BOOST,ATKmod,0,900); + end + elseif (var == 3) then + if (target:hasStatusEffect(EFFECT_ACCURACY_BOOST) == false) then + target:addStatusEffect(EFFECT_ACCURACY_BOOST,ACCmod,0,900); + end + elseif (var == 4) then + if (target:hasStatusEffect(EFFECT_BLINK) == false) then + target:addStatusEffect(EFFECT_BLINK,4,1,900); + end + elseif (var == 5) then + if (target:hasStatusEffect(EFFECT_REGEN) == false) then + target:addStatusEffect(EFFECT_REGEN,3,1,900); + end + elseif (var == 6) then + if(target:hasStatusEffect(EFFECT_REFRESH) == false) then + target:addStatusEffect(EFFECT_REFRESH,5,1,900); + end + elseif (var == 7) then + if(target:hasStatusEffect(EFFECT_BLAZE_SPIKES) == false) then + target:addStatusEffect(EFFECT_BLAZE_SPIKES,4,3,900); + end + end; +end; Index: scripts/globals/items/melomane_mallet.lua =================================================================== --- scripts/globals/items/melomane_mallet.lua (revision 0) +++ scripts/globals/items/melomane_mallet.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 18881 +-- Melomane Mallet +-- Enchantment: Costume - Lycopodium +-- Durration: 60 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,2247,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/melt_baselard.lua =================================================================== --- scripts/globals/items/melt_baselard.lua (revision 0) +++ scripts/globals/items/melt_baselard.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- ID: 18012 +-- Item: Melt Baselard +-- Item Effect: Defense Down 20% on Target +-- Charges: 15 Duration: 90 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,20,0,90); + else + target:messageBasic(423); + end +end; + Index: scripts/globals/items/melt_claws.lua =================================================================== --- scripts/globals/items/melt_claws.lua (revision 0) +++ scripts/globals/items/melt_claws.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- ID: 18357 +-- Item: Melt Claws +-- Item Effect: Defense Down 20% on Target +-- Charges: 15 Duration: 90 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,20,0,90); + else + target:messageBasic(423); + end +end; + Index: scripts/globals/items/melt_dagger.lua =================================================================== --- scripts/globals/items/melt_dagger.lua (revision 0) +++ scripts/globals/items/melt_dagger.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- ID: 18010 +-- Item: Melt Daggers +-- Item Effect: Defense Down 20% on Target +-- Charges: 15 Duration: 90 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,20,0,90); + else + target:messageBasic(423); + end +end; + Index: scripts/globals/items/melt_katana.lua =================================================================== --- scripts/globals/items/melt_katana.lua (revision 0) +++ scripts/globals/items/melt_katana.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- ID: 18410 +-- Item: Melt Katana +-- Item Effect: Defense Down 20% on Target +-- Charges: 15 Duration: 90 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,20,0,90); + else + target:messageBasic(423); + end +end; + Index: scripts/globals/items/melt_knife.lua =================================================================== --- scripts/globals/items/melt_knife.lua (revision 0) +++ scripts/globals/items/melt_knife.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- ID: 18011 +-- Item: Melt Knife +-- Item Effect: Defense Down 20% on Target +-- Charges: 15 Duration: 90 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,20,0,90); + else + target:messageBasic(423); + end +end; + Index: scripts/globals/items/melt_kukri.lua =================================================================== --- scripts/globals/items/melt_kukri.lua (revision 0) +++ scripts/globals/items/melt_kukri.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- ID: 18013 +-- Item: Melt Kukri +-- Item Effect: Defense Down 20% on Target +-- Charges: 15 Duration: 90 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,20,0,90); + else + target:messageBasic(423); + end +end; + Index: scripts/globals/items/mercanbaligi.lua =================================================================== --- scripts/globals/items/mercanbaligi.lua (revision 0) +++ scripts/globals/items/mercanbaligi.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5454 +-- Item: Mercanbaligi +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 4 +-- Mind -6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5454); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 4); + target:addMod(MOD_MND, -6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 4); + target:delMod(MOD_MND, -6); +end; Index: scripts/globals/items/messhikimaru.lua =================================================================== --- scripts/globals/items/messhikimaru.lua (revision 0) +++ scripts/globals/items/messhikimaru.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 17826 +-- Item: Messhikimaru +-- Enchantment: Arcana Killer +-- Durration: 10 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,600,17826); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ARCANA_KILLER, 20); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ARCANA_KILLER, 20); +end; + Index: scripts/globals/items/mhaura_earring.lua =================================================================== --- scripts/globals/items/mhaura_earring.lua (revision 0) +++ scripts/globals/items/mhaura_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16044 +-- Item: Mhaura Earring +-- Enchantment: "Teleport" (Mhaura) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(249) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + mhauraEarring(target); +end; \ No newline at end of file Index: scripts/globals/items/midwinter_dream.lua =================================================================== --- scripts/globals/items/midwinter_dream.lua (revision 0) +++ scripts/globals/items/midwinter_dream.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5543 +-- Item: Midwinter Dream +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP 10 +-- MP 9% Cap 60 +-- Intelligence 2 +-- MP Recovered while healing 2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5543); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 10); + target:addMod(MOD_INT, 2); + target:addMod(MOD_FOOD_MPP, 9); + target:addMod(MOD_FOOD_MP_CAP, 60); + target:addMod(MOD_MPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 10); + target:delMod(MOD_INT, 2); + target:delMod(MOD_FOOD_MPP, 9); + target:delMod(MOD_FOOD_MP_CAP, 60); + target:delMod(MOD_MPHEAL, 2); +end; Index: scripts/globals/items/mighty_ring.lua =================================================================== --- scripts/globals/items/mighty_ring.lua (revision 0) +++ scripts/globals/items/mighty_ring.lua (working copy) @@ -0,0 +1,46 @@ +----------------------------------------- +-- ID: 15558 +-- Item: Mighty Ring +-- Enchantment: Attack +5 Ranged Attack +5 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,15558); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ATT, 5); + target:addMod(MOD_RATT, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ATT, 5); + target:delMod(MOD_RATT, 5); +end; + Index: scripts/globals/items/mihgo_mithkabob.lua =================================================================== --- scripts/globals/items/mihgo_mithkabob.lua (revision 0) +++ scripts/globals/items/mihgo_mithkabob.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5708 +-- Item: Mihgo Mithkabob +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- Dexterity 5 +-- Vitality 2 +-- Mind -2 +-- Defense % 25 +-- Defense Cap 65 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5708); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 5); + target:addMod(MOD_VIT, 2); + target:addMod(MOD_MND, -2); + target:addMod(MOD_FOOD_DEFP, 25); + target:addMod(MOD_FOOD_DEF_CAP, 60); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 5); + target:delMod(MOD_VIT, 2); + target:delMod(MOD_MND, -2); + target:delMod(MOD_FOOD_DEFP, 25); + target:delMod(MOD_FOOD_DEF_CAP, 60); +end; Index: scripts/globals/items/miracle_wand.lua =================================================================== --- scripts/globals/items/miracle_wand.lua (revision 0) +++ scripts/globals/items/miracle_wand.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 18844 +-- Item: Miracle Wand +-- Item Effect: Party Member gets Regen +-- Durration: 120 Secs +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (!target:getSoloPartyAlliance() ~= 1) + result = 56; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_REGEN) == false) then + target:addStatusEffect(EFFECT_REGEN,12,3,120); + else + target:messageBasic(423); + end +end; Index: scripts/globals/items/miracle_wand_+1.lua =================================================================== --- scripts/globals/items/miracle_wand_+1.lua (revision 0) +++ scripts/globals/items/miracle_wand_+1.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 18845 +-- Item: Miracle Wand +1 +-- Item Effect: Party Member gets Regen +-- Durration: 180 Secs +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (!target:getSoloPartyAlliance() ~= 1) + result = 56; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_REGEN) == false) then + target:addStatusEffect(EFFECT_REGEN,12,3,180); + else + target:messageBasic(423); + end +end; Index: scripts/globals/items/mithran_rice_cake.lua =================================================================== --- scripts/globals/items/mithran_rice_cake.lua (revision 0) +++ scripts/globals/items/mithran_rice_cake.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 5297 +-- Mithran Rice Cake +-- Enchantment: 60Min, Costume - Mithra Child +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,182,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/moat_carp.lua =================================================================== --- scripts/globals/items/moat_carp.lua (revision 3520) +++ scripts/globals/items/moat_carp.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/moepapa_stone.lua =================================================================== --- scripts/globals/items/moepapa_stone.lua (revision 0) +++ scripts/globals/items/moepapa_stone.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------------- +-- ID: 10817 +-- Item: Moepapa Stone +-- Item Effect: Pet gets Haste 5% +----------------------------------------- + +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_WAIST) == 10817) then + pet:addStatusEffectEx(EFFECT_HASTE,0,51,0,10817); + else + pet:delStatusEffect(EFFECT_HASTE,10817); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/mog_missile.lua =================================================================== --- scripts/globals/items/mog_missile.lua (revision 0) +++ scripts/globals/items/mog_missile.lua (working copy) @@ -0,0 +1,20 @@ +----------------------------------------- +-- ID: 5936 +-- Item: Mog Missle +-- Effect: Moogle Firework +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; \ No newline at end of file Index: scripts/globals/items/mogratuity.lua =================================================================== --- scripts/globals/items/mogratuity.lua (revision 0) +++ scripts/globals/items/mogratuity.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 19776 +-- Item: Moggratuity +-- Effect: Festive funds furnished by merry moogles +-- Charges: 10 +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addGil(math.random(2000,10000); +end; \ No newline at end of file Index: scripts/globals/items/moogiebag.lua =================================================================== --- scripts/globals/items/moogiebag.lua (revision 0) +++ scripts/globals/items/moogiebag.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 19246 +-- Item: Moggiebag +-- Effect: Moogles Secret Cache +-- Charges: 8 +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addGil(math.random(2000,10000); +end; \ No newline at end of file Index: scripts/globals/items/moogle_cap.lua =================================================================== --- scripts/globals/items/moogle_cap.lua (revision 0) +++ scripts/globals/items/moogle_cap.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 16118 +-- Item: Moogle Cap +-- Enchantment: "Teleport" (Nation) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + nomadCap(target); +end; \ No newline at end of file Index: scripts/globals/items/moogle_pie.lua =================================================================== --- scripts/globals/items/moogle_pie.lua (revision 0) +++ scripts/globals/items/moogle_pie.lua (working copy) @@ -0,0 +1,69 @@ +----------------------------------------- +-- ID: 5561 +-- Item: Moogle Pie +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- HP 20 +-- MP 20 +-- Strength 1 +-- Dexterity 1 +-- Vitality 1 +-- Agility 1 +-- Intelligence 1 +-- Mind 1 +-- Charisma 1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5561); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 20); + target:addMod(MOD_MP, 20); + target:addMod(MOD_STR,1); + target:addMod(MOD_DEX, 1); + target:addMod(MOD_VIT,1); + target:addMod(MOD_AGI,1); + target:addMod(MOD_INT, 1); + target:addMod(MOD_MND,1); + target:addMod(MOD_CHR, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 20); + target:delMod(MOD_MP, 20); + target:delMod(MOD_STR,1); + target:delMod(MOD_DEX, 1); + target:delMod(MOD_VIT,1); + target:delMod(MOD_AGI,1); + target:delMod(MOD_INT, 1); + target:delMod(MOD_MND,1); + target:delMod(MOD_CHR, 1); +end; Index: scripts/globals/items/moogle_rod.lua =================================================================== --- scripts/globals/items/moogle_rod.lua (revision 0) +++ scripts/globals/items/moogle_rod.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------------- +-- ID: 18401 +-- Item: Moogle Rod +-- When used, your target will obtain one Moogle Pie. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5561,1); +end; \ No newline at end of file Index: scripts/globals/items/moogle_suit.lua =================================================================== --- scripts/globals/items/moogle_suit.lua (revision 0) +++ scripts/globals/items/moogle_suit.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------------- +-- ID: 10250 +-- Item: Moogle Suit +-- When used, you will obtain one Mog Missle. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5936,1); +end; \ No newline at end of file Index: scripts/globals/items/moogles_largess.lua =================================================================== --- scripts/globals/items/moogles_largess.lua (revision 0) +++ scripts/globals/items/moogles_largess.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 19181 +-- Item: Moogle's Largess +-- Effect: Moogle's generous gift +-- Charges: 9 +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addGil(math.random(2000,10000); +end; \ No newline at end of file Index: scripts/globals/items/moogles_largesse.lua =================================================================== --- scripts/globals/items/moogles_largesse.lua (revision 0) +++ scripts/globals/items/moogles_largesse.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 19181 +-- Item: Moogles Largesse +-- When used, you will obtain random 100 - 10,000 Gil. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addGil(math.random(100,10000)); +end; \ No newline at end of file Index: scripts/globals/items/moorish_idol.lua =================================================================== --- scripts/globals/items/moorish_idol.lua (revision 0) +++ scripts/globals/items/moorish_idol.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5121 +-- Item: Moorish Idol +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 2 +-- Mind -4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5121); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 2); + target:addMod(MOD_MND, -4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 2); + target:delMod(MOD_MND, -4); +end; Index: scripts/globals/items/murzim_zucchetto.lua =================================================================== --- scripts/globals/items/murzim_zucchetto.lua (revision 0) +++ scripts/globals/items/murzim_zucchetto.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 10440 +-- Item: Murzim Zucchetto +-- Item Effect: Automation: Haste +6% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HEAD) == 10440) then + pet:addMod(MOD_HASTE_GEAR, 61); + else + pet:delMod(MOD_HASTE_GEAR, 61); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/mushroom_salad.lua =================================================================== --- scripts/globals/items/mushroom_salad.lua (revision 0) +++ scripts/globals/items/mushroom_salad.lua (working copy) @@ -0,0 +1,59 @@ +----------------------------------------- +-- ID: 5678 +-- Item: Mushroom Salad +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- MP 14% Cap 85 +-- Agility 6 +-- Mind 6 +-- Strength -5 +-- Vitality -5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD)) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5678); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_MPP, 14); + target:addMod(MOD_FOOD_MP_CAP, 85); + target:addMod(MOD_AGI, 6); + target:addMod(MOD_MND, 6); + target:addMod(MOD_STR, -5); + target:addMod(MOD_VIT, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_MPP, 14); + target:delMod(MOD_FOOD_MP_CAP, 85); + target:delMod(MOD_AGI, 6); + target:delMod(MOD_MND, 6); + target:delMod(MOD_STR, -5); + target:delMod(MOD_VIT, -5); +end; Index: scripts/globals/items/muzzling_collar.lua =================================================================== --- scripts/globals/items/muzzling_collar.lua (revision 0) +++ scripts/globals/items/muzzling_collar.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 10914 +-- Item: Muzzling Collar +-- Item Effect: Pet Enmity -2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_NECK) == 10914) then + pet:addMod(MOD_ENMITY, -2); + else + pet:delMod(MOD_ENMITY, -2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/muzzling_collar_+1.lua =================================================================== --- scripts/globals/items/muzzling_collar_+1.lua (revision 0) +++ scripts/globals/items/muzzling_collar_+1.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 10915 +-- Item: Muzzling Collar +1 +-- Item Effect: Pet Enmity -3 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_NECK) == 10915) then + pet:addMod(MOD_ENMITY, -3); + else + pet:delMod(MOD_ENMITY, -3); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/nanger_ring.lua =================================================================== --- scripts/globals/items/nanger_ring.lua (revision 0) +++ scripts/globals/items/nanger_ring.lua (working copy) @@ -0,0 +1,42 @@ +----------------------------------------- +-- ID: 10778 +-- Item: Nanger Ring +-- Enchantment: Evasion +10 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,300,10778); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_EVA, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_EVA, 10); +end; \ No newline at end of file Index: scripts/globals/items/nashmau_earring.lua =================================================================== --- scripts/globals/items/nashmau_earring.lua (revision 0) +++ scripts/globals/items/nashmau_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16050 +-- Item: Nashmau Earring +-- Enchantment: "Teleport" (Nashmau) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(53) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + nashmauEarring(target); +end; \ No newline at end of file Index: scripts/globals/items/nebimonite.lua =================================================================== --- scripts/globals/items/nebimonite.lua (revision 3520) +++ scripts/globals/items/nebimonite.lua (working copy) @@ -18,7 +18,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/nebimonite_belt.lua =================================================================== --- scripts/globals/items/nebimonite_belt.lua (revision 0) +++ scripts/globals/items/nebimonite_belt.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15300 +-- Nebimonite Belt +-- When used, you will obtain 1 Lugworm +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(4361,1); +end; \ No newline at end of file Index: scripts/globals/items/new_years_gift.lua =================================================================== --- scripts/globals/items/new_years_gift.lua (revision 0) +++ scripts/globals/items/new_years_gift.lua (working copy) @@ -0,0 +1,42 @@ +----------------------------------------- +-- ID: 4176 +-- Item: New Years Gift +-- Enchantment: ??? Random +-- Durration: 10 Mins - 2 Hrs +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local var = math.random(1,4); + if (var == 1) then + if (target:hasStatusEffect(EFFECT_RERAISE) == false) then + target:addStatusEffect(EFFECT_RERAISE,1,0,3600); + end + elseif (var == 2) then + if (target:hasStatusEffect(EFFECT_ENBLIZZARD) == false) then + target:addStatusEffect(EFFECT_ENBLIZZARD,35,0,600); + end + elseif (var == 3) then + if (target:hasStatusEffect(EFFECT_ICE_SPIKES) == false) then + target:addStatusEffect(EFFECT_ICE_SPIKES,35,0,600); + end + elseif (var == 4) then + if (target:hasStatusEffect(EFFECT_BLINK) == false) then + target:addStatusEffect(EFFECT_FISHING_IMAGERY,0,0,7200); + end + end; +end; Index: scripts/globals/items/nexus_cape.lua =================================================================== --- scripts/globals/items/nexus_cape.lua (revision 0) +++ scripts/globals/items/nexus_cape.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 11538 +-- Item: Nexus Cape +-- Enchantment: "Teleport" (Party Leader) +----------------------------------------- + +require("scripts/globals/teleports"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +-- leader = CParty::GetLeader(); +-- pc = GetPlayerByName(leader) +-- if(pc~=nil) then +-- zone = pc:getZone(); +-- targetX = pc:getXPos(); +-- targetY = pc:getYPos(); +-- targetZ = pc:getZPos(); +-- target:setPos(targetX,targetY,targetZ,0,zone); +-- else +-- printf("Player named %s not found!",target); +-- end +end; \ No newline at end of file Index: scripts/globals/items/ngen_seraweels.lua =================================================================== --- scripts/globals/items/ngen_seraweels.lua (revision 0) +++ scripts/globals/items/ngen_seraweels.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11987 +-- Item: Ngen Seraweels +-- Item Effect: Avatar Regen +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_NECK) == 11987) then + pet:addMod(MOD_REGEN, 3); + else + pet:delMod(MOD_REGEN, 3); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/noble_himantes.lua =================================================================== --- scripts/globals/items/noble_himantes.lua (revision 0) +++ scripts/globals/items/noble_himantes.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 18755 +-- Item: Noble Himantes +-- Item Effect: TP +10 +-- Durration: Instant +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addTP(10); +end; Index: scripts/globals/items/noble_lady.lua =================================================================== --- scripts/globals/items/noble_lady.lua (revision 3520) +++ scripts/globals/items/noble_lady.lua (working copy) @@ -18,7 +18,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/nomad_cap.lua =================================================================== --- scripts/globals/items/nomad_cap.lua (revision 0) +++ scripts/globals/items/nomad_cap.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 16119 +-- Item: Nomad Cap +-- Enchantment: "Teleport" (Nation) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + nomadCap(target); +end; \ No newline at end of file Index: scripts/globals/items/nomad_moogle_rod.lua =================================================================== --- scripts/globals/items/nomad_moogle_rod.lua (revision 0) +++ scripts/globals/items/nomad_moogle_rod.lua (working copy) @@ -0,0 +1,28 @@ +----------------------------------------- +-- ID: 18842 +-- Item: Nomad Moogle Rod +-- When used, your target will obtain one Moggle Pie. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5561,1); +end; \ No newline at end of file Index: scripts/globals/items/nomad_moogle_shield.lua =================================================================== --- scripts/globals/items/nomad_moogle_shield.lua (revision 3520) +++ scripts/globals/items/nomad_moogle_shield.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------------- -- ID: 16183 -- Nomad Moogle Shield --- Enchantment: 60Min, Costume - Moogle +-- Enchantment: 60Min, Enhancement - Moogle Jaspery ----------------------------------------- require("scripts/globals/status"); Index: scripts/globals/items/nopales_salad_+1.lua =================================================================== --- scripts/globals/items/nopales_salad_+1.lua (revision 0) +++ scripts/globals/items/nopales_salad_+1.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5702 +-- Item: Nopales Salad +1 +-- Food Effect: 3Hrs, All Races +----------------------------------------- +-- Strength 2 +-- Agility 7 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5702); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 2); + target:addMod(MOD_AGI, 7); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 2); + target:delMod(MOD_AGI, 7); +end; Index: scripts/globals/items/norg_earring.lua =================================================================== --- scripts/globals/items/norg_earring.lua (revision 0) +++ scripts/globals/items/norg_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16047 +-- Item: Norg Earring +-- Enchantment: "Teleport" (Norg) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(252) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + norgEarring(target); +end; \ No newline at end of file Index: scripts/globals/items/northern_san_doria_gate_glyph.lua =================================================================== --- scripts/globals/items/northern_san_doria_gate_glyph.lua (revision 0) +++ scripts/globals/items/northern_san_doria_gate_glyph.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 4192 +-- Item: North San d'Oria Gate Glyph +-- Enchantment: "Teleport" (North San d'Oria) +----------------------------------------- + +require("scripts/globals/teleports"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + sandoriaNorthGlyph(target); +end; \ No newline at end of file Index: scripts/globals/items/nosteau_herring.lua =================================================================== --- scripts/globals/items/nosteau_herring.lua (revision 3520) +++ scripts/globals/items/nosteau_herring.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/ogre_eel.lua =================================================================== --- scripts/globals/items/ogre_eel.lua (revision 3520) +++ scripts/globals/items/ogre_eel.lua (working copy) @@ -18,7 +18,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/olduum_ring.lua =================================================================== --- scripts/globals/items/olduum_ring.lua (revision 3520) +++ scripts/globals/items/olduum_ring.lua (working copy) @@ -4,6 +4,8 @@ -- Teleports to Wajoam Woodlands Leypoint ----------------------------------------- +require("scripts/globals/teleports"); +require("scripts/globals/settings"); require("scripts/globals/status"); ----------------------------------------- @@ -11,12 +13,16 @@ ----------------------------------------- function onItemCheck(target) - return 0; + result = 0; + if (target:isZoneVisited(51) == false) then + result = 56; + end + return result; end; ----------------------------------------- -- OnItemUse ----------------------------------------- function onItemUse(target) - target:setPos(-199, -10, 80, 94, 51); + olduumRing(target); end; Index: scripts/globals/items/omodaka_hizayoroi.lua =================================================================== --- scripts/globals/items/omodaka_hizayoroi.lua (revision 0) +++ scripts/globals/items/omodaka_hizayoroi.lua (working copy) @@ -0,0 +1,35 @@ +----------------------------------------- +-- ID: 28078 +-- Item: Omodaka Hizayoroi +-- Item Effect: Automation STR +6 DEX +6 AGI +6 Haste +4% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_LEGS) == 28078) then + pet:addMod(MOD_STR, 6); + pet:addMod(MOD_DEX, 6); + pet:addMod(MOD_AGI, 6); + pet:addMod(MOD_HASTE_GEAR, 61); + else + pet:delMod(MOD_STR, 6); + pet:delMod(MOD_DEX, 6); + pet:delMod(MOD_AGI, 6); + pet:delMod(MOD_HASTE_GEAR, 61); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/onago_yukata.lua =================================================================== --- scripts/globals/items/onago_yukata.lua (revision 0) +++ scripts/globals/items/onago_yukata.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 14533 +-- Onago Yukata +-- When used, you will obtain 1 Muteppo +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5360,1); +end; \ No newline at end of file Index: scripts/globals/items/oneiros_cappa.lua =================================================================== --- scripts/globals/items/oneiros_cappa.lua (revision 0) +++ scripts/globals/items/oneiros_cappa.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 10972 +-- Item: Oneiros Cappa +-- Item Effect: Pet Physical Dmg taken -3% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_BACK) == 10972) then + pet:addMod(MOD_DMGPHYS, -3); + else + pet:delMod(MOD_DMGPHYS, -3); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/onnagimi_yukata.lua =================================================================== --- scripts/globals/items/onnagimi_yukata.lua (revision 0) +++ scripts/globals/items/onnagimi_yukata.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 14535 +-- Onnagimi Yukata +-- When used, you will obtain 1 Datechochin +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5361,1); +end; \ No newline at end of file Index: scripts/globals/items/orange_cake.lua =================================================================== --- scripts/globals/items/orange_cake.lua (revision 0) +++ scripts/globals/items/orange_cake.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5629 +-- Item: Orange Cake +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP Recovered while healing +3 +-- MP Recovered while healing +4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5629); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HPHEAL, 3); + target:addMod(MOD_MPHEAL, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HPHEAL, 3); + target:delMod(MOD_MPHEAL, 4); +end; Index: scripts/globals/items/orc_belt.lua =================================================================== --- scripts/globals/items/orc_belt.lua (revision 0) +++ scripts/globals/items/orc_belt.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 10847 +-- Orc Belt +-- Enchantment: 60Min, Costume - Orc +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,612,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/orichalcum_bullet_pouch.lua =================================================================== --- scripts/globals/items/orichalcum_bullet_pouch.lua (revision 0) +++ scripts/globals/items/orichalcum_bullet_pouch.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 5914 +-- Item: Orichalcum Bullet Pouch +-- Effect: When used, you will obtain stack of Orichalcum Bullets +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(19802,99); +end; + Index: scripts/globals/items/ostreger_mitts.lua =================================================================== --- scripts/globals/items/ostreger_mitts.lua (revision 0) +++ scripts/globals/items/ostreger_mitts.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 14872 +-- Item: Ostreger Mitts +-- Item Effect: Wyvern HP +10 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 14872) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_HP, 10); + else + pet:delMod(MOD_HP, 10); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/otoko_yukata.lua =================================================================== --- scripts/globals/items/otoko_yukata.lua (revision 0) +++ scripts/globals/items/otoko_yukata.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 14532 +-- Otoko Yukata +-- When used, you will obtain 1 Muteppo +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5360,1); +end; \ No newline at end of file Index: scripts/globals/items/otokogimi_yukata.lua =================================================================== --- scripts/globals/items/otokogimi_yukata.lua (revision 0) +++ scripts/globals/items/otokogimi_yukata.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 14534 +-- Otokogimi Yukata +-- When used, you will obtain 1 Datechochin +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5361,1); +end; \ No newline at end of file Index: scripts/globals/items/pacifist_ring.lua =================================================================== --- scripts/globals/items/pacifist_ring.lua (revision 0) +++ scripts/globals/items/pacifist_ring.lua (working copy) @@ -0,0 +1,39 @@ +----------------------------------------- +-- ID: 14680 +-- Pacifist Ring +-- Enchantment: Enmity -12 +-- Uses: 20 Duration: 3 Mins +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,180,14680); + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ENMITY, -12); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ENMITY, -12); +end; \ No newline at end of file Index: scripts/globals/items/pair_of_lucid_wings_i.lua =================================================================== --- scripts/globals/items/pair_of_lucid_wings_i.lua (revision 0) +++ scripts/globals/items/pair_of_lucid_wings_i.lua (working copy) @@ -0,0 +1,36 @@ +----------------------------------------- +-- ID: 5834 +-- Pair of Lucid Wings I +-- Increases TP of the user by 50% +----------------------------------------- + +-- TODO: Make AoE + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + mTP = target:getMaxTP(); + cTP = target:getTP(); + if (mTP == cTP) then + result = 56; -- Does not let player use item if their TP is full + end + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); + target:addTP((cTP * .5); +end; \ No newline at end of file Index: scripts/globals/items/pair_of_nopales.lua =================================================================== --- scripts/globals/items/pair_of_nopales.lua (revision 0) +++ scripts/globals/items/pair_of_nopales.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5650 +-- Item: Pair of Nopales +-- Food Effect: 5Min, All Races +----------------------------------------- +-- Agility 2 +-- Vitality -4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5650); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, 2); + target:addMod(MOD_VIT, -4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, 2); + target:delMod(MOD_VIT, -4); +end; Index: scripts/globals/items/palmers_bangles.lua =================================================================== --- scripts/globals/items/palmers_bangles.lua (revision 0) +++ scripts/globals/items/palmers_bangles.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 14864 +-- Item: Palmer's Bangles +-- Enchantment: Gilfinder +-- Duration: 30 Mins Charges: 20 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,14864); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_GILFINDER, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_GILFINDER, 1); +end; \ No newline at end of file Index: scripts/globals/items/pantin_babouches.lua =================================================================== --- scripts/globals/items/pantin_babouches.lua (revision 0) +++ scripts/globals/items/pantin_babouches.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11388 +-- Item: Patin Babouches +-- Item Effect: Automation: MATT +5 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 11388) then + pet:addMod(MOD_MATT, 5); + else + pet:delMod(MOD_MATT, 5); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/pantin_babouches_+1.lua =================================================================== --- scripts/globals/items/pantin_babouches_+1.lua (revision 0) +++ scripts/globals/items/pantin_babouches_+1.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11389 +-- Item: Patin Babouches +1 +-- Item Effect: Automation: MATT +5 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 11389) then + pet:addMod(MOD_MATT, 5); + else + pet:delMod(MOD_MATT, 5); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/pantin_babouches_+2.lua =================================================================== --- scripts/globals/items/pantin_babouches_+2.lua (revision 0) +++ scripts/globals/items/pantin_babouches_+2.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 10747 +-- Item: Patin Babouches +2 +-- Item Effect: Automation: MACC +5 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 10747) then + pet:addMod(MOD_MACC, 5); + else + pet:delMod(MOD_MACC, 5); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/pantin_cape.lua =================================================================== --- scripts/globals/items/pantin_cape.lua (revision 0) +++ scripts/globals/items/pantin_cape.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16245 +-- Item: Pantin Cape +-- Item Effect: Automation: Attack +15 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_BACK) == 16245) then + pet:addMod(MOD_ATT, 15); + else + pet:delMod(MOD_ATT, 15); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/pantin_dastanas.lua =================================================================== --- scripts/globals/items/pantin_dastanas.lua (revision 0) +++ scripts/globals/items/pantin_dastanas.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15031 +-- Item: Pantin Dastanas +-- Item Effect: Automation Haste +3% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 15031) then + pet:addMod(MOD_HASTE_GEAR, 31); + else + pet:delMod(MOD_HASTE_GEAR, 31); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/pantin_dastanas_+1.lua =================================================================== --- scripts/globals/items/pantin_dastanas_+1.lua (revision 0) +++ scripts/globals/items/pantin_dastanas_+1.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15032 +-- Item: Pantin Dastanas +1 +-- Item Effect: Automation Haste +3% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 15032) then + pet:addMod(MOD_HASTE_GEAR, 31); + else + pet:delMod(MOD_HASTE_GEAR, 31); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/pantin_dastanas_+2.lua =================================================================== --- scripts/globals/items/pantin_dastanas_+2.lua (revision 0) +++ scripts/globals/items/pantin_dastanas_+2.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 10707 +-- Item: Pantin Dastanas +2 +-- Item Effect: Automation Haste +4% Subtle Blow +5 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 10707) then + pet:addMod(MOD_HASTE_GEAR, 41); + pet:addMod(MOD_SUBTLE_BLOW, 5); + else + pet:delMod(MOD_HASTE_GEAR, 41); + pet:delMod(MOD_SUBTLE_BLOW, 5); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/pantin_taj_+1.lua =================================================================== --- scripts/globals/items/pantin_taj_+1.lua (revision 0) +++ scripts/globals/items/pantin_taj_+1.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11472 +-- Item: Pantin Taj +1 +-- Item Effect: Automation: Regen +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HEAD) == 10667) then + pet:addMod(EFFECT_REGEN,2,1,0); + else + pet:delMod(EFFECT_REGEN,2,1,0); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/pantin_taj_+2.lua =================================================================== --- scripts/globals/items/pantin_taj_+2.lua (revision 0) +++ scripts/globals/items/pantin_taj_+2.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 10667 +-- Item: Pantin Taj +2 +-- Item Effect: Automation: Regen and Refresh +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HEAD) == 10667) then + pet:addMod(EFFECT_REGEN,2,1,0); + pet:addMod(EFFECT_REFRESH,2,1,0); + else + pet:delMod(EFFECT_REGEN,2,1,0); + pet:delMod(EFFECT_REFRESH,2,1,0); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/pastoral_staff.lua =================================================================== --- scripts/globals/items/pastoral_staff.lua (revision 0) +++ scripts/globals/items/pastoral_staff.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 18591 +-- Item: Pastoral Staff +-- Item Effect: TP +10 +-- Durration: Instant +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addTP(10); +end; Index: scripts/globals/items/pellet_belt.lua =================================================================== --- scripts/globals/items/pellet_belt.lua (revision 0) +++ scripts/globals/items/pellet_belt.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15288 +-- Pellet Belt +-- When used, you will obtain 1 Stack of Pellets +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(17296,12); +end; \ No newline at end of file Index: scripts/globals/items/pendragons_belt.lua =================================================================== --- scripts/globals/items/pendragons_belt.lua (revision 0) +++ scripts/globals/items/pendragons_belt.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 15869 +-- Item: Pendragons Belt +-- Enchantment: DEX 10 +-- Charges: 30 Reuse Delay: 10 Mins +-- Duration: 30 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,30,15869); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 10); +end; \ No newline at end of file Index: scripts/globals/items/phial_of_amnesia_screen.lua =================================================================== --- scripts/globals/items/phial_of_amnesia_screen.lua (revision 0) +++ scripts/globals/items/phial_of_amnesia_screen.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5878 +-- Item: Phial of Amnesia Screen +-- Item Effect: Temporarily provides immunity to Amnesia +-- Duration: 2 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,120); + if(target:addStatusEffect(EFFECT_NEGATE_AMNESIA,0,0,120)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/phial_of_doom_screen.lua =================================================================== --- scripts/globals/items/phial_of_doom_screen.lua (revision 0) +++ scripts/globals/items/phial_of_doom_screen.lua (working copy) @@ -0,0 +1,47 @@ +----------------------------------------- +-- ID: 5879 +-- Item: Phial of DooM Screen +-- Item Effect: Temporarily provides immunity to DooM +-- Duration: 2 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,120); + if(target:addStatusEffect(EFFECT_NEGATE_DOOM,0,0,120)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/phial_of_osseous_serum.lua =================================================================== --- scripts/globals/items/phial_of_osseous_serum.lua (revision 0) +++ scripts/globals/items/phial_of_osseous_serum.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 5352 +-- Phial of Osseous Serum +-- Enchantment: 60Min, Costume - Skeleton +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,564,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/phial_of_petrify_screen.lua =================================================================== --- scripts/globals/items/phial_of_petrify_screen.lua (revision 0) +++ scripts/globals/items/phial_of_petrify_screen.lua (working copy) @@ -0,0 +1,47 @@ +----------------------------------------- +-- ID: 5876 +-- Item: Phial of Petrify Screen +-- Item Effect: Temporarily provides immunity to Petrify +-- Duration: 2 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,120); + if(target:addStatusEffect(EFFECT_NEGATE_PETRIFY,0,0,120)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/phial_of_poison_screen.lua =================================================================== --- scripts/globals/items/phial_of_poison_screen.lua (revision 0) +++ scripts/globals/items/phial_of_poison_screen.lua (working copy) @@ -0,0 +1,47 @@ +----------------------------------------- +-- ID: 5880 +-- Item: Phial of Poison Screen +-- Item Effect: Temporarily provides immunity to Poison +-- Duration: 2 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,120); + if(target:addStatusEffect(EFFECT_NEGATE_POISON,0,0,120)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/phial_of_terror_screen.lua =================================================================== --- scripts/globals/items/phial_of_terror_screen.lua (revision 0) +++ scripts/globals/items/phial_of_terror_screen.lua (working copy) @@ -0,0 +1,47 @@ +----------------------------------------- +-- ID: 5877 +-- Item: Phial of Terror Screen +-- Item Effect: Temporarily provides immunity to Terror +-- Duration: 2 Mins +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,120); + if(target:addStatusEffect(EFFECT_NEGATE_TERROR,0,0,120)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/pick_of_trials.lua =================================================================== --- scripts/globals/items/pick_of_trials.lua (revision 0) +++ scripts/globals/items/pick_of_trials.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 17933 +-- Equip: Pick of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 17933) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 20); + target:addMod(MOD_WINDDEF, 10); + target:addMod(MOD_THUNDERDEF, 10); + else + target:delMod(MOD_HP, 20); + target:delMod(MOD_WINDDEF, 10); + target:delMod(MOD_THUNDERDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/piece_of_cascade_candy.lua =================================================================== --- scripts/globals/items/piece_of_cascade_candy.lua (revision 0) +++ scripts/globals/items/piece_of_cascade_candy.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5942 +-- Item: Piece of Cascade Candy +-- Food Effect: 30Min, All Races +----------------------------------------- +-- Mind +4 +-- Charisma +4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,1800,5942); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MND, 4); + target:addMod(MOD_CHR, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MND, 4); + target:delMod(MOD_CHR, 4); +end; Index: scripts/globals/items/piece_of_elvaan_mochi.lua =================================================================== --- scripts/globals/items/piece_of_elvaan_mochi.lua (revision 0) +++ scripts/globals/items/piece_of_elvaan_mochi.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 5204 +-- Piece of Elvaan Mochi +-- Enchantment: 60Min, Costume - Elvaan Child (male) +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,154,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/piece_of_galka_mochi.lua =================================================================== --- scripts/globals/items/piece_of_galka_mochi.lua (revision 0) +++ scripts/globals/items/piece_of_galka_mochi.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 5206 +-- Piece of Galka Mochi +-- Enchantment: 60Min, Costume - Galka Child +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,178,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/piece_of_hume_mochi.lua =================================================================== --- scripts/globals/items/piece_of_hume_mochi.lua (revision 0) +++ scripts/globals/items/piece_of_hume_mochi.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 5203 +-- Piece of Hume Mochi +-- Enchantment: 60Min, Costume - Hume child (male) +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,114,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/piercing_dagger.lua =================================================================== --- scripts/globals/items/piercing_dagger.lua (revision 0) +++ scripts/globals/items/piercing_dagger.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 18029 +-- Item: Piercing Dagger +-- Enchantment: Attack +3 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18029); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ATT, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ATT, 3); +end; + Index: scripts/globals/items/pinch_of_lethe_powder.lua =================================================================== --- scripts/globals/items/pinch_of_lethe_powder.lua (revision 0) +++ scripts/globals/items/pinch_of_lethe_powder.lua (working copy) @@ -0,0 +1,38 @@ +----------------------------------------- +-- ID: 4214 +-- Item: Pinch of Lethe Powder +-- Item Effect: Removes up to 3 status effects from target AoE +----------------------------------------- + +-- TODO: Make AoE + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local effect = target:dispelStatusEffect(); + if(effect == EFFECT_NONE) then + target:messageBasic(423); -- no effect + else + local z = 0; + while z <= 3 do + target:dispelStatusEffect(); + if(effect == EFFECT_NONE) then + z = 3; + end + z = z + 1; + end; + end +end; + Index: scripts/globals/items/pinch_of_mana_powder.lua =================================================================== --- scripts/globals/items/pinch_of_mana_powder.lua (revision 0) +++ scripts/globals/items/pinch_of_mana_powder.lua (working copy) @@ -0,0 +1,36 @@ +----------------------------------------- +-- ID: 4255 +-- Item: Pinch of Mana Powder +-- Item Effect: Restores 25% MP AoE 10' radius +----------------------------------------- + +-- TODO: Make AoE + +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + mMP = target:getMaxMP(); + cMP = target:getMP(); + rMP = mMP * .25; + if (mMP == cMP) then + result = 56; -- Does not let player use item if their mp is full + end + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); + target:messageBasic(25,0,target:addMP(rMP)); +end; Index: scripts/globals/items/pinch_of_prism_powder.lua =================================================================== --- scripts/globals/items/pinch_of_prism_powder.lua (revision 3520) +++ scripts/globals/items/pinch_of_prism_powder.lua (working copy) @@ -19,7 +19,9 @@ ----------------------------------------- function onItemUse(target) + local duration = 120; + duration = duration + (duration * target:getMod(MOD_INVIS_DUR)); if (not target:hasStatusEffect(EFFECT_INVISIBLE)) then - target:addStatusEffect(EFFECT_INVISIBLE,0,10,120); + target:addStatusEffect(EFFECT_INVISIBLE,0,10,duration); end end; Index: scripts/globals/items/pinch_of_prize_powder.lua =================================================================== --- scripts/globals/items/pinch_of_prize_powder.lua (revision 0) +++ scripts/globals/items/pinch_of_prize_powder.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 5945 +-- Item: Pinch of Prize Powder +-- Effect: 60Min, Costume - Treasure Chest +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,969,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/pinch_of_rainbow_powder.lua =================================================================== --- scripts/globals/items/pinch_of_rainbow_powder.lua (revision 3520) +++ scripts/globals/items/pinch_of_rainbow_powder.lua (working copy) @@ -23,7 +23,10 @@ ----------------------------------------- function onItemUse(target) - target:delStatusEffect(EFFECT_INVISIBLE); - target:addStatusEffect(EFFECT_INVISIBLE,0,10,180); - target:addStatusEffect(EFFECT_MEDICINE,0,0,180); + local duration = 180; + duration = duration + (duration * target:getMod(MOD_INVIS_DUR)); + if (not target:hasStatusEffect(EFFECT_INVISIBLE)) then + target:addStatusEffect(EFFECT_INVISIBLE,0,10,duration); + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); + end end; Index: scripts/globals/items/pinwheel_belt.lua =================================================================== --- scripts/globals/items/pinwheel_belt.lua (revision 0) +++ scripts/globals/items/pinwheel_belt.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15927 +-- Pinwheel Belt +-- When used, you will obtain 1 Stack of Pinwheels +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(17309,99); +end; \ No newline at end of file Index: scripts/globals/items/pipira.lua =================================================================== --- scripts/globals/items/pipira.lua (revision 3520) +++ scripts/globals/items/pipira.lua (working copy) @@ -18,7 +18,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/plate_of_indi-acumen.lua =================================================================== --- scripts/globals/items/plate_of_indi-acumen.lua (revision 0) +++ scripts/globals/items/plate_of_indi-acumen.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6085 +-- Item: Plate of Indi-Acumen +-- Teaches the Geomancer Magic Indi-Acumen +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(781); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(781); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-agi.lua =================================================================== --- scripts/globals/items/plate_of_indi-agi.lua (revision 0) +++ scripts/globals/items/plate_of_indi-agi.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6079 +-- Item: Plate of Indi-AGI +-- Teaches the Geomancer Magic Indi-AGI +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(775); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(775); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-attunement.lua =================================================================== --- scripts/globals/items/plate_of_indi-attunement.lua (revision 0) +++ scripts/globals/items/plate_of_indi-attunement.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6090 +-- Item: Plate of Indi-Attunement +-- Teaches the Geomancer Magic Indi-Attunement +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(786); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(786); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-barrier.lua =================================================================== --- scripts/globals/items/plate_of_indi-barrier.lua (revision 0) +++ scripts/globals/items/plate_of_indi-barrier.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6084 +-- Item: Plate of Indi-Barrier +-- Teaches the Geomancer Magic Indi-Barrier +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(780); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(780); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-chr.lua =================================================================== --- scripts/globals/items/plate_of_indi-chr.lua (revision 0) +++ scripts/globals/items/plate_of_indi-chr.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6082 +-- Item: Plate of Indi-CHR +-- Teaches the Geomancer Magic Indi-CHR +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(778); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(778); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-dex.lua =================================================================== --- scripts/globals/items/plate_of_indi-dex.lua (revision 0) +++ scripts/globals/items/plate_of_indi-dex.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6077 +-- Item: Plate of Indi-DEX +-- Teaches the Geomancer Magic Indi-DEX +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(773); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(773); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-fade.lua =================================================================== --- scripts/globals/items/plate_of_indi-fade.lua (revision 0) +++ scripts/globals/items/plate_of_indi-fade.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6093 +-- Item: Plate of Indi-Fade +-- Teaches the Geomancer Magic Indi-Fade +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(789); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(789); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-fend.lua =================================================================== --- scripts/globals/items/plate_of_indi-fend.lua (revision 0) +++ scripts/globals/items/plate_of_indi-fend.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6086 +-- Item: Plate of Indi-Fend +-- Teaches the Geomancer Magic Indi-Fend +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(782); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(782); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-focus.lua =================================================================== --- scripts/globals/items/plate_of_indi-focus.lua (revision 0) +++ scripts/globals/items/plate_of_indi-focus.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6089 +-- Item: Plate of Indi-Focus +-- Teaches the Geomancer Magic Indi-Focus +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(785); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(785); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-frailty.lua =================================================================== --- scripts/globals/items/plate_of_indi-frailty.lua (revision 0) +++ scripts/globals/items/plate_of_indi-frailty.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6092 +-- Item: Plate of Indi-Frailty +-- Teaches the Geomancer Magic Indi-Frailty +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(788); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(788); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-fury.lua =================================================================== --- scripts/globals/items/plate_of_indi-fury.lua (revision 0) +++ scripts/globals/items/plate_of_indi-fury.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6083 +-- Item: Plate of Indi-Fury +-- Teaches the Geomancer Magic Indi-Fury +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(779); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(779); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-gravity.lua =================================================================== --- scripts/globals/items/plate_of_indi-gravity.lua (revision 0) +++ scripts/globals/items/plate_of_indi-gravity.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6101 +-- Item: Plate of Indi-Gravity +-- Teaches the Geomancer Magic Indi-Gravity +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(797); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(797); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-int.lua =================================================================== --- scripts/globals/items/plate_of_indi-int.lua (revision 0) +++ scripts/globals/items/plate_of_indi-int.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6080 +-- Item: Plate of Indi-INT +-- Teaches the Geomancer Magic Indi-INT +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(776); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(776); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-languor.lua =================================================================== --- scripts/globals/items/plate_of_indi-languor.lua (revision 0) +++ scripts/globals/items/plate_of_indi-languor.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6098 +-- Item: Plate of Indi-Languor +-- Teaches the Geomancer Magic Indi-Languor +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(794); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(794); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-malaise.lua =================================================================== --- scripts/globals/items/plate_of_indi-malaise.lua (revision 0) +++ scripts/globals/items/plate_of_indi-malaise.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6094 +-- Item: Plate of Indi-Malaise +-- Teaches the Geomancer Magic Indi-Malaise +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(790); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(790); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-mnd.lua =================================================================== --- scripts/globals/items/plate_of_indi-mnd.lua (revision 0) +++ scripts/globals/items/plate_of_indi-mnd.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6081 +-- Item: Plate of Indi-MND +-- Teaches the Geomancer Magic Indi-MND +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(777); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(777); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-paralysis.lua =================================================================== --- scripts/globals/items/plate_of_indi-paralysis.lua (revision 0) +++ scripts/globals/items/plate_of_indi-paralysis.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6100 +-- Item: Plate of Indi-Paralysis +-- Teaches the Geomancer Magic Indi-Paralysis +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(796); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(796); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-poison.lua =================================================================== --- scripts/globals/items/plate_of_indi-poison.lua (revision 0) +++ scripts/globals/items/plate_of_indi-poison.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6074 +-- Item: Plate of Indi-Poison +-- Teaches the Geomancer Magic Indi-Poison +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(769); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(769); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-precision.lua =================================================================== --- scripts/globals/items/plate_of_indi-precision.lua (revision 0) +++ scripts/globals/items/plate_of_indi-precision.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6087 +-- Item: Plate of Indi-Precision +-- Teaches the Geomancer Magic Indi-Precision +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(783); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(783); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-refresh.lua =================================================================== --- scripts/globals/items/plate_of_indi-refresh.lua (revision 0) +++ scripts/globals/items/plate_of_indi-refresh.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6075 +-- Item: Plate of Indi-Refresh +-- Teaches the Geomancer Magic Indi-Refresh +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(770); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(770); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-regen.lua =================================================================== --- scripts/globals/items/plate_of_indi-regen.lua (revision 0) +++ scripts/globals/items/plate_of_indi-regen.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6073 +-- Item: Plate of Indi-Regen +-- Teaches the Geomancer Magic Indi-Regen +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(768); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(768); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-slip.lua =================================================================== --- scripts/globals/items/plate_of_indi-slip.lua (revision 0) +++ scripts/globals/items/plate_of_indi-slip.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6095 +-- Item: Plate of Indi-Slip +-- Teaches the Geomancer Magic Indi-Slip +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(791); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(791); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-slow.lua =================================================================== --- scripts/globals/items/plate_of_indi-slow.lua (revision 0) +++ scripts/globals/items/plate_of_indi-slow.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6099 +-- Item: Plate of Indi-Slow +-- Teaches the Geomancer Magic Indi-Slow +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(795); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(795); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-str.lua =================================================================== --- scripts/globals/items/plate_of_indi-str.lua (revision 0) +++ scripts/globals/items/plate_of_indi-str.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6076 +-- Item: Plate of Indi-STR +-- Teaches the Geomancer Magic Indi-STR +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(772); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(772); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-torpor.lua =================================================================== --- scripts/globals/items/plate_of_indi-torpor.lua (revision 0) +++ scripts/globals/items/plate_of_indi-torpor.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6096 +-- Item: Plate of Indi-Torpor +-- Teaches the Geomancer Magic Indi-Torpor +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(792); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(792); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-vex.lua =================================================================== --- scripts/globals/items/plate_of_indi-vex.lua (revision 0) +++ scripts/globals/items/plate_of_indi-vex.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6097 +-- Item: Plate of Indi-Vex +-- Teaches the Geomancer Magic Indi-Vex +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(793); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(793); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-vit.lua =================================================================== --- scripts/globals/items/plate_of_indi-vit.lua (revision 0) +++ scripts/globals/items/plate_of_indi-vit.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6078 +-- Item: Plate of Indi-VIT +-- Teaches the Geomancer Magic Indi-VIT +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(774); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(774); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-voidance.lua =================================================================== --- scripts/globals/items/plate_of_indi-voidance.lua (revision 0) +++ scripts/globals/items/plate_of_indi-voidance.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6088 +-- Item: Plate of Indi-Voidance +-- Teaches the Geomancer Magic Indi-Voidance +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(784); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(784); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_indi-wilt.lua =================================================================== --- scripts/globals/items/plate_of_indi-wilt.lua (revision 0) +++ scripts/globals/items/plate_of_indi-wilt.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 6091 +-- Item: Plate of Indi-Wilt +-- Teaches the Geomancer Magic Indi-Wilt +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(787); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(787); +end; \ No newline at end of file Index: scripts/globals/items/plate_of_mushroom_risotto.lua =================================================================== --- scripts/globals/items/plate_of_mushroom_risotto.lua (revision 0) +++ scripts/globals/items/plate_of_mushroom_risotto.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 4434 +-- Item: Plate of Mushroom Risotto +-- Food Effect: 3 Hr, All Races +----------------------------------------- +-- MP 30 +-- Strength -1 +-- Vitality 3 +-- Mind 3 +-- MP Recovered while healing 2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,4434); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MP, 30); + target:addMod(MOD_STR, -1); + target:addMod(MOD_VIT, 3); + target:addMod(MOD_MND, 3); + target:addMod(MOD_MPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MP, 30); + target:delMod(MOD_STR, -1); + target:delMod(MOD_VIT, 3); + target:delMod(MOD_MND, 3); + target:delMod(MOD_MPHEAL, 2); +end; Index: scripts/globals/items/pole_of_trials.lua =================================================================== --- scripts/globals/items/pole_of_trials.lua (revision 0) +++ scripts/globals/items/pole_of_trials.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 17527 +-- Equip: Pole of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 17527) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 10); + target:addMod(MOD_MP, 10); + target:addMod(MOD_FIREDEF, 10); + target:addMod(MOD_LIGHTDEF, 10); + else + target:delMod(MOD_HP, 10); + target:delMod(MOD_MP, 10); + target:delMod(MOD_FIREDEF, 10); + target:delMod(MOD_LIGHTDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/port_bastok_gate_glyph.lua =================================================================== --- scripts/globals/items/port_bastok_gate_glyph.lua (revision 0) +++ scripts/globals/items/port_bastok_gate_glyph.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 4189 +-- Item: Bastok Port Gate Glyph +-- Enchantment: "Teleport" (Bastok Port) +----------------------------------------- + +require("scripts/globals/teleports"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + bastokPortGlyph(target); +end; \ No newline at end of file Index: scripts/globals/items/port_windurst_gate_glyph.lua =================================================================== --- scripts/globals/items/port_windurst_gate_glyph.lua (revision 0) +++ scripts/globals/items/port_windurst_gate_glyph.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 4194 +-- Item: Port Windurst Gate Glyph +-- Enchantment: "Teleport" (Port Windurst) +----------------------------------------- + +require("scripts/globals/teleports"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + windyPortGlyph(target); +end; \ No newline at end of file Index: scripts/globals/items/poseidons_ring.lua =================================================================== --- scripts/globals/items/poseidons_ring.lua (revision 0) +++ scripts/globals/items/poseidons_ring.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 14656 +-- Poseidon's Ring +-- This earring functions in the same way as the spell Water Spirit. +-- Uses: 50 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/pets"); +require("scripts/globals/summon"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:spawnPet(PET_WATER_SPIRIT); +end; Index: scripts/globals/items/pot_au_feu.lua =================================================================== --- scripts/globals/items/pot_au_feu.lua (revision 0) +++ scripts/globals/items/pot_au_feu.lua (working copy) @@ -0,0 +1,61 @@ +----------------------------------------- +-- ID: 5752 +-- Item: Pot-au-feu +-- Food Effect: 30Min, All Races +----------------------------------------- +-- Strength 3 +-- Agility 3 +-- Intelligence -3 +-- Ranged Attk % 15 Cap 35 ?? +-- Ranged ACC % 15 Cap 35 ?? +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,1800,5752); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 3); + target:addMod(MOD_AGI, 3); + target:addMod(MOD_INT, -3); + target:addMod(MOD_FOOD_RATTP, 15); + target:addMod(MOD_FOOD_RATT_CAP, 35); + target:addMod(MOD_FOOD_RACCP, 15); + target:addMod(MOD_FOOD_RACC_CAP, 35); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 3); + target:delMod(MOD_AGI, 3); + target:delMod(MOD_INT, -3); + target:delMod(MOD_FOOD_RATTP, 15); + target:delMod(MOD_FOOD_RATT_CAP, 35); + target:delMod(MOD_FOOD_RACCP, 15); + target:delMod(MOD_FOOD_RACC_CAP, 35); +end; Index: scripts/globals/items/pot_au_feu_+1.lua =================================================================== --- scripts/globals/items/pot_au_feu_+1.lua (revision 0) +++ scripts/globals/items/pot_au_feu_+1.lua (working copy) @@ -0,0 +1,61 @@ +----------------------------------------- +-- ID: 5753 +-- Item: Pot-au-feu +-- Food Effect: 30Min, All Races +----------------------------------------- +-- Strength 4 +-- Agility 4 +-- Intelligence -2 +-- Ranged Attk % 15 Cap 35 ?? +-- Ranged ACC % 15 Cap 35 ?? +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,1800,5753); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 4); + target:addMod(MOD_AGI, 4); + target:addMod(MOD_INT, -2); + target:addMod(MOD_FOOD_RATTP, 15); + target:addMod(MOD_FOOD_RATT_CAP, 35); + target:addMod(MOD_FOOD_RACCP, 15); + target:addMod(MOD_FOOD_RACC_CAP, 35); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 4); + target:delMod(MOD_AGI, 4); + target:delMod(MOD_INT, -2); + target:delMod(MOD_FOOD_RATTP, 15); + target:delMod(MOD_FOOD_RATT_CAP, 35); + target:delMod(MOD_FOOD_RACCP, 15); + target:delMod(MOD_FOOD_RACC_CAP, 35); +end; Index: scripts/globals/items/pot_of_silent_oil.lua =================================================================== --- scripts/globals/items/pot_of_silent_oil.lua (revision 3520) +++ scripts/globals/items/pot_of_silent_oil.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------------- --- ID: 4165 --- Silent oil --- This lubricant cuts down 99.99% of all friction +-- ID: 4165 +-- Item: Silent oil +-- Effect: This lubricant cuts down 99.99% of all friction ----------------------------------------- require("scripts/globals/status"); @@ -18,7 +18,9 @@ ----------------------------------------- function onItemUse(target) + local duration = 200 + duration = duration + (duration * target:getMod(MOD_SNEAK_DUR)); if (not target:hasStatusEffect(EFFECT_SNEAK)) then - target:addStatusEffect(EFFECT_SNEAK,1,10,200); + target:addStatusEffect(EFFECT_SNEAK,1,10,duration); end end; Index: scripts/globals/items/primal_belt.lua =================================================================== --- scripts/globals/items/primal_belt.lua (revision 0) +++ scripts/globals/items/primal_belt.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- ID: 15910 +-- Item: Primal Belt +-- Item Effect: Pet gets DEF +5 Enimity +3 +----------------------------------------- + +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_WAIST) == 15910) then + pet:addMod(MOD_DEF, 5); + pet:addMod(MOD_ENMITY, 3); + else + pet:delMod(MOD_DEF, 5); + pet:delMod(MOD_ENMITY, 3); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/prime_angler_stewpot.lua =================================================================== --- scripts/globals/items/prime_angler_stewpot.lua (revision 0) +++ scripts/globals/items/prime_angler_stewpot.lua (working copy) @@ -0,0 +1,74 @@ +----------------------------------------- +-- ID: 5612 +-- Item: Prime Angler Stewpot +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% +-- MP +15 +-- Dexterity 2 +-- Agility 1 +-- Mind 1 +-- HP Recovered while healing 7 +-- MP Recovered while healing 2 +-- Accuracy 15% Cap 30 +-- Ranged Accuracy 15% Cap 30 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5612); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_MP, 15); + target:addMod(MOD_DEX, 2); + target:addMod(MOD_AGI, 1); + target:addMod(MOD_MND, 1); + target:addMod(MOD_HPHEAL, 7); + target:addMod(MOD_MPHEAL, 2); + target:addMod(MOD_FOOD_ACCP, 15); + target:addMod(MOD_FOOD_ACC_CAP, 30); + target:addMod(MOD_FOOD_RACCP, 15); + target:addMod(MOD_FOOD_RACC_CAP, 30); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_MP, 15); + target:delMod(MOD_DEX, 2); + target:delMod(MOD_AGI, 1); + target:delMod(MOD_MND, 1); + target:delMod(MOD_HPHEAL, 7); + target:delMod(MOD_MPHEAL, 2); + target:delMod(MOD_FOOD_ACCP, 15); + target:delMod(MOD_FOOD_ACC_CAP, 30); + target:delMod(MOD_FOOD_RACCP, 15); + target:delMod(MOD_FOOD_RACC_CAP, 30); +end; Index: scripts/globals/items/prime_beef_stewpot.lua =================================================================== --- scripts/globals/items/prime_beef_stewpot.lua (revision 0) +++ scripts/globals/items/prime_beef_stewpot.lua (working copy) @@ -0,0 +1,74 @@ +----------------------------------------- +-- ID: 5548 +-- Item: Prime Beef Stewpot +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% Cap 75 +-- MP +15 +-- Strength +2 +-- Agility +1 +-- Mind +1 +-- HP Recovered while healing +7 +-- MP Recovered while healing +2 +-- Attack 18% Cap 60 +-- Evasion +6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5548); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_FOOD_HP_CAP, 75); + target:addMod(MOD_MP, 15); + target:addMod(MOD_STR, 2); + target:addMod(MOD_AGI, 1); + target:addMod(MOD_MND, 1); + target:addMod(MOD_HPHEAL, 7); + target:addMod(MOD_MPHEAL, 2); + target:addMod(MOD_FOOD_ATTP, 18); + target:addMod(MOD_FOOD_ATT_CAP, 60); + target:addMod(MOD_EVA, 6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_FOOD_HP_CAP, 75); + target:delMod(MOD_MP, 15); + target:delMod(MOD_STR, 2); + target:delMod(MOD_AGI, 1); + target:delMod(MOD_MND, 1); + target:delMod(MOD_HPHEAL, 7); + target:delMod(MOD_MPHEAL, 2); + target:delMod(MOD_FOOD_ATTP, 18); + target:delMod(MOD_FOOD_ATT_CAP, 60); + target:delMod(MOD_EVA, 6); +end; Index: scripts/globals/items/prime_crab_stewpot.lua =================================================================== --- scripts/globals/items/prime_crab_stewpot.lua (revision 0) +++ scripts/globals/items/prime_crab_stewpot.lua (working copy) @@ -0,0 +1,74 @@ +----------------------------------------- +-- ID: 5545 +-- Item: Prime Crab Stewpot +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% Cap 75 +-- MP +15 +-- Vitality +1 +-- Agility +1 +-- Mind +2 +-- HP Recovered while healing +7 +-- MP Recovered while healing +2 +-- Defense 20% Cap 75 +-- Evasion +6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5545); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_FOOD_HP_CAP, 75); + target:addMod(MOD_MP, 15); + target:addMod(MOD_VIT, 1); + target:addMod(MOD_AGI, 1); + target:addMod(MOD_MND, 2); + target:addMod(MOD_HPHEAL, 7); + target:addMod(MOD_MPHEAL, 2); + target:addMod(MOD_FOOD_DEFP, 20); + target:addMod(MOD_FOOD_DEF_CAP, 75); + target:addMod(MOD_EVA, 6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_FOOD_HP_CAP, 75); + target:delMod(MOD_MP, 15); + target:delMod(MOD_VIT, 1); + target:delMod(MOD_AGI, 1); + target:delMod(MOD_MND, 2); + target:delMod(MOD_HPHEAL, 7); + target:delMod(MOD_MPHEAL, 2); + target:delMod(MOD_FOOD_DEFP, 20); + target:delMod(MOD_FOOD_DEF_CAP, 75); + target:delMod(MOD_EVA, 6); +end; Index: scripts/globals/items/prime_seafood_stewpot.lua =================================================================== --- scripts/globals/items/prime_seafood_stewpot.lua (revision 0) +++ scripts/globals/items/prime_seafood_stewpot.lua (working copy) @@ -0,0 +1,75 @@ +----------------------------------------- +-- ID: 5239 +-- Item: Prime Seafood Stewpot +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% Cap 75 +-- MP +15 +-- Dexterity 1 +-- Vitality 1 +-- Agility 1 +-- Mind 1 +-- HP Recovered while healing 7 +-- MP Recovered while healing 2 +-- Accuracy 6 +-- Evasion 6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5239); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_FOOD_HP_CAP, 75); + target:addMod(MOD_MP, 15); + target:addMod(MOD_DEX, 1); + target:addMod(MOD_VIT, 1); + target:addMod(MOD_AGI, 1); + target:addMod(MOD_MND, 1); + target:addMod(MOD_HPHEAL, 7); + target:addMod(MOD_MPHEAL, 2); + target:addMod(MOD_ACC, 6); + target:addMod(MOD_EVA, 6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_FOOD_HP_CAP, 75); + target:delMod(MOD_MP, 15); + target:delMod(MOD_DEX, 1); + target:delMod(MOD_VIT, 1); + target:delMod(MOD_AGI, 1); + target:delMod(MOD_MND, 1); + target:delMod(MOD_HPHEAL, 7); + target:delMod(MOD_MPHEAL, 2); + target:delMod(MOD_ACC, 6); + target:delMod(MOD_EVA, 6); +end; Index: scripts/globals/items/prized_angler_stewpot.lua =================================================================== --- scripts/globals/items/prized_angler_stewpot.lua (revision 0) +++ scripts/globals/items/prized_angler_stewpot.lua (working copy) @@ -0,0 +1,74 @@ +----------------------------------------- +-- ID: 5613 +-- Item: Prized Angler's Stewpot +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% +-- MP +20 +-- Dexterity 4 +-- Agility 2 +-- Mind 2 +-- HP Recovered while healing 9 +-- MP Recovered while healing 3 +-- Accuracy 15% Cap 45 +-- Ranged Accuracy 15% Cap 45 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5613); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_MP, 20); + target:addMod(MOD_DEX, 4); + target:addMod(MOD_AGI, 2); + target:addMod(MOD_MND, 2); + target:addMod(MOD_HPHEAL, 9); + target:addMod(MOD_MPHEAL, 3); + target:addMod(MOD_FOOD_ACCP, 15); + target:addMod(MOD_FOOD_ACC_CAP, 45); + target:addMod(MOD_FOOD_RACCP, 15); + target:addMod(MOD_FOOD_RACC_CAP, 45); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_MP, 20); + target:delMod(MOD_DEX, 4); + target:delMod(MOD_AGI, 2); + target:delMod(MOD_MND, 2); + target:delMod(MOD_HPHEAL, 9); + target:delMod(MOD_MPHEAL, 3); + target:delMod(MOD_FOOD_ACCP, 15); + target:delMod(MOD_FOOD_ACC_CAP, 45); + target:delMod(MOD_FOOD_RACCP, 15); + target:delMod(MOD_FOOD_RACC_CAP, 45); +end; Index: scripts/globals/items/prized_beef_stewpot.lua =================================================================== --- scripts/globals/items/prized_beef_stewpot.lua (revision 0) +++ scripts/globals/items/prized_beef_stewpot.lua (working copy) @@ -0,0 +1,74 @@ +----------------------------------------- +-- ID: 5549 +-- Item: Prized Angler's Stewpot +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% Cap 100 +-- MP +20 +-- Strength +4 +-- Agility +2 +-- Mind +2 +-- HP Recovered while healing +9 +-- MP Recovered while healing +3 +-- Attack 15% Cap 80 +-- Evasion +7 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5549); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_FOOD_HP_CAP, 100); + target:addMod(MOD_MP, 20); + target:addMod(MOD_STR, 4); + target:addMod(MOD_AGI, 2); + target:addMod(MOD_MND, 2); + target:addMod(MOD_HPHEAL, 9); + target:addMod(MOD_MPHEAL, 3); + target:addMod(MOD_FOOD_ATTP, 18); + target:addMod(MOD_FOOD_ATT_CAP, 80); + target:addMod(MOD_EVA, 7); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_FOOD_HP_CAP, 100); + target:delMod(MOD_MP, 20); + target:delMod(MOD_STR, 4); + target:delMod(MOD_AGI, 2); + target:delMod(MOD_MND, 2); + target:delMod(MOD_HPHEAL, 9); + target:delMod(MOD_MPHEAL, 3); + target:delMod(MOD_FOOD_ATTP, 18); + target:delMod(MOD_FOOD_ATT_CAP, 80); + target:delMod(MOD_EVA, 7); +end; Index: scripts/globals/items/prized_crab_stewpot.lua =================================================================== --- scripts/globals/items/prized_crab_stewpot.lua (revision 0) +++ scripts/globals/items/prized_crab_stewpot.lua (working copy) @@ -0,0 +1,74 @@ +----------------------------------------- +-- ID: 5546 +-- Item: Prized Crab Stewpot +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% Cap 100 +-- MP +20 +-- Vitality +2 +-- Agility +2 +-- Mind +4 +-- HP Recovered while healing +9 +-- MP Recovered while healing +3 +-- Defense 20% Cap 100 +-- Evasion +7 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5546); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_FOOD_HP_CAP, 100); + target:addMod(MOD_MP, 20); + target:addMod(MOD_VIT, 2); + target:addMod(MOD_AGI, 2); + target:addMod(MOD_MND, 4); + target:addMod(MOD_HPHEAL, 9); + target:addMod(MOD_MPHEAL, 3); + target:addMod(MOD_FOOD_DEFP, 20); + target:addMod(MOD_FOOD_DEF_CAP, 100); + target:addMod(MOD_EVA, 7); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_FOOD_HP_CAP, 100); + target:delMod(MOD_MP, 20); + target:delMod(MOD_VIT, 2); + target:delMod(MOD_AGI, 2); + target:delMod(MOD_MND, 4); + target:delMod(MOD_HPHEAL, 9); + target:delMod(MOD_MPHEAL, 3); + target:delMod(MOD_FOOD_DEFP, 20); + target:delMod(MOD_FOOD_DEF_CAP, 100); + target:delMod(MOD_EVA, 7); +end; Index: scripts/globals/items/prized_seafood_stewpot.lua =================================================================== --- scripts/globals/items/prized_seafood_stewpot.lua (revision 0) +++ scripts/globals/items/prized_seafood_stewpot.lua (working copy) @@ -0,0 +1,75 @@ +----------------------------------------- +-- ID: 5240 +-- Item: Prized Seafood Stewpot +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% Cap 100 +-- MP +20 +-- Dexterity 2 +-- Vitality 2 +-- Agility 2 +-- Mind 2 +-- HP Recovered while healing 9 +-- MP Recovered while healing 3 +-- Accuracy 7 +-- Evasion 7 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5240); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_FOOD_HP_CAP, 100); + target:addMod(MOD_MP, 20); + target:addMod(MOD_DEX, 2); + target:addMod(MOD_VIT, 2); + target:addMod(MOD_AGI, 2); + target:addMod(MOD_MND, 2); + target:addMod(MOD_HPHEAL, 9); + target:addMod(MOD_MPHEAL, 3); + target:addMod(MOD_ACC, 7); + target:addMod(MOD_EVA, 7); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_FOOD_HP_CAP, 100); + target:delMod(MOD_MP, 20); + target:delMod(MOD_DEX, 2); + target:delMod(MOD_VIT, 2); + target:delMod(MOD_AGI, 2); + target:delMod(MOD_MND, 2); + target:delMod(MOD_HPHEAL, 9); + target:delMod(MOD_MPHEAL, 3); + target:delMod(MOD_ACC, 7); + target:delMod(MOD_EVA, 7); +end; Index: scripts/globals/items/prominence_axe.lua =================================================================== --- scripts/globals/items/prominence_axe.lua (revision 0) +++ scripts/globals/items/prominence_axe.lua (working copy) @@ -0,0 +1,22 @@ +----------------------------------------- +-- ID: 18220 +-- Item: Prominence Axe +-- Enchantment: "Enfire" +-- Charges: 30 Reuse: 300 Secs +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENFIRE; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/prominence_sword.lua =================================================================== --- scripts/globals/items/prominence_sword.lua (revision 0) +++ scripts/globals/items/prominence_sword.lua (working copy) @@ -0,0 +1,22 @@ +----------------------------------------- +-- ID: 18381 +-- Item: Prominence Sword +-- Enchantment: "Enfire" +-- Charges: 30 Reuse: 300 Secs +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENFIRE; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/protect_earring.lua =================================================================== --- scripts/globals/items/protect_earring.lua (revision 3520) +++ scripts/globals/items/protect_earring.lua (working copy) @@ -22,6 +22,13 @@ local power = 15; + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 2; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 2; + end + if(target:addStatusEffect(EFFECT_PROTECT, power, 0, 1800)) then target:messageBasic(205); else Index: scripts/globals/items/protect_ring.lua =================================================================== --- scripts/globals/items/protect_ring.lua (revision 3520) +++ scripts/globals/items/protect_ring.lua (working copy) @@ -21,6 +21,12 @@ function onItemUse(target) local power = 40; + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 4; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 4; + end if(target:addStatusEffect(EFFECT_PROTECT, power, 0, 1800)) then target:messageBasic(205); Index: scripts/globals/items/pumpkin_cake.lua =================================================================== --- scripts/globals/items/pumpkin_cake.lua (revision 0) +++ scripts/globals/items/pumpkin_cake.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5631 +-- Item: Pumpkin Cake +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP Recovered while healing +2 +-- MP Recovered while healing +4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5631); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HPHEAL, 2); + target:addMod(MOD_MPHEAL, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HPHEAL, 2); + target:delMod(MOD_MPHEAL, 4); +end; Index: scripts/globals/items/purgatory_collar.lua =================================================================== --- scripts/globals/items/purgatory_collar.lua (revision 0) +++ scripts/globals/items/purgatory_collar.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 15507 +-- Item: Purgatory Collar +-- Enchantment: Conserve MP +-- Charges: 20 Reuse Delay: 15 Mins +-- Duration: 5 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,300,15507); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_CONSERVE_MP, 15); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_CONSERVE_MP, 15); +end; \ No newline at end of file Index: scripts/globals/items/quadav_belt.lua =================================================================== --- scripts/globals/items/quadav_belt.lua (revision 0) +++ scripts/globals/items/quadav_belt.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 10848 +-- Quadav Belt +-- Enchantment: 60Min, Costume - Quadav +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,644,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/quies_ring.lua =================================================================== --- scripts/globals/items/quies_ring.lua (revision 0) +++ scripts/globals/items/quies_ring.lua (working copy) @@ -0,0 +1,42 @@ +----------------------------------------- +-- ID: 10780 +-- Item: Quies Ring +-- Enchantment: Magic Defense Bonus +3 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,300,10780); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MDEF, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MDEF, 3); +end; \ No newline at end of file Index: scripts/globals/items/quus.lua =================================================================== --- scripts/globals/items/quus.lua (revision 3520) +++ scripts/globals/items/quus.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/rabao_earring.lua =================================================================== --- scripts/globals/items/rabao_earring.lua (revision 0) +++ scripts/globals/items/rabao_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16045 +-- Item: Rabao Earring +-- Enchantment: "Teleport" (Rabao) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(247) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + rabaoEarring(target); +end; \ No newline at end of file Index: scripts/globals/items/raise_ii_rod.lua =================================================================== --- scripts/globals/items/raise_ii_rod.lua (revision 0) +++ scripts/globals/items/raise_ii_rod.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 17469 +-- Item: Raise II Rod +-- Item Effect: Casts Raise II on target +-- Charges: 20 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (!target:hasStatusEffect(EFFECT_KO)) then + result = 56; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:sendRaise(2); + target:messageBasic(309); +end; Index: scripts/globals/items/raise_rod.lua =================================================================== --- scripts/globals/items/raise_rod.lua (revision 0) +++ scripts/globals/items/raise_rod.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 17468 +-- Item: Raise Rod +-- Item Effect: Casts Raise on target +-- Charges: 20 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (!target:hasStatusEffect(EFFECT_KO)) then + result = 56; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:sendRaise(1); + target:messageBasic(309); +end; Index: scripts/globals/items/rajas_ring.lua =================================================================== --- scripts/globals/items/rajas_ring.lua (revision 0) +++ scripts/globals/items/rajas_ring.lua (working copy) @@ -0,0 +1,41 @@ +----------------------------------------- +-- ID: 15543 +-- Item: Rajas Ring +-- Item Effect: STR +2~5 DEX +2~5 Variable with Lvl +-- DEF +1 every 10 Lvls +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local lvl = target:getMainLvl(); + local attribMod = 0 + if (target:getEquipID(SLOT_BACK) == 13680) then + if(lvl >= 45) then + attribMod = attribMod + 1 + end + if(lvl >= 60) then + attribMod = attribMod + 1 + end + if(lvl >= 75) then + attribMod = attribMod + 1 + end + target:addMod(MOD_STR, attribMod); + target:addMod(MOD_DEX, attribMod); + else + target:delMod(MOD_STR, attribMod); + target:delMod(MOD_DEX, attribMod); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/ram_staff.lua =================================================================== --- scripts/globals/items/ram_staff.lua (revision 0) +++ scripts/globals/items/ram_staff.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 18612 +-- Item: Ram Staff +-- Enchantment: "Retrace" (San d'Oria) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(80) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + ramStaff(target); +end; \ No newline at end of file Index: scripts/globals/items/random_ring.lua =================================================================== --- scripts/globals/items/random_ring.lua (revision 0) +++ scripts/globals/items/random_ring.lua (working copy) @@ -0,0 +1,40 @@ +----------------------------------------- +-- ID: 15770 +-- Random Ring +-- Enchantment: DEX + 1~8 +-- Uses: 50 Duration: 3 Mins +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,180,15770); + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + local dexMod = math.random(1,8); + target:addMod(MOD_DEX, dexMod); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, dexMod); +end; \ No newline at end of file Index: scripts/globals/items/ravanas_axe.lua =================================================================== --- scripts/globals/items/ravanas_axe.lua (revision 0) +++ scripts/globals/items/ravanas_axe.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 18547 +-- Equip: Ravana's Axe +-- Pet: Adds "Regen" Effect +10 every 3 sec +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_MAIN) == 18547 or target:getEquipID(SLOT_SUB) == 18547) then + pet:addStatusEffectEx(EFFECT_AUTO_REGEN,0,10,3,0,18547); + else + pet:delStatusEffect(EFFECT_AUTO_REGEN,18547); + end +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------- +-- onEffectTick Action +----------------------------------- + +function onEffectTick(target,effect) + local pet = target:getPet(); + pet:addHP(effect:getPower()); +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/rebirth_feather.lua =================================================================== --- scripts/globals/items/rebirth_feather.lua (revision 0) +++ scripts/globals/items/rebirth_feather.lua (working copy) @@ -0,0 +1,37 @@ +----------------------------------------- +-- ID: 5259 +-- Item: Rebirth Feather +-- Effect: Brings you back from the dead~! Reraise III +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + power = 3; + duration = 1800; + if(target:hasStatusEffect(EFFECT_RERAISE) ==true)then + effect = target:getStatusEffect(EFFECT_RERAISE); + oPower = effect:getPower(); + if(oPower > power) then + target:messageBasic(283); -- Higher Tiered verson means no effect! + else + target:delStatusEffect(EFFECT_RERAISE); + target:addStatusEffect(EFFECT_RERAISE,power,0,duration); + end + else + target:addStatusEffect(EFFECT_RERAISE,power,0,duration); + end +end; \ No newline at end of file Index: scripts/globals/items/red_terrapin.lua =================================================================== --- scripts/globals/items/red_terrapin.lua (revision 3520) +++ scripts/globals/items/red_terrapin.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/redeyes.lua =================================================================== --- scripts/globals/items/redeyes.lua (revision 0) +++ scripts/globals/items/redeyes.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 16120 +-- Redeyes +-- When used, you will obtain one Angelwing +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5441,1); +end; \ No newline at end of file Index: scripts/globals/items/refresh_musk.lua =================================================================== --- scripts/globals/items/refresh_musk.lua (revision 0) +++ scripts/globals/items/refresh_musk.lua (working copy) @@ -0,0 +1,27 @@ +----------------------------------------- +-- ID: 18541 +-- Item: Refresh Musk +-- Enchantment: Adds Refresh +-- Duration: 60 Secs +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 60; + target:delStatusEffect(EFFECT_REFRESH); + target:addStatusEffect(EFFECT_REFRESH,3,1,duration); +end; \ No newline at end of file Index: scripts/globals/items/regain_feather.lua =================================================================== --- scripts/globals/items/regain_feather.lua (revision 0) +++ scripts/globals/items/regain_feather.lua (working copy) @@ -0,0 +1,53 @@ +----------------------------------------- +-- ID: 5260 +-- Item: Regain Feather +-- Effect: Restore 100% HP 100% MP 300% TP +-- Duration: Instant 2 Hrs Medicated +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + mHP = target:getMaxHP(); + cHP = target:getHP(); + mMP = target:getMaxMP(); + cMP = target:getMP(); + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + if (mHP == cHP and mMP == cMP) then + result = 56; -- Does not let player use item if their hp and mp are full + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,7200,5260); + target:setHP(mHP); + target:setMP(mMP); + target:setTP(300); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/regiment_kheten.lua =================================================================== --- scripts/globals/items/regiment_kheten.lua (revision 0) +++ scripts/globals/items/regiment_kheten.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 18493 +-- Item: Regiment Kheten +-- Item Effect: TP +10 +-- Durration: Instant +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addTP(10); +end; Index: scripts/globals/items/republic_earring.lua =================================================================== --- scripts/globals/items/republic_earring.lua (revision 0) +++ scripts/globals/items/republic_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16040 +-- Item: Republic Earring +-- Enchantment: "Teleport" (Bastok Markets) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(235) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + republicEarring(target); +end; \ No newline at end of file Index: scripts/globals/items/republic_signet_staff.lua =================================================================== --- scripts/globals/items/republic_signet_staff.lua (revision 0) +++ scripts/globals/items/republic_signet_staff.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 17584 +-- Item: Republic Signet Staff +-- Item Effect: Grants target Signet +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:getNation() ~= 1) then + result = 56; + end + if (target:checkSoloPartyAlliance() == 0) then + result = 56; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:delStatusEffect(EFFECT_SIGNET); + target:addStatusEffect(EFFECT_SIGNET,0,0,18000,0,0); +end; + + Index: scripts/globals/items/republic_stables_medal.lua =================================================================== --- scripts/globals/items/republic_stables_medal.lua (revision 0) +++ scripts/globals/items/republic_stables_medal.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 13180 +-- Item: Republic Stables Medal +-- Enchantment: "Teleport" (Bastok Chocobo Stables) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(235) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + republicStablesMedal(target); +end; \ No newline at end of file Index: scripts/globals/items/return_ring.lua =================================================================== --- scripts/globals/items/return_ring.lua (revision 0) +++ scripts/globals/items/return_ring.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 15541 +-- Item: Homing Ring +-- Enchantment: "Teleport" (Outpost) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + returnRing(target); +end; \ No newline at end of file Index: scripts/globals/items/revive_feather.lua =================================================================== --- scripts/globals/items/revive_feather.lua (revision 0) +++ scripts/globals/items/revive_feather.lua (working copy) @@ -0,0 +1,37 @@ +----------------------------------------- +-- ID: 5258 +-- Item: Revive Feather +-- Effect: Brings you back from the dead~! +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + power = 1; + duration = 1800; + if(target:hasStatusEffect(EFFECT_RERAISE) ==true)then + effect = target:getStatusEffect(EFFECT_RERAISE); + oPower = effect:getPower(); + if(oPower > power) then + target:messageBasic(283); -- Higher Tiered verson means no effect! + else + target:delStatusEffect(EFFECT_RERAISE); + target:addStatusEffect(EFFECT_RERAISE,power,0,duration); + end + else + target:addStatusEffect(EFFECT_RERAISE,power,0,duration); + end +end; \ No newline at end of file Index: scripts/globals/items/river_top_+1.lua =================================================================== --- scripts/globals/items/river_top_+1.lua (revision 0) +++ scripts/globals/items/river_top_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10270 +-- River Top +1 +-- When used, you will obtain 1 Berry Snowcone +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5710,1); +end; \ No newline at end of file Index: scripts/globals/items/roll_of_buche_au_chocolat.lua =================================================================== --- scripts/globals/items/roll_of_buche_au_chocolat.lua (revision 0) +++ scripts/globals/items/roll_of_buche_au_chocolat.lua (working copy) @@ -0,0 +1,60 @@ +----------------------------------------- +-- ID: 5550 +-- Item: Roll of Buche Au Chocolat +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +8 +-- MP +3% Cap 13 +-- Intelligence +2 +-- HP Recovered while healing +1 +-- MP Recovered while healing +4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5550); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_MPP, 3); + target:addMod(MOD_FOOD_MP_CAP, 13); + target:addMod(MOD_HP, 8); + target:addMod(MOD_INT, 2); + target:addMod(MOD_HPHEAL, 1); + target:addMod(MOD_MPHEAL, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_MPP, 3); + target:delMod(MOD_FOOD_MP_CAP, 13); + target:delMod(MOD_HP, 8); + target:delMod(MOD_INT, 2); + target:delMod(MOD_HPHEAL, 1); + target:delMod(MOD_MPHEAL, 4); +end; Index: scripts/globals/items/roll_of_sylvan_excursion.lua =================================================================== --- scripts/globals/items/roll_of_sylvan_excursion.lua (revision 0) +++ scripts/globals/items/roll_of_sylvan_excursion.lua (working copy) @@ -0,0 +1,60 @@ +----------------------------------------- +-- ID: 5551 +-- Item: Roll of Sylvan Excursion +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10 +-- MP +3% Cap 15 +-- Intelligence +3 +-- HP Recovered while healing +2 +-- MP Recovered while healing +5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5551); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_MPP, 3); + target:addMod(MOD_FOOD_MP_CAP, 15); + target:addMod(MOD_HP, 10); + target:addMod(MOD_INT, 3); + target:addMod(MOD_HPHEAL, 2); + target:addMod(MOD_MPHEAL, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_MPP, 3); + target:delMod(MOD_FOOD_MP_CAP, 15); + target:delMod(MOD_HP, 10); + target:delMod(MOD_INT, 3); + target:delMod(MOD_HPHEAL, 2); + target:delMod(MOD_MPHEAL, 5); +end; Index: scripts/globals/items/root_sabots.lua =================================================================== --- scripts/globals/items/root_sabots.lua (revision 0) +++ scripts/globals/items/root_sabots.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- ID: 15328 +-- Item: Root Sabots +-- Enchantment: Bind +-- Bind Effect: Adds "Regen" +-- Durration: 2 Mins +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + if (target:hasStatusEffect(EFFECT_BIND) == true) then + target:addStatusEffect(EFFECT_REGEN,2,1,120); + end + elseif (target:hasStatusEffect(EFFECT_BIND) == false) then + target:delStatusEffect(EFFECT_REGEN); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + duration = 120; + target:delStatusEffect(EFFECT_BIND); + target:addStatusEffect(EFFECT_BIND,1,0,duration); +end; \ No newline at end of file Index: scripts/globals/items/rouge_rice_ball.lua =================================================================== --- scripts/globals/items/rouge_rice_ball.lua (revision 0) +++ scripts/globals/items/rouge_rice_ball.lua (working copy) @@ -0,0 +1,73 @@ +----------------------------------------- +-- ID: 4604 +-- Item: Rouge Rice Ball +-- Food Effect: 30 Mins, All Races +----------------------------------------- +-- HP 12 +-- Vitality 3 +-- HP Regeneration While Healing +2 +-- Effect with enhancing equipment +-- DEF +50 +-- Beast Killer 5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,1800,4604); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + pEquipMods = 0; + local hands = target:getEquipID(SLOT_HANDS); + local head = target:getEquipID(SLOT_HEAD); + local feet = target:getEquipID(SLOT_FEET); + target:addMod(MOD_HP, 12); + target:addMod(MOD_VIT, 3); + target:addMod(MOD_HPHEAL, 2); + + -- Equipment Bonus + if (head == 13949 or head == 13910) then -- Roshi Jinpachi & +1 + pEquipMods = pEquipMods + 1; + end + if (hands == 14901 or hands == 13972) then -- Myochin Kote & +1 + pEquipMods = pEquipMods + 1; + end + if (feet == 11367) then -- Nobushi Kyahan + pEquipMods = pEquipMods + 1; + end + target:addMod(MOD_DEF, (pEquipMods * 50)); + target:addMod(MOD_BEAST_KILLER, (pEquipMods * 5)); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 12); + target:delMod(MOD_VIT, 3); + target:delMod(MOD_HPHEAL, 2); + target:delMod(MOD_DEF, (pEquipMods * 50)); + target:delMod(MOD_BEAST_KILLER, (pEquipMods * 5)); +end; Index: scripts/globals/items/rounsey_wand.lua =================================================================== --- scripts/globals/items/rounsey_wand.lua (revision 0) +++ scripts/globals/items/rounsey_wand.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 18879 +-- Item: Rounsey Wand +-- Enchantment: "Teleport" (Chocobo Circuit) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:setPos(-94,0,-67,0,70); +end; \ No newline at end of file Index: scripts/globals/items/royal_omelette.lua =================================================================== --- scripts/globals/items/royal_omelette.lua (revision 3520) +++ scripts/globals/items/royal_omelette.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------------- -- ID: 4564 --- Item: royal_omelette --- Food Effect: 180Min, All Races +-- Item: Royal Omelette +-- Food Effect: 180 Mins, All Races ----------------------------------------- -- Strength 5 -- Dexterity 2 @@ -12,6 +12,19 @@ -- Ranged ATT % 22 -- Ranged ATT Cap 65 ----------------------------------------- +-- IF ELVAAN ONLY +-- HP 20 +-- MP 20 +-- Strength 6 +-- Dexterity 2 +-- Intelligence -2 +-- Mind 5 +-- Charisma 4 +-- Attack % 22 +-- Attack Cap 80 +-- Ranged ATT % 22 +-- Ranged ATT Cap 80 +----------------------------------------- require("scripts/globals/status"); @@ -40,14 +53,28 @@ ----------------------------------- function onEffectGain(target,effect) - target:addMod(MOD_STR, 5); - target:addMod(MOD_DEX, 2); - target:addMod(MOD_INT, -3); - target:addMod(MOD_MND, 4); - target:addMod(MOD_FOOD_ATTP, 22); - target:addMod(MOD_FOOD_ATT_CAP, 65); - target:addMod(MOD_FOOD_RATTP, 22); - target:addMod(MOD_FOOD_RATT_CAP, 65); + if (target:getRace() == 3 or target:getRace() == 4) then + target:addMod(MOD_HP, 20); + target:addMod(MOD_MP, 20); + target:addMod(MOD_STR, 6); + target:addMod(MOD_DEX, 2); + target:addMod(MOD_INT, -2); + target:addMod(MOD_MND, 5); + target:addMod(MOD_CHR, 4); + target:addMod(MOD_FOOD_ATTP, 22); + target:addMod(MOD_FOOD_ATT_CAP, 80); + target:addMod(MOD_FOOD_RATTP, 22); + target:addMod(MOD_FOOD_RATT_CAP, 80); + else + target:addMod(MOD_STR, 5); + target:addMod(MOD_DEX, 2); + target:addMod(MOD_INT, -3); + target:addMod(MOD_MND, 4); + target:addMod(MOD_FOOD_ATTP, 22); + target:addMod(MOD_FOOD_ATT_CAP, 65); + target:addMod(MOD_FOOD_RATTP, 22); + target:addMod(MOD_FOOD_RATT_CAP, 65); + end end; ----------------------------------------- @@ -55,12 +82,26 @@ ----------------------------------------- function onEffectLose(target,effect) - target:delMod(MOD_STR, 5); - target:delMod(MOD_DEX, 2); - target:delMod(MOD_INT, -3); - target:delMod(MOD_MND, 4); - target:delMod(MOD_FOOD_ATTP, 22); - target:delMod(MOD_FOOD_ATT_CAP, 65); - target:delMod(MOD_FOOD_RATTP, 22); - target:delMod(MOD_FOOD_RATT_CAP, 65); + if (target:getRace() == 3 or target:getRace() == 4) then + target:delMod(MOD_HP, 20); + target:delMod(MOD_MP, 20); + target:delMod(MOD_STR, 6); + target:delMod(MOD_DEX, 2); + target:delMod(MOD_INT, -2); + target:delMod(MOD_MND, 5); + target:delMod(MOD_CHR, 4); + target:delMod(MOD_FOOD_ATTP, 22); + target:delMod(MOD_FOOD_ATT_CAP, 80); + target:delMod(MOD_FOOD_RATTP, 22); + target:delMod(MOD_FOOD_RATT_CAP, 80); + else + target:delMod(MOD_STR, 5); + target:delMod(MOD_DEX, 2); + target:delMod(MOD_INT, -3); + target:delMod(MOD_MND, 4); + target:delMod(MOD_FOOD_ATTP, 22); + target:delMod(MOD_FOOD_ATT_CAP, 65); + target:delMod(MOD_FOOD_RATTP, 22); + target:delMod(MOD_FOOD_RATT_CAP, 65); + end end; Index: scripts/globals/items/runners_belt.lua =================================================================== --- scripts/globals/items/runners_belt.lua (revision 0) +++ scripts/globals/items/runners_belt.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 15865 +-- Item: Runners Belt +-- Enchantment: DEX 3 +-- Charges: 30 Reuse Delay: 5 Mins +-- Duration: 30 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,30,15865); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 3); +end; \ No newline at end of file Index: scripts/globals/items/rusty_bolt_case.lua =================================================================== --- scripts/globals/items/rusty_bolt_case.lua (revision 0) +++ scripts/globals/items/rusty_bolt_case.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 4197 +-- Rusty Bolt Case +-- When used, you will obtain 12 Rusty Bolts +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(17335,12); +end; \ No newline at end of file Index: scripts/globals/items/ruszor_quiver.lua =================================================================== --- scripts/globals/items/ruszor_quiver.lua (revision 0) +++ scripts/globals/items/ruszor_quiver.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5871 +-- Item: Ruszor Quiver +-- When used, you will obtain one stack of Ruszor Arrows +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(19182,99); +end; \ No newline at end of file Index: scripts/globals/items/sabong_earring.lua =================================================================== --- scripts/globals/items/sabong_earring.lua (revision 0) +++ scripts/globals/items/sabong_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 10299 +-- Item: Sabopng Earring +-- Item Effect: Pet Dbl Attack + 2% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_EAR1) == 10299 or target:getEquipID(SLOT_EAR2) == 10299) then + pet:addMod(MOD_DOUBLE_ATTACK, 2); + else + pet:delMod(MOD_DOUBLE_ATTACK, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/sacred_degen.lua =================================================================== --- scripts/globals/items/sacred_degen.lua (revision 0) +++ scripts/globals/items/sacred_degen.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 17683 +-- Item: Sacred Degen +-- Enchantment: "Enlight" +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENLIGHT; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/sacred_lance.lua =================================================================== --- scripts/globals/items/sacred_lance.lua (revision 3520) +++ scripts/globals/items/sacred_lance.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------------- --- ID: 14988 --- Stone Bangles --- Enchantment: "Enstone" +-- ID: 16858 +-- Item: Sacred Lance +-- Enchantment: "Enlight" ----------------------------------------- ----------------------------------------- Index: scripts/globals/items/sacred_mace.lua =================================================================== --- scripts/globals/items/sacred_mace.lua (revision 0) +++ scripts/globals/items/sacred_mace.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 18391 +-- Item: Sacred Mace +-- Enchantment: "Enlight" +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENLIGHT; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/sacred_maul.lua =================================================================== --- scripts/globals/items/sacred_maul.lua (revision 0) +++ scripts/globals/items/sacred_maul.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 18392 +-- Item: Sacred Maul +-- Enchantment: "Enlight" +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENLIGHT; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/sacred_sword.lua =================================================================== --- scripts/globals/items/sacred_sword.lua (revision 0) +++ scripts/globals/items/sacred_sword.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 17682 +-- Item: Sacred Sword +-- Enchantment: "Enlight" +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENLIGHT; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/sacred_wand.lua =================================================================== --- scripts/globals/items/sacred_wand.lua (revision 0) +++ scripts/globals/items/sacred_wand.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 18393 +-- Item: Sacred Wand +-- Enchantment: "Enlight" +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENLIGHT; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/safehold_earring.lua =================================================================== --- scripts/globals/items/safehold_earring.lua (revision 0) +++ scripts/globals/items/safehold_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16048 +-- Item: Safehold Earring +-- Enchantment: "Teleport" (Tavnzanian Safehold) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(26) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + safeholdEarring(target); +end; \ No newline at end of file Index: scripts/globals/items/sagacious_gold_obi.lua =================================================================== --- scripts/globals/items/sagacious_gold_obi.lua (revision 0) +++ scripts/globals/items/sagacious_gold_obi.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- ID: 15459 +-- Item: Sagacious Gold Obi +-- INT+3 +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + + if (target:hasStatusEffect(EFFECT_INT_BOOST) == true) then + result = 56; + end + + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_INT_BOOST,3,0,3000,15459); +end; \ No newline at end of file Index: scripts/globals/items/sanation_ring.lua =================================================================== --- scripts/globals/items/sanation_ring.lua (revision 0) +++ scripts/globals/items/sanation_ring.lua (working copy) @@ -0,0 +1,39 @@ +----------------------------------------- +-- ID: 14677 +-- Sanation Ring +-- Enchantment: MP while healing +3 +-- Uses: 20 Duration: 3 Mins +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,180,14677); + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MPHEAL, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MPHEAL, 3); +end; \ No newline at end of file Index: scripts/globals/items/sandfish.lua =================================================================== --- scripts/globals/items/sandfish.lua (revision 3520) +++ scripts/globals/items/sandfish.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/sapara_of_trials.lua =================================================================== --- scripts/globals/items/sapara_of_trials.lua (revision 0) +++ scripts/globals/items/sapara_of_trials.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 17654 +-- Equip: Sapara of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 17654) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 20); + target:addMod(MOD_FIREDEF, 10); + target:addMod(MOD_WINDDEF, 10); + else + target:delMod(MOD_HP, 20); + target:delMod(MOD_FIREDEF, 10); + target:delMod(MOD_WINDDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/sazanbaligi.lua =================================================================== --- scripts/globals/items/sazanbaligi.lua (revision 0) +++ scripts/globals/items/sazanbaligi.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5459 +-- Item: Sazanbaligi +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 4 +-- Mind -6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5459); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 4); + target:addMod(MOD_MND, -6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 4); + target:delMod(MOD_MND, -6); +end; Index: scripts/globals/items/scapegoat.lua =================================================================== --- scripts/globals/items/scapegoat.lua (revision 0) +++ scripts/globals/items/scapegoat.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5412 +-- Item: Scapegoat +-- Effect: Brings you back from the dead~! +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + power = 1; + duration = 1800; + if(target:hasStatusEffect(EFFECT_RERAISE) ==true)then + effect = target:getStatusEffect(EFFECT_RERAISE); + oPower = effect:getPower(); + if(oPower > power) then + target:messageBasic(283); -- Higher Tiered verson means no effect! + else + target:delStatusEffect(EFFECT_RERAISE); + target:addStatusEffect(EFFECT_RERAISE,power,0,duration); + target:addStatusEffect(EFFECT_MEDICINE,0,0,3600,5412); + end + else + target:addStatusEffect(EFFECT_RERAISE,power,0,duration); + target:addStatusEffect(EFFECT_MEDICINE,0,0,3600,5412); + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; Index: scripts/globals/items/scroll_of_absorb-attri.lua =================================================================== --- scripts/globals/items/scroll_of_absorb-attri.lua (revision 0) +++ scripts/globals/items/scroll_of_absorb-attri.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4887 +-- Scroll of Absorb-Attri +-- Teaches the black magic Absorb-Attri +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(243); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(243); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_addle.lua =================================================================== --- scripts/globals/items/scroll_of_addle.lua (revision 0) +++ scripts/globals/items/scroll_of_addle.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4849 +-- Scroll of Aero +-- Teaches the white magic Addle +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(286); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(286); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_aerora.lua =================================================================== --- scripts/globals/items/scroll_of_aerora.lua (revision 0) +++ scripts/globals/items/scroll_of_aerora.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4920 +-- Scroll of Aerora +-- Teaches the black magic Aerora +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(832); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(832); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_aerora_ii.lua =================================================================== --- scripts/globals/items/scroll_of_aerora_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_aerora_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4921 +-- Scroll of Aerora II +-- Teaches the black magic Aerora II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(833); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(833); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_arise.lua =================================================================== --- scripts/globals/items/scroll_of_arise.lua (revision 0) +++ scripts/globals/items/scroll_of_arise.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5101 +-- Scroll of Arise +-- Teaches the white magic Arise +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(494); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(494); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_blizzaja.lua =================================================================== --- scripts/globals/items/scroll_of_blizzaja.lua (revision 0) +++ scripts/globals/items/scroll_of_blizzaja.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4891 +-- Scroll of Blizzaja +-- Teaches the black magic Blizzaja +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(497); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(497); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_blizzara.lua =================================================================== --- scripts/globals/items/scroll_of_blizzara.lua (revision 0) +++ scripts/globals/items/scroll_of_blizzara.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4918 +-- Scroll of Blizzara +-- Teaches the black magic Blizzara +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(830); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(830); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_blizzara_ii.lua =================================================================== --- scripts/globals/items/scroll_of_blizzara_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_blizzara_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4919 +-- Scroll of Blizzara II +-- Teaches the black magic Blizzara II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(831); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(831); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_boost-dex.lua =================================================================== --- scripts/globals/items/scroll_of_boost-dex.lua (revision 0) +++ scripts/globals/items/scroll_of_boost-dex.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5095 +-- Scroll of Boost-DEX +-- Teaches the white magic Boost-DEX +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(480); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(480); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_boost-int.lua =================================================================== --- scripts/globals/items/scroll_of_boost-int.lua (revision 0) +++ scripts/globals/items/scroll_of_boost-int.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5098 +-- Scroll of Boost-INT +-- Teaches the white magic Boost-INT +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(483); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(483); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_boost-str.lua =================================================================== --- scripts/globals/items/scroll_of_boost-str.lua (revision 0) +++ scripts/globals/items/scroll_of_boost-str.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5094 +-- Scroll of Boost-STR +-- Teaches the white magic Boost-STR +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(479); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(479); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_breakga.lua =================================================================== --- scripts/globals/items/scroll_of_breakga.lua (revision 0) +++ scripts/globals/items/scroll_of_breakga.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4889 +-- Scroll of Breakga +-- Teaches the black magic Breakga +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(365); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(365); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_comet.lua =================================================================== --- scripts/globals/items/scroll_of_comet.lua (revision 0) +++ scripts/globals/items/scroll_of_comet.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4827 +-- Scroll of Comet +-- Teaches the black magic Comet +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(219); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(219); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_cura_iii.lua =================================================================== --- scripts/globals/items/scroll_of_cura_iii.lua (revision 0) +++ scripts/globals/items/scroll_of_cura_iii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5083 +-- Scroll of Cura III +-- Teaches the white magic Cura III +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(475); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(475); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_curaga_v.lua =================================================================== --- scripts/globals/items/scroll_of_curaga_v.lua (revision 0) +++ scripts/globals/items/scroll_of_curaga_v.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4619 +-- Scroll of Curaga V +-- Teaches the white magic Curaga V +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(11); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(11); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_dark_carol_ii.lua =================================================================== --- scripts/globals/items/scroll_of_dark_carol_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_dark_carol_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5061 +-- Scroll of Dark Carol II +-- Teaches the song Dark Carol II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(453); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(453); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_endark.lua =================================================================== --- scripts/globals/items/scroll_of_endark.lua (revision 3520) +++ scripts/globals/items/scroll_of_endark.lua (working copy) @@ -1,7 +1,7 @@ ----------------------------------------- -- ID: 4707 -- Scroll of Endark --- Teaches the white magic Endark +-- Teaches the black magic Endark ----------------------------------------- ----------------------------------------- Index: scripts/globals/items/scroll_of_fira.lua =================================================================== --- scripts/globals/items/scroll_of_fira.lua (revision 0) +++ scripts/globals/items/scroll_of_fira.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4916 +-- Scroll of Fira +-- Teaches the black magic Fira +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(828); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(828); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_fira_ii.lua =================================================================== --- scripts/globals/items/scroll_of_fira_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_fira_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4917 +-- Scroll of Fira II +-- Teaches the black magic Fira II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(829); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(829); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_foil.lua =================================================================== --- scripts/globals/items/scroll_of_foil.lua (revision 0) +++ scripts/globals/items/scroll_of_foil.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5102 +-- Scroll of Foil +-- Teaches the white magic Foil +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(840); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(840); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_gain-dex.lua =================================================================== --- scripts/globals/items/scroll_of_gain-dex.lua (revision 0) +++ scripts/globals/items/scroll_of_gain-dex.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5088 +-- Scroll of Gain-DEX +-- Teaches the white magic Gain-DEX +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(487); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(487); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_gain-int.lua =================================================================== --- scripts/globals/items/scroll_of_gain-int.lua (revision 0) +++ scripts/globals/items/scroll_of_gain-int.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5091 +-- Scroll of Gain-INT +-- Teaches the white magic Gain-INT +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(490); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(490); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_gain-str.lua =================================================================== --- scripts/globals/items/scroll_of_gain-str.lua (revision 0) +++ scripts/globals/items/scroll_of_gain-str.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5087 +-- Scroll of Gain-STR +-- Teaches the white magic Gain-STR +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(486); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(486); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_gravity_ii.lua =================================================================== --- scripts/globals/items/scroll_of_gravity_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_gravity_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4825 +-- Scroll of Gravity II +-- Teaches the black magic Gravity II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(217); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(217); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_holy_ii.lua =================================================================== --- scripts/globals/items/scroll_of_holy_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_holy_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4630 +-- Scroll of Holy +-- Teaches the white magic Holy +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(22); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(22); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_horde_lullaby_ii.lua =================================================================== --- scripts/globals/items/scroll_of_horde_lullaby_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_horde_lullaby_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4985 +-- Scroll of Horde Lullaby II +-- Teaches the song Horde Lullaby II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(377); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(377); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_ice_carol_ii.lua =================================================================== --- scripts/globals/items/scroll_of_ice_carol_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_ice_carol_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5055 +-- Scroll of Ice Carol II +-- Teaches the song Ice Carol II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(447); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(474); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_instant_protect.lua =================================================================== --- scripts/globals/items/scroll_of_instant_protect.lua (revision 0) +++ scripts/globals/items/scroll_of_instant_protect.lua (working copy) @@ -0,0 +1,34 @@ +----------------------------------------- +-- ID: 5988 +-- Scroll of Instant Protect +-- Grants the user the effect of Protect magic +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local power = 15; + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 2; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 2; + end + + if(target:addStatusEffect(EFFECT_PROTECT, power, 0, 1800)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_instant_retrace.lua =================================================================== --- scripts/globals/items/scroll_of_instant_retrace.lua (revision 0) +++ scripts/globals/items/scroll_of_instant_retrace.lua (working copy) @@ -0,0 +1,32 @@ +----------------------------------------- +-- ID: 5428 +-- Item: Scroll of Instant Retrace +-- Description: "Retrace" (Nation) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + nation = target:getNation(); -- 0 = San d'Oria; 1 = Bastok; 2 = Windurst; + if (nation == 0) then + target:setPos(-98, 1, -41, 224, 0x50); + elseif (nation == 1) then + target:setPos(-291, -10, -107, 212, 0x57); + elseif (nation == 2) then + target:setPos(-31.442, -5, 129.202, 128, 0x5E); + end +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_instant_shell.lua =================================================================== --- scripts/globals/items/scroll_of_instant_shell.lua (revision 0) +++ scripts/globals/items/scroll_of_instant_shell.lua (working copy) @@ -0,0 +1,34 @@ +----------------------------------------- +-- ID: 5989 +-- Scroll of Instant Shell +-- Grants the user the effect of Shell magic +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local power = 24; + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 5; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 5; + end + + if(target:addStatusEffect(EFFECT_SHELL, power, 0, 1800)) then + target:messageBasic(205); + else + target:messageBasic(423); -- no effect + end +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_instant_stoneskin.lua =================================================================== --- scripts/globals/items/scroll_of_instant_stoneskin.lua (revision 0) +++ scripts/globals/items/scroll_of_instant_stoneskin.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5990 +-- Scroll of Instant Stoneskin +-- Grants the user the effect of Shell magic +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + + local pAbs = 350; + local pEquipMods = 0; + local duration = 300; + + -- equipment mods + if (target:getEquipID(SLOT_NECK) == 13177) then -- Stone Gorget + pEquipMods = pEquipMods + 30; + end + if (target:getEquipID(SLOT_HANDS) == 15034) then -- Stone Mufflers + pEquipMods = pEquipMods + 30; + end + if (target:getEquipID(SLOT_WAIST) == 15960) then -- Siegel Sash + pEquipMods = pEquipMods + 20; + end + if (target:getEquipID(SLOT_LEGS) == 11949) then -- Haven Hose + pEquipMods = pEquipMods + 20; + end + if (target:getEquipID(SLOT_LEGS) == 10329) then -- Shedir Seraweels + pEquipMods = pEquipMods + 35; + end + if (target:getEquipID(SLOT_LEGS) == 11037) then -- Earthcry Earring + pEquipMods = pEquipMods + 10; + end + + local final = pAbs + pEquipMods; + + target:addStatusEffect(EFFECT_STONESKIN,final,0,duration); + return EFFECT_STONESKIN; +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_kakka_ichi.lua =================================================================== --- scripts/globals/items/scroll_of_kakka_ichi.lua (revision 0) +++ scripts/globals/items/scroll_of_kakka_ichi.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4968 +-- Scroll of Kakka: Ichi +-- Teaches the ninjutsu Kakka: Ichi +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(509); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(509); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_light_carol_ii.lua =================================================================== --- scripts/globals/items/scroll_of_light_carol_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_light_carol_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5060 +-- Scroll of Light Carol II +-- Teaches the song Light Carol II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(452); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(452); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_lightning_carol_ii.lua =================================================================== --- scripts/globals/items/scroll_of_lightning_carol_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_lightning_carol_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5058 +-- Scroll of Lightning Carol II +-- Teaches the song Lightning Carol II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(450); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(450); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_meteor.lua =================================================================== --- scripts/globals/items/scroll_of_meteor.lua (revision 0) +++ scripts/globals/items/scroll_of_meteor.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4851 +-- Scroll of Meteor +-- Teaches the black magic Meteor +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(218); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(218); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_pining_nocturne.lua =================================================================== --- scripts/globals/items/scroll_of_pining_nocturne.lua (revision 0) +++ scripts/globals/items/scroll_of_pining_nocturne.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5080 +-- Scroll of Pining Nocturne +-- Teaches the song Pining Nocturne +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(472); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(472); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_regen_v.lua =================================================================== --- scripts/globals/items/scroll_of_regen_v.lua (revision 0) +++ scripts/globals/items/scroll_of_regen_v.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 5086 +-- Scroll of Regen V +-- Teaches the white magic Regen IV +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(504); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(504); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_stonera.lua =================================================================== --- scripts/globals/items/scroll_of_stonera.lua (revision 0) +++ scripts/globals/items/scroll_of_stonera.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4922 +-- Scroll of Stonera +-- Teaches the black magic Stonera +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(834); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(834); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_stonera_ii.lua =================================================================== --- scripts/globals/items/scroll_of_stonera_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_stonera_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4923 +-- Scroll of Stonera II +-- Teaches the black magic Stonera II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(835); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(835); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_temper.lua =================================================================== --- scripts/globals/items/scroll_of_temper.lua (revision 0) +++ scripts/globals/items/scroll_of_temper.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4705 +-- Scroll of Temper +-- Teaches the white magic Temper +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(493); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(493); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_thundaja.lua =================================================================== --- scripts/globals/items/scroll_of_thundaja.lua (revision 0) +++ scripts/globals/items/scroll_of_thundaja.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4894 +-- Scroll of Thundaja +-- Teaches the black magic Thundaja +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(500); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(500); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_thundara.lua =================================================================== --- scripts/globals/items/scroll_of_thundara.lua (revision 0) +++ scripts/globals/items/scroll_of_thundara.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4924 +-- Scroll of Thundara +-- Teaches the black magic Thundara +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(836); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(836); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_thundara_ii.lua =================================================================== --- scripts/globals/items/scroll_of_thundara_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_thundara_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4925 +-- Scroll of Thundara II +-- Teaches the black magic Thundara II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(837); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(837); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_thunder_v.lua =================================================================== --- scripts/globals/items/scroll_of_thunder_v.lua (revision 0) +++ scripts/globals/items/scroll_of_thunder_v.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4776 +-- Scroll of Thunder V +-- Teaches the black magic Thunder V +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(168); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(168); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_watera.lua =================================================================== --- scripts/globals/items/scroll_of_watera.lua (revision 0) +++ scripts/globals/items/scroll_of_watera.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4926 +-- Scroll of Watera +-- Teaches the black magic Watera +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(838); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(838); +end; \ No newline at end of file Index: scripts/globals/items/scroll_of_watera_ii.lua =================================================================== --- scripts/globals/items/scroll_of_watera_ii.lua (revision 0) +++ scripts/globals/items/scroll_of_watera_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- ID: 4927 +-- Scroll of Watera II +-- Teaches the black magic Watera II +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canLearnSpell(839); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addSpell(839); +end; \ No newline at end of file Index: scripts/globals/items/scythe_of_trials.lua =================================================================== --- scripts/globals/items/scythe_of_trials.lua (revision 0) +++ scripts/globals/items/scythe_of_trials.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16793 +-- Equip: Scythe of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 16793) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 20); + target:addMod(MOD_THUNDERDEF, 10); + target:addMod(MOD_LIGHTDEF, 10); + else + target:delMod(MOD_HP, 20); + target:delMod(MOD_THUNDERDEF, 10); + target:delMod(MOD_LIGHTDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/seafood_stewpot.lua =================================================================== --- scripts/globals/items/seafood_stewpot.lua (revision 0) +++ scripts/globals/items/seafood_stewpot.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5238 +-- Item: Seafood Stewpot +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10% Cap 50 +-- MP +10 +-- Accuracy 5 +-- Evasion 5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5238); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_HPP, 10); + target:addMod(MOD_FOOD_HP_CAP, 50); + target:addMod(MOD_MP, 10); + target:addMod(MOD_ACC, 5); + target:addMod(MOD_EVA, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_HPP, 10); + target:delMod(MOD_FOOD_HP_CAP, 50); + target:delMod(MOD_MP, 10); + target:delMod(MOD_ACC, 5); + target:delMod(MOD_EVA, 5); +end; Index: scripts/globals/items/selbina_earring.lua =================================================================== --- scripts/globals/items/selbina_earring.lua (revision 0) +++ scripts/globals/items/selbina_earring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16043 +-- Item: Selbina Earring +-- Enchantment: "Teleport" (Tavnzanian Safehold) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:isZoneVisited(248) == false) then + result = 56; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + selbinaEarring(target); +end; \ No newline at end of file Index: scripts/globals/items/serving_of_black_pudding.lua =================================================================== --- scripts/globals/items/serving_of_black_pudding.lua (revision 0) +++ scripts/globals/items/serving_of_black_pudding.lua (working copy) @@ -0,0 +1,60 @@ +----------------------------------------- +-- ID: 5552 +-- Item: Serving of Black Pudding +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +8 +-- MP +5% Cap 25 +-- Intelligence +4 +-- HP Recovered while healing +1 +-- MP Recovered while healing +1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5552); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_MPP, 5); + target:addMod(MOD_FOOD_MP_CAP, 25); + target:addMod(MOD_HP, 8); + target:addMod(MOD_INT, 4); + target:addMod(MOD_HPHEAL, 1); + target:addMod(MOD_MPHEAL, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_MPP, 5); + target:delMod(MOD_FOOD_MP_CAP, 25); + target:delMod(MOD_HP, 8); + target:delMod(MOD_INT, 4); + target:delMod(MOD_HPHEAL, 1); + target:delMod(MOD_MPHEAL, 1); +end; Index: scripts/globals/items/serving_of_dusky_indulgence.lua =================================================================== --- scripts/globals/items/serving_of_dusky_indulgence.lua (revision 0) +++ scripts/globals/items/serving_of_dusky_indulgence.lua (working copy) @@ -0,0 +1,60 @@ +----------------------------------------- +-- ID: 5553 +-- Item: Serving of Dusky Indulgence +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10 +-- MP +5% Cap 30 +-- Intelligence +5 +-- HP Recovered while healing +2 +-- MP Recovered while healing +2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5553); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_FOOD_MPP, 5); + target:addMod(MOD_FOOD_MP_CAP, 30); + target:addMod(MOD_HP, 10); + target:addMod(MOD_INT, 5); + target:addMod(MOD_HPHEAL, 2); + target:addMod(MOD_MPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_FOOD_MPP, 5); + target:delMod(MOD_FOOD_MP_CAP, 30); + target:delMod(MOD_HP, 10); + target:delMod(MOD_INT, 5); + target:delMod(MOD_HPHEAL, 2); + target:delMod(MOD_MPHEAL, 2); +end; Index: scripts/globals/items/serving_of_elysian_eclair.lua =================================================================== --- scripts/globals/items/serving_of_elysian_eclair.lua (revision 0) +++ scripts/globals/items/serving_of_elysian_eclair.lua (working copy) @@ -0,0 +1,58 @@ +----------------------------------------- +-- ID: 5560 +-- Item: Serving of Elysian Eclair +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10 +-- MP +15 +-- Intelligence +2 +-- HP Recoverd while healing 2 +-- MP Recovered while healing 2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5560); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 10); + target:addMod(MOD_MP, 15); + target:addMod(MOD_INT, 2); + target:addMod(MOD_HPHEAL, 2); + target:addMod(MOD_MPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 10); + target:delMod(MOD_MP, 15); + target:delMod(MOD_INT, 2); + target:delMod(MOD_HPHEAL, 2); + target:delMod(MOD_MPHEAL, 2); +end; Index: scripts/globals/items/serving_of_golden_royale.lua =================================================================== --- scripts/globals/items/serving_of_golden_royale.lua (revision 0) +++ scripts/globals/items/serving_of_golden_royale.lua (working copy) @@ -0,0 +1,58 @@ +----------------------------------------- +-- ID: 5558 +-- Item: Serving of Golden Royale +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +10 +-- MP +10 +-- Intelligence +2 +-- HP Recoverd while healing 2 +-- MP Recovered while healing 2 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5558); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 10); + target:addMod(MOD_MP, 10); + target:addMod(MOD_INT, 2); + target:addMod(MOD_HPHEAL, 2); + target:addMod(MOD_MPHEAL, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 10); + target:delMod(MOD_MP, 10); + target:delMod(MOD_INT, 2); + target:delMod(MOD_HPHEAL, 2); + target:delMod(MOD_MPHEAL, 2); +end; Index: scripts/globals/items/serving_of_mille_feuille.lua =================================================================== --- scripts/globals/items/serving_of_mille_feuille.lua (revision 0) +++ scripts/globals/items/serving_of_mille_feuille.lua (working copy) @@ -0,0 +1,58 @@ +----------------------------------------- +-- ID: 5559 +-- Item: Serving of Mille Feuille +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +8 +-- MP +15 +-- Intelligence +1 +-- HP Recoverd while healing 1 +-- MP Recovered while healing 1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5559); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 8); + target:addMod(MOD_MP, 15); + target:addMod(MOD_INT, 1); + target:addMod(MOD_HPHEAL, 1); + target:addMod(MOD_MPHEAL, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 8); + target:delMod(MOD_MP, 15); + target:delMod(MOD_INT, 1); + target:delMod(MOD_HPHEAL, 1); + target:delMod(MOD_MPHEAL, 1); +end; Index: scripts/globals/items/serving_of_mont_blanc.lua =================================================================== --- scripts/globals/items/serving_of_mont_blanc.lua (revision 0) +++ scripts/globals/items/serving_of_mont_blanc.lua (working copy) @@ -0,0 +1,58 @@ +----------------------------------------- +-- ID: 5557 +-- Item: Serving of Mont Blanc +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP +8 +-- MP +10 +-- Intelligence +1 +-- HP Recoverd while healing 1 +-- MP Recovered while healing 1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5557); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 8); + target:addMod(MOD_MP, 10); + target:addMod(MOD_INT, 1); + target:addMod(MOD_HPHEAL, 1); + target:addMod(MOD_MPHEAL, 1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 8); + target:delMod(MOD_MP, 10); + target:delMod(MOD_INT, 1); + target:delMod(MOD_HPHEAL, 1); + target:delMod(MOD_MPHEAL, 1); +end; Index: scripts/globals/items/serving_of_patriarch_sautee.lua =================================================================== --- scripts/globals/items/serving_of_patriarch_sautee.lua (revision 0) +++ scripts/globals/items/serving_of_patriarch_sautee.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5677 +-- Item: Serving of Patriarch Sautee +-- Food Effect: 4Hrs, All Races +----------------------------------------- +-- MP 60 +-- Mind 7 +-- MP Recovered While Healing 7 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5677); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MP, 60); + target:addMod(MOD_MND, 7); + target:addMod(MOD_MPHEAL, 7); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MP, 60); + target:delMod(MOD_MND, 7); + target:delMod(MOD_MPHEAL, 7); +end; Index: scripts/globals/items/serving_of_royal_jelly.lua =================================================================== --- scripts/globals/items/serving_of_royal_jelly.lua (revision 0) +++ scripts/globals/items/serving_of_royal_jelly.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 4508 +-- Item: Serving of Royal Jelly +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- MP Recovery while healing 3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,4508); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MPHEAL, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MPHEAL, 3); +end; Index: scripts/globals/items/shall_shell.lua =================================================================== --- scripts/globals/items/shall_shell.lua (revision 3520) +++ scripts/globals/items/shall_shell.lua (working copy) @@ -18,7 +18,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/shaolin_belt.lua =================================================================== --- scripts/globals/items/shaolin_belt.lua (revision 0) +++ scripts/globals/items/shaolin_belt.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11734 +-- Item: Shaolin Belt +-- Item Effect: Automation: Haste +3% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_WAIST) == 11734) then + pet:addMod(MOD_HASTE_GEAR, 31); + else + pet:delMod(MOD_HASTE_GEAR, 31); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/shell_scepter.lua =================================================================== --- scripts/globals/items/shell_scepter.lua (revision 0) +++ scripts/globals/items/shell_scepter.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 17031 +-- Shell Scepter +-- Enchantment: 60Min, Costume - Random Crab +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,(math.random(356,357)),0,3600); +end; \ No newline at end of file Index: scripts/globals/items/shining_trout.lua =================================================================== --- scripts/globals/items/shining_trout.lua (revision 3520) +++ scripts/globals/items/shining_trout.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/silken_sash.lua =================================================================== --- scripts/globals/items/silken_sash.lua (revision 0) +++ scripts/globals/items/silken_sash.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5632 +-- Item: Silken Sash +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP Recovered while healing +3 +-- MP Recovered while healing +5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5632); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HPHEAL, 3); + target:addMod(MOD_MPHEAL, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HPHEAL, 3); + target:delMod(MOD_MPHEAL, 5); +end; Index: scripts/globals/items/silken_siesta.lua =================================================================== --- scripts/globals/items/silken_siesta.lua (revision 0) +++ scripts/globals/items/silken_siesta.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5626 +-- Item: Silken Siesta +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP Recoverd while healing 2 +-- MP Recovered while healing 5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5626); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HPHEAL, 2); + target:addMod(MOD_MPHEAL, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HPHEAL, 2); + target:delMod(MOD_MPHEAL, 5); +end; Index: scripts/globals/items/silken_smile.lua =================================================================== --- scripts/globals/items/silken_smile.lua (revision 0) +++ scripts/globals/items/silken_smile.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5628 +-- Item: Silken Smile +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- Intelligence 2 +-- MP Recovered while healing 7 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5628); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_INT, 2); + target:addMod(MOD_MPHEAL, 7); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_INT, 2); + target:delMod(MOD_MPHEAL, 7); +end; Index: scripts/globals/items/silken_spirit.lua =================================================================== --- scripts/globals/items/silken_spirit.lua (revision 0) +++ scripts/globals/items/silken_spirit.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5634 +-- Item: Silken Spirit +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- MP +3% +-- MP Recovered while healing +7 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5634); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MPP, 3); + target:addMod(MOD_MPHEAL, 7); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MPP, 3); + target:delMod(MOD_MPHEAL, 7); +end; Index: scripts/globals/items/silken_squeeze.lua =================================================================== --- scripts/globals/items/silken_squeeze.lua (revision 0) +++ scripts/globals/items/silken_squeeze.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5630 +-- Item: Silken Squeeze +-- Food Effect: 4 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- HP Recovered while healing +4 +-- MP Recovered while healing +5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,14400,5630); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HPHEAL, 4); + target:addMod(MOD_MPHEAL, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HPHEAL, 4); + target:delMod(MOD_MPHEAL, 5); +end; Index: scripts/globals/items/silkworm_egg.lua =================================================================== --- scripts/globals/items/silkworm_egg.lua (revision 0) +++ scripts/globals/items/silkworm_egg.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 4526 +-- Item: Silkworm Egg +-- Food Effect: 5 Mins, All Races +----------------------------------------- +-- HP 12 +-- MP 12 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,4526); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 12); + target:addMod(MOD_MP, 12); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 12); + target:delMod(MOD_MP, 12); +end; Index: scripts/globals/items/silver_shark.lua =================================================================== --- scripts/globals/items/silver_shark.lua (revision 3520) +++ scripts/globals/items/silver_shark.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/skadis_bazubands_+1.lua =================================================================== --- scripts/globals/items/skadis_bazubands_+1.lua (revision 0) +++ scripts/globals/items/skadis_bazubands_+1.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 27929 +-- Item: Skadi's Bazubands +1 +-- Item Effect: Pet Haste +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 27929) then + pet:addMod(MOD_HASTE_GEAR, 31); + else + pet:delMod(MOD_HASTE_GEAR, 31); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/skewer_of_m&p_chicken.lua =================================================================== --- scripts/globals/items/skewer_of_m&p_chicken.lua (revision 0) +++ scripts/globals/items/skewer_of_m&p_chicken.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5639 +-- Item: Skewer of M&P Chicken +-- Food Effect: 3Min, All Races +----------------------------------------- +-- Strength 5 +-- Intelligence -5 +-- Attack % 25 +-- Attack Cap 154 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,180,5639); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 5); + target:addMod(MOD_INT, -5); + target:addMod(MOD_FOOD_ATTP, 25); + target:addMod(MOD_FOOD_ATT_CAP, 154); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 5); + target:delMod(MOD_INT, -5); + target:delMod(MOD_FOOD_ATTP, 25); + target:delMod(MOD_FOOD_ATT_CAP, 154); +end; Index: scripts/globals/items/slab_of_ruszor_meat.lua =================================================================== --- scripts/globals/items/slab_of_ruszor_meat.lua (revision 0) +++ scripts/globals/items/slab_of_ruszor_meat.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5755 +-- Item: Slab of Ruszor Meat +-- Food Effect: 30Min, Galka only +----------------------------------------- +-- Strength 5 +-- Intelligence -7 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getRace() ~= 8) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,1800,5755); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 5); + target:addMod(MOD_INT, -7); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 5); + target:delMod(MOD_INT, -7); +end; Index: scripts/globals/items/slice_of_buffalo_meat.lua =================================================================== --- scripts/globals/items/slice_of_buffalo_meat.lua (revision 3520) +++ scripts/globals/items/slice_of_buffalo_meat.lua (working copy) @@ -18,7 +18,11 @@ result = 0; if (target:getRace() ~= 8) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/slice_of_cerberus_meat.lua =================================================================== --- scripts/globals/items/slice_of_cerberus_meat.lua (revision 3520) +++ scripts/globals/items/slice_of_cerberus_meat.lua (working copy) @@ -17,6 +17,12 @@ function onItemCheck(target) result = 0; + if (target:getRace() ~= 8) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end Index: scripts/globals/items/slice_of_cockatrice_meat.lua =================================================================== --- scripts/globals/items/slice_of_cockatrice_meat.lua (revision 3520) +++ scripts/globals/items/slice_of_cockatrice_meat.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 8) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/slice_of_coeurl_meat.lua =================================================================== --- scripts/globals/items/slice_of_coeurl_meat.lua (revision 3520) +++ scripts/globals/items/slice_of_coeurl_meat.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 8) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/slice_of_dhalmel_meat.lua =================================================================== --- scripts/globals/items/slice_of_dhalmel_meat.lua (revision 3520) +++ scripts/globals/items/slice_of_dhalmel_meat.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 8) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/slice_of_diatryma_meat.lua =================================================================== --- scripts/globals/items/slice_of_diatryma_meat.lua (revision 0) +++ scripts/globals/items/slice_of_diatryma_meat.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5290 +-- Item: Slice of Diatryma Meat +-- Effect: 5 Minutes, food effect, Galka Only +----------------------------------------- +-- Strength +3 +-- Intelligence -5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getRace() ~= 8) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5290); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 3); + target:addMod(MOD_INT, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 3); + target:delMod(MOD_INT, -5); +end; \ No newline at end of file Index: scripts/globals/items/slice_of_dragon_meat.lua =================================================================== --- scripts/globals/items/slice_of_dragon_meat.lua (revision 3520) +++ scripts/globals/items/slice_of_dragon_meat.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 8) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/slice_of_giant_sheep_meat.lua =================================================================== --- scripts/globals/items/slice_of_giant_sheep_meat.lua (revision 3520) +++ scripts/globals/items/slice_of_giant_sheep_meat.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 8) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/slice_of_hare_meat.lua =================================================================== --- scripts/globals/items/slice_of_hare_meat.lua (revision 3520) +++ scripts/globals/items/slice_of_hare_meat.lua (working copy) @@ -17,7 +17,11 @@ result = 0; if (target:getRace() ~= 8) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/slice_of_karakul_meat.lua =================================================================== --- scripts/globals/items/slice_of_karakul_meat.lua (revision 0) +++ scripts/globals/items/slice_of_karakul_meat.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5571 +-- Item: Slice of Karakul Meat +-- Effect: 5 Minutes, food effect, Galka Only +----------------------------------------- +-- Strength +2 +-- Intelligence -4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getRace() ~= 8) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5571); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 2); + target:addMod(MOD_INT, -4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 2); + target:delMod(MOD_INT, -4); +end; \ No newline at end of file Index: scripts/globals/items/slice_of_land_crab_meat.lua =================================================================== --- scripts/globals/items/slice_of_land_crab_meat.lua (revision 3520) +++ scripts/globals/items/slice_of_land_crab_meat.lua (working copy) @@ -18,7 +18,11 @@ result = 0; if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/slice_of_tavnazian_ram_meat.lua =================================================================== --- scripts/globals/items/slice_of_tavnazian_ram_meat.lua (revision 3520) +++ scripts/globals/items/slice_of_tavnazian_ram_meat.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 8) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/slice_of_ziz_meat.lua =================================================================== --- scripts/globals/items/slice_of_ziz_meat.lua (revision 0) +++ scripts/globals/items/slice_of_ziz_meat.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5581 +-- Item: Slice of Ziz Meat +-- Effect: 5 Minutes, food effect, Galka Only +----------------------------------------- +-- Strength +4 +-- Intelligence -6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getRace() ~= 8) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5581); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 4); + target:addMod(MOD_INT,-6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 4); + target:delMod(MOD_INT,-6); +end; \ No newline at end of file Index: scripts/globals/items/slime_belt.lua =================================================================== --- scripts/globals/items/slime_belt.lua (revision 0) +++ scripts/globals/items/slime_belt.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 10851 +-- Slime Belt +-- Enchantment: 60Min, Costume - Slime +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,292,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/smash_cesti.lua =================================================================== --- scripts/globals/items/smash_cesti.lua (revision 0) +++ scripts/globals/items/smash_cesti.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 18747 +-- Item: Smash Cesti +-- Enchantment: Attack +3 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,18747); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ATT, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ATT, 3); +end; + Index: scripts/globals/items/smilodon_liver.lua =================================================================== --- scripts/globals/items/smilodon_liver.lua (revision 0) +++ scripts/globals/items/smilodon_liver.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5668 +-- Item: Smilodon Liver +-- Food Effect: 5Min, Galka only +----------------------------------------- +-- Strength 5 +-- Intelligence -7 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getRace() ~= 8) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_MEAT) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5668); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 5); + target:addMod(MOD_INT, -7); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 5); + target:delMod(MOD_INT, -7); +end; Index: scripts/globals/items/sneaking_boots.lua =================================================================== --- scripts/globals/items/sneaking_boots.lua (revision 3520) +++ scripts/globals/items/sneaking_boots.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------------- -- ID: 15320 --- Powder Boots --- Enchantment: "Flee" +-- Item: Sneaking Boots +-- Enchantment: Sneak +-- Charges: 15 Recast: 60 Mins ----------------------------------------- ----------------------------------------- @@ -16,6 +17,8 @@ ----------------------------------------- function onItemUse(target) - target:delStatusEffect(EFFECT_SNEAK); - target:addStatusEffect(EFFECT_SNEAK,1,0,180); + local duration = 180; + duration = duration + (duration * target:getMod(MOD_SNEAK_DUR)); + target:delStatusEffect(EFFECT_SNEAK); + target:addStatusEffect(EFFECT_SNEAK,1,0,duration); end; Index: scripts/globals/items/snow_bunny_hat.lua =================================================================== --- scripts/globals/items/snow_bunny_hat.lua (revision 0) +++ scripts/globals/items/snow_bunny_hat.lua (working copy) @@ -0,0 +1,37 @@ +----------------------------------------- +-- ID: 11490 +-- Snow Bunny Hat +-- Enchantment: 60Min, Costume - White Rarab +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,270,0,3600); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/snow_bunny_hat_+1.lua =================================================================== --- scripts/globals/items/snow_bunny_hat_+1.lua (revision 3520) +++ scripts/globals/items/snow_bunny_hat_+1.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------------- -- ID: 11491 -- Snow bunny Hat +1 --- Enchantment: 60Min, Costume - White Rarab +-- Enchantment: Costume - White Rarab +-- Durration: 60 Mins ----------------------------------------- require("scripts/globals/status"); @@ -20,4 +21,18 @@ function onItemUse(target) target:addStatusEffect(EFFECT_COSTUME,270,0,3600); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------- +-- onEffectLose Action +----------------------------------- + +function onEffectLose(target,effect) end; \ No newline at end of file Index: scripts/globals/items/snowman_cap.lua =================================================================== --- scripts/globals/items/snowman_cap.lua (revision 3520) +++ scripts/globals/items/snowman_cap.lua (working copy) @@ -19,5 +19,5 @@ ----------------------------------------- function onItemUse(target) - target:addStatusEffect(EFFECT_COSTUME,279,0,3600); + target:addStatusEffect(EFFECT_COSTUME,283,0,3600); end; \ No newline at end of file Index: scripts/globals/items/sobbing_fungus.lua =================================================================== --- scripts/globals/items/sobbing_fungus.lua (revision 0) +++ scripts/globals/items/sobbing_fungus.lua (working copy) @@ -0,0 +1,34 @@ +----------------------------------------- +-- ID: 4565 +-- Item: Sobbing Fungus +-- Food Effect: 3 Mins, All Races +----------------------------------------- +-- Silence +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,180,4565); + if(target:hasStatusEffect(EFFECT_SILENCE) == false) then + target:addStatusEffect(EFFECT_SILENCE,1,3,180); + else + target:messageBasic(423); + end +end; Index: scripts/globals/items/soulscourge.lua =================================================================== --- scripts/globals/items/soulscourge.lua (revision 0) +++ scripts/globals/items/soulscourge.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 17105 +-- Item: Soulscourge +-- Item Effect: Enhances Avatar Attack +10 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_MAIN) == 17105 or target:getEquipID(SLOT_SUB) == 17105) then + pet:addMod(MOD_ATT, 10); + else + pet:delMod(MOD_ATT, 10); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/spear_of_trials.lua =================================================================== --- scripts/globals/items/spear_of_trials.lua (revision 0) +++ scripts/globals/items/spear_of_trials.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16892 +-- Equip: Spear of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 16892) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 20); + target:addMod(MOD_DARKDEF, 10); + target:addMod(MOD_WATERDEF, 10); + else + target:delMod(MOD_HP, 20); + target:delMod(MOD_DARKDEF, 10); + target:delMod(MOD_WATERDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/spirit_lantern.lua =================================================================== --- scripts/globals/items/spirit_lantern.lua (revision 0) +++ scripts/globals/items/spirit_lantern.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 18240 +-- Item: Spirit Lantern +-- Enchantment: Elemental Magic Dmg +10% +-- Charges: 20 Reuse Delay: 30 Mins +-- Duration: 5 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,300,18240); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_ELEM_MAG_DMG, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_ELEM_MAG_DMG, 10); +end; \ No newline at end of file Index: scripts/globals/items/spirit_maul.lua =================================================================== --- scripts/globals/items/spirit_maul.lua (revision 0) +++ scripts/globals/items/spirit_maul.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 18853 +-- Item: Spirit Maul +-- Item Effect: TP +10 +-- Durration: Instant +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addTP(10); +end; Index: scripts/globals/items/spirit_sword.lua =================================================================== --- scripts/globals/items/spirit_sword.lua (revision 3520) +++ scripts/globals/items/spirit_sword.lua (working copy) @@ -1,7 +1,8 @@ ----------------------------------------- --- ID: 13682 --- Ether Tank --- When used, you will obtain one Ether +-- ID: 16613 +-- Item: Spirit Sword +-- Enchantment: TP +10 +-- Durration: Instant ----------------------------------------- ----------------------------------------- @@ -9,11 +10,8 @@ ----------------------------------------- function onItemCheck(target) -result = 0; - if (target:getFreeSlotsCount() == 0) then - result = 308; - end -return result; + result = 0; + return result; end; ----------------------------------------- Index: scripts/globals/items/sprinters_shoes.lua =================================================================== --- scripts/globals/items/sprinters_shoes.lua (revision 0) +++ scripts/globals/items/sprinters_shoes.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 15754 +-- Item: Sprinter's Shoes +-- Enchantment: Movement Speed +20 +-- Duration: 60 Mins Charges: 15 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,3600,15754); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MOVE, 20); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MOVE, 20); +end; \ No newline at end of file Index: scripts/globals/items/spurrer_beret.lua =================================================================== --- scripts/globals/items/spurrer_beret.lua (revision 0) +++ scripts/globals/items/spurrer_beret.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11497 +-- Item: Spurrer Beret +-- Item Effect: Pet Haste +5% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HEAD) == 11497) then + pet:addMod(MOD_HASTE_GEAR, 51); + else + pet:delMod(MOD_HASTE_GEAR, 51); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/stars_cap.lua =================================================================== --- scripts/globals/items/stars_cap.lua (revision 0) +++ scripts/globals/items/stars_cap.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15212 +-- Item: Stars Cap +-- Enchantment: "Teleport" (Ru'Lude Gardens) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck // TODO Check Ballista Points +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:isZoneVisited(243) == false) then + result = 56; + end + return result; +end; + +----------------------------------------- +-- OnItemUse // TODO Remove 1 Ballista Point +----------------------------------------- + +function onItemUse(target) + starsCap(target); +end; \ No newline at end of file Index: scripts/globals/items/strip_of_smoked_mackerel.lua =================================================================== --- scripts/globals/items/strip_of_smoked_mackerel.lua (revision 0) +++ scripts/globals/items/strip_of_smoked_mackerel.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5943 +-- Item: Strip of Smoked Mackerel +-- Food Effect: 30Min, All Races +----------------------------------------- +-- Agility 4 +-- Vitality -3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,1800,5943); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, 4); + target:addMod(MOD_VIT, -3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, 4); + target:delMod(MOD_VIT, -3); +end; Index: scripts/globals/items/summoner_doublet.lua =================================================================== --- scripts/globals/items/summoner_doublet.lua (revision 0) +++ scripts/globals/items/summoner_doublet.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15101 +-- Item: Summoner Doublet +-- Item Effect: Avatar: Crit Hit Rate +3% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_BODY) == 15101) then + pet:addMod(MOD_CRITHITRATE, 3); + else + pet:delMod(MOD_CRITHITRATE, 3); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/summoner_doublet_+1.lua =================================================================== --- scripts/globals/items/summoner_doublet_+1.lua (revision 0) +++ scripts/globals/items/summoner_doublet_+1.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 14514 +-- Item: Summoner Doublet +1 +-- Item Effect: Avatar: Crit Hit Rate +4% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_BODY) == 14514) then + pet:addMod(MOD_CRITHITRATE, 4); + else + pet:delMod(MOD_CRITHITRATE, 4); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/summoners_pigaches.lua =================================================================== --- scripts/globals/items/summoners_pigaches.lua (revision 0) +++ scripts/globals/items/summoners_pigaches.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15146 +-- Item: Summoner's Pigaches +-- Item Effect: Avatar: Atk +2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 15146) then + pet:addMod(MOD_ATT, 2); + else + pet:delMod(MOD_ATT, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/summoners_pigaches_+1.lua =================================================================== --- scripts/globals/items/summoners_pigaches_+1.lua (revision 0) +++ scripts/globals/items/summoners_pigaches_+1.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 15679 +-- Item: Summoner's Pigaches +1 +-- Item Effect: Avatar: Enmity +2 Atk +2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 15679) then + pet:addMod(MOD_ENMITY, 2); + pet:addMod(MOD_ATT, 2); + else + pet:delMod(MOD_ENMITY, 2); + pet:delMod(MOD_ATT, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/summoners_pigaches_+2.lua =================================================================== --- scripts/globals/items/summoners_pigaches_+2.lua (revision 0) +++ scripts/globals/items/summoners_pigaches_+2.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 10744 +-- Item: Summoner's Pigaches +2 +-- Item Effect: Avatar: Atk +2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 10744) then + pet:addMod(MOD_ATT, 2); + else + pet:delMod(MOD_ATT, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/summoners_spats_+1.lua =================================================================== --- scripts/globals/items/summoners_spats_+1.lua (revision 0) +++ scripts/globals/items/summoners_spats_+1.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 15594 +-- Item: Summoner's Spats +1 +-- Item Effect: Avatar Enmity +2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_LEGS) == 15594) then + pet:addMod(MOD_ENMITY, 2); + else + pet:delMod(MOD_ENMITY, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/sword_of_trials.lua =================================================================== --- scripts/globals/items/sword_of_trials.lua (revision 0) +++ scripts/globals/items/sword_of_trials.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16952 +-- Equip: Sword of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 16952) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 20); + target:addMod(MOD_EARTHDEF, 10); + target:addMod(MOD_ICEDEF, 10); + else + target:delMod(MOD_HP, 20); + target:delMod(MOD_EARTHDEF, 10); + target:delMod(MOD_ICEDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/tachi_of_trials.lua =================================================================== --- scripts/globals/items/tachi_of_trials.lua (revision 0) +++ scripts/globals/items/tachi_of_trials.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 17815 +-- Equip: Tachi of Trials +-- Latent effect is active while less then 300 weapon skills have been preformed on EP+ Mobs using this weapon. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target,prevsjob) + + mainEquip = target:getEquipID(SLOT_MAIN); + + if (mainEquip == 17815) then + if (target:getVar("WSNMHits") < 300) then + target:addMod(MOD_HP, 20); + target:addMod(MOD_ICEDEF, 10); + target:addMod(MOD_DARKDEF, 10); + else + target:delMod(MOD_HP, 20); + target:delMod(MOD_ICEDEF, 10); + target:delMod(MOD_DARKDEF, 10); + end + end + +end; \ No newline at end of file Index: scripts/globals/items/tactical_ring.lua =================================================================== --- scripts/globals/items/tactical_ring.lua (revision 0) +++ scripts/globals/items/tactical_ring.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- ID: 14679 +-- Tactical Ring +-- Casts Regain. +-- Uses: 20 +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,180,14679); + end +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + if(target:hasStatusEffect(EFFECT_REGAIN) == false) then + target:addStatusEffect(EFFECT_REGAIN,3,1,180); + end +end; \ No newline at end of file Index: scripts/globals/items/talaria.lua =================================================================== --- scripts/globals/items/talaria.lua (revision 0) +++ scripts/globals/items/talaria.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- ID: 11403 +-- Item: Talaria +-- Enchantment: Increases movement speed. +-- Durration: 60 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,3600,11403); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MOVE, 15); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MOVE, 15); +end; \ No newline at end of file Index: scripts/globals/items/talisman_cape.lua =================================================================== --- scripts/globals/items/talisman_cape.lua (revision 0) +++ scripts/globals/items/talisman_cape.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 15485 +-- Item: Talisman Cape +-- Enchantment: HP +18 Eminity +3 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,15485); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 18); + target:addMod(MOD_ENMITY, 3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 18); + target:delMod(MOD_ENMITY, 3); +end; \ No newline at end of file Index: scripts/globals/items/tathlum_belt.lua =================================================================== --- scripts/globals/items/tathlum_belt.lua (revision 0) +++ scripts/globals/items/tathlum_belt.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15296 +-- Tathlum Belt +-- When used, you will obtain 1 Stack of Tathlums +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(17298,99); +end; \ No newline at end of file Index: scripts/globals/items/tavnazian_goby.lua =================================================================== --- scripts/globals/items/tavnazian_goby.lua (revision 0) +++ scripts/globals/items/tavnazian_goby.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5130 +-- Item: Tavnazian Goby +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 4 +-- Mind -4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5130); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 4); + target:addMod(MOD_MND, -4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 4); + target:delMod(MOD_MND, -4); +end; Index: scripts/globals/items/tavnazian_sheep_liver.lua =================================================================== --- scripts/globals/items/tavnazian_sheep_liver.lua (revision 0) +++ scripts/globals/items/tavnazian_sheep_liver.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------------- +-- ID: 5154 +-- Item: Tavnazian Sheep Liver +-- Food Effect: 5Min, Galka only +----------------------------------------- +-- Strength 2 +-- Intelligence -4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getRace() ~= 8) then + result = 247; + elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5154); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_STR, 2); + target:addMod(MOD_INT, -4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_STR, 2); + target:delMod(MOD_INT, -4); +end; Index: scripts/globals/items/tavnzanian_ring.lua =================================================================== --- scripts/globals/items/tavnzanian_ring.lua (revision 0) +++ scripts/globals/items/tavnzanian_ring.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 16048 +-- Item: Tavnzanian Ring +-- Enchantment: "Teleport" (Tavnzanian Safehold) +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:isZoneVisited(26) == false) then + result = 56; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + tavnzanianRing(target); +end; \ No newline at end of file Index: scripts/globals/items/temple_knights_quiver.lua =================================================================== --- scripts/globals/items/temple_knights_quiver.lua (revision 0) +++ scripts/globals/items/temple_knights_quiver.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 15956 +-- Temple Knight Quiver +-- When used, you will obtain 1 Temple Knight Arrow +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(18738,1); +end; \ No newline at end of file Index: scripts/globals/items/thunder_card_case.lua =================================================================== --- scripts/globals/items/thunder_card_case.lua (revision 0) +++ scripts/globals/items/thunder_card_case.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5406 +-- Item: Thunder Card Case +-- Effect: When used, you will obtain one stack of Thunder Cards +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(2180,99); +end; \ No newline at end of file Index: scripts/globals/items/tiger_cod.lua =================================================================== --- scripts/globals/items/tiger_cod.lua (revision 3520) +++ scripts/globals/items/tiger_cod.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/tiny_goldfish.lua =================================================================== --- scripts/globals/items/tiny_goldfish.lua (revision 3520) +++ scripts/globals/items/tiny_goldfish.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/town_moogle_shield.lua =================================================================== --- scripts/globals/items/town_moogle_shield.lua (revision 3520) +++ scripts/globals/items/town_moogle_shield.lua (working copy) @@ -4,6 +4,7 @@ -- Enchantment: 60Min, Costume - Moogle ----------------------------------------- +require("scripts/globals/settings"); require("scripts/globals/status"); ----------------------------------------- Index: scripts/globals/items/trail_cookie.lua =================================================================== --- scripts/globals/items/trail_cookie.lua (revision 0) +++ scripts/globals/items/trail_cookie.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5940 +-- Item: Trail Cookie +-- Food Effect: 5Min, All Races +----------------------------------------- +-- Mind +4 +-- Charisma +4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5940); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_MPHEAL, 5); + target:addMod(MOD_AQUAN_KILLER, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_MPHEAL, 5); + target:delMod(MOD_AQUAN_KILLER, 5); +end; Index: scripts/globals/items/treat_staff.lua =================================================================== --- scripts/globals/items/treat_staff.lua (revision 0) +++ scripts/globals/items/treat_staff.lua (working copy) @@ -0,0 +1,24 @@ +----------------------------------------- +-- ID: 17566 +-- Treat Staff +-- Transports the user to their Home Point +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:warp(); +end; \ No newline at end of file Index: scripts/globals/items/treat_staff_ii.lua =================================================================== --- scripts/globals/items/treat_staff_ii.lua (revision 3520) +++ scripts/globals/items/treat_staff_ii.lua (working copy) @@ -1,21 +1,24 @@ ------------------------------------------ --- ID: 17588 --- Treat staff II --- Transports the user to their Home Point ------------------------------------------ - ------------------------------------------ --- OnItemCheck ------------------------------------------ - -function onItemCheck(target) - return 0; -end; - ------------------------------------------ --- OnItemUse ------------------------------------------ - -function onItemUse(target) - target:warp(); +----------------------------------------- +-- ID: 17588 +-- Treat Staff II +-- Transports the user to their Home Point +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:warp(); end; \ No newline at end of file Index: scripts/globals/items/trick_staff_ii.lua =================================================================== --- scripts/globals/items/trick_staff_ii.lua (revision 3520) +++ scripts/globals/items/trick_staff_ii.lua (working copy) @@ -1,21 +1,24 @@ ------------------------------------------ --- ID: 17587 --- Trick Staff II --- Transports the user to their Home Point ------------------------------------------ - ------------------------------------------ --- OnItemCheck ------------------------------------------ - -function onItemCheck(target) - return 0; -end; - ------------------------------------------ --- OnItemUse ------------------------------------------ - -function onItemUse(target) - target:warp(); +----------------------------------------- +-- ID: 17587 +-- Trick Staff II +-- Transports the user to their Home Point +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:warp(); end; \ No newline at end of file Index: scripts/globals/items/tricolored_carp.lua =================================================================== --- scripts/globals/items/tricolored_carp.lua (revision 3520) +++ scripts/globals/items/tricolored_carp.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/trilobite.lua =================================================================== --- scripts/globals/items/trilobite.lua (revision 0) +++ scripts/globals/items/trilobite.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 4317 +-- Item: Trilobite +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity -5 +-- Vitality 3 +-- Defense +16% +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,4317); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, -5); + target:addMod(MOD_VIT, 3); + target:addMod(MOD_DEFP, 16); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, -5); + target:delMod(MOD_VIT, 3); + target:delMod(MOD_DEFP, 16); +end; Index: scripts/globals/items/trollbane.lua =================================================================== --- scripts/globals/items/trollbane.lua (revision 0) +++ scripts/globals/items/trollbane.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 18694 +-- Item: Trollbane +-- Enchantment: Vit +10 +-- Duration: 60 Mins +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + target:getZone(); + result = 0; + if(zone ~= 54 or zone ~= 62 or zone ~= 65) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,3600,18694); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_VIT, 10); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_VIT, 10); +end; \ No newline at end of file Index: scripts/globals/items/tropical_clam.lua =================================================================== --- scripts/globals/items/tropical_clam.lua (revision 0) +++ scripts/globals/items/tropical_clam.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5124 +-- Item: Tropical Clam +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Vitality 4 +-- Dexterity -5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5124); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_VIT, 4); + target:addMod(MOD_DEX, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_VIT, 4); + target:delMod(MOD_DEX, -5); +end; Index: scripts/globals/items/trump_card_case.lua =================================================================== --- scripts/globals/items/trump_card_case.lua (revision 0) +++ scripts/globals/items/trump_card_case.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5870 +-- Item: Trump Card Case +-- Effect: When used, you will obtain one stack of Trump Cards +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(2974,99); +end; \ No newline at end of file Index: scripts/globals/items/trumpet_shell.lua =================================================================== --- scripts/globals/items/trumpet_shell.lua (revision 0) +++ scripts/globals/items/trumpet_shell.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5466 +-- Item: Trumpet Shell +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity -5 +-- Vitality 4 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5466); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, -5); + target:addMod(MOD_VIT, 4); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, -5); + target:delMod(MOD_VIT, 4); +end; Index: scripts/globals/items/tsurugitachi.lua =================================================================== --- scripts/globals/items/tsurugitachi.lua (revision 0) +++ scripts/globals/items/tsurugitachi.lua (working copy) @@ -0,0 +1,26 @@ +----------------------------------------- +-- ID: 18444 +-- Item: Tsurugitachi +-- Item Effect: TP +10 +-- Durration: Instant +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addTP(10); +end; Index: scripts/globals/items/tube_of_clear_salve_i.lua =================================================================== --- scripts/globals/items/tube_of_clear_salve_i.lua (revision 0) +++ scripts/globals/items/tube_of_clear_salve_i.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------------- +-- ID: 5837 +-- Item: Tube of Clear Salve I +-- Item Effect: Removes most status ailments from Pet +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:getObjType() ~= TYPE_PET) + result = 56; + end + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local effect = target:eraseStatusEffect(); + if(effect == EFFECT_NONE) then + target:messageBasic(423); -- no effect + else + target:eraseStatusEffect(); + end + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; Index: scripts/globals/items/tube_of_clear_salve_ii.lua =================================================================== --- scripts/globals/items/tube_of_clear_salve_ii.lua (revision 0) +++ scripts/globals/items/tube_of_clear_salve_ii.lua (working copy) @@ -0,0 +1,52 @@ +----------------------------------------- +-- ID: 5838 +-- Item: Tube of Clear Salve II +-- Item Effect: Removes most status ailments from Pet +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:getObjType() ~= TYPE_PET) + result = 56; + end + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + local effect = target:eraseStatusEffect(); + if(effect == EFFECT_NONE) then + target:messageBasic(423); -- no effect + else + while effect ~= EFFECT_NONE do + target:eraseStatusEffect(); + end; + end + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/tube_of_healing_salve_i.lua =================================================================== --- scripts/globals/items/tube_of_healing_salve_i.lua (revision 0) +++ scripts/globals/items/tube_of_healing_salve_i.lua (working copy) @@ -0,0 +1,53 @@ +----------------------------------------- +-- ID: 5835 +-- Item: Tube of Healing Salve I +-- Item Effect: Restores 50% HP to Pet +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + mHP = pet:getMaxHP(); + cHP = pet:getHP(); + rHP = mHP * .5; + if (mHP == cHP) then + result = 56; -- Does not let player use item if their pet's hp is full + end + if (target:getObjType() ~= TYPE_PET) + result = 56; + end + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); + target:addHP(rHP) + target:messageBasic(25,0,rHP); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/tube_of_healing_salve_ii.lua =================================================================== --- scripts/globals/items/tube_of_healing_salve_ii.lua (revision 0) +++ scripts/globals/items/tube_of_healing_salve_ii.lua (working copy) @@ -0,0 +1,53 @@ +----------------------------------------- +-- ID: 5836 +-- Item: Tube of Healing Salve II +-- Item Effect: Restores 100% HP to Pet +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + mHP = target:getMaxHP(); + cHP = target:getHP(); + rHP = mHP - cHP; + if (mHP == cHP) then + result = 56; -- Does not let player use item if their pet's hp is full + end + if (target:getObjType() ~= TYPE_PET) + result = 56; + end + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); + target:addHP(rHP) + target:messageBasic(25,0,rHP); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/twicer.lua =================================================================== --- scripts/globals/items/twicer.lua (revision 0) +++ scripts/globals/items/twicer.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------------- +-- ID: 5584 +-- Item: Twicer +-- Enchantment: DBL Attack 90 +-- Charges: 20 Reuse Delay: 5 Mins +-- Duration: 30 Secs +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:addStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,30,5584); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DOUBLE_ATTACK, 90); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DOUBLE_ATTACK, 90); +end; \ No newline at end of file Index: scripts/globals/items/uskumru.lua =================================================================== --- scripts/globals/items/uskumru.lua (revision 0) +++ scripts/globals/items/uskumru.lua (working copy) @@ -0,0 +1,54 @@ +----------------------------------------- +-- ID: 5452 +-- Item: Uskumru +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 3 +-- Mind -5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5452); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 3); + target:addMod(MOD_MND, -5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 3); + target:delMod(MOD_MND, -5); +end; Index: scripts/globals/items/variable_cape.lua =================================================================== --- scripts/globals/items/variable_cape.lua (revision 0) +++ scripts/globals/items/variable_cape.lua (working copy) @@ -0,0 +1,85 @@ +----------------------------------------- +-- ID: 13681 +-- Item: Variable Cape +-- Item Effect: Variable DEF and MP with Lvl +-- DEF +1 every 10 Lvls MP +2 every 5 Lvls +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local lvl = target:getMainLvl(); + local defMod = 0 + local mpMod = 0 + if (target:getEquipID(SLOT_BACK) == 13681) then + if(lvl >= 25) then + mpMod = mpMod + 2 + end + if(lvl >= 30) then + defMod = defMod + 1 + mpMod = mpMod + 2 + end + if(lvl >= 35) then + mpMod = mpMod + 2 + end + if(lvl >= 40) then + defMod = defMod + 1 + mpMod = mpMod + 2 + end + if(lvl >= 45) then + mpMod = mpMod + 2 + end + if(lvl >= 50) then + defMod = defMod + 1 + mpMod = mpMod + 2 + end + if(lvl >= 55) then + mpMod = mpMod + 2 + end + if(lvl >= 60) then + defMod = defMod + 1 + mpMod = mpMod + 2 + end + if(lvl >= 65) then + mpMod = mpMod + 2 + end + if(lvl >= 70) then + defMod = defMod + 1 + mpMod = mpMod + 2 + end + if(lvl >= 75) then + mpMod = mpMod + 2 + end + if(lvl >= 80) then + defMod = defMod + 1 + mpMod = mpMod + 2 + end + if(lvl >= 85) then + mpMod = mpMod + 2 + end + if(lvl >= 90) then + defMod = defMod + 1 + mpMod = mpMod + 2 + end + if(lvl >= 95) then + mpMod = mpMod + 2 + end + target:addMod(MOD_DEF, defMod); + target:addMod(MOD_MP, mpMod); + else + target:delMod(MOD_DEF, defMod); + target:delMod(MOD_MP, mpMod); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/variable_mantle.lua =================================================================== --- scripts/globals/items/variable_mantle.lua (revision 0) +++ scripts/globals/items/variable_mantle.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 13680 +-- Item: Variable Mantle +-- Item Effect: Variable DEF with Lvl +-- DEF +1 every 10 Lvls +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local lvl = target:getMainLvl(); + local defMod = 0 + if (target:getEquipID(SLOT_BACK) == 13680) then + if(lvl >= 30) then + defMod = defMod + 1 + end + if(lvl >= 40) then + defMod = defMod + 1 + end + if(lvl >= 50) then + defMod = defMod + 1 + end + if(lvl >= 60) then + defMod = defMod + 1 + end + if(lvl >= 70) then + defMod = defMod + 1 + end + if(lvl >= 80) then + defMod = defMod + 1 + end + if(lvl >= 90) then + defMod = defMod + 1 + end + target:addMod(MOD_DEF, defMod); + else + target:delMod(MOD_DEF, defMod); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/vial_of_drachenessence.lua =================================================================== --- scripts/globals/items/vial_of_drachenessence.lua (revision 0) +++ scripts/globals/items/vial_of_drachenessence.lua (working copy) @@ -0,0 +1,56 @@ +----------------------------------------- +-- ID: 5246 +-- Item: Vial of Drachenessence +-- Item Effect: Restores 25% HP to Wyvern Pet +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + mHP = target:getMaxHP(); + cHP = target:getHP(); + rHP = mHP * .25; + if (mHP == cHP) then + result = 56; -- Does not let player use item if their pet's hp is full + end + if (target:getObjType() ~= TYPE_PET) + result = 56; + end + if (!target:getPetType() == PETTYPE_WYVERN) then + result = 56; + end + if (target:hasStatusEffect(EFFECT_MEDICINE)) then + result = 111; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_MEDICINE,0,0,180); + target:addHP(rHP) + target:messageBasic(25,0,rHP); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) +end; \ No newline at end of file Index: scripts/globals/items/vision_ring.lua =================================================================== --- scripts/globals/items/vision_ring.lua (revision 0) +++ scripts/globals/items/vision_ring.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 15559 +-- Item: Vision Ring +-- Enchantment: Accuracy +2 Ranged Accuracy +2 +-- Durration: 30 Mins +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_ENCHANTMENT) == false) then + target:addStatusEffect(EFFECT_ENCHANTMENT,0,0,1800,15559); + end; +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_RACC, 2); + target:addMod(MOD_ACC, 2); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_RACC, 2); + target:delMod(MOD_ACC, 2); +end; \ No newline at end of file Index: scripts/globals/items/vongola_clam.lua =================================================================== --- scripts/globals/items/vongola_clam.lua (revision 0) +++ scripts/globals/items/vongola_clam.lua (working copy) @@ -0,0 +1,64 @@ +----------------------------------------- +-- ID: 5131 +-- Item: Vongola Clam +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity -5 +-- Vitality 4 +-- Defense +17% - 50 Cap +-- HP 5% - 50 Cap +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5131); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, -5); + target:addMod(MOD_VIT, 4); + target:addMod(MOD_FOOD_DEFP, 17); + target:addMod(MOD_FOOD_DEF_CAP, 50); + target:addMod(MOD_FOOD_HPP, 5); + target:addMod(MOD_FOOD_HP_CAP, 50); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, -5); + target:delMod(MOD_VIT, 4); + target:delMod(MOD_FOOD_DEFP, 17); + target:delMod(MOD_FOOD_DEF_CAP, 50); + target:delMod(MOD_FOOD_HPP, 5); + target:delMod(MOD_FOOD_HP_CAP, 50); +end; Index: scripts/globals/items/vulcan_blade.lua =================================================================== --- scripts/globals/items/vulcan_blade.lua (revision 0) +++ scripts/globals/items/vulcan_blade.lua (working copy) @@ -0,0 +1,22 @@ +----------------------------------------- +-- ID: 17706 +-- Item: Vulcan Blade +-- Enchantment: "Enfire" +-- Charges: 30 Reuse: 300 Secs +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENFIRE; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/vulcan_claymore.lua =================================================================== --- scripts/globals/items/vulcan_claymore.lua (revision 0) +++ scripts/globals/items/vulcan_claymore.lua (working copy) @@ -0,0 +1,22 @@ +----------------------------------------- +-- ID: 18379 +-- Item: Vulcan Claymore +-- Enchantment: "Enfire" +-- Charges: 30 Reuse: 300 Secs +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENFIRE; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/vulcan_degen.lua =================================================================== --- scripts/globals/items/vulcan_degen.lua (revision 0) +++ scripts/globals/items/vulcan_degen.lua (working copy) @@ -0,0 +1,22 @@ +----------------------------------------- +-- ID: 17705 +-- Item: Vulcan Degen +-- Enchantment: "Enfire" +-- Charges: 30 Reuse: 300 Secs +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENFIRE; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/vulcan_sword.lua =================================================================== --- scripts/globals/items/vulcan_sword.lua (revision 0) +++ scripts/globals/items/vulcan_sword.lua (working copy) @@ -0,0 +1,22 @@ +----------------------------------------- +-- ID: 17704 +-- Item: Vulcan Sword +-- Enchantment: "Enfire" +-- Charges: 30 Reuse: 300 Secs +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + effect = EFFECT_ENFIRE; + doEnspell(target,target,nil,effect); +end; Index: scripts/globals/items/walnut.lua =================================================================== --- scripts/globals/items/walnut.lua (revision 0) +++ scripts/globals/items/walnut.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- ID: 5661 +-- Item: Walnut +-- Food Effect: 5Min, All Races +----------------------------------------- +-- HP 30 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5661); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_HP, 30); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_HP, 30); +end; Index: scripts/globals/items/water_card_case.lua =================================================================== --- scripts/globals/items/water_card_case.lua (revision 0) +++ scripts/globals/items/water_card_case.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5407 +-- Item: Water Card Case +-- Effect: When used, you will obtain one stack of Water Cards +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(2181,99); +end; \ No newline at end of file Index: scripts/globals/items/wayang_kulit_mantle.lua =================================================================== --- scripts/globals/items/wayang_kulit_mantle.lua (revision 0) +++ scripts/globals/items/wayang_kulit_mantle.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- ID: 11536 +-- Item: Wayang Kuilt Mantle +-- Item Effect: Automation: Melee skill +2 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_BACK) == 11536) then + pet:addMod(MOD_HTH, 2); + else + pet:delMod(MOD_HTH, 2); + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/western_san_doria_gate_glyph.lua =================================================================== --- scripts/globals/items/western_san_doria_gate_glyph.lua (revision 0) +++ scripts/globals/items/western_san_doria_gate_glyph.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 4191 +-- Item: West San d'Oria Gate Glyph +-- Enchantment: "Teleport" (West San d'Oria) +----------------------------------------- + +require("scripts/globals/teleports"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + sandoriaWestGlyph(target); +end; \ No newline at end of file Index: scripts/globals/items/wind_card_case.lua =================================================================== --- scripts/globals/items/wind_card_case.lua (revision 0) +++ scripts/globals/items/wind_card_case.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 5404 +-- Item: Wind Card Case +-- Effect: When used, you will obtain one stack of Wind Cards +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(2178,99); +end; \ No newline at end of file Index: scripts/globals/items/windurst_waters_gate_glyph.lua =================================================================== --- scripts/globals/items/windurst_waters_gate_glyph.lua (revision 0) +++ scripts/globals/items/windurst_waters_gate_glyph.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 4193 +-- Item: Windurst Waters Gate Glyph +-- Enchantment: "Teleport" (Windurst Waters) +----------------------------------------- + +require("scripts/globals/teleports"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + windyWatersGlyph(target); +end; \ No newline at end of file Index: scripts/globals/items/windurst_woods_gate_glyph.lua =================================================================== --- scripts/globals/items/windurst_woods_gate_glyph.lua (revision 0) +++ scripts/globals/items/windurst_woods_gate_glyph.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 4195 +-- Item: Windurst Woods Gate Glyph +-- Enchantment: "Teleport" (Windurst Woods) +----------------------------------------- + +require("scripts/globals/teleports"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return 0; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + windyWoodsGlyph(target); +end; \ No newline at end of file Index: scripts/globals/items/withered_rolanberry.lua =================================================================== --- scripts/globals/items/withered_rolanberry.lua (revision 0) +++ scripts/globals/items/withered_rolanberry.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- ID: 5675 +-- Item: Withered Rolanberry +-- Food Effect: 30 Mins, All Races +----------------------------------------- +-- Intelligence 1 +-- Agility -3 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,1800,5675); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_INT, 1); + target:addMod(MOD_AGI, -3); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_INT, 1); + target:delMod(MOD_AGI, -3); +end; Index: scripts/globals/items/woodsy_gilet_+1.lua =================================================================== --- scripts/globals/items/woodsy_gilet_+1.lua (revision 0) +++ scripts/globals/items/woodsy_gilet_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10266 +-- Woodsy Gilet +1 +-- When used, you will obtain 1 Berry Snowcone +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5710,1); +end; \ No newline at end of file Index: scripts/globals/items/woodsy_top_+1.lua =================================================================== --- scripts/globals/items/woodsy_top_+1.lua (revision 0) +++ scripts/globals/items/woodsy_top_+1.lua (working copy) @@ -0,0 +1,25 @@ +----------------------------------------- +-- ID: 10267 +-- Woodsy Top +1 +-- When used, you will obtain 1 Berry Snowcone +----------------------------------------- + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0; + if (target:getFreeSlotsCount() == 0) then + result = 308; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addItem(5710,1); +end; \ No newline at end of file Index: scripts/globals/items/wyrm_brais.lua =================================================================== --- scripts/globals/items/wyrm_brais.lua (revision 0) +++ scripts/globals/items/wyrm_brais.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 15130 +-- Item: Wyrm Brais +-- Item Effect: Wyvern Physical Dmg -5% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_LEGS) == 15130) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_DMGPHYS, -5); + else + pet:delMod(MOD_DMGPHYS, -5); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/wyrm_brais_+1.lua =================================================================== --- scripts/globals/items/wyrm_brais_+1.lua (revision 0) +++ scripts/globals/items/wyrm_brais_+1.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 15593 +-- Item: Wyrm Brais +1 +-- Item Effect: Wyvern Physical Dmg -6% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_LEGS) == 15593) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_DMGPHYS, -6); + else + pet:delMod(MOD_DMGPHYS, -6); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/wyrm_brais_+2.lua =================================================================== --- scripts/globals/items/wyrm_brais_+2.lua (revision 0) +++ scripts/globals/items/wyrm_brais_+2.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 10723 +-- Item: Wyrm Brais +2 +-- Item Effect: Wyvern Physical Dmg -7% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_LEGS) == 10723) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_DMGPHYS, -7); + else + pet:delMod(MOD_DMGPHYS, -7); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/wyrm_finger_gauntlets.lua =================================================================== --- scripts/globals/items/wyrm_finger_gauntlets.lua (revision 0) +++ scripts/globals/items/wyrm_finger_gauntlets.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 15115 +-- Item: Wyrm Finger Gauntlets +-- Item Effect: Wyvern Magic Dmg -5% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 15115) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_DMGMAGIC, 13); + else + pet:delMod(MOD_DMGMAGIC, 13); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/wyrm_finger_gauntlets_+1.lua =================================================================== --- scripts/globals/items/wyrm_finger_gauntlets_+1.lua (revision 0) +++ scripts/globals/items/wyrm_finger_gauntlets_+1.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 14922 +-- Item: Wyrm Finger Gauntlets +1 +-- Item Effect: Wyvern Magic Dmg -5% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 14922) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_DMGMAGIC, 13); + else + pet:delMod(MOD_DMGMAGIC, 13); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/wyrm_finger_gauntlets_+2.lua =================================================================== --- scripts/globals/items/wyrm_finger_gauntlets_+2.lua (revision 0) +++ scripts/globals/items/wyrm_finger_gauntlets_+2.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 10703 +-- Item: Wyrm Finger Gauntlets +2 +-- Item Effect: Wyvern Magic Dmg -7% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_HANDS) == 10703) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_DMGMAGIC, 18); + else + pet:delMod(MOD_DMGMAGIC, 18); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/wyrm_greaves.lua =================================================================== --- scripts/globals/items/wyrm_greaves.lua (revision 0) +++ scripts/globals/items/wyrm_greaves.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 15145 +-- Item: Wyrm Greaves +-- Item Effect: Wyvern HP while healing +6 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 15145) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_HPHEAL, 6); + else + pet:delMod(MOD_HPHEAL, 6); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/wyrm_greaves_+1.lua =================================================================== --- scripts/globals/items/wyrm_greaves_+1.lua (revision 0) +++ scripts/globals/items/wyrm_greaves_+1.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 15678 +-- Item: Wyrm Greaves +1 +-- Item Effect: Wyvern HP while healing +7 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (pet:getEquipID(SLOT_FEET) == 15678) then + if(target:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_HPHEAL, 7); + else + pet:delMod(MOD_HPHEAL, 7); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/wyrm_greaves_+2.lua =================================================================== --- scripts/globals/items/wyrm_greaves_+2.lua (revision 0) +++ scripts/globals/items/wyrm_greaves_+2.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 10743 +-- Item: Wyrm Greaves +2 +-- Item Effect: Wyvern HP +10% +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_FEET) == 10743) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_HPP, 10); + else + pet:delMod(MOD_HPP, 10); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/wyvern_feed.lua =================================================================== --- scripts/globals/items/wyvern_feed.lua (revision 0) +++ scripts/globals/items/wyvern_feed.lua (working copy) @@ -0,0 +1,36 @@ +----------------------------------------- +-- ID: 18242 +-- Item: Wyvern Feed +-- Item Effect: Pet gets regen +-- Durration: 60 Secs +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:getObjType() ~= TYPE_PET) + result = 56; + end + if (!target:getPetType() == PETTYPE_WYVERN) then + result = 56; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + if(target:hasStatusEffect(EFFECT_REGEN) == false) then + target:addStatusEffect(EFFECT_REGEN,12,3,60); + else + target:messageBasic(423); + end +end; Index: scripts/globals/items/wyvern_perch.lua =================================================================== --- scripts/globals/items/wyvern_perch.lua (revision 0) +++ scripts/globals/items/wyvern_perch.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- ID: 17579 +-- Item: Wyvern Perch +-- Item Effect: Wyvern HP +50 +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + local pet = target:getPet(); + + if (target:getEquipID(SLOT_MAIN) == 17579) then + if(pet:getPetType() == PETTYPE_WYVERN) then + pet:addMod(MOD_HP, 50); + else + pet:delMod(MOD_HP, 50); + end + end +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) +end; Index: scripts/globals/items/yagudo_belt.lua =================================================================== --- scripts/globals/items/yagudo_belt.lua (revision 0) +++ scripts/globals/items/yagudo_belt.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- ID: 10849 +-- Yagudo Belt +-- Enchantment: 60Min, Costume - Yagudo +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + return target:canUseCostume(); +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_COSTUME,1064,0,3600); +end; \ No newline at end of file Index: scripts/globals/items/yellow_globe.lua =================================================================== --- scripts/globals/items/yellow_globe.lua (revision 3520) +++ scripts/globals/items/yellow_globe.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/yilanbaligi.lua =================================================================== --- scripts/globals/items/yilanbaligi.lua (revision 0) +++ scripts/globals/items/yilanbaligi.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- ID: 5458 +-- Item: Yilanbaligi +-- Food Effect: 5Min, Mithra only +----------------------------------------- +-- Dexterity 2 +-- Mind -4 +-- Evasion 5 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:getRace() ~= 7) then + result = 247; + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5458); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_DEX, 2); + target:addMod(MOD_MND, -4); + target:addMod(MOD_EVA, 5); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_DEX, 2); + target:delMod(MOD_MND, -4); + target:delMod(MOD_EVA, 5); +end; Index: scripts/globals/items/yogurt_cake.lua =================================================================== --- scripts/globals/items/yogurt_cake.lua (revision 0) +++ scripts/globals/items/yogurt_cake.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- ID: 5627 +-- Item: Yogurt Cake +-- Food Effect: 3 Hrs, All Races +----------------------------------------- +-- TODO: Group Effect +-- Intelligence 1 +-- MP Recovered while healing 6 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) +result = 0 + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end +return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,10800,5627); +end; + +----------------------------------- +-- onEffectGain Action +----------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_INT, 1); + target:addMod(MOD_MPHEAL, 6); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_INT, 1); + target:delMod(MOD_MPHEAL, 6); +end; Index: scripts/globals/items/zafmlug_bass.lua =================================================================== --- scripts/globals/items/zafmlug_bass.lua (revision 3520) +++ scripts/globals/items/zafmlug_bass.lua (working copy) @@ -17,7 +17,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/zebra_eel.lua =================================================================== --- scripts/globals/items/zebra_eel.lua (revision 3520) +++ scripts/globals/items/zebra_eel.lua (working copy) @@ -18,7 +18,11 @@ result = 0 if (target:getRace() ~= 7) then result = 247; - elseif (target:hasStatusEffect(EFFECT_FOOD) == true) then + end + if(target:getMod(MOD_EAT_RAW_FISH) == 1) then + result = 0; + end + if (target:hasStatusEffect(EFFECT_FOOD) == true) then result = 246; end return result; Index: scripts/globals/items/zucchini.lua =================================================================== --- scripts/globals/items/zucchini.lua (revision 0) +++ scripts/globals/items/zucchini.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- ID: 5726 +-- Item: Zucchini +-- Food Effect: 5Min, All Races +----------------------------------------- +-- Agility 1 +-- Vitality -3 +-- Defense -1 +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnItemCheck +----------------------------------------- + +function onItemCheck(target) + result = 0; + if (target:hasStatusEffect(EFFECT_FOOD) == true) then + result = 246; + end + return result; +end; + +----------------------------------------- +-- OnItemUse +----------------------------------------- + +function onItemUse(target) + target:addStatusEffect(EFFECT_FOOD,0,0,300,5726); +end; + +----------------------------------------- +-- onEffectGain Action +----------------------------------------- + +function onEffectGain(target,effect) + target:addMod(MOD_AGI, 1); + target:addMod(MOD_VIT, -3); + target:addMod(MOD_DEF, -1); +end; + +----------------------------------------- +-- onEffectLose Action +----------------------------------------- + +function onEffectLose(target,effect) + target:delMod(MOD_AGI, 1); + target:delMod(MOD_VIT, -3); + target:delMod(MOD_DEF, -1); +end; Index: scripts/globals/keyitems.lua =================================================================== --- scripts/globals/keyitems.lua (revision 3520) +++ scripts/globals/keyitems.lua (working copy) @@ -1068,8 +1068,10 @@ MOG_BONANZA_KUPON_EW = 1553; MOG_BONANZA_KUPON_EA = 1554; MOG_BONANZA_KUPON_S = 1555; -GREY_ABYSSITE1 = 1558; -GREY_ABYSSITE2 = 1590; +BEGUILING_PETRIFACT = 1556; +SEDUCTIVE_PETRIFACT = 1557; +MADDENING_PETRIFACT = 1558; +GREY_ABYSSITE = 1590; KUPOFRIEDS_MEDALLION = 1599; POT_OF_MARTIAL_RELISH = 1603; THIERRIDES_BEAN_CREATION = 1604; @@ -1099,22 +1101,42 @@ MAGIAN_MOOGLEHOOD_MISSIVE1 = 1768; MAGIAN_MOOGLEHOOD_MISSIVE2 = 1769; MAGIAN_MOOGLEHOOD_MISSIVE3 = 1770; +MAGIAN_MOOGLEHOOD_MISSIVE4 = 1771; +MAGIAN_MOOGLEHOOD_MISSIVE5 = 1772; +MAGIAN_MOOGLEHOOD_MISSIVE6 = 1773; PERIAPT_OF_EMERGENCE = 1774; +PERIAPT_OF_EMERGENCE2 = 1775; PERIAPT_OF_GUIDANCE = 1776; PERIAPT_OF_GUIDANCE2 = 1777; PERIAPT_OF_PERCIPIENCE = 1778; -VIVID_PERIAPT_OF_EXPLORATION = 1782; -VIVID_PERIAPT_OF_CONCENTRATION1 = 1787; -VIVID_PERIAPT_OF_CONCENTRATION2 = 1788; -VIVID_PERIAPT_OF_FOCUS1 = 1791; -VIVID_PERIAPT_OF_FOCUS2 = 1792; -VIVID_PERIAPT_OF_INTENSITY1 = 1793; -VIVID_PERIAPT_OF_INTENSITY2 = 1794; -VIVID_PERIAPT_OF_READINESS1 = 1795; -VIVID_PERIAPT_OF_READINESS2 = 1796; -VIVID_PERIAPT_OF_READINESS3 = 1797; -ATAMACITE_OF_DEVOTION1 = 1805; -ATAMACITE_OF_DEVOTION2 = 1806; +VIVID_PERIAPT_OF_CONCORD = 1779; +DUSKY_PERIAPT_OF_CONCORD = 1780; +VIVID_PERIAPT_OF_CATALYSIS = 1781; +DUSKY_PERIAPT_OF_CATALYSIS = 1782; +VIVID_PERIAPT_OF_EXPLORATION = 1783; +DUSKY_PERIAPT_OF_EXPLORATION = 1784; +VIVID_PERIAPT_OF_FRONTIERS = 1785; +DUSKY_PERIAPT_OF_FRONTIERS = 1786; +NEUTRAL_PERIAPT_OF_FRONTIERS = 1787; +VIVID_PERIAPT_OF_CONCENTRATION = 1788; +DUSKY_PERIAPT_OF_CONCENTRATION = 1789; +VIVID_PERIAPT_OF_GLORY = 1790; +DUSKY_PERIAPT_OF_CONCENTRATION = 1791; +VIVID_PERIAPT_OF_FOCUS = 1792; +DUSKY_PERIAPT_OF_FOCUS = 1793; +VIVID_PERIAPT_OF_INTENSITY = 1794; +DUSKY_PERIAPT_OF_INTENSITY = 1795; +VIVID_PERIAPT_OF_READINESS = 1796; +DUSKY_PERIAPT_OF_READINESS = 1797; +VIVID_PERIAPT_OF_ADAPTABILITY = 1798; +DUSKY_PERIAPT_OF_ADAPTABILITY = 1799; +VIVID_PERIAPT_OF_VIGILANCE = 1800; +DUSKY_PERIAPT_OF_VIGILANCE = 1801; +VIVID_PERIAPT_OF_PRUDENCE = 1802; +DUSKY_PERIAPT_OF_PRUDENCE = 1803; +PERIAPT_OF_RECOMPENSE = 1804; +VOID_CLUSTER = 1805; +ATAMACITE_OF_DEVOTION = 1806; ATAMACITE_OF_PERSISTENCE = 1807; ATAMACITE_OF_EMINENCE = 1808; ATAMACITE_OF_ONSLAUGHT = 1809; @@ -1123,8 +1145,210 @@ ATAMACITE_OF_DESTRUCTION = 1812; ATAMACITE_OF_TEMPERANCE = 1813; ATAMACITE_OF_DISCIPLINE = 1814; -PLIABLE_LIZARD_SKIN = 1854; +ATAMACITE_OF_COERION = 1815; +ATAMACITE_OF_FINESSE = 1816; +ATAMACITE_OF_LATITUDE = 1817; +ATAMACITE_OF_MYSTICISM = 1818; +ATAMACITE_OF_RAPIDITY = 1819; +ATAMACITE_OF_PREPAREDNESS = 1820; +ATAMACITE_OF_DELUGES = 1821; +ATAMACITE_OF_UNITY = 1822; +ATAMACITE_OF_EXHORTATION = 1823; +ATAMACITE_OF_SKYBLAZE = 1824; +ATAMACITE_OF_THE_SLAYER = 1825; +ATAMACITE_OF_THE_ADAMANT = 1826; +ATAMACITE_OF_THE_VALIANT = 1827; +ATAMACITE_OF_THE_SHREWD = 1828; +ATAMACITE_OF_THE_VANGUARD = 1829; +ATAMACITE_OF_ASSAILMENT = 1830; +ATAMACITE_OF_CATAPHRACT = 1831; +ATAMACITE_OF_THE_PARAPET = 1832; +ATAMACITE_OF_IMPERIUM = 1833; +ATAMACITE_OF_THE_SOLIPSIST = 1834; +ATAMACITE_OF_PROVENANCE = 1835; +ATAMACITE_OF_DARK_DESIGNS = 1836; +ATAMACITE_OF_THE_FORAGER = 1837; +ATAMACITE_OF_GLACIERS = 1838; +ATAMACITE_OF_AFFINITY = 1839; +ATAMACITE_OF_THE_DEPTHS = 1840; +ATAMACITE_OF_THE_ASSASSIN = 1841; +ATAMACITE_OF_APLOMB = 1842; +ATAMACITE_OF_THE_TROPICS = 1843; +ATAMACITE_OF_CURSES = 1844; +ATAMACITE_OF_PRESERVATION = 1845; +GOSSAMER_BALLISTA_CHEVRON = 1847; +STEEL_BALLISTA_CHEVRON = 1848; + +PERIAPT_OF_SAPIENCE = 1854; +PERIAPT_OF_CLARITY = 1855; + +SOUL_GEM = 2052; +SOUL_GEM_CLASP = 2053; +TRICOLOR_VOIDWATCHERS_EMBLEM = 2054; +STARLIGHT_VOIDWATCHERS_EMBLEM = 2055; +RED_PRESENT = 2056; +BLUE_PRESENT = 2057; +GREEN_PRESENT = 2058; +HEART_OF_THE_BUSHIN = 2059; +HYACINTH_STRATUM_ABYSSITE = 2060; +HYACINTH_STRATUM_ABYSSITE_II = 2061; +AMBER_STRATUM_ABYSSITE = 2062; +AMBER_STRATUM_ABYSSITE_II = 2063; +CLAIRVOY_ANT = 2064; +KUPOFRIEDS_CORUNDUM1 = 2065; +KUPOFRIEDS_CORUNDUM2 = 2066; +KUPOFRIEDS_CORUNDUM3 = 2067; +BRONZE_ASTRARIUM = 2068; +SILVER_ASTRARIUM = 2069; +MYTHRIL_ASTRARIUM = 2070; +GOLD_ASTRARIUM = 2071; +PLATINUM_ASTRARIUM = 2072; +DEMONS_IN_THE_RYE_CHRONICLE = 2073; +MONSTROUS_MAYHEM_REPORT = 2074; +CULLING_IS_CARING_POSTER = 2075; +MERRY_MOOGLE_MEMORIAL_GUIDE = 2076; +CONNORS_COMMUNIQUE = 2077; +PERNICIOUS_PRESENTS_BRIEF = 2078; + +HANDCRAFTED_SPATULA = 2131; +TRANSMUTED_CANDLE = 2132; +GOURMET_WHIPPED_CREAM = 2133; +ANCIENT_PAPYRUS_SHRED1 = 2134; +ANCIENT_PAPYRUS_SHRED2 = 2135; +ANCIENT_PAPYRUS_SHRED3 = 2136; +EXORAY_MOLD_CRUMB1 = 2137; +EXORAY_MOLD_CRUMB2 = 2138; +EXORAY_MOLD_CRUMB3 = 2139; +BOMB_COAL_FRAGMENT1 = 2140; +BOMB_COAL_FRAGMENT2 = 2141; +BOMB_COAL_FRAGMENT3 = 2142; +SHINING_FRAGMENT = 2143; +GLOSSY_FRAGMENT = 2144; +GRIMOIRE_PAGE = 2145; +MOBLIN_PHEROMONE_SACK = 2146; +GOLDEN_WING = 2147; +MOSS_COVERED_SHARD = 2148; +ESSENCE_OF_PERFERVIDITY = 2149; +BRANDED_WING = 2150; +MALICIOUS_HORN = 2151; +SHEET_OF_SAN_DORIAN_TUNES = 2152; +SHEET_OF_BASTOKAN_TUNES = 2153; +SHEET_OF_WINDURSTIAN_TUNES = 2154; +GEOMAGNETRON = 2155; +ANDOULINIAN_CHARTER_PERMIT = 2156; +PIONEERS_BADGE = 2157; +TEMPORARY_GEOMAGNETRON = 2158; +AGED_MATRIARCH_NAAKUAL_CREST = 2159; +AGED_RIPTIDE_NAAKUAL_CREST = 2160; +AGED_FIREBRAND_NAAKUAL_CREST = 2161; + +PROTOTYPE_ATTUNER = 2166; +WATERCRAFT = 2167; + +CUP_OF_DUST_LADEN_SAP = 2179; +MANTID_BAIT = 2180; + +VIAL_OF_TOXIC_ZOLDEFF_WATER = 2185; +FISTFUL_OF_PRISTINE_SAND = 2186; + +RIME_ICE_FRAGMENT = 2190; + +BROKEN_HARPOON = 2192; +EXTRAVAGANT_HARPOON = 2193; + +GEOMAGNETIC_COMPASS = 2196; +OCULAR_ORB = 2197; +PILE_OF_NOXIOUS_GRIME = 2198; +PULSATING_SHARD = 2199; +DINNER_INVITATION = 2200; +ROCKBERRY = 2201; + +LOGGING = 2204; +WATERCRAFTING = 2205; +DEMOLISHING = 2206; +TOXIN_RESILIENCE = 2207; +PARESIS_RESILIENCE = 2208; + +HEN_FS_BUILDING_MAT_CONTAINER = 2210; +MOR_FS_BUILDING_MAT_CONTAINER = 2211; +HEN_FS_RESOURCE_CONTAINER = 2212; +MOR_FS_RESOURCE_CONTAINER = 2213; +CEI_FB_OP_MATERIALS_CONTAINER = 2214; +HEN_FB_OP_MATERIALS_CONTAINER = 2215; +MOR_FB_OP_MATERIALS_CONTAINER = 2216; +LOST_ARTICLE = 2217; + +FLAYED_MANTID_CORPSE = 2220; +CHAPULI_HORN = 2221; + +HOT_SPRING_REPORT_1 = 2225; +HOT_SPRING_REPORT_2 = 2226; +HOT_SPRING_REPORT_3 = 2227; +HOT_SPRING_REPORT_4 = 2228; +HOT_SPRING_REPORT_5 = 2229; + +MAGMA_SURVEY_REPORT = 2232; + +REIVE_UNITY = 2234; + +CRITICAL_CHOP = 2236; +CHERISHED_AXE = 2237; +CRITICAL_SMASH = 2238; +CHERISHED_PICK = 2239; +CRITICAL_SLICE = 2240; +CHERISHED_SICKLE = 2241; + +SAN_DORIA_WARP_RUNE = 2248; +BASTOK_WARP_RUNE = 2249; +WINDURST_WARP_RUNE = 2250; +SELBINA_WARP_RUNE = 2251; +MHAURA_WARP_RUNE = 2252; +KAZHAM_WARP_RUNE = 2253; +RABAO_WARP_RUNE = 2254; +NORG_WARP_RUNE = 2255; +SIH_GATES_WARP_RUNE = 2256; +MOH_GATES_WARP_RUNE = 2257; +CIRDAS_CAVERNS_WARP_RUNE = 2258; + +RUSTED_PICKAXE = 2261; +TINY_SEED = 2262; +BOTTLE_OF_FERTILIZER_X = 2263; +WAYPOINT_SCANNER_KIT = 2264; +ROYAL_FIAT_BANNING_COLONIZATION = 2265; +RECORD_OF_THE_17TH_ASSEMBLY = 2266; +COPY_OF_THE_ALLIANCE_AGREEMENT = 2267; +ULBUKAN_NAVIGATION_CHART = 2268; +COPY_OF_ADOULINS_PATRONESS = 2269; +MEMO_FROM_MIDRAS = 2270; +CIDS_CATALYST = 2271; +CHUNK_OF_MILKY_WHITE_MINERALS = 2272; +FAIL_BADGE = 2273; +WESTERN_ADOULIN_PATROL_ROUTE = 2274; +MISDELIVERED_PARCEL = 2275; +EASTERN_ADOULIN_PATROL_ROUTE = 2276; +KANJI_CHARACTERS = 2277; +FISTFUL_OF_HOMELAND_SOIL = 2278; +YAHSE_WILDFLOWER_PETAL = 2279; +HABITUAL_BEHAVIOR_BAROMETER = 2280; +BRIER_PROOF_NET = 2281; +COMPASS_OF_TRANSFERENCE = 2282; +MAGMA_MITIGATION_SET = 2283; + +LAND_OF_MILK_AND_HONEY_HIVE = 2288; +FULL_LAND_OF_MILK_AND_HONEY_HIVE = 2289; +LUOPAN = 2290; +RALA_SIMULACRUM = 2291; + +CIRDAS_SIMULACRUM = 2293; + +CELADON_YANTRIC_PLANCHETTE = 2296; +ZAFFRE_YANTRIC_PLANCHETTE = 2297; +ALIZARIN_YANTRIC_PLANCHETTE = 2298; +DETACHED_STINGER = 2299; +CRAGGY_FIN = 2300; +FLAME_SCARRED_SKULL = 2301; + ----------------------------------- -- Permanent Key Items ----------------------------------- @@ -1218,7 +1442,7 @@ GRIMOIRE = 946; THE_ESSENCE_OF_DANCE = 962; JUGNER_GATE_CRYSTAL = 963; -PASSHOW_GATE_CRYSTAL = 964; +PASHHOW_GATE_CRYSTAL = 964; MERIPHATAUD_GATE_CRYSTAL = 965; SAKURA_RACING_BADGE = 1024; DELKFUTT_KEY = 1111; @@ -1229,7 +1453,6 @@ MAGIAN_TRIAL_LOG = 1261; POET_GODS_KEY = 1277; ORCISH_INFILTRATION_KIT = 1278; -VOIDSTONE = 1458; PRISMATIC_HOURGLASS = 1550; JOB_GESTURE_WARRIOR = 1738; JOB_GESTURE_MONK = 1739; @@ -1256,39 +1479,107 @@ FROG_FISHING = 1976; SERPENT_RUMORS = 1977; MOOCHING = 1978; +ANGLERS_ALMANAC = 1979; WOOD_PURIFICATION = 1984; WOOD_ENSORCELLMENT = 1985; LUMBERJACK = 1986; BOLTMAKER = 1987; +WAY_OF_THE_CARPENTER = 1988; METAL_PURIFICATION = 1992; METAL_ENSORCELLMENT = 1993; CHAINWORK = 1994; SHEETING = 1995; +WAY_OF_THE_BLACKSMITH = 1996; GOLD_PURIFICATION = 2000; GOLD_ENSORCELLMENT = 2001; CLOCKMAKING = 2002; +WAY_OF_THE_GOLDSMITH = 2003; CLOTH_PURIFICATION = 2008; CLOTH_ENSORCELLMENT = 2009; SPINNING = 2010; FLETCHING = 2011; +WAY_OF_THE_WEAVER = 2012; LEATHER_PURIFICATION = 2016; LEATHER_ENSORCELLMENT = 2017; TANNING = 2018; -SPIFFY_SYNTH = 2019; +WAY_OF_THE_TANNER = 2019; BONE_PURIFICATION = 2024; BONE_ENSORCELLMENT = 2025; FILING = 2026; +WAY_OF_THE_BONEWORKER = 2027; ANIMA_SYNTHESIS = 2032; ALCHEMIC_PURIFICATION = 2033; ALCHEMIC_ENSORCELLMENT = 2034; TRITURATION = 2035; CONCOCTION = 2036; IATROCHEMISTRY = 2037; +MIASMAL_COUNTERAGENT_RECIPE = 2038; +WAY_OF_THE_ALCHEMIST = 2039; RAW_FISH_HANDLING = 2040; NOODLE_KNEADING = 2041; PATISSIER = 2042; STEWPOT_MASTERY = 2043; +WAY_OF_THE_CULINARIAN = 2044; +VOIDWATCH_ALARUM = 2048; +VOIDWATCHERS_EMBLEM_JEUNO = 2049; +VOIDWATCHERS_EMBLEM_QUFIM = 2050; +LOADSTONE = 2051; + +LITTLE_GOBLINS_ADVENTURE_VOL_1 = 2079; +LITTLE_GOBLINS_ADVENTURE_VOL_2 = 2080; +LITTLE_GOBLINS_ADVENTURE_VOL_3 = 2081; +LITTLE_GOBLINS_ADVENTURE_VOL_4 = 2082; +LITTLE_GOBLINS_ADVENTURE_VOL_5 = 2083; +LITTLE_GOBLINS_ADVENTURE_VOL_6 = 2084; +LITTLE_GOBLINS_ADVENTURE_VOL_7 = 2085; +LITTLE_GOBLINS_ADVENTURE_VOL_8 = 2086; +VANADIEL_TRIBUNE_VOL_00 = 2087; +VANADIEL_TRIBUNE_VOL_01 = 2088; +VANADIEL_TRIBUNE_VOL_02 = 2089; +VANADIEL_TRIBUNE_VOL_03 = 2090; +VANADIEL_TRIBUNE_VOL_04 = 2091; +VANADIEL_TRIBUNE_VOL_05 = 2092; +VANADIEL_TRIBUNE_VOL_06 = 2093; +VANADIEL_TRIBUNE_VOL_07 = 2094; +VANADIEL_TRIBUNE_VOL_08 = 2095; +VANADIEL_TRIBUNE_VOL_09 = 2096; +VANADIEL_TRIBUNE_VOL_10 = 2097; +VANADIEL_TRIBUNE_VOL_11 = 2098; +VANADIEL_TRIBUNE_VOL_12 = 2099; +VANADIEL_TRIBUNE_VOL_13 = 2100; +VANADIEL_TRIBUNE_VOL_14 = 2101; +VANADIEL_TRIBUNE_VOL_15 = 2102; +VANADIEL_TRIBUNE_VOL_16 = 2103; +VANADIEL_TRIBUNE_VOL_17 = 2104; +VANADIEL_TRIBUNE_VOL_18 = 2105; +VANADIEL_TRIBUNE_VOL_19 = 2106; +VANADIEL_TRIBUNE_VOL_20 = 2107; +VANADIEL_TRIBUNE_VOL_21 = 2108; +VANADIEL_TRIBUNE_VOL_22 = 2109; +VANADIEL_TRIBUNE_VOL_23 = 2110; +VANADIEL_TRIBUNE_VOL_24 = 2111; +VANADIEL_TRIBUNE_VOL_25 = 2112; +VANADIEL_TRIBUNE_VOL_26 = 2113; +VANADIEL_TRIBUNE_VOL_27 = 2114; +VANADIEL_TRIBUNE_II_VOL_01 = 2115; +VANADIEL_TRIBUNE_II_VOL_02 = 2116; +VANADIEL_TRIBUNE_II_VOL_03 = 2117; +VANADIEL_TRIBUNE_II_VOL_04 = 2118; +VANADIEL_TRIBUNE_II_VOL_05 = 2119; +VANADIEL_TRIBUNE_II_VOL_06 = 2120; +VANADIEL_TRIBUNE_II_VOL_07 = 2121; +VANADIEL_TRIBUNE_II_VOL_08 = 2122; +VANADIEL_TRIBUNE_II_VOL_09 = 2123; +VANADIEL_TRIBUNE_II_VOL_10 = 2124; +VANADIEL_TRIBUNE_II_VOL_11 = 2125; +VANADIEL_TRIBUNE_II_VOL_12 = 2126; +VANADIEL_TRIBUNE_II_VOL_13 = 2127; +VANADIEL_TRIBUNE_II_VOL_14 = 2128; +VANADIEL_TRIBUNE_II_VOL_15 = 2129; +VANADIEL_TRIBUNE_II_VOL_16 = 2130; + + ----------------------------------- -- ABYSSEA ----------------------------------- @@ -1464,6 +1755,21 @@ LUNAR_ABBYSITE3 = 1441; ABYSSITE_OF_DISCERNMENT = 1442; ABYSSITE_OF_THE_COSMOS = 1443; +WHITE_STRATUM_ABYSSITE = 1444; +WHITE_STRATUM_ABYSSITE_II = 1445; +WHITE_STRATUM_ABYSSITE_III = 1446; +ASHEN_STRATUM_ABYSSITE = 1447; +ASHEN_STRATUM_ABYSSITE_II = 1448; +ASHEN_STRATUM_ABYSSITE_III = 1449; +WHITE_STRATUM_ABYSSITE_IV = 1450; +WHITE_STRATUM_ABYSSITE_V = 1451; +WHITE_STRATUM_ABYSSITE_VI = 1452; +LEGION_TOME_PAGE_MAXIMUS = 1453; +LEGION_MEDAL_AN = 1454; +LEGION_MEDAL_KI = 1455; +LEGION_MEDAL_IM = 1456; +LEGION_MEDAL_MURU = 1457; +LEGION_TOME_PAGE_MINIMUS = 1458; FRAGRANT_TREANT_PETAL = 1459; FETID_RAFFLESIA_STALK = 1460; DECAYING_MORBOL_TOOTH = 1461; @@ -1555,8 +1861,8 @@ AZURE_DEILUNE_ABYSSITE = 1567; VIRIDIAN_DEILUNE_ABYSSITE = 1568; ANTI_ABYSSEAN_GRENADE_01 = 1569; -ANTI_ABYSSEAN_GRENADE_01 = 1570; -ANTI_ABYSSEAN_GRENADE_01 = 1571; +ANTI_ABYSSEAN_GRENADE_02 = 1570; +ANTI_ABYSSEAN_GRENADE_03 = 1571; RAINBOW_PEARL = 1572; CHIPPED_WIND_CLUSTER = 1572; PIECE_OF_DRIED_EBONY_LUMBER = 1574; @@ -1706,6 +2012,7 @@ BOTTLE_OF_MILITARY_INK = 1765; MILITARY_INK_PACKAGE = 1766; + ----------------------------------- -- Magical Map ----------------------------------- @@ -1822,7 +2129,22 @@ MAP_OF_DYNAMIS_BUBURIMU = 1901; MAP_OF_DYNAMIS_QUFIM = 1902; MAP_OF_DYNAMIS_TAVNAZIA = 1903; +MAP_OF_ADOULIN = 1904; +MAP_OF_RALA_WATERWAYS = 1905; +MAP_OF_YAHSE_HUNTING_GROUNDS = 1906; +MAP_OF_CEIZAK_BATTLEGROUNDS = 1907; +MAP_OF_FORET_DE_HENNETIEL = 1908; +MAP_OF_MORIMAR_BASALT_FIELDS = 1910; + +MAP_OF_SHI_GATES = 1913; +MAP_OF_MOH_GATES = 1914; +MAP_OF_CIRDAS_CAVERNS = 1915; + +MAP_OF_RALA_WATERWAYS_U = 2302; + +MAP_OF_CIRDAS_CAVERNS_U = 2304; + ----------------------------------- -- Claim Slips ----------------------------------- Index: scripts/globals/logging.lua =================================================================== --- scripts/globals/logging.lua (revision 3520) +++ scripts/globals/logging.lua (working copy) @@ -88,7 +88,9 @@ Body = player:getEquipID(SLOT_BODY); Hands = player:getEquipID(SLOT_HANDS); Legs = player:getEquipID(SLOT_LEGS); - + Waist = player:getEquipID(SLOT_WAIST); + Neck = player:getEquipID(SLOT_NECK); + if(Body == 14374 or Body == 14375) then hatchetbreak = hatchetbreak + 0.073; end @@ -98,6 +100,12 @@ if(Hands == 14817 or Hands == 14818) then hatchetbreak = hatchetbreak + 0.073; end + if(Waist == 11769) then + hatchetbreak = hatchetbreak + 0.073; + end + if(Neck == 10926) then + hatchetbreak = hatchetbreak + 0.073; + end -------------------- -- End Gear Bonus Index: scripts/globals/magic.lua =================================================================== --- scripts/globals/magic.lua (revision 3520) +++ scripts/globals/magic.lua (working copy) @@ -5,18 +5,18 @@ MMSG_BUFF_FAIL = 75; - DIVINE_MAGIC_SKILL = 32; + DIVINE_MAGIC_SKILL = 32; HEALING_MAGIC_SKILL = 33; - ENHANCING_MAGIC_SKILL = 34; - ENFEEBLING_MAGIC_SKILL = 35; - ELEMENTAL_MAGIC_SKILL = 36; + ENHANCING_MAGIC_SKILL = 34; + ENFEEBLING_MAGIC_SKILL = 35; + ELEMENTAL_MAGIC_SKILL = 36; DARK_MAGIC_SKILL = 37; NINJUTSU_SKILL = 39; - SUMMENING_SKILL = 38; + SUMM0NING_SKILL = 38; SINGING_SKILL = 40; STRING_SKILL = 41; WIND_SKILL = 42; - BLUE_SKILL = 43; + BLUE_SKILL = 43; FIRESDAY = 0; EARTHSDAY = 1; @@ -31,10 +31,10 @@ ELE_EARTH = 2; ELE_WATER = 3; ELE_WIND = 4; - ELE_ICE = 5; - ELE_LIGHTNING = 6; + ELE_ICE = 5; + ELE_LIGHTNING = 6; -- added both because monsterstpmoves calls it thunder - ELE_THUNDER = 6; + ELE_THUNDER = 6; ELE_LIGHT = 7; ELE_DARK = 8; @@ -89,7 +89,6 @@ end -- printf("dmg: %d dint: %d\n", dmg, dint); - return dmg; end; @@ -102,9 +101,14 @@ end local duration = 180; + duration = duration + target:getMod(MOD_ENSPELL_DURATION); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + --calculate potency local magicskill = target:getSkillLevel(ENHANCING_MAGIC_SKILL) + target:getMod(79 + ENHANCING_MAGIC_SKILL); @@ -113,10 +117,7 @@ potency = 5 + ((5*magicskill)/100); end - -- enhancing sword - if(target:getEquipID(SLOT_MAIN) == 16605) then - potency = potency + 5; - end + potency = potency + target:getMod(MOD_ENSPELL_DMG); if(target:addStatusEffect(effect,potency,0,duration)) then spell:setMsg(230); @@ -259,6 +260,28 @@ -- Iridal and Chatoyant will return affinity for strong and weak, cancelling their bonus out, so they need to be specifically checked. -- Could do an if strong == weak, but that would cause problems once/if augments or magian gear is added. local equippedMain = caster:getEquipID(SLOT_MAIN); + + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + if(caster:getObjType() == TYPE_PC) then + if(job == JOB_BLM or sjob == JOB_BLM) then + if(ele == 1) then + affinity = affinity + caster:getMerit(MERIT_FIRE_MAGIC_POTENCY); + elseif(ele == 2) then + affinity = affinity + caster:getMerit(MERIT_EARTH_MAGIC_POTENCY); + elseif(ele == 3) then + affinity = affinity + caster:getMerit(MERIT_WATER_MAGIC_POTENCY); + elseif(ele == 4) then + affinity = affinity + caster:getMerit(MERIT_WIND_MAGIC_POTENCY); + elseif(ele == 5) then + affinity = affinity + caster:getMerit(MERIT_ICE_MAGIC_POTENCY); + elseif(ele == 6) then + affinity = affinity + caster:getMerit(MERIT_LIGHTNING_MAGIC_POTENCY); + else + affinity = affinity; + end + end + end if (equippedMain == 18632) then affinity = affinity + 1; elseif (equippedMain == 18633) then @@ -286,9 +309,10 @@ if(target:hasStatusEffect(EFFECT_MAGIC_SHIELD, 0)) then return 0; end - local resist = 1.0; local magicaccbonus = 0; + local ele = spell:getElement(); + local weather = player:getWeather(); if(bonus ~= nil) then magicaccbonus = magicaccbonus + bonus; @@ -296,7 +320,6 @@ --get the base acc (just skill plus magic acc mod) local magicacc = player:getSkillLevel(skill) + player:getMod(79 + skill) + player:getMod(MOD_MACC); - if player:hasStatusEffect(EFFECT_ALTRUISM) and spell:getSpellGroup() == SPELLGROUP_WHITE then magicacc = magicacc + player:getStatusEffect(EFFECT_ALTRUISM):getPower(); end @@ -309,12 +332,147 @@ else magicacc = magicacc + diff; end - --add acc for ele/dark seal + --add acc for ele/dark seal/troubadour/divine emblem if(player:getStatusEffect(EFFECT_ELEMENTAL_SEAL) ~= nil) then magicaccbonus = magicaccbonus + 256; elseif(player:getStatusEffect(EFFECT_DARK_SEAL) ~= nil and skill == DARK_MAGIC_SKILL) then magicaccbonus = magicaccbonus + 256; + player:delStatusEffect(EFFECT_DARK_SEAL); + elseif(player:getStatusEffect(EFFECT_DIVINE_EMBLEM) ~= nil and skill == DIVINE_MAGIC_SKILL) then + magicaccbonus = magicaccbonus + 128; + elseif(player:getStatusEffect(EFFECT_KLIMAFORM) ~= nil) then + if(ele == 1) then + if(weather == 4 or weather == 5) then + magicaccbonus = magicaccbonus + 256; + end + elseif(ele == 2) then + if(weather == 8 or weather == 9) then + magicaccbonus = magicaccbonus + 256; + end + elseif(ele == 3) then + if(weather == 6 or weather == 7) then + magicaccbonus = magicaccbonus + 256; + end + elseif(ele == 4) then + if(weather == 10 or weather == 11) then + magicaccbonus = magicaccbonus + 256; + end + elseif(ele == 5) then + if(weather == 12 or weather == 13) then + magicaccbonus = magicaccbonus + 256; + end + elseif(ele == 6) then + if(weather == 14 or weather == 15) then + magicaccbonus = magicaccbonus + 256; + end + elseif(ele == 7) then + if(weather == 16 or weather == 17) then + magicaccbonus = magicaccbonus + 256; + end + elseif(ele == 8) then + if(weather == 18 or weather == 19) then + magicaccbonus = magicaccbonus + 256; + end + end + elseif(player:getStatusEffect(EFFECT_TROUBADOUR) ~= nil) then + local bardMerit = player:getMerit(MERIT_TROUBADOUR); + local mAccBonus = 0; + if(bardMerit == 50) then + mAccBonus = 64; + elseif(bardMerit == 75) then + mAccBonus = 128; + elseif(bardMerit == 100) then + mAccBonus = 192; + elseif(bardMerit == 125) then + mAccBonus = 256; + end + magicaccbonus = magicaccbonus + mAccBonus; end + + + -- add Magical Accuracy Bonus from BLM AM II Spells + local id = spell:getID(); + local merit = 0; + + if(player:getObjType() == TYPE_PC) then + if(id == 207 or id == 209 or id == 211 or id == 213 or id == 215 or id == 205) then + if (id == 205) then + merit = player:getMerit(MERIT_FLARE_II); + elseif (id == 207) then + merit = player:getMerit(MERIT_FREEZE_II); + elseif (id == 209) then + merit = player:getMerit(MERIT_TORNADO_II); + elseif (id == 211) then + merit = player:getMerit(MERIT_QUAKE_II); + elseif (id == 213) then + merit = player:getMerit(MERIT_BURST_II); + elseif (id == 215) then + merit = player:getMerit(MERIT_FLOOD_II); + end + magicaccbonus = magicaccbonus + (merit - 5); + end + end -- if BLM AM II + + + -- add Magical Accuracy Bonus from Merit RDM Spells + + if(player:getObjType() == TYPE_PC) then + if(job == JOB_RDM or sjob == JOB_RDM) then + if(ele == 1) then + magicaccbonus = magicaccbonus + player:getMerit(MERIT_FIRE_MAGIC_ACCURACY); + elseif(ele == 2) then + magicaccbonus = magicaccbonus + player:getMerit(MERIT_EARTH_MAGIC_ACCURACY); + elseif(ele == 3) then + magicaccbonus = magicaccbonus + player:getMerit(MERIT_WATER_MAGIC_ACCURACY); + elseif(ele == 4) then + magicaccbonus = magicaccbonus + player:getMerit(MERIT_WIND_MAGIC_ACCURACY); + elseif(ele == 5) then + magicaccbonus = magicaccbonus + player:getMerit(MERIT_ICE_MAGIC_ACCURACY); + elseif(ele == 6) then + magicaccbonus = magicaccbonus + player:getMerit(MERIT_LIGHTNING_MAGIC_ACCURACY); + else + magicaccbonus = magicaccbonus; + end + end + end + + if(player:getObjType() == TYPE_PC) then + if(id == 79) then + merit = player:getMerit(MERIT_SLOW_II); + magicaccbonus = magicaccbonus + (merit - 1); + end + end + + if(player:getObjType() == TYPE_PC) then + if(id == 80 or id == 276) then + if (id == 80) then + merit = player:getMerit(MERIT_PARALYZE_II); + elseif (id == 276) then + merit = player:getMerit(MERIT_BLIND_II); + end + end + magicaccbonus = magicaccbonus + (merit - 5); + end -- if RDM Merit Spells + + + -- add Magical Accuracy Bonus from Merit NIN Spells + if(player:getObjType() == TYPE_PC) then + if(id == 322 or id == 325 or id == 328 or id == 331 or id == 334 or id == 337) then + if(id == 322) then + merit = player:getMerit(MERIT_KATON_SAN); + elseif(id == 325) then + merit = player:getMerit(MERIT_HYOTON_SAN); + elseif(id == 328) then + merit = player:getMerit(MERIT_HUTON_SAN); + elseif(id == 331) then + merit = player:getMerit(MERIT_DOTON_SAN); + elseif(id == 334) then + merit = player:getMerit(MERIT_RAITON_SAN); + elseif(id == 337) then + merit = player:getMerit(MERIT_SUITON_SAN); + end + end + magicaccbonus = magicaccbonus + ((merit - 1)*5); + + end -- if NIN Merit Spells + --add acc for staves local affinityBonus = AffinityBonus(player, spell); magicaccbonus = magicaccbonus + (affinityBonus-1) * 200; @@ -327,7 +485,6 @@ --base magic evasion (base magic evasion plus resistances(players), plus elemental defense(mobs) local magiceva = target:getMod(MOD_MEVA) + target:getMod(resistMod[spell:getElement()]); - --get the difference of acc and eva, scale with level (3.33 at 10 to 0.44 at 75) local multiplier = 0; if player:getMainLvl() < 40 then @@ -339,9 +496,10 @@ magicaccbonus = magicaccbonus / 2; --add magicacc bonus p = p + magicaccbonus; - -- printf("acc: %f, eva: %f, bonus: %f", magicacc, magiceva, magicaccbonus); + -- print(magicacc); + -- print(magiceva); + -- print(magicaccbonus); - --double any acc over 50 if it's over 50 if(p > 5) then p = 5 + (p - 5) * 2; @@ -349,7 +507,7 @@ --add a flat bonus that won't get doubled in the previous step p = p + 45; - + --add a scaling bonus or penalty based on difference of targets level from caster local leveldiff = player:getMainLvl() - target:getMainLvl(); if(leveldiff < 0) then @@ -363,9 +521,9 @@ elseif(p < 5) then p = 5; end - + p = p / 100; - + -- Resistance thresholds based on p. A higher p leads to lower resist rates, and a lower p leads to higher resist rates. local half = (1 - p); local quart = ((1 - p)^2); @@ -377,7 +535,6 @@ -- print("SIXTEENTH:",sixteenth); local resvar = math.random(); - -- Determine final resist based on which thresholds have been crossed. if(resvar <= sixteenth) then resist = 0.0625; @@ -386,10 +543,10 @@ resist = 0.125; --printf("Spell resisted to 1/8! Threshold = %u",eighth); elseif(resvar <= quart) then - resist = 0.25; + resist = 0.25; --printf("Spell resisted to 1/4. Threshold = %u",quart); elseif(resvar <= half) then - resist = 0.5; + resist = 0.5; --printf("Spell resisted to 1/2. Threshold = %u",half); else resist = 1.0; @@ -498,7 +655,11 @@ end; function finalMagicAdjustments(caster,target,spell,dmg) - + local skill = spell:getSkillType(); + local element = spell:getElement(); + local ammo = target:getEquipID(SLOT_AMMO); + local recoverMP = 0; + local occultTP = 0; -- handle multiple targets if(caster:isSpellAoE(spell:getID())) then local total = spell:getTotalTargets(); @@ -523,19 +684,64 @@ -- return 1; -- end end - - + + if(caster:hasStatusEffect(EFFECT_SCARLET_DELIRIUM_II) == true) then + dmg = dmg + (dmg * caster:getMod(MOD_SCARLET_MDMG)/100); + end + dmg = utils.dmgTaken(target, dmg); dmg = utils.magicDmgTaken(target, dmg); - dmg = dmg - target:getMod(MOD_PHALANX); + if(dmg < 0) then dmg = 0; end + + if(target:getObjType() == TYPE_PC) then + if(ammo == 18473 and element == 1 and (math.random(100) <= 5)) then -- Flame Sachet + dmg = utils.absorbMagicDmg(target, dmg); + elseif(ammo == 18474 and element == 5 and (math.random(100) <= 5)) then -- Snow Sachet + dmg = utils.absorbMagicDmg(target, dmg); + elseif(ammo == 18475 and element == 4 and (math.random(100) <= 5)) then -- Breeze Sachet + dmg = utils.absorbMagicDmg(target, dmg); + elseif(ammo == 18476 and element == 2 and (math.random(100) <= 5)) then -- Soil Sachet + dmg = utils.absorbMagicDmg(target, dmg); + elseif(ammo == 18477 and element == 6 and (math.random(100) <= 5)) then -- Thunder Sachet + dmg = utils.absorbMagicDmg(target, dmg); + elseif(ammo == 18478 and element == 3 and (math.random(100) <= 5)) then -- Aqua Sachet + dmg = utils.absorbMagicDmg(target, dmg); + elseif(ammo == 18479 and element == 7 and (math.random(100) <= 5)) then -- Light Sachet + dmg = utils.absorbMagicDmg(target, dmg); + elseif(ammo == 18480 and element == 8 and (math.random(100) <= 5)) then -- Shadow Sachet + dmg = utils.absorbMagicDmg(target, dmg); + end + if((target:getEquipID(SLOT_BODY) == 11354) and (math.random(100) <= 5)) then -- Nocturnus Mail + dmg = utils.absorbMagicDmg(target, dmg); + end + if((target:getEquipID(SLOT_BACK) == 10990) and (math.random(100) <= 5)) then -- Engulfer Cape + dmg = utils.absorbMagicDmg(target, dmg); + elseif(target:getEquipID(SLOT_BACK) == 10993 and element == 0 and (math.random(100) <= 10)) then -- Drachenblut Cape + dmg = utils.absorbMagicDmg(target, dmg); + end + end + if(target:hasStatusEffect(EFFECT_SACROSANCTITY) == true) then + dmg = utils.sacrosanctityDmg(target, dmg); + end + --handling stoneskin dmg = utils.stoneskin(target, dmg); - + + if(target:hasStatusEffect(EFFECT_MANA_WALL) == true) then + dmg = utils.manawall(target, dmg); + end + + if(target:hasStatusEffect(EFFECT_SCARLET_DELIRIUM_I) == true) then + utils.scarletDelirium(target, dmg); + end + + utils.dmgToMP(target, dmg); + utils.dmgToTP(target, dmg); target:delHP(dmg); target:updateEnmityFromDamage(caster,dmg); @@ -543,7 +749,27 @@ if (target:getObjType() ~= TYPE_PC) then target:addTP(10); end - + + if(skill == 36) then + if(caster:getEquipID(SLOT_BODY) == 10286) then -- Seidr Cotehardie + recoverMP = dmg * .02; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + end + + if(skill == 36 or skill == 37) then + if(caster:getMod(MOD_OCCULT_ACCUMEN) > 0) then + local mpCost = spell:getMPCost(); + if(mpCost >= 100) then + occultTP = (mpCost/100) * (caster:getMod(MOD_OCCULT_ACCUMEN)/1000); + caster:addTP(occultTP); + end + end + end return dmg; end; @@ -553,9 +779,6 @@ end; function calculateMagicBurstAndBonus(caster, spell, target) - local equippedHands = caster:getEquipID(SLOT_HANDS); - local equippedEar1 = caster:getEquipID(SLOT_EAR1); - local equippedEar2 = caster:getEquipID(SLOT_EAR2); local burst = 1.0; local burstBonus = 1.0; @@ -579,34 +802,44 @@ end -- Get burst bonus from gear/spell bonus + burstBonus = burstBonus + (target:getMod(MOD_MAG_BURST_DMG)/100); - -- Sorcerer's Gloves - if(equippedHands == 15105 or equippedHands == 14912) then - burstBonus = burstBonus + 0.05; - end - - if(equippedEar1 == 15962 or equippedEar2 == 15962) then - burstBonus = burstBonus + 0.05; - end - - -- TODO: This should be getting the spell ID, and checking + -- This should be getting the spell ID, and checking -- if it is an Ancient Magic II spell. Add 0.03 -- to burstBonus for each merit the caster has for - -- the given spell. + -- the given spell over the 1st merit. -- AM 2 get magic burst bonuses - --id = spell:getID(); - --if(id == 207 or id == 209 or id == 211 or id == 213 or id == 215 or id == 205) then - -- if(AM2 Merit 1) then - -- burstBonus = burstBonus + 0.03; - -- elseif(AM2 Merit 2) then - -- burstBonus += 0.06; - -- elseif(AM2 Merit 3) then - -- burstBonus += 0.09; - -- elseif(AM2 Merit 4) then - -- burstBonus += 0.12; - -- end - --end -- if AM2+ + local id = spell:getID(); + local merit = 0; + if(caster:getObjType() == TYPE_PC) then + if(id == 207 or id == 209 or id == 211 or id == 213 or id == 215 or id == 205) then + if (id == 205) then + merit = caster:getMerit(MERIT_FLARE_II); + elseif (id == 207) then + merit = caster:getMerit(MERIT_FREEZE_II); + elseif (id == 209) then + merit = caster:getMerit(MERIT_TORNADO_II); + elseif (id == 211) then + merit = caster:getMerit(MERIT_QUAKE_II); + elseif (id == 213) then + merit = caster:getMerit(MERIT_BURST_II); + elseif (id == 215) then + merit = caster:getMerit(MERIT_FLOOD_II); + end + end + if(merit == 5) then + burstBonus = burstBonus; + elseif(merit == 10) then + burstBonus = burstBonus + 0.03; + elseif(merit == 15) then + burstBonus = burstBonus + 0.06; + elseif(merit == 20) then + burstBonus = burstBonus + 0.09; + elseif(merit == 25) then + burstBonus = burstBonus + 0.12; + end + end -- if AM2+ end return burst, burstBonus; @@ -614,14 +847,45 @@ function addBonuses(caster, spell, target, dmg, bonusmab) local ele = spell:getElement(); - + local id = spell:getID(); + local skill = spell:getSkillType(); + local merit = 0; + + -- Elemental Mag Dmg Bonus (Spirit Lantern etc.) + if(skill == 36) then + dmg = math.floor(dmg * (1 + (caster:getMod(MOD_ELEM_MAG_DMG)/100))); + end + -- Enfeebling Mag Dmg Bonus (Estoquers Sayon +2 etc.) + if(skill == 35) then + dmg = math.floor(dmg * (1 + (caster:getMod(MOD_ENFB_MAG_DMG)/100))); + end + -- Ninjutsu Mag Dmg Bonus (Koga Hatsuburi etc.) + if(skill == 39) then + dmg = math.floor(dmg * (1 + (caster:getMod(MOD_NIN_MAG_DMG)/100))); + end + -- Drain / Aspir Dmg Bonus (Bounty Sickle etc.) + if(id >= 245 and id <= 248) then + dmg = math.floor(dmg * (1 + (caster:getMod(MOD_DRAIN_ASPIR)/100))); + if(caster:hasStatusEffect(EFFECT_NETHER_VOID) == true) then + dmg = dmg + (dmg / 2); + end + end + -- Divine Emblem Holy Banish Dmg Bonus + if(caster:getStatusEffect(EFFECT_DIVINE_EMBLEM) ~= nil and (id == 21 or id == 22 or + (id >= 28 and id <= 32) or (id >= 38 and id <= 42))) then + dmg = math.floor(dmg * (1 + (caster:getSkillLevel(DIVINE_MAGIC_SKILL)/100))); + target:updateEnmity(caster,((spell:getCE() / 2) + (spell:getCE() * (caster:getMod(MOD_DIVINE_EMBLEM)/100))) + ,((spell:getVE() / 2) + (spell:getVE() * (caster:getMod(MOD_DIVINE_EMBLEM)/100)))); + end + caster:delStatusEffect(EFFECT_DIVINE_EMBLEM); + local affinityBonus = AffinityBonus(caster, spell); dmg = math.floor(dmg * affinityBonus); - + --printf("Affinity Bonus DMG %u",dmg); local speciesReduction = target:getMod(defenseMod[ele]); speciesReduction = 1.00 - (speciesReduction/1000); dmg = math.floor(dmg * speciesReduction); - + --printf("Species Reduction Bonus 2 DMG %u",dmg); local dayWeatherBonus = 1.00; local equippedMain = caster:getEquipID(SLOT_MAIN); local equippedWaist = caster:getEquipID(SLOT_WAIST); @@ -692,10 +956,40 @@ mab = (100 + caster:getMod(MOD_MATT)) / (100 + target:getMod(MOD_MDEF)); end - if(mab < 0) then - mab = 0; - end + local magicCritRate = caster:getMod(MOD_MAGIC_CRIT_RATE); + local magicCritBonus = 0; + + if(magicCritRate > 0) then + if(math.random(100) >= magicCritRate) then + magicCritBonus = 10 + caster:getMod(MOD_MAG_CRIT_DMG); + end + end + + local mab = (100 + caster:getMod(MOD_MATT) + magicCritBonus) / (100 + target:getMod(MOD_MDEF)); + + if(mab < 0) then + mab = 0; + end + -- add Magical Attack Bonus from Merit NIN Spells + if(caster:getObjType() == TYPE_PC) then + if(id == 322 or id == 325 or id == 328 or id == 331 or id == 334 or id == 337) then + if(id == 322) then + merit = caster:getMerit(MERIT_KATON_SAN); + elseif(id == 325) then + merit = caster:getMerit(MERIT_HYOTON_SAN); + elseif(id == 328) then + merit = caster:getMerit(MERIT_HUTON_SAN); + elseif(id == 331) then + merit = caster:getMerit(MERIT_DOTON_SAN); + elseif(id == 334) then + merit = caster:getMerit(MERIT_RAITON_SAN); + elseif(id == 337) then + merit = caster:getMerit(MERIT_SUITON_SAN); + end + mab = mab + ((merit - 1)*5); + end + end -- if NIN Merit Spells + dmg = math.floor(dmg * mab); if (caster:hasStatusEffect(EFFECT_EBULLIENCE)) then @@ -725,7 +1019,9 @@ -- print(burst); -- print(mab); -- print(magicDmgMod); - + if(caster:hasStatusEffect(EFFECT_NETHER_VOID)) then + caster:delStatusEffect(EFFECT_NETHER_VOID); + end return dmg; end; @@ -809,16 +1105,46 @@ -- Remove previous Threnody target:delStatusEffect(EFFECT_THRENODY); - -- TODO: Check equipment bounses, increase duration/power local power = basePower; local duration = baseDuration; + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_THRENODY) * 10)/100)); + + power = power + ((caster:getMod(MOD_THRENODY) + caster:getMod(MOD_ALL_SONGS)) * 5); -- Set spell message and apply status effect target:addStatusEffect(EFFECT_THRENODY, power, 0, duration, 0, modifier, 0); - return EFFECT_THRENODY; end; +function handleCarol(caster, target, spell, basePower, baseDuration, modifier) + + -- Remove previous Carol + target:delStatusEffect(EFFECT_CAROL); + + -- TODO: Check equipment bounses, increase duration/power + local power = basePower; + local duration = baseDuration; + + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_CAROL) * 10)/100)); + + power = power + ((caster:getMod(MOD_CAROL) + caster:getMod(MOD_ALL_SONGS)) * 5); + + -- Set spell message and apply status effect + if(target:addStatusEffect(EFFECT_CAROL, power, 0, duration, 0, modifier, 0)) then + spell:setMsg(230); + else + spell:setMsg(75); -- no effect + end + return EFFECT_CAROL; +end; + + function handleNinjutsuDebuff(caster, target, spell, basePower, baseDuration, modifier) -- Add new target:addStatusEffectEx(EFFECT_NINJUTSU_ELE_DEBUFF, 0, basePower, 0, baseDuration, 0, modifier, 0); Index: scripts/globals/mining.lua =================================================================== --- scripts/globals/mining.lua (revision 3520) +++ scripts/globals/mining.lua (working copy) @@ -82,6 +82,8 @@ Body = player:getEquipID(SLOT_BODY); Hands = player:getEquipID(SLOT_HANDS); Feet = player:getEquipID(SLOT_FEET); + Waist = player:getEquipID(SLOT_WAIST); + Neck = player:getEquipID(SLOT_NECK); if(Body == 14374 or Body == 14375) then pickaxebreak = pickaxebreak + 0.073; @@ -92,6 +94,12 @@ if(Feet == 14176 or Feet == 14177) then pickaxebreak = pickaxebreak + 0.073; end + if(Waist == 11769) then + pickaxebreak = pickaxebreak + 0.073; + end + if(Neck == 10926) then + pickaxebreak = pickaxebreak + 0.073; + end -------------------- -- End Gear Bonus Index: scripts/globals/missions.lua =================================================================== --- scripts/globals/missions.lua (revision 3520) +++ scripts/globals/missions.lua (working copy) @@ -36,10 +36,10 @@ LEAUTE_S_LAST_WISHES = 16; -- ± -- RANPERRE_S_FINAL_REST = 17; -- ± -- PRESTIGE_OF_THE_PAPSQUE = 18; -- ± -- -THE_SECRET_WEAPON = 19; -COMING_OF_AGE = 20; -LIGHTBRINGER = 21; -BREAKING_BARRIERS = 22; +THE_SECRET_WEAPON = 19; -- ± -- +COMING_OF_AGE = 20; -- ± -- +LIGHTBRINGER = 21; -- ± -- +BREAKING_BARRIERS = 22; THE_HEIR_TO_THE_LIGHT = 23; ----------------------------------- @@ -107,16 +107,16 @@ THE_NEW_FRONTIER = 0; -- ± -- WELCOME_TNORG = 4; -- ± -- KAZAMS_CHIEFTAINESS = 6; -- ± -- -THE_TEMPLE_OF_UGGALEPIH = 8; -- ± -- -HEADSTONE_PILGRIMAGE = 10; -- ± -- -THROUGH_THE_QUICKSAND_CAVES = 12; -- ± -- -THE_CHAMBER_OF_ORACLES = 14; -- ± -- -RETURN_TO_DELKFUTTS_TOWER = 16; -- ± -- +THE_TEMPLE_OF_UGGALEPIH = 8; -- ± -- +HEADSTONE_PILGRIMAGE = 10; -- ± -- +THROUGH_THE_QUICKSAND_CAVES = 12; -- ± -- +THE_CHAMBER_OF_ORACLES = 14; -- ± -- +RETURN_TO_DELKFUTTS_TOWER = 16; -- ± -- ROMAEVE = 18; -- ± -- -THE_TEMPLE_OF_DESOLATION = 20; -- ± -- -THE_HALL_OF_THE_GODS = 22; -- ± -- -THE_MITHRA_AND_THE_CRYSTAL = 23; -- ± -- -THE_GATE_OF_THE_GODS = 24; -- ± -- +THE_TEMPLE_OF_DESOLATION = 20; -- ± -- +THE_HALL_OF_THE_GODS = 22; -- ± -- +THE_MITHRA_AND_THE_CRYSTAL = 23; -- ± -- +THE_GATE_OF_THE_GODS = 24; -- ± -- ARK_ANGELS = 26; -- ± -- THE_SEALED_SHRINE = 27; -- ± -- THE_CELESTIAL_NEXUS = 28; @@ -133,18 +133,18 @@ THE_MOTHERCRYSTALS = 3 -- ± -- -- THE_ISLE_OF_FORGOTTEN_SAINTS = -- Category AN_INVITATION_WEST = 5 -- ± -- -THE_LOST_CITY = 15 -- ± -- -DISTANT_BELIEFS = 16 -- ± -- -AN_ETERNAL_MELODY = 17 -- ± -- -ANCIENT_VOWS = 18 -- ± -- +THE_LOST_CITY = 15 -- ± -- +DISTANT_BELIEFS = 16 -- ± -- +AN_ETERNAL_MELODY = 17 -- ± -- +ANCIENT_VOWS = 18 -- ± -- A_TRANSIENT_DREAM = 19 -- Category THE_CALL_OF_THE_WYRMKING = 20 -- ± -- A_VESSEL_WITHOUT_A_CAPTAIN = 27 -- ± -- THE_ROAD_FORKS = 28 -- ± -- -- EMERALD_WATERS = -- Sub-category --- VICISSITUDES = -- ± -- +-- VICISSITUDES = -- ± -- DESCENDANTS_OF_A_LINE_LOST = 29 -- ± -- --- LOUVERANCE = -- ± -- +-- LOUVERANCE = -- ± -- -- MEMORIES_OF_A_MAIDEN = -- Sub-category COMEDY_OF_ERRORS_ACT_I = 30 -- ± -- -- COMEDY_OF_ERRORS_ACT_II = -- ± -- @@ -160,26 +160,26 @@ THE_ENDURING_TUMULT_OF_WAR = 43 -- ± -- DESIRES_OF_EMPTINESS = 52 THREE_PATHS = 54 --- PAST_SINS = --- SOUTHERN_LEGEND = +-- PAST_SINS = +-- SOUTHERN_LEGEND = PARTNERS_WITHOUT_FAME = 55 --- A_CENTURY_OF_HARDSHIP = --- DEPARTURES = --- THE_PURSUIT_OF_PARADISE = +-- A_CENTURY_OF_HARDSHIP = +-- DEPARTURES = +-- THE_PURSUIT_OF_PARADISE = SPIRAL = 56 --- BRANDED = --- PRIDE_AND_HONOR = --- AND_THE_COMPASS_GUIDES = +-- BRANDED = +-- PRIDE_AND_HONOR = +-- AND_THE_COMPASS_GUIDES = WHERE_MESSENGERS_GATHER = 57 --- ENTANGLEMENT = --- HEAD_WIND = +-- ENTANGLEMENT = +-- HEAD_WIND = FLAMES_FOR_THE_DEAD = 58 --- ECHOES_OF_TIME = -- Category +-- ECHOES_OF_TIME = -- Category FOR_WHOM_THE_VERSE_IS_SUNG = 60 A_PLACE_TO_RETURN = 65 -- It's necessary to increase MAX_MISSIONID in charentity.h to reach values > 63 MORE_QUESTIONS_THAN_ANSWERS = 66 ONE_TO_BE_FEARED = 67 --- IN_THE_LIGHT_OF_THE_CRYSTAL = -- Category +-- IN_THE_LIGHT_OF_THE_CRYSTAL = -- Category CHAINS_AND_BONDS = 68 FLAMES_IN_THE_DARKNESS = 77 FIRE_IN_THE_EYES_OF_MEN = 78 @@ -249,60 +249,60 @@ -- Wings of the Goddess (5) ----------------------------------- -CAVERNOUS_MAWS = 0; -BACK_TO_THE_BEGINNING = 1; -CAIT_SITH = 2; -THE_QUEEN_OF_THE_DANCE = 3; -WHILE_THE_CAT_IS_AWAY = 4; -A_TIMESWEPT_BUTTERFLY = 5; -PURPLE,_THE_NEW_BLACK = 6; -IN_THE_NAME_OF_THE_FATHER = 7; -DANCERS_IN_DISTRESS = 8; -DAUGHTER_OF_A_KNIGHT = 9; -A_SPOONFUL_OF_SUGAR = 10; -AFFAIRS_OF_STATE = 11; -BORNE_BY_THE_WIND = 12; -A_NATION_ON_THE_BRINK = 13; -CROSSROADS_OF_TIME = 14; -SANDSWEPT_MEMORIES = 15; -NORTHLAND_EXPOSURE = 16; -TRAITOR_IN_THE_MIDST = 17; -BETRAYAL_AT_BEAUCEDINE = 18; -ON_THIN_ICE = 19; -PROOF_OF_VALOR = 20; -A_SANGUINARY_PRELUDE = 21; -DUNGEONS_AND_DANCERS = 22; -DISTORTER_OF_TIME = 23; -THE_WILL_OF_THE_WORLD = 24; -FATE_IN_HAZE = 25; -THE_SCENT_OF_BATTLE = 26; -ANOTHER_WORLD = 27; -A_HAWK_IN_REPOSE = 28; -THE_BATTLE_OF_XARCABARD = 29; -PRELUDE_TO_A_STORM = 30; -STORM_S_CRESCENDO = 31; -INTO_THE_BEAST_S_MAW = 32; -THE_HUNTER_ENSNARED = 33; -FLIGHT_OF_THE_LION = 34; -FALL_OF_THE_HAWK = 35; -DARKNESS_DESCENDS = 36; -ADIEU__LILISETTE = 37; -BY_THE_FADING_LIGHT = 38; -EDGE_OF_EXISTENCE = 39; -HER_MEMORIES = 40; -FORGET_ME_NOT = 41; -PILLAR_OF_HOPE = 42; -GLIMMER_OF_LIFE = 43; -TIME_SLIPS_AWAY = 44; -WHEN_WILLS_COLLIDE = 45; -WHISPERS_OF_DAWN = 46; -A_DREAMY_INTERLUDE = 47; -CAIT_IN_THE_WOODS = 48; -FORK_IN_THE_ROAD = 49; -MAIDEN_OF_THE_DUSK = 50; -WHERE_IT_ALL_BEGAN = 51; -A_TOKEN_OF_TROTH = 52; -LEST_WE_FORGET = 53; +CAVERNOUS_MAWS = 0; +BACK_TO_THE_BEGINNING = 1; +CAIT_SITH = 2; +THE_QUEEN_OF_THE_DANCE = 3; +WHILE_THE_CAT_IS_AWAY = 4; +A_TIMESWEPT_BUTTERFLY = 5; +PURPLE,_THE_NEW_BLACK = 6; +IN_THE_NAME_OF_THE_FATHER = 7; +DANCERS_IN_DISTRESS = 8; +DAUGHTER_OF_A_KNIGHT = 9; +A_SPOONFUL_OF_SUGAR = 10; +AFFAIRS_OF_STATE = 11; +BORNE_BY_THE_WIND = 12; +A_NATION_ON_THE_BRINK = 13; +CROSSROADS_OF_TIME = 14; +SANDSWEPT_MEMORIES = 15; +NORTHLAND_EXPOSURE = 16; +TRAITOR_IN_THE_MIDST = 17; +BETRAYAL_AT_BEAUCEDINE = 18; +ON_THIN_ICE = 19; +PROOF_OF_VALOR = 20; +A_SANGUINARY_PRELUDE = 21; +DUNGEONS_AND_DANCERS = 22; +DISTORTER_OF_TIME = 23; +THE_WILL_OF_THE_WORLD = 24; +FATE_IN_HAZE = 25; +THE_SCENT_OF_BATTLE = 26; +ANOTHER_WORLD = 27; +A_HAWK_IN_REPOSE = 28; +THE_BATTLE_OF_XARCABARD = 29; +PRELUDE_TO_A_STORM = 30; +STORM_S_CRESCENDO = 31; +INTO_THE_BEAST_S_MAW = 32; +THE_HUNTER_ENSNARED = 33; +FLIGHT_OF_THE_LION = 34; +FALL_OF_THE_HAWK = 35; +DARKNESS_DESCENDS = 36; +ADIEU__LILISETTE = 37; +BY_THE_FADING_LIGHT = 38; +EDGE_OF_EXISTENCE = 39; +HER_MEMORIES = 40; +FORGET_ME_NOT = 41; +PILLAR_OF_HOPE = 42; +GLIMMER_OF_LIFE = 43; +TIME_SLIPS_AWAY = 44; +WHEN_WILLS_COLLIDE = 45; +WHISPERS_OF_DAWN = 46; +A_DREAMY_INTERLUDE = 47; +CAIT_IN_THE_WOODS = 48; +FORK_IN_THE_ROAD = 49; +MAIDEN_OF_THE_DUSK = 50; +WHERE_IT_ALL_BEGAN = 51; +A_TOKEN_OF_TROTH = 52; +LEST_WE_FORGET = 53; ----------------------------------- @@ -311,20 +311,20 @@ LEUJAOAM_CLEANSING = 1; ORICHALCUM_SURVEY = 2; -ESCORT_PROFESSOR_CHANOIX = 3; -SHANARHA_GRASS_CONSERVATION = 4; +ESCORT_PROFESSOR_CHANOIX = 3; +SHANARHA_GRASS_CONSERVATION = 4; COUNTING_SHEEP = 5; SUPPLIES_RECOVERY = 6; AZURE_EXPERIMENTS = 7; IMPERIAL_CODE = 8; RED_VERSUS_BLUE = 9; BLOODY_RONDO = 10; -IMPERIAL_AGENT_RESCUE = 11; +IMPERIAL_AGENT_RESCUE = 11; PREEMPTIVE_STRIKE = 12; -SAGELORD_ELIMINATION = 13; +SAGELORD_ELIMINATION = 13; BREAKING_MORALE = 14; THE_DOUBLE_AGENT = 15; -IMPERIAL_TREASURE_RETRIEVAL = 16; +IMPERIAL_TREASURE_RETRIEVAL = 16; BLITZKRIEG = 17; MARIDS_IN_THE_MIST = 18; AZURE_AILMENTS = 19; @@ -333,20 +333,20 @@ LEBROS_SUPPLIES = 22; TROLL_FUGITIVES = 23; EVADE_AND_ESCAPE = 24; -SIEGEMASTER_ASSASSINATION = 25; +SIEGEMASTER_ASSASSINATION = 25; APKALLU_BREEDING = 26; WAMOURA_FARM_RAID = 27; EGG_CONSERVATION = 28; -OPERATION__BLACK_PEARL = 29; +OPERATION__BLACK_PEARL = 29; BETTER_THAN_ONE = 30; SEAGULL_GROUNDED = 31; REQUIEM = 32; -SAVING_PRIVATE_RYAAF = 33; -SHOOTING_DOWN_THE_BARON = 34; +SAVING_PRIVATE_RYAAF = 33;-- ± -- +SHOOTING_DOWN_THE_BARON = 34; BUILDING_BRIDGES = 35; STOP_THE_BLOODSHED = 36; DEFUSE_THE_THREAT = 37; -OPERATION__SNAKE_EYES = 38; +OPERATION__SNAKE_EYES = 38; WAKE_THE_PUPPET = 39; THE_PRICE_IS_RIGHT = 40; GOLDEN_SALVAGE = 41; @@ -359,7 +359,7 @@ DESERTER = 48; DESPERATELY_SEEKING_CEPHALOPODS = 49; BELLEROPHON_S_BLISS = 50; -NYZUL_ISLE_INVESTIGATION = 51; +NYZUL_ISLE_INVESTIGATION = 51; NYZUL_ISLE_UNCHARTED_AREA_SURVEY = 52; ----------------------------------- @@ -369,9 +369,9 @@ ----------------------------------- -- ACP (9) ----------------------------------- -A_CRYSTALLINE_PROPHECY = 0; -THE_ECHO_AWAKENS = 1; -GATHERER_OF_LIGHT = 3; +A_CRYSTALLINE_PROPHECY = 0; +THE_ECHO_AWAKENS = 1; +GATHERER_OF_LIGHT = 3; function rankPointMath(rank) return 0.372*rank^2 - 1.62*rank + 6.2; @@ -825,7 +825,7 @@ timeline = { -- MissionID,{Guard#1 DialogID, option},{Guard#2 DialogID, option},{NPC#1 DialogID, option},{NPC#2 DialogID, option},{function list} 0,{0x03e8,0},{0x07d0,0},{0,0}, {0,0},{{1},{2}}, -- MISSION 1-1 (First Mission [START]) - 0,{0x03fc,0},{0x07e4,0},{0,0}, {0,0},{{4},{5,150},{12},{14,0}}, -- MISSION 1-1 + 0,{0x03fc,0},{0x07e4,0},{0,0}, {0,0},{{4},{5,150},{12},{14,0}}, -- MISSION 1-1 0,{0x03ea,0},{0x07d2,0},{0,0}, {0,0},{{4},{5,150},{12}}, -- MISSION 1-1 [Repeat] 1,{0x03ff,0},{0x07e7,0},{0,0}, {0,0},{{4},{14,0},{5,200},{12}}, -- MISSION 1-2 1,{0x03eb,0},{0x07d3,0},{0,0}, {0,0},{{4},{14,0},{5,200},{12}}, -- MISSION 1-2 [Repeat] @@ -845,10 +845,15 @@ 14,{0,0}, {0,0}, {0x0216,0},{0,0},{{9,73},{5,400},{14,0},{13,10},{12}}, -- MISSION 5-1 (Finish (Halver)) 15,{0,0}, {0,0}, {0x0224,0},{0,0},{{11,6},{14,4}}, -- MISSION 5-2 (Finish 1st Part (Halver)) 15,{0,0}, {0,0}, {0x003D,0},{0,0},{{14,0},{9,74},{8,20000},{6},{12}}, -- MISSION 5-2 (Finish 2nd Part (Trion in Great Hall)) - 16,{0,0}, {0,0}, {0x006f,0},{0,0},{{14,0},{9,268},{10,270},{12}}, -- MISSION 6-1 (Finish (Chalvatot)) - 17,{0x040a,0},{0x0409,0},{0,0},{0,0},{{14,0},{11,7},{8,40000},{6},{12}}, -- MISSION 6-2 (Finish (Guard)) + 16,{0,0}, {0,0}, {0x006f,0},{0,0},{{14,0},{5,600},{9,268},{10,270},{12}}, -- MISSION 6-1 (Finish (Chalvatot)) + 17,{0x040a,0},{0x0409,0},{0,0},{0,0},{{14,0},{11,7},{8,40000},{6},{12}}, -- MISSION 6-2 (Finish (Guard)) 18,{0,0}, {0,0}, {0x0007,0},{0,0},{{14,1}}, -- MISSION 7-1 (setVar("MissionStatus",1) (Door: Papal Chambers)) - 18,{0,0}, {0,0}, {0x0008,0},{0,0},{{14,0},{9,283},{5,1000},{12}} -- MISSION 7-1 (Finish (Door: Papal Chambers)) + 18,{0,0}, {0,0}, {0x0008,0},{0,0},{{14,0},{9,283},{5,700},{12}}, -- MISSION 7-1 (Finish (Door: Papal Chambers)) + 19,{0x0414,0},{0x0413,0},{0,0},{0,0},{{14,0},{6},{3,"SecretWeapon",0},{9,284},{11,8},{8,60000},{12}}, -- MISSION 7-2 (Finish (Guard)) + 20,{0,0}, {0,0}, {0x0066,0},{0,0},{{14,0},{9,288},{5,800},{12}}, -- MISSION 8-1 (Finish (Halver)) + 21,{0,0}, {0,0}, {0x0068,0},{0,0},{{14,0},{9,284},{11,9},{8,80000},{6},{12}}, -- MISSION 8-2 (Finish (Door: Great Hall)) + 22,{0,0}, {0,0}, {0x0020,0},{0,0},{{14,1}}, -- MISSION 9-1 (setVar("MissionStatus",1) (Door: Great Hall)) + 22,{0,0}, {0,0}, {0x004c,0},{0,0},{{14,0},{9,481},{9,482},{9,483},{5,900},{12}} -- MISSION 9-1 (Finish (Door: Great Hall)) --[[0,{0,0},{0,0},{0,0},{0,0},{0},{0,0},{0,0},{0,0},{0,0},{0}, 0,{0,0},{0,0},{0,0},{0,0},{0},{0,0},{0,0},{0,0},{0,0},{0}, ]]-- }; @@ -858,26 +863,26 @@ timeline = {option,{0x03E9,option},{0,0},{0,0},{0,0},{{1},{2}}}; else timeline = { - 0,{0x03e8,0},{0,0},{0,0},{0,0},{{1},{2}}, -- MISSION 1-1 (First Mission [START]) - 1,{0x01f8,0},{0,0},{0,0},{0,0},{{9,4},{12}}, -- MISSION 1-2 (Finish Mission) - 2,{0x03F0,0},{0,0},{0,0},{0,0},{{4},{11,2},{8,1000},{12}}, -- MISSION 1-3 - 2,{0x03ED,0},{0,0},{0,0},{0,0},{{4},{8,1000},{12}}, -- MISSION 1-3 [Repeat] - 3,{0x02c8,0},{0,0},{0,0},{0,0},{{9,12},{14,0},{5,200},{12}}, -- MISSION 2-1 (Finish (Ayame)) - 4,{0x0174,0},{0,0},{0,0},{0,0},{{4},{5,250},{12}}, -- MISSION 2-2 (Finish (Alois)) - 4,{0x0175,0},{0,0},{0,0},{0,0},{{4},{5,250},{12}}, -- MISSION 2-2 (Finish (Alois)) [Repeat] - 5,{0x02ca,0},{0,0},{0,0},{0,0},{{10,35},{6},{13,207},{8,3000},{11,3},{9,29},{14,0},{12}}, -- MISSION 2-3 (Finish (Naji)) - 10,{0x000b,0},{0,0},{0,0},{0,0},{{14,0},{5,350},{12}}, -- MISSION 3-1 (Pashhow Marshlands Zone) - 11,{0x03F2,0},{0,0},{0,0},{0,0},{{4},{5,400},{12}}, -- MISSION 3-2 - 11,{0x03EE,0},{0,0},{0,0},{0,0},{{4},{5,400},{12}}, -- MISSION 3-2 [Repeat] - 12,{0x0026,0},{0,0},{0,0},{0,0},{{11,4},{14,0},{6},{8,5000},{12}}, -- MISSION 3-3 (Finish (Goggehn)) - 13,{0x0023,0},{0,0},{0,0},{0,0},{{11,5},{14,0},{13,212},{10,70},{6},{8,10000},{12},{1,14}}, -- MISSION 4-1 (Finish (Goggehn)) - 14,{0x02d2,0},{0,0},{0,0},{0,0},{{14,0},{9,73},{5,600},{12}}, -- MISSION 5-1 (Finish (Naji)) - 15,{0x025b,0},{0,0},{0,0},{0,0},{{11,6},{14,0},{9,74},{8,20000},{6},{12}}, -- MISSION 5-2 (Finish (Naji)) - 16,{0x00b6,0},{0,0},{0,0},{0,0},{{14,0},{9,266},{5,650},{12}}, -- MISSION 6-1 (Finish (Tall Mountain)) - 17,{0x02fa,0},{0,0},{0,0},{0,0},{{14,0},{6},{11,7},{8,40000},{12}}, -- MISSION 6-2 (Finish (Naji)) - 18,{0x02fc,0},{0,0},{0,0},{0,0},{{14,0},{9,289},{5,700},{12}}, -- MISSION 7-1 (Finish (Cid)) - 19,{0x02fe,0},{0,0},{0,0},{0,0},{{14,0},{6},{11,8},{8,60000},{3,"OptionalCSforOMW",1},{12}}, -- MISSION 7-2 (Finish (Karst)) - 20,{0x0300,0},{0,0},{0,0},{0,0},{{14,0},{5,1133},{12}} -- MISSION 8-1 (Finish (Iron Eater)) + 0,{0x03e8,0},{0,0},{0,0},{0,0},{{1},{2}}, -- MISSION 1-1 (First Mission [START]) + 1,{0x01f8,0},{0,0},{0,0},{0,0},{{9,4},{12}}, -- MISSION 1-2 (Finish Mission) + 2,{0x03F0,0},{0,0},{0,0},{0,0},{{4},{11,2},{8,1000},{12}}, -- MISSION 1-3 + 2,{0x03ED,0},{0,0},{0,0},{0,0},{{4},{8,1000},{12}}, -- MISSION 1-3 [Repeat] + 3,{0x02c8,0},{0,0},{0,0},{0,0},{{9,12},{14,0},{5,200},{12}}, -- MISSION 2-1 (Finish (Ayame)) + 4,{0x0174,0},{0,0},{0,0},{0,0},{{4},{5,250},{12}}, -- MISSION 2-2 (Finish (Alois)) + 4,{0x0175,0},{0,0},{0,0},{0,0},{{4},{5,250},{12}}, -- MISSION 2-2 (Finish (Alois)) [Repeat] + 5,{0x02ca,0},{0,0},{0,0},{0,0},{{10,35},{6},{13,207},{8,3000},{11,3},{9,29},{14,0},{12}}, -- MISSION 2-3 (Finish (Naji)) + 10,{0x000b,0},{0,0},{0,0},{0,0},{{14,0},{5,350},{12}}, -- MISSION 3-1 (Pashhow Marshlands Zone) + 11,{0x03F2,0},{0,0},{0,0},{0,0},{{4},{5,400},{12}}, -- MISSION 3-2 + 11,{0x03EE,0},{0,0},{0,0},{0,0},{{4},{5,400},{12}}, -- MISSION 3-2 [Repeat] + 12,{0x0026,0},{0,0},{0,0},{0,0},{{11,4},{14,0},{6},{8,5000},{12}}, -- MISSION 3-3 (Finish (Goggehn)) + 13,{0x0023,0},{0,0},{0,0},{0,0},{{11,5},{14,0},{13,212},{10,70},{6},{8,10000},{12},{1,14}}, -- MISSION 4-1 (Finish (Goggehn)) + 14,{0x02d2,0},{0,0},{0,0},{0,0},{{14,0},{9,73},{5,600},{12}}, -- MISSION 5-1 (Finish (Naji)) + 15,{0x025b,0},{0,0},{0,0},{0,0},{{11,6},{14,0},{9,74},{8,20000},{6},{12}}, -- MISSION 5-2 (Finish (Naji)) + 16,{0x00b6,0},{0,0},{0,0},{0,0},{{14,0},{9,266},{5,650},{12}}, -- MISSION 6-1 (Finish (Tall Mountain)) + 17,{0x02fa,0},{0,0},{0,0},{0,0},{{14,0},{6},{11,7},{8,40000},{12}}, -- MISSION 6-2 (Finish (Naji)) + 18,{0x02fc,0},{0,0},{0,0},{0,0},{{14,0},{9,289},{5,700},{12}}, -- MISSION 7-1 (Finish (Cid)) + 19,{0x02fe,0},{0,0},{0,0},{0,0},{{14,0},{6},{11,8},{8,60000},{3,"OptionalCSforOMW",1},{12}},-- MISSION 7-2 (Finish (Karst)) + 20,{0x0300,0},{0,0},{0,0},{0,0},{{14,0},{5,1133},{12}} -- MISSION 8-1 (Finish (Iron Eater)) }; end elseif(nation == WINDURST) then @@ -886,26 +891,26 @@ timeline = {option,{guardlist[guard],option},{guardlist[guard],option},{guardlist[guard],option},{guardlist[guard],option},{{1},{2}}}; else timeline = { - 0,{0x0079,1},{0x0076,1},{0x0053,1},{0x0060,1},{{1},{2}}, -- MISSION 1-1 (First Mission [START]) - 0,{0x005e,0},{0,0}, {0,0}, {0,0}, {{14,0},{5,150},{9,28},{12}}, -- MISSION 1-1 (Finish (Hakkuru-Rinkuru)) - 1,{0x0084,1},{0x0082,1},{0x0068,1},{0x006a,1},{{1},{2}}, -- MISSION 1-2 [START] - 1,{0x008f,0},{0,0}, {0,0}, {0,0}, {{14,0},{5,200},{12}}, -- MISSION 1-2 (Finish (Apururu)) [WITHOUT ORB] - 1,{0x0091,0},{0,0}, {0,0}, {0,0}, {{14,0},{5,250},{12}}, -- MISSION 1-2 (Finish (Apururu)) [WITH ORB] - 2,{0x0095,2},{0x0083,2},{0x006d,2},{0x006f,2},{{1},{2}}, -- MISSION 1-3 [START] - 2,{0x009A,0},{0x0094,0},{0x0072,0},{0x0074,0},{{11,2},{14,0},{5,300},{8,1000},{12}}, -- MISSION 1-3 - 3,{0x00a8,0},{0,0}, {0,0}, {0,0}, {{14,0},{5,350},{12}}, -- MISSION 2-1 (Finish (Tosuka-Porika)) - 4,{0x00C9,0},{0,0}, {0,0}, {0,0}, {{14,0},{9,38},{5,400},{12}}, -- MISSION 2-2 (Finish (Moreno-Toeno)) (+35 mob killed) - 4,{0x00CE,0},{0,0}, {0,0}, {0,0}, {{14,0},{9,38},{5,400},{12}}, -- MISSION 2-2 (Finish (Moreno-Toeno)) (+35 mob killed) [Repeat] - 4,{0x00C8,0},{0,0}, {0,0}, {0,0}, {{14,0},{9,38},{5,250},{12}}, -- MISSION 2-2 (Finish (Moreno-Toeno)) (30-34 mob killed) - 4,{0x00D1,0},{0,0}, {0,0}, {0,0}, {{14,0},{9,38},{5,250},{12}}, -- MISSION 2-2 (Finish (Moreno-Toeno)) (30-34 mob killed) [Repeat] - 5,{0x0065,0},{0,0}, {0,0}, {0,0}, {{10,35},{6},{13,207},{8,3000},{11,3},{9,29},{14,0},{12}},-- MISSION 2-3 (Finish (Kupipi)) - 10,{0,0}, {0x0072,0},{0,0}, {0,0}, {{5,450},{14,0},{12}}, -- MISSION 3-1 (Finish (Rhy Epocan)) - 11,{0x0087,0},{0,0}, {0,0}, {0,0}, {{5,500},{14,0},{12}}, -- MISSION 3-2 (Finish (Zubaba)) - 11,{0x0097,0},{0,0}, {0,0}, {0,0}, {{5,400},{14,0},{12}}, -- MISSION 3-2 (Finish (Zubaba)) [Repeat] - 12,{0x0028,0},{0,0}, {0,0}, {0,0}, {{11,4},{9,30},{14,0},{6},{8,5000},{12}}, -- MISSION 3-3 (Finish (Ambassador's door)) - 13,{0x0025,0},{0,0}, {0,0}, {0,0}, {{11,5},{14,0},{13,212},{10,71},{6},{8,10000},{12}}, -- MISSION 4-1 (Finish (Pakh Jatalfih)) - 14,{0x00C0,0},{0,0}, {0,0}, {0,0}, {{14,0},{9,73},{5,600},{12}}, -- MISSION 5-1 (Finish (Star Sibyl)) - 15,{0x00D8,0},{0,0}, {0,0}, {0,0}, {{11,6},{14,0},{9,74},{8,20000},{6},{12}} -- MISSION 5-2 (Finish (Star Sibyl)) + 0,{0x0079,1},{0x0076,1},{0x0053,1},{0x0060,1},{{1},{2}}, -- MISSION 1-1 (First Mission [START]) + 0,{0x005e,0},{0,0}, {0,0}, {0,0}, {{14,0},{5,150},{9,28},{12}}, -- MISSION 1-1 (Finish (Hakkuru-Rinkuru)) + 1,{0x0084,1},{0x0082,1},{0x0068,1},{0x006a,1},{{1},{2}}, -- MISSION 1-2 [START] + 1,{0x008f,0},{0,0}, {0,0}, {0,0}, {{14,0},{5,200},{12}}, -- MISSION 1-2 (Finish (Apururu)) [WITHOUT ORB] + 1,{0x0091,0},{0,0}, {0,0}, {0,0}, {{14,0},{5,250},{12}}, -- MISSION 1-2 (Finish (Apururu)) [WITH ORB] + 2,{0x0095,2},{0x0083,2},{0x006d,2},{0x006f,2},{{1},{2}}, -- MISSION 1-3 [START] + 2,{0x009A,0},{0x0094,0},{0x0072,0},{0x0074,0},{{11,2},{14,0},{5,300},{8,1000},{12}}, -- MISSION 1-3 + 3,{0x00a8,0},{0,0}, {0,0}, {0,0}, {{14,0},{5,350},{12}}, -- MISSION 2-1 (Finish (Tosuka-Porika)) + 4,{0x00C9,0},{0,0}, {0,0}, {0,0}, {{14,0},{9,38},{5,400},{12}}, -- MISSION 2-2 (Finish (Moreno-Toeno)) (+35 mob killed) + 4,{0x00CE,0},{0,0}, {0,0}, {0,0}, {{14,0},{9,38},{5,400},{12}}, -- MISSION 2-2 (Finish (Moreno-Toeno)) (+35 mob killed) [Repeat] + 4,{0x00C8,0},{0,0}, {0,0}, {0,0}, {{14,0},{9,38},{5,250},{12}}, -- MISSION 2-2 (Finish (Moreno-Toeno)) (30-34 mob killed) + 4,{0x00D1,0},{0,0}, {0,0}, {0,0}, {{14,0},{9,38},{5,250},{12}}, -- MISSION 2-2 (Finish (Moreno-Toeno)) (30-34 mob killed) [Repeat] + 5,{0x0065,0},{0,0}, {0,0}, {0,0}, {{10,35},{6},{13,207},{8,3000},{11,3},{9,29},{14,0},{12}}, -- MISSION 2-3 (Finish (Kupipi)) + 10,{0,0}, {0x0072,0},{0,0}, {0,0}, {{5,450},{14,0},{12}}, -- MISSION 3-1 (Finish (Rhy Epocan)) + 11,{0x0087,0},{0,0}, {0,0}, {0,0}, {{5,500},{14,0},{12}}, -- MISSION 3-2 (Finish (Zubaba)) + 11,{0x0097,0},{0,0}, {0,0}, {0,0}, {{5,400},{14,0},{12}}, -- MISSION 3-2 (Finish (Zubaba)) [Repeat] + 12,{0x0028,0},{0,0}, {0,0}, {0,0}, {{11,4},{9,30},{14,0},{6},{8,5000},{12}}, -- MISSION 3-3 (Finish (Ambassador's door)) + 13,{0x0025,0},{0,0}, {0,0}, {0,0}, {{11,5},{14,0},{13,212},{10,71},{6},{8,10000},{12}}, -- MISSION 4-1 (Finish (Pakh Jatalfih)) + 14,{0x00C0,0},{0,0}, {0,0}, {0,0}, {{14,0},{9,73},{5,600},{12}}, -- MISSION 5-1 (Finish (Star Sibyl)) + 15,{0x00D8,0},{0,0}, {0,0}, {0,0}, {{11,6},{14,0},{9,74},{8,20000},{6},{12}} -- MISSION 5-2 (Finish (Star Sibyl)) }; end end Index: scripts/globals/monstertpmoves.lua =================================================================== --- scripts/globals/monstertpmoves.lua (revision 3520) +++ scripts/globals/monstertpmoves.lua (working copy) @@ -1,6 +1,7 @@ require("scripts/globals/magic"); require("scripts/globals/magicburst") require("scripts/globals/status") +require("scripts/globals/utils") -- Foreword: A lot of this is good estimating since the FFXI playerbase has not found all of info for individual moves. -- What is known is that they roughly follow player Weaponskill calculations (pDIF, dMOD, ratio, etc) so this is what @@ -632,10 +633,18 @@ end dmg = utils.dmgTaken(target, dmg); + if(target:hasStatusEffect(EFFECT_MANA_WALL) == true) then + dmg = utils.manawall(target, dmg); + end + if(target:hasStatusEffect(EFFECT_SCARLET_DELIRIUM_I) == true) then + utils.scarletDelirium(target, dmg); + end + utils.dmgToMP(target, dmg); if(skilltype == MOBSKILL_PHYSICAL) then dmg = utils.physicalDmgTaken(target, dmg); + utils.dmgToTP(target, dmg); elseif(skilltype == MOBSKILL_MAGICAL) then @@ -648,6 +657,7 @@ elseif(skilltype == MOBSKILL_RANGED) then dmg = utils.rangedDmgTaken(target, dmg); + utils.dmgToTP(target, dmg); end @@ -659,6 +669,7 @@ end dmg = utils.stoneskin(target, dmg); + utils.dmgToMP(target, dmg); return dmg; end; Index: scripts/globals/player.lua =================================================================== --- scripts/globals/player.lua (revision 3520) +++ scripts/globals/player.lua (working copy) @@ -239,13 +239,19 @@ player:unlockJob(0); end - if (ALL_MAPS == 1) then -- Does not include SoA maps + if (ALL_MAPS == 1) then for i=385,447 do player:addKeyItem(i); end - for i=1856,1903 do + for i=1856,1908 do player:addKeyItem(i); end + player:addKeyItem(1910); + for i=1913,1915 do + player:addKeyItem(i); + end + player:addKeyItem(2302); + player:addKeyItem(2304); end if (INITIAL_LEVEL_CAP ~= 50) then Index: scripts/globals/quests.lua =================================================================== --- scripts/globals/quests.lua (revision 3520) +++ scripts/globals/quests.lua (working copy) @@ -163,7 +163,7 @@ MINESWEEPER = 39; -- ± -- THE_DARKSMITH = 40; -- ± -- BUCKETS_OF_GOLD = 41; -- ± -- -THE_STARS_OF_IFRIT = 42; +THE_STARS_OF_IFRIT = 42; -- ± -- LOVE_AND_ICE = 43; BRYGID_THE_STYLIST = 44; -- ± -- THE_GUSTABERG_TOUR = 45; @@ -280,7 +280,7 @@ FLOWER_CHILD = 65; -- ± -- THE_THREE_MAGI = 66; -- ± -- RECOLLECTIONS = 67; -- ± -- -THE_ROOT_OF_THE_PROBLEM = 68; +THE_ROOT_OF_THE_PROBLEM = 68; -- ± -- THE_TENSHODO_SHOWDOWN = 69; -- + -- AS_THICK_AS_THIEVES = 70; -- + -- HITTING_THE_MARQUISATE = 71; -- + -- @@ -444,9 +444,9 @@ WHENCE_BLOWS_THE_WIND = 130; -- + -- RIDING_ON_THE_CLOUDS = 131; -- + -- SHATTERING_STARS = 132; -- + -- -NEW_WORLDS_AWAIT = 133; -EXPANDING_HORIZONS = 134; -BEYOND_THE_STARS = 135; +NEW_WORLDS_AWAIT = 133; -- + -- +EXPANDING_HORIZONS = 134; -- + -- +BEYOND_THE_STARS = 135; -- + -- DORMANT_POWERS_DISLODGED = 136; BEYOND_INFINITY = 137; @@ -492,7 +492,7 @@ TRIAL_BY_LIGHTNING = 27; -- ± -- TRIAL_SIZE_TRIAL_BY_LIGHTNING = 28; -- + -- IT_S_RAINING_MANNEQUINS = 29; -RECYCLING_RODS = 30; +RECYCLING_RODS = 30; -- ± -- PICTURE_PERFECT = 31; WAKING_THE_BEAST = 32; SURVIVAL_OF_THE_WISEST = 33; @@ -585,8 +585,8 @@ THE_KUFTAL_TOUR = 195; THE_IMMORTAL_LU_SHANG = 196; -- ± -- TRIAL_SIZE_TRIAL_BY_WIND = 197; -- ± -- -CHASING_DREAMS = 199; -- CoP Quest -THE_SEARCH_FOR_GOLDMANE = 200; -- CoP Quest +CHASING_DREAMS = 199; -- CoP Quest +THE_SEARCH_FOR_GOLDMANE = 200; -- CoP Quest INDOMITABLE_SPIRIT = 201; -- ± -- ----------------------------------- @@ -601,9 +601,9 @@ AN_EMPTY_VESSEL = 5; -- + -- LUCK_OF_THE_DRAW = 6; -- ± -- NO_STRINGS_ATTACHED = 7; -- + -- -FINDING_FAULTS = 8; -GIVE_PEACE_A_CHANCE = 9; -THE_ART_OF_WAR = 10; +FINDING_FAULTS = 8; +GIVE_PEACE_A_CHANCE = 9; +THE_ART_OF_WAR = 10; na = 11; A_TASTE_OF_HONEY = 12; SUCH_SWEET_SORROW = 13; @@ -611,21 +611,21 @@ COOK_A_ROON = 15; THE_DIE_IS_CAST = 16; TWO_HORN_THE_SAVAGE = 17; -TOTOROONS_TREASURE_HUNT = 18; -WHAT_FRIENDS_ARE_FOR = 19; -ROCK_BOTTOM = 20; -BEGINNINGS = 21; -OMENS = 22; -TRANSFORMATIONS = 23; +TOTOROONS_TREASURE_HUNT = 18; +WHAT_FRIENDS_ARE_FOR = 19; +ROCK_BOTTOM = 20; +BEGINNINGS = 21; +OMENS = 22; +TRANSFORMATIONS = 23; EQUIPED_FOR_ALL_OCCASIONS = 24; -- + -- NAVIGATING_THE_UNFRIENDLY_SEAS = 25; -- + -- -AGAINST_ALL_ODDS = 26; -THE_WAYWARD_AUTOMATION = 27; -OPERATION_TEATIME = 28; -PUPPETMASTER_BLUES = 29; -MOMENT_OF_TRUTH = 30; +AGAINST_ALL_ODDS = 26; +THE_WAYWARD_AUTOMATION = 27; +OPERATION_TEATIME = 28; +PUPPETMASTER_BLUES = 29; +MOMENT_OF_TRUTH = 30; THREE_MEN_AND_A_CLOSET = 31; -- + -- -FIVE_SECONDS_OF_FAME = 32; +FIVE_SECONDS_OF_FAME = 32; DELIVERING_THE_GOODS = 61; -- + -- VANISHING_ACT = 62; -- + -- @@ -638,100 +638,125 @@ -- Crystal War ----------------------------------- -LOST_IN_TRANSLOCATION = 0; -MESSAGE_ON_THE_WINDS = 1; -THE_WEEKLY_ADVENTURER = 2; -HEALING_HERBS = 3; -REDEEMING_ROCKS = 4; -THE_DAWN_OF_DELECTABILITY = 5; -A_LITTLE_KNOWLEDGE = 6; -- + -- -THE_FIGHTING_FOURTH = 7; -SNAKE_ON_THE_PLAINS = 8; -STEAMED_RAMS = 9; +LOST_IN_TRANSLOCATION = 0; +MESSAGE_ON_THE_WINDS = 1; +THE_WEEKLY_ADVENTURER = 2; +HEALING_HERBS = 3; +REDEEMING_ROCKS = 4; +THE_DAWN_OF_DELECTABILITY = 5; +A_LITTLE_KNOWLEDGE = 6; -- + -- +THE_FIGHTING_FOURTH = 7; +SNAKE_ON_THE_PLAINS = 8; +STEAMED_RAMS = 9; SEEING_SPOTS = 10; -- + -- -THE_FLIPSIDE_OF_THINGS = 11; -BETTER_PART_OF_VALOR = 12; -FIRES_OF_DISCONTENT = 13; -HAMMERING_HEARTS = 14; -GIFTS_OF_THE_GRIFFON = 15; -CLAWS_OF_THE_GRIFFON = 16; -THE_TIGRESS_STIRS = 17; -THE_TIGRESS_STRIKES = 18; -LIGHT_IN_THE_DARKNESS = 19; -BURDEN_OF_SUSPICION = 20; -EVIL_AT_THE_INLET = 21; -THE_FUMBLING_FRIAR = 22; -REQUIEM_FOR_THE_DEPARTED = 23; -BOY_AND_THE_BEAST = 24; -WRATH_OF_THE_GRIFFON = 25; -THE_LOST_BOOK = 26; -KNOT_QUITE_THERE = 27; -A_MANIFEST_PROBLEM = 28; -BEANS_AHOY = 29; -- + -- -BEAST_FROM_THE_EAST = 30; -THE_SWARM = 31; -OH_SABBATICAL = 32; -DOWNWARD_HELIX = 33; -SEEING_BLOOD_RED = 34; -STORM_ON_THE_HORIZON = 35; -FIRE_IN_THE_HOLE = 36; -PERILS_OF_THE_GRIFFON = 37; -IN_A_HAZE_OF_GLORY = 38; -WHEN_ONE_MAN_IS_NOT_ENOUGH = 39; -A_FEAST_FOR_GNATS = 40; -SAY_IT_WITH_A_HANDBAG = 41; -QUELLING_THE_STORM = 42; -HONOR_UNDER_FIRE = 43; -THE_PRICE_OF_VALOR = 44; -BONDS_THAT_NEVER_DIE = 45; -THE_LONG_MARCH_NORTH = 46; -THE_FORBIDDEN_PATH = 47; -A_JEWELERS_LAMENT = 48; -BENEATH_THE_MASK = 49; -WHAT_PRICE_LOYALTY = 50; -SONGBIRDS_IN_A_SNOWSTORM = 51; -BLOOD_OF_HEROES = 52; -SINS_OF_THE_MOTHERS = 53; -HOWL_FROM_THE_HEAVENS = 54; -SUCCOR_TO_THE_SIDHE = 55; -THE_YOUNG_AND_THE_THREADLESS = 56; -SON_AND_FATHER = 57; -THE_TRUTH_LIES_HID = 58; -BONDS_OF_MYTHRIL = 59; -CHASING_SHADOWS = 60; -FACE_OF_THE_FUTURE = 61; -MANIFEST_DESTINY = 62; -AT_JOURNEYS_END = 63; -HER_MEMORIES_HOMECOMING_QUEEN = 64; -HER_MEMORIES_OLD_BEAN = 65; -HER_MEMORIES_THE_FAUX_PAS = 66; -HER_MEMORIES_THE_GRAVE_RESOLVE = 67; -HER_MEMORIES_OPERATION_CUPID = 68; -HER_MEMORIES_CARNELIAN_FOOTFALLS = 69; -HER_MEMORIES_AZURE_FOOTFALLS = 70; -HER_MEMORIES_VERDURE_FOOTFALLS = 71; -HER_MEMORIES_OF_MALIGN_MALADIES = 72; -GUARDIAN_OF_THE_VOID = 80; -DRAFTED_BY_THE_DUCHY = 81; -BATTLE_ON_A_NEW_FRONT = 82; -VOIDWALKER_OP_126 = 83; -A_CAIT_CALLS = 84; -THE_TRUTH_IS_OUT_THERE = 85; -REDRAFTED_BY_THE_DUCHY = 86; -A_NEW_MENACE = 87; -NO_REST_FOR_THE_WEARY = 88; -A_WORLD_IN_FLUX = 89; -BETWEEN_A_ROCK_AND_RIFT = 90; -A_FAREWELL_TO_FELINES = 91; -THIRD_TOUR_OF_DUCHY = 92; -GLIMMER_OF_HOPE = 93; -BRACE_FOR_THE_UNKNOWN = 94; -PROVENANCE = 95; -CRYSTAL_GUARDIAN = 96; -ENDINGS_AND_BEGINNINGS = 97; -AD_INFINITUM = 98; +THE_FLIPSIDE_OF_THINGS = 11; +BETTER_PART_OF_VALOR = 12; +FIRES_OF_DISCONTENT = 13; +HAMMERING_HEARTS = 14; +GIFTS_OF_THE_GRIFFON = 15; +CLAWS_OF_THE_GRIFFON = 16; +THE_TIGRESS_STIRS = 17; +THE_TIGRESS_STRIKES = 18; +LIGHT_IN_THE_DARKNESS = 19; +BURDEN_OF_SUSPICION = 20; +EVIL_AT_THE_INLET = 21; +THE_FUMBLING_FRIAR = 22; +REQUIEM_FOR_THE_DEPARTED = 23; +BOY_AND_THE_BEAST = 24; +WRATH_OF_THE_GRIFFON = 25; +THE_LOST_BOOK = 26; +KNOT_QUITE_THERE = 27; +A_MANIFEST_PROBLEM = 28; +BEANS_AHOY = 29; -- + -- +BEAST_FROM_THE_EAST = 30; +THE_SWARM = 31; +OH_SABBATICAL = 32; +DOWNWARD_HELIX = 33; +SEEING_BLOOD_RED = 34; +STORM_ON_THE_HORIZON = 35; +FIRE_IN_THE_HOLE = 36; +PERILS_OF_THE_GRIFFON = 37; +IN_A_HAZE_OF_GLORY = 38; +WHEN_ONE_MAN_IS_NOT_ENOUGH = 39; +A_FEAST_FOR_GNATS = 40; +SAY_IT_WITH_A_HANDBAG = 41; +QUELLING_THE_STORM = 42; +HONOR_UNDER_FIRE = 43; +THE_PRICE_OF_VALOR = 44; +BONDS_THAT_NEVER_DIE = 45; +THE_LONG_MARCH_NORTH = 46; +THE_FORBIDDEN_PATH = 47; +A_JEWELERS_LAMENT = 48; +BENEATH_THE_MASK = 49; +WHAT_PRICE_LOYALTY = 50; +SONGBIRDS_IN_A_SNOWSTORM = 51; +BLOOD_OF_HEROES = 52; +SINS_OF_THE_MOTHERS = 53; +HOWL_FROM_THE_HEAVENS = 54; +SUCCOR_TO_THE_SIDHE = 55; +THE_YOUNG_AND_THE_THREADLESS = 56; +SON_AND_FATHER = 57; +THE_TRUTH_LIES_HID = 58; +BONDS_OF_MYTHRIL = 59; +CHASING_SHADOWS = 60; +FACE_OF_THE_FUTURE = 61; +MANIFEST_DESTINY = 62; +AT_JOURNEYS_END = 63; +HER_MEMORIES_HOMECOMING_QUEEN = 64; +HER_MEMORIES_OLD_BEAN = 65; +HER_MEMORIES_THE_FAUX_PAS = 66; +HER_MEMORIES_THE_GRAVE_RESOLVE = 67; +HER_MEMORIES_OPERATION_CUPID = 68; +HER_MEMORIES_CARNELIAN_FOOTFALLS= 69; +HER_MEMORIES_AZURE_FOOTFALLS = 70; +HER_MEMORIES_VERDURE_FOOTFALLS = 71; +HER_MEMORIES_OF_MALIGN_MALADIES = 72; +GUARDIAN_OF_THE_VOID = 80; +DRAFTED_BY_THE_DUCHY = 81; +BATTLE_ON_A_NEW_FRONT = 82; +VOIDWALKER_OP_126 = 83; +A_CAIT_CALLS = 84; +THE_TRUTH_IS_OUT_THERE = 85; +REDRAFTED_BY_THE_DUCHY = 86; +A_NEW_MENACE = 87; +NO_REST_FOR_THE_WEARY = 88; +A_WORLD_IN_FLUX = 89; +BETWEEN_A_ROCK_AND_RIFT = 90; +A_FAREWELL_TO_FELINES = 91; +THIRD_TOUR_OF_DUCHY = 92; +GLIMMER_OF_HOPE = 93; +BRACE_FOR_THE_UNKNOWN = 94; +PROVENANCE = 95; +CRYSTAL_GUARDIAN = 96; +ENDINGS_AND_BEGINNINGS = 97; +AD_INFINITUM = 98; +THE_WEEKLY_ADVENTURER = 2; +THE_FIGHTING_FOURTH = 7; + ----------------------------------- -- Abyssea ----------------------------------- + +CATERING_CAPERS = 0; +GIFT_OF_LIGHT = 1; +FEAR_OF_THE_DARK_III = 2; +AN_EYE_FOR_REVENGE = 3; +UNBREAK_HIS_HEART = 4; +EXPLOSIVE_ENDEAVORS = 5; +THE_ANGLING_ARMORER = 6; +WATER_OF_LIFE = 7; +OUT_OF_TOUCH = 8; +LOST_MEMORIES = 9; +HOPE_BLOOMS_ON_THE_BATTLEFIELD = 10; +OF_MALNOURISHED_MARTELLOS = 11; +ROSE_ON_THE_HEATH = 12; +FULL_OF_THE_HIMSELF_ALCHEMIST = 13; +THE_WALKING_WOUNDED = 14; +SHADY_BUSINESS_REDUX = 15; +ADDLED_MIND_UNDYING_DREAMS = 16; +THE_SOUL_OF_THE_MATTER = 17; +SECRET_AGENT_MAN = 18; +PLAYING_PAPARAZZI = 19; +HIS_BOX_HIS_BELOVED = 20; \ No newline at end of file Index: scripts/globals/server.lua =================================================================== --- scripts/globals/server.lua (revision 3520) +++ scripts/globals/server.lua (working copy) @@ -4,6 +4,7 @@ -- ----------------------------------- +require("scripts/globals/harvest_festivals"); require("scripts/globals/conquest"); require("scripts/globals/keyitems"); require("scripts/globals/missions"); @@ -25,16 +26,22 @@ if (FIELD_MANUALS == 1) then SetFieldManual(); end + + -- Harvest Festival + if(isHalloweenEnabled() ~= 0) then + applyHalloweenNpcCostumes() + end + SetRegionalConquestOverseers() - -- Charybdis PH alternates, remove one - DespawnMob(17498518); - - -- Timed Spawns - SetTimedSpawns(); - - -- Spawns Silk Caterpillar (temporary until someone implements a way to make it spawn properly) - SpawnMob(17227782,300,660); + -- Charybdis PH alternates, remove one + DespawnMob(17498518); + + -- Timed Spawns + SetTimedSpawns(); + + -- Spawns Silk Caterpillar (temporary until someone implements a way to make it spawn properly) + SpawnMob(17227782,300,660); end; ----------------------------------- Index: scripts/globals/settings.lua =================================================================== --- scripts/globals/settings.lua (revision 3520) +++ scripts/globals/settings.lua (working copy) @@ -18,57 +18,58 @@ --See chocoprice.lua to adjust chocobo stables. --require("scripts/globals/chocoprice"); -- Enable Extension (1= yes 0= no) -ENABLE_COP = 0; -ENABLE_TOAU = 0; -ENABLE_WOTG = 0; +ENABLE_COP = 1; +ENABLE_TOAU = 1; +ENABLE_WOTG = 1; -- CHARACTER CONFIG -INITIAL_LEVEL_CAP = 50; --The initial level cap for new players. There seems to be a hardcap of 255. -MAX_LEVEL = 75; -- Level max of the server, works by disabling Maat quests. -START_GIL = 10; --Amount of gil given to newly created characters. -START_INVENTORY = 30; --Starting inventory and satchel size. Ignores values < 30. Do not set above 80! +INITIAL_LEVEL_CAP = 99; --The initial level cap for new players. There seems to be a hardcap of 255. +MAX_LEVEL = 99; -- Level max of the server, works by disabling Maat quests. +START_GIL = 10000000; --Amount of gil given to newly created characters. +START_INVENTORY = 80; --Starting inventory and satchel size. Ignores values < 30. Do not set above 80! OPENING_CUTSCENE_ENABLE = 0; --Set to 1 to enable opening cutscenes, 0 to disable. -SUBJOB_QUEST_LEVEL = 18; --Minimum level to accept either subjob quest. Set to 0 to start the game with subjobs unlocked. -ADVANCED_JOB_LEVEL = 30; --Minimum level to accept advanced job quests. Set to 0 to start the game with advanced jobs. -ALL_MAPS = 0; -- Set to 1 to give starting characters all the maps. +SUBJOB_QUEST_LEVEL = 0; --Minimum level to accept either subjob quest. Set to 0 to start the game with subjobs unlocked. +ADVANCED_JOB_LEVEL = 0; --Minimum level to accept advanced job quests. Set to 0 to start the game with advanced jobs. +ALL_MAPS = 1; -- Set to 1 to give starting characters all the maps. UNLOCK_OUTPOST_WARPS = 0; -- Set to 1 to give starting characters all outpost warps. 2 to add Tu'Lia and Tavnazia. SHOP_PRICE = 1.000; --Multiplies prices in NPC shops. GIL_RATE = 1.000; --Multiplies gil earned from quests. Won't always display in game. -EXP_RATE = 1.000; --Multiplies exp earned from fov. +EXP_RATE = 10.000; --Multiplies exp earned from fov. TABS_RATE = 1.000; --Multiplies tabs earned from fov. -SAN_FAME = 1.000; --Multiplies fame earned from San d'Oria quests. -BAS_FAME = 1.000; --Multiplies fame earned from Bastok quests. -WIN_FAME = 1.000; --Multiplies fame earned from Windurst quests. -NORG_FAME = 1.000; --Multiplies fame earned from Norg and Tenshodo quests. +SAN_FAME = 2.000; --Multiplies fame earned from San d'Oria quests. +BAS_FAME = 2.000; --Multiplies fame earned from Bastok quests. +WIN_FAME = 2.000; --Multiplies fame earned from Windurst quests. +NORG_FAME = 2.000; --Multiplies fame earned from Norg and Tenshodo quests. -FISHING_GUILD_POINTS = 1.000; --Multiplies guild points earned from fishermans' guild trades. -WOODWORKING_GUILD_POINTS = 1.000; --Multiplies guild points earned from carpenters' guild trades. -SMITHING_GUILD_POINTS = 1.000; --Multiplies guild points earned from blacksmiths' guild trades. -GOLDSMITHING_GUILD_POINTS = 1.000; --Multiplies guild points earned from goldsmiths' guild trades. -CLOTHCRAFT_GUILD_POINTS = 1.000; --Multiplies guild points earned from weavers' guild trades. -LEATHERCRAFT_GUILD_POINTS = 1.000; --Multiplies guild points earned from tanners' guild trades. -BONECRAFT_GUILD_POINTS = 1.000; --Multiplies guild points earned from boneworkers' guild trades. -ALCHEMY_GUILD_POINTS = 1.000; --Multiplies guild points earned from alchemists' guild trades. -COOKING_GUILD_POINTS = 1.000; --Multiplies guild points earned from culinarians' guild trades. -DISABLE_GUILD_CONTRACTS = 0; --Set to 1 to disable guild contracts, allowing players to accumulate guild points from all guilds at once. +FISHING_GUILD_POINTS = 5.000; --Multiplies guild points earned from fishermans' guild trades. +WOODWORKING_GUILD_POINTS = 5.000; --Multiplies guild points earned from carpenters' guild trades. +SMITHING_GUILD_POINTS = 5.000; --Multiplies guild points earned from blacksmiths' guild trades. +GOLDSMITHING_GUILD_POINTS = 5.000; --Multiplies guild points earned from goldsmiths' guild trades. +CLOTHCRAFT_GUILD_POINTS = 5.000; --Multiplies guild points earned from weavers' guild trades. +LEATHERCRAFT_GUILD_POINTS = 5.000; --Multiplies guild points earned from tanners' guild trades. +BONECRAFT_GUILD_POINTS = 5.000; --Multiplies guild points earned from boneworkers' guild trades. +ALCHEMY_GUILD_POINTS = 5.000; --Multiplies guild points earned from alchemists' guild trades. +COOKING_GUILD_POINTS = 5.000; --Multiplies guild points earned from culinarians' guild trades. +DISABLE_GUILD_CONTRACTS = 1; --Set to 1 to disable guild contracts, allowing players to accumulate guild points from all guilds at once. -CURE_POWER = 1.000; --Multiplies amount healed from Healing Magic, including the relevant Blue Magic. +CURE_POWER = 2.000; --Multiplies amount healed from Healing Magic, including the relevant Blue Magic. SPELL_POWER = 1.000; --Multiplies damage dealt by Elemental and Divine Magic. BLUE_POWER = 1.000; --Multiplies damage dealt by most Blue Magic. DRAIN_POWER = 1.000; --Multiplies amount drained by Drain, Aspir, and relevant Blue Magic spells. ITEM_POWER = 1.000; --Multiplies the effect of items such as Potions and Ethers. +PETFOOD_POWER = 1.000; --Multiplies the effect of pet foods biscuits and pet healing items. WEAPON_SKILL_POWER = 1.000; -- Multiplies damage dealt by Weapon Skills. -WEAPON_SKILL_POINTS = 1.000; --Multiplies points earned during weapon unlocking. +WEAPON_SKILL_POINTS = 2.000; --Multiplies points earned during weapon unlocking. -HARVESTING_BREAK_CHANCE = 0.33; --% chance for the sickle to break during harvesting. Set between 0 and 1. -EXCAVATION_BREAK_CHANCE = 0.33; --% chance for the pickaxe to break during excavation. Set between 0 and 1. -LOGGING_BREAK_CHANCE = 0.33; --% chance for the hatchet to break during logging. Set between 0 and 1. -MINING_BREAK_CHANCE = 0.33; --% chance for the pickaxe to break during mining. Set between 0 and 1. -HARVESTING_RATE = 0.50; --% chance to recieve an item from haresting. Set between 0 and 1. -EXCAVATION_RATE = 0.50; --% chance to recieve an item from excavation. Set between 0 and 1. -LOGGING_RATE = 0.50; --% chance to recieve an item from logging. Set between 0 and 1. -MINING_RATE = 0.50; --% chance to recieve an item from mining. Set between 0 and 1. +HARVESTING_BREAK_CHANCE = 0.2; --% chance for the sickle to break during harvesting. Set between 0 and 1. +EXCAVATION_BREAK_CHANCE = 0.2; --% chance for the pickaxe to break during excavation. Set between 0 and 1. +LOGGING_BREAK_CHANCE = 0.2; --% chance for the hatchet to break during logging. Set between 0 and 1. +MINING_BREAK_CHANCE = 0.2; --% chance for the pickaxe to break during mining. Set between 0 and 1. +HARVESTING_RATE = 0.70; --% chance to recieve an item from haresting. Set between 0 and 1. +EXCAVATION_RATE = 0.70; --% chance to recieve an item from excavation. Set between 0 and 1. +LOGGING_RATE = 0.70; --% chance to recieve an item from logging. Set between 0 and 1. +MINING_RATE = 0.70; --% chance to recieve an item from mining. Set between 0 and 1. -- SE implemented coffer/chest illusion time in order to prevent coffer farming. No-one in the same area can open a chest or coffer for loot (gil, gems & items) -- till a random time between MIN_ILLSION_TIME and MAX_ILLUSION_TIME. During this time players can loot keyitem and item related to quests (AF, maps... etc.) @@ -79,7 +80,7 @@ CHEST_MIN_ILLUSION_TIME = 1800; -- 30 minutes -- DYNAMIS SETTINGS - BETWEEN_2DYNA_WAIT_TIME = 1; -- wait time between 2 dynamis (in real day) min: 1 day + BETWEEN_2DYNA_WAIT_TIME = 0; -- wait time between 2 dynamis (in real day) min: 1 day DYNA_LEVEL_MIN = 65; -- level min for entering in dynamis TIMELESS_HOURGLASS_COST = 500000; -- cost of the timeless hourglass for Dynamis. CURRENCY_EXCHANGE_RATE = 100; -- X Tier 1 ancient currency -> 1 Tier 2, and so on. Certain values may conflict with shop items. Not designed to exceed 198. @@ -99,32 +100,32 @@ QM_RESET_TIME = 300; -- Default time (in seconds) you have from killing ???-pop mission NMs to click again and get key item, until ??? resets. -- FIELDS OF VALOR SETTINGS -REGIME_WAIT = 1; --Make people wait till 00:00 game time as in retail. If it's 0, there is no wait time. +REGIME_WAIT = 0; --Make people wait till 00:00 game time as in retail. If it's 0, there is no wait time. FIELD_MANUALS = 1; -- Enables Fields of Valor manuals -LOW_LEVEL_REGIME = 0; --Allow people to kill regime targets even if they give no exp, allowing people to farm regime targets at 75 in low level areas. +LOW_LEVEL_REGIME = 1; --Allow people to kill regime targets even if they give no exp, allowing people to farm regime targets at 75 in low level areas. -- JOB ABILITY/TRAIT SPECIFIC SETTINGS -SCAVENGE_RATE = 0.1; --The chance of obtaining an item when you use the Ranger job ability Scavenge. Do not set above 1! -STATUS_RESIST_MULTIPLIER = 10; -- Sets the strength of status resist traits. +SCAVENGE_RATE = 0.2; --The chance of obtaining an item when you use the Ranger job ability Scavenge. Do not set above 1! +STATUS_RESIST_MULTIPLIER = 20; -- Sets the strength of status resist traits. CIRCLE_DURATION = 300; -- Sets the duration of circle effects, in seconds. Retail is 5 minutes. CIRCLE_KILLER_EFFECT = 20; -- Intimidation percentage granted by circle effects. (made up number) -KILLER_EFFECT = 10; -- Intimidation percentage from killer job traits. +KILLER_EFFECT = 20; -- Intimidation percentage from killer job traits. -- SPELL SPECIFIC SETTINGS MILK_OVERWRITE = 1; --Set to 1 to allow Milk and Regen to overwrite each other. Default is 1. JUICE_OVERWRITE = 1; --Set to 1 to allow Juice and Refresh to overwrite each other. Default is 1. DIA_OVERWRITE = 1; --Set to 1 to allow Bio to overwrite same tier Dia. Default is 1. BIO_OVERWRITE = 0; --Set to 1 to allow Dia to overwrite same tier Bio. Default is 0. -BARELEMENT_OVERWRITE = 1; --Set to 1 to allow Barelement spells to overwrite each other (prevent stacking). Default is 1. -BARSTATUS_OVERWRITE = 1; --Set to 1 to allow Barstatus spells to overwrite each other (prevent stacking). Default is 1. -BARD_SONG_LIMIT = 1; --Maximum amount of songs from a single Bard that can be granted to a single target at once. Set between 1 and 31. -BARD_INSTRUMENT_LIMIT = 2; --Maximum amount of songs from a single Bard with an instrument that can be granted to a single target at once. Set between 2 and 32. -ENHANCING_SONG_DURATION = 120; -- duration of enhancing bard songs such as Minuets, Ballads, etc. -STONESKIN_CAP = 350; -- soft cap for hp absorbed by stoneskin -BLINK_SHADOWS = 2; -- number of shadows supplied by Blink spell -ENSPELL_DURATION = 180; -- duration of RDM en-spells -SPIKE_EFFECT_DURATION = 180; -- the duration of RDM, BLM spikes effects (not Reprisal) -ELEMENTAL_DEBUFF_DURATION = 120; -- base duration of elemental debuffs +BARELEMENT_OVERWRITE = 0; --Set to 1 to allow Barelement spells to overwrite each other (prevent stacking). Default is 1. +BARSTATUS_OVERWRITE = 0; --Set to 1 to allow Barstatus spells to overwrite each other (prevent stacking). Default is 1. +BARD_SONG_LIMIT = 3; --Maximum amount of songs from a single Bard that can be granted to a single target at once. Set between 1 and 31. +BARD_INSTRUMENT_LIMIT = 4; --Maximum amount of songs from a single Bard with an instrument that can be granted to a single target at once. Set between 2 and 32. +ENHANCING_SONG_DURATION = 240; -- duration of enhancing bard songs such as Minuets, Ballads, etc. +STONESKIN_CAP = 650; -- soft cap for hp absorbed by stoneskin +BLINK_SHADOWS = 4; -- number of shadows supplied by Blink spell +ENSPELL_DURATION = 360; -- duration of RDM en-spells +SPIKE_EFFECT_DURATION = 360; -- the duration of RDM, BLM spikes effects (not Reprisal) +ELEMENTAL_DEBUFF_DURATION = 240; -- base duration of elemental debuffs STORM_DURATION = 180; -- duration of Scholar storm spells KLIMAFORM_MACC = 30; -- magic accuracy added by Klimaform. 30 is just a guess. AQUAVEIL_INTERR_RATE = 25; -- percent spell interruption rate reduction from Aquaveil (see http://www.bluegartrls.com/forum/82143-spell-interruption-down-cap-aquaveil-tests.html) @@ -144,12 +145,13 @@ SUNBREEZE_2011 = 0; -- Set to 1 to give starting characters Far East dress from 2011. Ex: Hikogami Yukata CHRISTMAS = 0; -- Set to 1 to give starting characters Christmas dress. HALLOWEEN = 0; -- Set to 1 to give starting characters Halloween items. +HALLOWEEN_2005 = 0 -- Set to 1 to Enable the 2005 version of Harvest Festival --MISC HOMEPOINT_HEAL = 0; --Set to 1 if you want Home Points to heal you like in single-player Final Fantasy games. RIVERNE_PORTERS = 120; -- Time in seconds that Unstable Displacements in Cape Riverne stay open after trading a scale. LANTERNS_STAY_LIT = 1200; -- time in seconds that lanterns in the Den of Rancor stay lit. -ENABLE_COP_ZONE_CAP=1; -- enable or disable lvl cap +ENABLE_COP_ZONE_CAP=0; -- enable or disable lvl cap TIMEZONE_OFFSET = 9.0; -- Offset from UTC used to determine when "JP Midnight" is for the server. Default is JST (+9.0). ALLOW_MULTIPLE_EXP_RINGS = 0; -- Set to 1 to remove ownership restrictions on the Chariot/Empress/Emperor Band trio. BYPASS_EXP_RING_ONE_PER_WEEK = 0; -- -- Set to 1 to bypass the limit of one ring per Conquest Tally Week. Index: scripts/globals/spells/absorb-acc.lua =================================================================== --- scripts/globals/spells/absorb-acc.lua (revision 3520) +++ scripts/globals/spells/absorb-acc.lua (working copy) @@ -17,6 +17,10 @@ function onSpellCast(caster,target,spell) + local durationMods = ABSORB_SPELL_TICK + caster:getMod(MOD_ABSORB_DURATION); + local amountMods = ABSORB_SPELL_AMOUNT + (ABSORB_SPELL_AMOUNT * (caster:getMod(MOD_ABSORB_POTENCY)/100)); + + if(caster:hasStatusEffect(EFFECT_ACCURACY_BOOST)) then spell:setMsg(75); -- no effect else @@ -27,9 +31,12 @@ spell:setMsg(85); else spell:setMsg(533); - caster:addStatusEffect(EFFECT_ACCURACY_BOOST,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_DISPELABLE); -- caster gains ACC - target:addStatusEffect(EFFECT_ACCURACY_DOWN,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_ERASBLE); -- target loses ACC + caster:addStatusEffect(EFFECT_ACCURACY_BOOST,amountMods*resist, durationMods, amountMods*durationMods,FLAG_DISPELABLE); -- caster gains ACC + target:addStatusEffect(EFFECT_ACCURACY_DOWN,amountMods*resist, durationMods, amountMods*durationMods,FLAG_ERASBLE); -- target loses ACC end end + if(caster:hasStatusEffect(EFFECT_NETHER_VOID)) then + caster:delStatusEffect(EFFECT_NETHER_VOID); + end return EFFECT_ACCURACY_BOOST; end; \ No newline at end of file Index: scripts/globals/spells/absorb-agi.lua =================================================================== --- scripts/globals/spells/absorb-agi.lua (revision 3520) +++ scripts/globals/spells/absorb-agi.lua (working copy) @@ -16,6 +16,9 @@ end; function onSpellCast(caster,target,spell) + + local durationMods = ABSORB_SPELL_TICK + caster:getMod(MOD_ABSORB_DURATION); + local amountMods = ABSORB_SPELL_AMOUNT + (ABSORB_SPELL_AMOUNT * (caster:getMod(MOD_ABSORB_POTENCY)/100)); if(target:hasStatusEffect(EFFECT_AGI_DOWN) or caster:hasStatusEffect(EFFECT_AGI_BOOST)) then spell:setMsg(75); -- no effect @@ -27,9 +30,12 @@ spell:setMsg(85); else spell:setMsg(332); - caster:addStatusEffect(EFFECT_AGI_BOOST,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_DISPELABLE); -- caster gains AGI - target:addStatusEffect(EFFECT_AGI_DOWN,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_ERASBLE); -- target loses AGI + caster:addStatusEffect(EFFECT_AGI_BOOST,amountMods*resist, durationMods, amountMods*durationMods,FLAG_DISPELABLE); -- caster gains AGI + target:addStatusEffect(EFFECT_AGI_DOWN,amountMods*resist, durationMods, amountMods*durationMods,FLAG_ERASBLE); -- target loses AGI end end + if(caster:hasStatusEffect(EFFECT_NETHER_VOID)) then + caster:delStatusEffect(EFFECT_NETHER_VOID); + end return EFFECT_AGI_DOWN; end; \ No newline at end of file Index: scripts/globals/spells/absorb-attri.lua =================================================================== --- scripts/globals/spells/absorb-attri.lua (revision 0) +++ scripts/globals/spells/absorb-attri.lua (working copy) @@ -0,0 +1,93 @@ +-------------------------------------- +-- Spell: Absorb-Attri +-- Steals an enemy's beneficial status +-- effect. +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local durationMods = ABSORB_SPELL_TICK; + local amountMods = ABSORB_SPELL_AMOUNT + local weapon = caster:getEquipID(SLOT_MAIN); + local head = caster:getEquipID(SLOT_HEAD); + local feet = caster:getEquipID(SLOT_FEET); + local legs = caster:getEquipID(SLOT_LEGS); + local hands = caster:getEquipID(SLOT_HANDS); + local back = caster:getEquipID(SLOT_BACK); + + -- Equipment Bonus Duration + if (weapon == 18559) then -- Void Scythe + durationMods = durationMods + 3; + end + if (head == 13887) then -- Black Sallet + durationMods = durationMods + 1; + end + if (head == 13888) then -- Onyx Sallet + durationMods = durationMods + 2; + end + if (hands == 14010) then -- Black Gadlings + durationMods = durationMods + 1; + end + if (hands == 14011 or hands == 15013) then -- Onyx Gadlings & Vicious Mufflers + durationMods = durationMods + 2; + end + if (legs == 15400) then -- Black Cuisses + durationMods = durationMods + 1; + end + if (legs == 15401) then -- Onyx Cuisses + durationMods = durationMods + 2; + end + if (feet == 15339) then -- Black Sollerets + durationMods = durationMods + 1; + end + if (feet == 15340) then -- Onyx Sollerets + durationMods = durationMods + 2; + end + if (back == 10944) then -- Chuparrosa Mantle + durationMods = durationMods + 1; + end + + -- Equipment Bonus Amount + if (back == 10944) then -- Chuparrosa Mantle + amountMods = amountMods + 2; + end + if (hands == 11922) then -- Pavor Gauntlets + amountMods = amountMods + 1; + end + if (weapon == 18998 or weapon == 19067 or weapon == 19087) then -- Liberator Lvl 75 - 80 - 85 + amountMods = amountMods + 1; + end + if (weapon == 19619 or weapon == 19717 or weapon == 19826) then -- Liberator Lvl 90 - 95 - 99-1 + amountMods = amountMods + 2; + end + if (weapon == 19955) then -- Liberator Lvl 99-2 + amountMods = amountMods + 3; + end + + if(caster:hasStatusEffect(EFFECT_ACCURACY_BOOST)) then + spell:setMsg(75); -- no effect + else + bonus = AffinityBonus(caster,spell); + dINT = caster:getStat(MOD_INT) - target:getStat(MOD_INT); + resist = applyResistance(caster,spell,target,dINT,37,bonus); + if(resist <= 0.125) then + spell:setMsg(85); + else + spell:setMsg(533); + caster:addStatusEffect(EFFECT_ACCURACY_BOOST,amountMods*resist, durationMods, amountMods*durationMods,FLAG_DISPELABLE); -- caster gains ACC + target:addStatusEffect(EFFECT_ACCURACY_DOWN,amountMods*resist, durationMods, amountMods*durationMods,FLAG_ERASBLE); -- target loses ACC + end + end + return EFFECT_ACCURACY_BOOST; +end; \ No newline at end of file Index: scripts/globals/spells/absorb-chr.lua =================================================================== --- scripts/globals/spells/absorb-chr.lua (revision 3520) +++ scripts/globals/spells/absorb-chr.lua (working copy) @@ -16,6 +16,9 @@ end; function onSpellCast(caster,target,spell) + + local durationMods = ABSORB_SPELL_TICK + caster:getMod(MOD_ABSORB_DURATION); + local amountMods = ABSORB_SPELL_AMOUNT + (ABSORB_SPELL_AMOUNT * (caster:getMod(MOD_ABSORB_POTENCY)/100)); if(target:hasStatusEffect(EFFECT_CHR_DOWN) or caster:hasStatusEffect(EFFECT_CHR_BOOST)) then spell:setMsg(75); -- no effect @@ -27,9 +30,12 @@ spell:setMsg(85); else spell:setMsg(335); - caster:addStatusEffect(EFFECT_CHR_BOOST,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_DISPELABLE); -- caster gains CHR - target:addStatusEffect(EFFECT_CHR_DOWN,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_ERASBLE); -- target loses CHR + caster:addStatusEffect(EFFECT_CHR_BOOST,amountMods*resist, durationMods, amountMods*durationMods,FLAG_DISPELABLE); -- caster gains CHR + target:addStatusEffect(EFFECT_CHR_DOWN,amountMods*resist, durationMods, amountMods*durationMods,FLAG_ERASBLE); -- target loses CHR end end + if(caster:hasStatusEffect(EFFECT_NETHER_VOID)) then + caster:delStatusEffect(EFFECT_NETHER_VOID); + end return EFFECT_CHR_DOWN; end; \ No newline at end of file Index: scripts/globals/spells/absorb-dex.lua =================================================================== --- scripts/globals/spells/absorb-dex.lua (revision 3520) +++ scripts/globals/spells/absorb-dex.lua (working copy) @@ -16,6 +16,9 @@ end; function onSpellCast(caster,target,spell) + + local durationMods = ABSORB_SPELL_TICK + caster:getMod(MOD_ABSORB_DURATION); + local amountMods = ABSORB_SPELL_AMOUNT + (ABSORB_SPELL_AMOUNT * (caster:getMod(MOD_ABSORB_POTENCY)/100)); if(target:hasStatusEffect(EFFECT_DEX_DOWN) or caster:hasStatusEffect(EFFECT_DEX_BOOST)) then spell:setMsg(75); -- no effect @@ -27,9 +30,12 @@ spell:setMsg(85); else spell:setMsg(330); - caster:addStatusEffect(EFFECT_DEX_BOOST,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_DISPELABLE); -- caster gains DEX - target:addStatusEffect(EFFECT_DEX_DOWN,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_ERASBLE); -- target loses DEX + caster:addStatusEffect(EFFECT_DEX_BOOST,amountMods*resist, durationMods, amountMods*durationMods,FLAG_DISPELABLE); -- caster gains DEX + target:addStatusEffect(EFFECT_DEX_DOWN,amountMods*resist, durationMods, amountMods*durationMods,FLAG_ERASBLE); -- target loses DEX end end + if(caster:hasStatusEffect(EFFECT_NETHER_VOID)) then + caster:delStatusEffect(EFFECT_NETHER_VOID); + end return EFFECT_DEX_DOWN; end; \ No newline at end of file Index: scripts/globals/spells/absorb-int.lua =================================================================== --- scripts/globals/spells/absorb-int.lua (revision 3520) +++ scripts/globals/spells/absorb-int.lua (working copy) @@ -11,12 +11,15 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) + local durationMods = ABSORB_SPELL_TICK + caster:getMod(MOD_ABSORB_DURATION); + local amountMods = ABSORB_SPELL_AMOUNT + (ABSORB_SPELL_AMOUNT * (caster:getMod(MOD_ABSORB_POTENCY)/100)); + if(target:hasStatusEffect(EFFECT_INT_DOWN) or caster:hasStatusEffect(EFFECT_INT_BOOST)) then spell:setMsg(75); -- no effect else @@ -27,9 +30,12 @@ spell:setMsg(85); else spell:setMsg(333); - caster:addStatusEffect(EFFECT_INT_BOOST,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_DISPELABLE); -- caster gains INT - target:addStatusEffect(EFFECT_INT_DOWN,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_ERASBLE); -- target loses INT + caster:addStatusEffect(EFFECT_INT_BOOST,amountMods*resist, durationMods, amountMods*durationMods,FLAG_DISPELABLE); -- caster gains INT + target:addStatusEffect(EFFECT_INT_DOWN,amountMods*resist, durationMods, amountMods*durationMods,FLAG_ERASBLE); -- target loses INT end end + if(caster:hasStatusEffect(EFFECT_NETHER_VOID)) then + caster:delStatusEffect(EFFECT_NETHER_VOID); + end return EFFECT_INT_DOWN; end; \ No newline at end of file Index: scripts/globals/spells/absorb-mnd.lua =================================================================== --- scripts/globals/spells/absorb-mnd.lua (revision 3520) +++ scripts/globals/spells/absorb-mnd.lua (working copy) @@ -16,6 +16,9 @@ end; function onSpellCast(caster,target,spell) + + local durationMods = ABSORB_SPELL_TICK + caster:getMod(MOD_ABSORB_DURATION); + local amountMods = ABSORB_SPELL_AMOUNT + (ABSORB_SPELL_AMOUNT * (caster:getMod(MOD_ABSORB_POTENCY)/100)); if(target:hasStatusEffect(EFFECT_MND_DOWN) or caster:getStatusEffect(EFFECT_MND_BOOST)) then spell:setMsg(75); -- no effect @@ -27,9 +30,12 @@ spell:setMsg(85); else spell:setMsg(334); - caster:addStatusEffect(EFFECT_MND_BOOST,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_DISPELABLE); -- caster gains MND - target:addStatusEffect(EFFECT_MND_DOWN,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_ERASBLE); -- target loses MND + caster:addStatusEffect(EFFECT_MND_BOOST,amountMods*resist, durationMods, amountMods*durationMods,FLAG_DISPELABLE); -- caster gains MND + target:addStatusEffect(EFFECT_MND_DOWN,amountMods*resist, durationMods, amountMods*durationMods,FLAG_ERASBLE); -- target loses MND end end + if(caster:hasStatusEffect(EFFECT_NETHER_VOID)) then + caster:delStatusEffect(EFFECT_NETHER_VOID); + end return EFFECT_MND_DOWN; end; \ No newline at end of file Index: scripts/globals/spells/absorb-str.lua =================================================================== --- scripts/globals/spells/absorb-str.lua (revision 3520) +++ scripts/globals/spells/absorb-str.lua (working copy) @@ -16,6 +16,9 @@ end; function onSpellCast(caster,target,spell) + + local durationMods = ABSORB_SPELL_TICK + caster:getMod(MOD_ABSORB_DURATION); + local amountMods = ABSORB_SPELL_AMOUNT + (ABSORB_SPELL_AMOUNT * (caster:getMod(MOD_ABSORB_POTENCY)/100)); if(target:hasStatusEffect(EFFECT_STR_DOWN) or caster:hasStatusEffect(EFFECT_STR_BOOST)) then spell:setMsg(75); -- no effect @@ -27,9 +30,12 @@ spell:setMsg(85); else spell:setMsg(329); - caster:addStatusEffect(EFFECT_STR_BOOST,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_DISPELABLE); -- caster gains STR - target:addStatusEffect(EFFECT_STR_DOWN,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_ERASBLE); -- target loses STR + caster:addStatusEffect(EFFECT_STR_BOOST,amountMods*resist, durationMods, amountMods*durationMods,FLAG_DISPELABLE); -- caster gains STR + target:addStatusEffect(EFFECT_STR_DOWN,amountMods*resist, durationMods, amountMods*durationMods,FLAG_ERASBLE); -- target loses STR end end + if(caster:hasStatusEffect(EFFECT_NETHER_VOID)) then + caster:delStatusEffect(EFFECT_NETHER_VOID); + end return EFFECT_STR_DOWN; end; \ No newline at end of file Index: scripts/globals/spells/absorb-tp.lua =================================================================== --- scripts/globals/spells/absorb-tp.lua (revision 3520) +++ scripts/globals/spells/absorb-tp.lua (working copy) @@ -16,6 +16,8 @@ end; function onSpellCast(caster,target,spell) + + local amountMods = caster:getMod(MOD_ABSORB_POTENCY)/100; dmg = math.random(10, 80); --get resist multiplier (1x if no resist) @@ -32,6 +34,8 @@ if (dmg > cap) then dmg = cap; end + + dmg = dmg + (dmg * amountMods); -- for Equipment Bonus above cap if(resist <= 0.125) then spell:setMsg(85); Index: scripts/globals/spells/absorb-vit.lua =================================================================== --- scripts/globals/spells/absorb-vit.lua (revision 3520) +++ scripts/globals/spells/absorb-vit.lua (working copy) @@ -16,6 +16,9 @@ end; function onSpellCast(caster,target,spell) + + local durationMods = ABSORB_SPELL_TICK + caster:getMod(MOD_ABSORB_DURATION); + local amountMods = ABSORB_SPELL_AMOUNT + (ABSORB_SPELL_AMOUNT * (caster:getMod(MOD_ABSORB_POTENCY)/100)); if(target:hasStatusEffect(EFFECT_VIT_DOWN) or caster:hasStatusEffect(EFFECT_VIT_BOOST)) then spell:setMsg(75); -- no effect @@ -27,9 +30,12 @@ spell:setMsg(85); else spell:setMsg(331); - caster:addStatusEffect(EFFECT_VIT_BOOST,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_DISPELABLE); -- caster gains VIT - target:addStatusEffect(EFFECT_VIT_DOWN,ABSORB_SPELL_AMOUNT*resist, ABSORB_SPELL_TICK, ABSORB_SPELL_AMOUNT*ABSORB_SPELL_TICK,FLAG_ERASBLE); -- target loses VIT + caster:addStatusEffect(EFFECT_VIT_BOOST,amountMods*resist, durationMods, amountMods*durationMods,FLAG_DISPELABLE); -- caster gains VIT + target:addStatusEffect(EFFECT_VIT_DOWN,amountMods*resist, durationMods, amountMods*durationMods,FLAG_ERASBLE); -- target loses VIT end end + if(caster:hasStatusEffect(EFFECT_NETHER_VOID)) then + caster:delStatusEffect(EFFECT_NETHER_VOID); + end return EFFECT_VIT_DOWN; end; \ No newline at end of file Index: scripts/globals/spells/addle.lua =================================================================== --- scripts/globals/spells/addle.lua (revision 0) +++ scripts/globals/spells/addle.lua (working copy) @@ -0,0 +1,49 @@ +----------------------------------------- +-- Spell: Addle +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + power = 20; + + -- Duration + duration = 120 + + -- Equipment bonus + local back = caster:getEquipID(SLOT_BACK); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + if (back == 10977) then -- Romanus Cape 6% Addle Bonus + duration = duration + (duration * .06); + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power + (power * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + caster:delStatusEffect(EFFECT_SABOTEUR); + end + + if(100 * math.random() >= target:getMod(MOD_SILENCERES)) then -- Silence resist used instead of addle resist for now. + if(target:addStatusEffect(EFFECT_ADDLE,power,0,duration)) then + spell:setMsg(236); + else + spell:setMsg(75); + end + else + spell:setMsg(284); + end + return EFFECT_ADDLE; +end; \ No newline at end of file Index: scripts/globals/spells/adloquium.lua =================================================================== --- scripts/globals/spells/adloquium.lua (revision 0) +++ scripts/globals/spells/adloquium.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- Spell: Adloquium +-- Gradually restores target party member's +-- TP. 1 TP per tic for 60 TP total. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + local tp = 1; + local duration = 180; + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + target:delStatusEffect(EFFECT_REGAIN); + target:addStatusEffect(EFFECT_REGAIN,tp,3,duration); + + return EFFECT_REGAIN; +end; \ No newline at end of file Index: scripts/globals/spells/advancing_march.lua =================================================================== --- scripts/globals/spells/advancing_march.lua (revision 3520) +++ scripts/globals/spells/advancing_march.lua (working copy) @@ -3,42 +3,15 @@ -- Gives party members Haste ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast ----------------------------------------- --- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() - function OnMagicCastingCheck(caster,target,spell) return 0; end; function onSpellCast(caster,target,spell) - - local haste = 64; - local sItem = caster:getEquipID(2); - local duration = 120; - - -- Royal Spearman's Horn, Kingdom Horn, San d'Orian Horn Adds +1 haste - if(sItem == 17367 or sItem == 17836 or sItem == 17835) then - haste = haste + 16; - end - - -- Faerie Piccolo and Iron Ram Horn Adds +2 haste - if(sItem == 17349 or sItem == 17853) then - haste = haste + 32; - end - - -- half is subjob is brd - if(caster:getSubJob() == JOB_BRD) then - haste = math.ceil(haste / 2); - end - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:addStatusEffect(EFFECT_MARCH,haste,0,duration); - spell:setMsg(230); - return EFFECT_MARCH; end; \ No newline at end of file Index: scripts/globals/spells/adventurers_dirge.lua =================================================================== --- scripts/globals/spells/adventurers_dirge.lua (revision 0) +++ scripts/globals/spells/adventurers_dirge.lua (working copy) @@ -0,0 +1,38 @@ +----------------------------------------- +-- Spell: Adventurer's Dirge +-- Grants enmity minus to a party member. +-- I'm sure it's not correct but a stop gap until it's implemented. +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local duration = 120; + local power = 20; + if(caster:getObjType() == TYPE_PC) then + local merit =((target:getMerit(MERIT_ADVENTURERS_DIRGE) * .03) - .03); + power = power + (power * merit); + -- printf("Power and Merit %d",power); + end + + duration = duration + (duration * (target:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((target:getMod(MOD_ALL_SONGS) * 10)/100)); + + -- printf("Final Power %d",power); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_DIRGE); + target:addStatusEffect(EFFECT_DIRGE,power,3,duration); + spell:setMsg(230); + return EFFECT_DIRGE; +end; \ No newline at end of file Index: scripts/globals/spells/aero_ii.lua =================================================================== --- scripts/globals/spells/aero_ii.lua (revision 3520) +++ scripts/globals/spells/aero_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Aero +-- Spell: Aero II -- Deals wind damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/aero_iii.lua =================================================================== --- scripts/globals/spells/aero_iii.lua (revision 3520) +++ scripts/globals/spells/aero_iii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Aero +-- Spell: Aero III -- Deals wind damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/aero_iv.lua =================================================================== --- scripts/globals/spells/aero_iv.lua (revision 3520) +++ scripts/globals/spells/aero_iv.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Aero +-- Spell: Aero IV -- Deals wind damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/aero_v.lua =================================================================== --- scripts/globals/spells/aero_v.lua (revision 3520) +++ scripts/globals/spells/aero_v.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Aero +-- Spell: Aero V -- Deals wind damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/aeroga_ii.lua =================================================================== --- scripts/globals/spells/aeroga_ii.lua (revision 3520) +++ scripts/globals/spells/aeroga_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Aeroga +-- Spell: Aeroga II -- Deals wind damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/aeroga_iii.lua =================================================================== --- scripts/globals/spells/aeroga_iii.lua (revision 3520) +++ scripts/globals/spells/aeroga_iii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Aeroga 3 +-- Spell: Aeroga III -- Deals wind damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/aeroga_iv.lua =================================================================== --- scripts/globals/spells/aeroga_iv.lua (revision 0) +++ scripts/globals/spells/aeroga_iv.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Aeroga IV +-- Deals wind damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(788,2,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/aeroga_v.lua =================================================================== --- scripts/globals/spells/aeroga_v.lua (revision 0) +++ scripts/globals/spells/aeroga_v.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Aeroga V +-- Deals wind damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(1054,2.3,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/aisha_ichi.lua =================================================================== --- scripts/globals/spells/aisha_ichi.lua (revision 0) +++ scripts/globals/spells/aisha_ichi.lua (working copy) @@ -0,0 +1,63 @@ +----------------------------------------- +-- Spell: Aisha: Ichi +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + -- Pull base stats. + dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); + staff = StaffBonus(caster,spell); + + -- Base power. + power = 15; + + -- Duration, including resistance. Unconfirmed. + duration = 180 * applyResistance(caster,spell,target,dINT,43,staff); + + if(duration >= 90) then --Do it! + -- Try to erase a weaker attkdown. + attkdown = target:getStatusEffect(EFFECT_ATTACK_DOWN) + if(attkdown ~= nil) then + if(attkdown:getPower() < power) then + target:delStatusEffect(EFFECT_ATTACK_DOWN); + target:addStatusEffect(EFFECT_ATTACK_DOWN,power,0,duration); +-- if(spell:isAOE() == false) then +-- spell:setMsg(237); +-- else + spell:setMsg(267); +-- end + else + spell:setMsg(75); + end + else + target:addStatusEffect(EFFECT_ATTACK_DOWN,power,0,duration); +-- if(spell:isAOE() == false) then +-- spell:setMsg(237); +-- else + spell:setMsg(267); +-- end + end + else +-- if(spell:isAOE() == false) then +-- spell:setMsg(85); +-- else + spell:setMsg(284); +-- end + end + + target:updateEnmity(caster,320,1); + + return EFFECT_ATTACK_DOWN; + +end; \ No newline at end of file Index: scripts/globals/spells/animus_augeo.lua =================================================================== --- scripts/globals/spells/animus_augeo.lua (revision 0) +++ scripts/globals/spells/animus_augeo.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- Spell: Animus Augeo +-- Facilitates enmity gain for target +-- party member. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + local power = 20; + local duration = 180; + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + target:delStatusEffect(EFFECT_ENMITY_BOOST); + target:addStatusEffect(EFFECT_ENMITY_BOOST,power,0,duration); + + return EFFECT_ENMITY_BOOST; +end; \ No newline at end of file Index: scripts/globals/spells/animus_minuo.lua =================================================================== --- scripts/globals/spells/animus_minuo.lua (revision 0) +++ scripts/globals/spells/animus_minuo.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- Spell: Animus Minuo +-- Suppresses enmity gain for target +-- party member. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + local power = -10; + local duration = 180; + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + target:delStatusEffect(EFFECT_PAX); + target:addStatusEffect(EFFECT_PAX,power,0,duration); + + return EFFECT_PAX; +end; \ No newline at end of file Index: scripts/globals/spells/aquaveil.lua =================================================================== --- scripts/globals/spells/aquaveil.lua (revision 3520) +++ scripts/globals/spells/aquaveil.lua (working copy) @@ -11,10 +11,10 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) target:delStatusEffect(EFFECT_AQUAVEIL); @@ -23,12 +23,23 @@ -- tests that quantify the relationship so I'm using 5 minutes for now. duration = 300; - + power = AQUAVEIL_INTERR_RATE; + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); - target:addStatusEffect(EFFECT_AQUAVEIL,AQUAVEIL_INTERR_RATE,0,duration); + if (caster:getEquipID(SLOT_WAIST) == 11753) then -- Emphatikos Rope + power = power + 12; + end + + if (caster:getEquipID(SLOT_LEGS) == 10329) then -- Shedir Seraweels + power = power + 12; + end + + target:addStatusEffect(EFFECT_AQUAVEIL,power,0,duration); spell:setMsg(230); return EFFECT_AQUAVEIL; Index: scripts/globals/spells/archers_prelude.lua =================================================================== --- scripts/globals/spells/archers_prelude.lua (revision 0) +++ scripts/globals/spells/archers_prelude.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- Spell: Archer's Prelude +-- Grants Ranged Accuracy bonus to target. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local duration = 120; + local sLvl = caster:getSkillLevel(SINGING_SKILL); -- Gets skill level of Singing + + duration = duration + (duration * (target:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((target:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((target:getMod(MOD_PRELUDE) * 10)/100)); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_PRELUDE); + target:addStatusEffect(EFFECT_PRELUDE,2,0,duration); + spell:setMsg(230); + return EFFECT_PRELUDE; +end; \ No newline at end of file Index: scripts/globals/spells/arise.lua =================================================================== --- scripts/globals/spells/arise.lua (revision 0) +++ scripts/globals/spells/arise.lua (working copy) @@ -0,0 +1,19 @@ +----------------------------------------- +-- Spell: Arise +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + target:sendRaise(3); + target:delStatusEffect(EFFECT_RERAISE); + target:addStatusEffect(EFFECT_RERAISE,3,0,3600); --reraise 3, 1 hr duration +end; \ No newline at end of file Index: scripts/globals/spells/armys_paeon.lua =================================================================== --- scripts/globals/spells/armys_paeon.lua (revision 3520) +++ scripts/globals/spells/armys_paeon.lua (working copy) @@ -6,7 +6,7 @@ -- Scale down duration based on level ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -17,27 +17,4 @@ end; function onSpellCast(caster,target,spell) - - local hp = 1; - local sItem = caster:getEquipID(2); - -- If Job is Bard and Level is at or above 25 then get bonus HP. - if(caster:getMainJob() == 10 and caster:getMainLvl() >= 25) then - hp = hp + 1; - end - -- Ebony Harp - if(sItem == 17357) then - hp = hp + 1; - end - -- Ebony Harp +1 and Ebony Harp + 2 - if(sItem == 17833 or sItem == 17848) then - hp = hp + 2; - end - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_PAEON); - target:addStatusEffect(EFFECT_PAEON,hp,3,120); - - spell:setMsg(230); - - return EFFECT_PAEON; end; \ No newline at end of file Index: scripts/globals/spells/armys_paeon_ii.lua =================================================================== --- scripts/globals/spells/armys_paeon_ii.lua (revision 3520) +++ scripts/globals/spells/armys_paeon_ii.lua (working copy) @@ -3,7 +3,7 @@ -- Gradually restores target's HP. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,25 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local hp = 2; - local sItem = caster:getEquipID(2); - -- If Job is Bard and Level is at or above 40 then get bonus HP. - if(caster:getMainJob() == 10 and caster:getMainLvl() >= 40) then - hp = hp + 1; - end - -- Ebony Harp - if(sItem == 17357) then - hp = hp + 1; - end - -- Ebony Harp +1 and Ebony Harp + 2 - if(sItem == 17833 or sItem == 17848) then - hp = hp + 2; - end - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_PAEON); - target:addStatusEffect(EFFECT_PAEON,hp,3,120); - spell:setMsg(230); - return EFFECT_PAEON; end; \ No newline at end of file Index: scripts/globals/spells/armys_paeon_iii.lua =================================================================== --- scripts/globals/spells/armys_paeon_iii.lua (revision 3520) +++ scripts/globals/spells/armys_paeon_iii.lua (working copy) @@ -3,7 +3,7 @@ -- Gradually restores target's HP. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,25 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local hp = 3; - local sItem = caster:getEquipID(2); - -- If Job is Bard and Level is at or above 55 then get bonus HP. - if(caster:getMainJob() == 10 and caster:getMainLvl() >= 55) then - hp = hp + 1; - end - -- Ebony Harp - if(sItem == 17357) then - hp = hp + 1; - end - -- Ebony Harp +1 and Ebony Harp + 2 - if(sItem == 17833 or sItem == 17848) then - hp = hp + 2; - end - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_PAEON); - target:addStatusEffect(EFFECT_PAEON,hp,3,120); - spell:setMsg(230); - return EFFECT_PAEON; end; \ No newline at end of file Index: scripts/globals/spells/armys_paeon_iv.lua =================================================================== --- scripts/globals/spells/armys_paeon_iv.lua (revision 3520) +++ scripts/globals/spells/armys_paeon_iv.lua (working copy) @@ -3,7 +3,7 @@ -- Gradually restores target's HP. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,25 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local hp = 4; - local sItem = caster:getEquipID(2); - -- If Job is Bard and Level is at or above 70 then get bonus HP. - if(caster:getMainJob() == 10 and caster:getMainLvl() >= 70) then - hp = hp + 1; - end - -- Ebony Harp - if(sItem == 17357) then - hp = hp + 1; - end - -- Ebony Harp +1 and Ebony Harp + 2 - if(sItem == 17833 or sItem == 17848) then - hp = hp + 2; - end - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_PAEON); - target:addStatusEffect(EFFECT_PAEON,hp,3,120); - spell:setMsg(230); - return EFFECT_PAEON; end; \ No newline at end of file Index: scripts/globals/spells/armys_paeon_v.lua =================================================================== --- scripts/globals/spells/armys_paeon_v.lua (revision 3520) +++ scripts/globals/spells/armys_paeon_v.lua (working copy) @@ -3,7 +3,7 @@ -- Gradually restores target's HP. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,25 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local hp = 5; - local sItem = caster:getEquipID(2); - -- If Job is Bard and Level is at or above 75 then get bonus HP. - if(caster:getMainJob() == 10 and caster:getMainLvl() >= 75) then - hp = hp + 1; - end - -- Ebony Harp - if(sItem == 17357) then - hp = hp + 1; - end - -- Ebony Harp +1 and Ebony Harp + 2 - if(sItem == 17833 or sItem == 17848) then - hp = hp + 2; - end - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_PAEON); - target:addStatusEffect(EFFECT_PAEON,hp,3,120); - spell:setMsg(230); - return EFFECT_PAEON; end; \ No newline at end of file Index: scripts/globals/spells/armys_paeon_vi.lua =================================================================== --- scripts/globals/spells/armys_paeon_vi.lua (revision 3520) +++ scripts/globals/spells/armys_paeon_vi.lua (working copy) @@ -3,7 +3,7 @@ -- Gradually restores target's HP. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,25 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local hp = 6; - local sItem = caster:getEquipID(2); - -- If Job is Bard and Level is at or above 75 then get bonus HP. - if(caster:getMainJob() == 10 and caster:getMainLvl() >= 75) then - hp = hp + 1; - end - -- Ebony Harp - if(sItem == 17357) then - hp = hp + 1; - end - -- Ebony Harp +1 and Ebony Harp + 2 - if(sItem == 17833 or sItem == 17848) then - hp = hp + 2; - end - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_PAEON); - target:addStatusEffect(EFFECT_PAEON,hp,3,120); - spell:setMsg(230); - return EFFECT_PAEON; end; \ No newline at end of file Index: scripts/globals/spells/aspir.lua =================================================================== --- scripts/globals/spells/aspir.lua (revision 3520) +++ scripts/globals/spells/aspir.lua (working copy) @@ -15,6 +15,7 @@ end; function onSpellCast(caster,target,spell) + --calculate raw damage (unknown function -> only dark skill though) - using http://www.bluegartr.com/threads/44518-Drain-Calculations -- also have small constant to account for 0 dark skill dmg = 5 + 0.375 * (caster:getSkillLevel(DARK_MAGIC_SKILL) + caster:getMod(79 + DARK_MAGIC_SKILL)); @@ -27,7 +28,7 @@ --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments - + if(target:isUndead()) then spell:setMsg(75); -- No effect return dmg; Index: scripts/globals/spells/aspir_ii.lua =================================================================== --- scripts/globals/spells/aspir_ii.lua (revision 0) +++ scripts/globals/spells/aspir_ii.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- Spell: Aspir II +-- Drain functions only on skill level!! +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + --calculate raw damage (unknown function -> only dark skill though) - using http://www.bluegartr.com/threads/44518-Drain-Calculations + -- also have small constant to account for 0 dark skill + dmg = 5 + 0.6 * (caster:getSkillLevel(DARK_MAGIC_SKILL) + caster:getMod(79 + DARK_MAGIC_SKILL)); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getMod(MOD_INT)-target:getMod(MOD_INT),DARK_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + + if(target:isUndead()) then + spell:setMsg(75); -- No effect + return; + end + + if(target:getMP() > dmg) then + caster:addMP(dmg); + target:delMP(dmg); + else + dmg = target:getMP(); + caster:addMP(dmg); + target:delMP(dmg); + end + + spell:setMsg(228); --change msg to 'xxx mp drained from the yyyy.' + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/banish.lua =================================================================== --- scripts/globals/spells/banish.lua (revision 3520) +++ scripts/globals/spells/banish.lua (working copy) @@ -17,6 +17,13 @@ function onSpellCast(caster,target,spell) --calculate raw damage dmg = calculateMagicDamage(14,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + if(job == JOB_WHM or sjob == JOB_WHM) then + dmg = calculateMagicDamage(14,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false) + caster:getMerit(MERIT_BANISH_EFFECT); + end + end --get resist multiplier (1x if no resist) resist = applyResistance(caster,spell,target,caster:getStat(MOD_MND)-target:getStat(MOD_MND),DIVINE_MAGIC_SKILL,1.0); --get the resisted damage @@ -27,5 +34,33 @@ dmg = adjustForTarget(target,dmg); --add in final adjustments dmg = finalMagicAdjustments(caster,target,spell,dmg); + duration = 15; + if(caster:getObjType() == TYPE_PC) then + if(job == JOB_WHM or sjob == JOB_WHM) then + duration = 15 + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + power = 500; + local ring1 = caster:getEquipID(SLOT_RING1); + local ring2 = caster:getEquipID(SLOT_RING2); + local hands = caster:getEquipID(SLOT_HANDS); + -- Equipment Bonuses + if(ring1 == 15831 or ring2 == 15831) then + power = power + 25; + end + if(hands == 15104 or hands == 14911) then + power = power + 25; + end + if(hands == 10692) then + power = power + 50; + end + if(target:isUndead()) then + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + elseif(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == true) then + target:delStatusEffect(EFFECT_DEFENSE_DOWN); + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + end + end return dmg; end; \ No newline at end of file Index: scripts/globals/spells/banish_ii.lua =================================================================== --- scripts/globals/spells/banish_ii.lua (revision 3520) +++ scripts/globals/spells/banish_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Banish +-- Spell: Banish II -- Deals light damage to an enemy. ----------------------------------------- @@ -17,6 +17,13 @@ function onSpellCast(caster,target,spell) --calculate raw damage dmg = calculateMagicDamage(85,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + if(job == JOB_WHM or sjob == JOB_WHM) then + dmg = calculateMagicDamage(85,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false) + caster:getMerit(MERIT_BANISH_EFFECT); + end + end --get resist multiplier (1x if no resist) resist = applyResistance(caster,spell,target,caster:getStat(MOD_MND)-target:getStat(MOD_MND),DIVINE_MAGIC_SKILL,1.0); --get the resisted damage @@ -27,5 +34,33 @@ dmg = adjustForTarget(target,dmg); --add in final adjustments dmg = finalMagicAdjustments(caster,target,spell,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + if(job == JOB_WHM or sjob == JOB_WHM) then + duration = 30 + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + power = 600; + local ring1 = caster:getEquipID(SLOT_RING1); + local ring2 = caster:getEquipID(SLOT_RING2); + local hands = caster:getEquipID(SLOT_HANDS); + -- Equipment Bonuses + if(ring1 == 15831 or ring2 == 15831) then + power = power + 25; + end + if(hands == 15104 or hands == 14911) then + power = power + 25; + end + if(hands == 10692) then + power = power + 50; + end + if(target:isUndead()) then + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + elseif(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == true) then + target:delStatusEffect(EFFECT_DEFENSE_DOWN); + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + end + end return dmg; end; \ No newline at end of file Index: scripts/globals/spells/banish_iii.lua =================================================================== --- scripts/globals/spells/banish_iii.lua (revision 3520) +++ scripts/globals/spells/banish_iii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Banish +-- Spell: Banish III -- Deals light damage to an enemy. ----------------------------------------- @@ -17,6 +17,13 @@ function onSpellCast(caster,target,spell) --calculate raw damage dmg = calculateMagicDamage(198,1.5,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + if(job == JOB_WHM or sjob == JOB_WHM) then + dmg = calculateMagicDamage(198,1.5,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false) + caster:getMerit(MERIT_BANISH_EFFECT); + end + end --get resist multiplier (1x if no resist) resist = applyResistance(caster,spell,target,caster:getStat(MOD_MND)-target:getStat(MOD_MND),DIVINE_MAGIC_SKILL,1.0); --get the resisted damage @@ -27,5 +34,33 @@ dmg = adjustForTarget(target,dmg); --add in final adjustments dmg = finalMagicAdjustments(caster,target,spell,dmg); + duration = 45; + if(caster:getObjType() == TYPE_PC) then + if(job == JOB_WHM or sjob == JOB_WHM) then + duration = 45 + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + power = 700; + local ring1 = caster:getEquipID(SLOT_RING1); + local ring2 = caster:getEquipID(SLOT_RING2); + local hands = caster:getEquipID(SLOT_HANDS); + -- Equipment Bonuses + if(ring1 == 15831 or ring2 == 15831) then + power = power + 25; + end + if(hands == 15104 or hands == 14911) then + power = power + 25; + end + if(hands == 10692) then + power = power + 50; + end + if(target:isUndead()) then + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + elseif(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == true) then + target:delStatusEffect(EFFECT_DEFENSE_DOWN); + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + end + end return dmg; end; \ No newline at end of file Index: scripts/globals/spells/banish_iv.lua =================================================================== --- scripts/globals/spells/banish_iv.lua (revision 3520) +++ scripts/globals/spells/banish_iv.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Banish +-- Spell: Banish IV -- Deals light damage to an enemy. ----------------------------------------- @@ -16,7 +16,14 @@ function onSpellCast(caster,target,spell) --calculate raw damage - dmg = calculateMagicDamage(396,1.5,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); + dmg = calculateMagicDamage(398,1.5,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + if(job == JOB_WHM or sjob == JOB_WHM) then + dmg = calculateMagicDamage(398,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false) + caster:getMerit(MERIT_BANISH_EFFECT); + end + end --get resist multiplier (1x if no resist) resist = applyResistance(caster,spell,target,caster:getStat(MOD_MND)-target:getStat(MOD_MND),DIVINE_MAGIC_SKILL,1.0); --get the resisted damage @@ -27,5 +34,33 @@ dmg = adjustForTarget(target,dmg); --add in final adjustments dmg = finalMagicAdjustments(caster,target,spell,dmg); - return dmg; + duration = 60; + if(caster:getObjType() == TYPE_PC) then + if(job == JOB_WHM or sjob == JOB_WHM) then + duration = 60 + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + power = 800; + local ring1 = caster:getEquipID(SLOT_RING1); + local ring2 = caster:getEquipID(SLOT_RING2); + local hands = caster:getEquipID(SLOT_HANDS); + -- Equipment Bonuses + if(ring1 == 15831 or ring2 == 15831) then + power = power + 25; + end + if(hands == 15104 or hands == 14911) then + power = power + 25; + end + if(hands == 10692) then + power = power + 50; + end + if(target:isUndead()) then + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + elseif(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == true) then + target:delStatusEffect(EFFECT_DEFENSE_DOWN); + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + end + end + return dmg; end; \ No newline at end of file Index: scripts/globals/spells/banish_v.lua =================================================================== --- scripts/globals/spells/banish_v.lua (revision 0) +++ scripts/globals/spells/banish_v.lua (working copy) @@ -0,0 +1,66 @@ +----------------------------------------- +-- Spell: Banish V +-- Deals light damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(594,1.5,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + if(job == JOB_WHM or sjob == JOB_WHM) then + dmg = calculateMagicDamage(594,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false) + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_MND)-target:getStat(MOD_MND),DIVINE_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + duration = 75; + if(caster:getObjType() == TYPE_PC) then + if(job == JOB_WHM or sjob == JOB_WHM) then + duration = 75 + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + power = 900; + local ring1 = caster:getEquipID(SLOT_RING1); + local ring2 = caster:getEquipID(SLOT_RING2); + local hands = caster:getEquipID(SLOT_HANDS); + -- Equipment Bonuses + if(ring1 == 15831 or ring2 == 15831) then + power = power + 25; + end + if(hands == 15104 or hands == 14911) then + power = power + 25; + end + if(hands == 10692) then + power = power + 50; + end + if(target:isUndead()) then + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + elseif(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == true) then + target:delStatusEffect(EFFECT_DEFENSE_DOWN); + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + end + end + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/banishga.lua =================================================================== --- scripts/globals/spells/banishga.lua (revision 3520) +++ scripts/globals/spells/banishga.lua (working copy) @@ -17,6 +17,13 @@ function onSpellCast(caster,target,spell) --calculate raw damage dmg = calculateMagicDamage(50,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + if(job == JOB_WHM or sjob == JOB_WHM) then + dmg = calculateMagicDamage(50,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false) + caster:getMerit(MERIT_BANISH_EFFECT); + end + end --get resist multiplier (1x if no resist) resist = applyResistance(caster,spell,target,caster:getStat(MOD_MND)-target:getStat(MOD_MND),DIVINE_MAGIC_SKILL,1.0); --get the resisted damage @@ -27,5 +34,33 @@ dmg = adjustForTarget(target,dmg); --add in final adjustments dmg = finalMagicAdjustments(caster,target,spell,dmg); + duration = 15; + if(caster:getObjType() == TYPE_PC) then + if(job == JOB_WHM or sjob == JOB_WHM) then + duration = 15 + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + power = 500; + local ring1 = caster:getEquipID(SLOT_RING1); + local ring2 = caster:getEquipID(SLOT_RING2); + local hands = caster:getEquipID(SLOT_HANDS); + -- Equipment Bonuses + if(ring1 == 15831 or ring2 == 15831) then + power = power + 25; + end + if(hands == 15104 or hands == 14911) then + power = power + 25; + end + if(hands == 10692) then + power = power + 50; + end + if(target:isUndead()) then + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + elseif(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == true) then + target:delStatusEffect(EFFECT_DEFENSE_DOWN); + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + end + end return dmg; end; \ No newline at end of file Index: scripts/globals/spells/banishga_ii.lua =================================================================== --- scripts/globals/spells/banishga_ii.lua (revision 3520) +++ scripts/globals/spells/banishga_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Banishga 2 +-- Spell: Banishga II -- Deals light damage to an enemy. ----------------------------------------- @@ -17,6 +17,13 @@ function onSpellCast(caster,target,spell) --calculate raw damage dmg = calculateMagicDamage(180,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + if(job == JOB_WHM or sjob == JOB_WHM) then + dmg = calculateMagicDamage(180,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false) + caster:getMerit(MERIT_BANISH_EFFECT); + end + end --get resist multiplier (1x if no resist) resist = applyResistance(caster,spell,target,caster:getStat(MOD_MND)-target:getStat(MOD_MND),DIVINE_MAGIC_SKILL,1.0); --get the resisted damage @@ -27,5 +34,33 @@ dmg = adjustForTarget(target,dmg); --add in final adjustments dmg = finalMagicAdjustments(caster,target,spell,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + if(job == JOB_WHM or sjob == JOB_WHM) then + duration = 30 + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + power = 600; + local ring1 = caster:getEquipID(SLOT_RING1); + local ring2 = caster:getEquipID(SLOT_RING2); + local hands = caster:getEquipID(SLOT_HANDS); + -- Equipment Bonuses + if(ring1 == 15831 or ring2 == 15831) then + power = power + 25; + end + if(hands == 15104 or hands == 14911) then + power = power + 25; + end + if(hands == 10692) then + power = power + 50; + end + if(target:isUndead()) then + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + elseif(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == true) then + target:delStatusEffect(EFFECT_DEFENSE_DOWN); + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + end + end return dmg; end; \ No newline at end of file Index: scripts/globals/spells/banishga_iii.lua =================================================================== --- scripts/globals/spells/banishga_iii.lua (revision 3520) +++ scripts/globals/spells/banishga_iii.lua (working copy) @@ -1,31 +1,66 @@ ------------------------------------------ --- Spell: Banishga 3 --- Deals light damage to an enemy. ------------------------------------------ - -require("scripts/globals/magic"); -require("scripts/globals/status"); - ------------------------------------------ --- OnSpellCast ------------------------------------------ - +----------------------------------------- +-- Spell: Banishga III +-- Deals light damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + function OnMagicCastingCheck(caster,target,spell) return 0; end; -function onSpellCast(caster,target,spell) - --calculate raw damage - dmg = calculateMagicDamage(455,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); - --get resist multiplier (1x if no resist) - resist = applyResistance(caster,spell,target,caster:getStat(MOD_MND)-target:getStat(MOD_MND),DIVINE_MAGIC_SKILL,1.0); - --get the resisted damage - dmg = dmg*resist; - --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - dmg = addBonuses(caster,spell,target,dmg); - --add in target adjustment - dmg = adjustForTarget(target,dmg); - --add in final adjustments - dmg = finalMagicAdjustments(caster,target,spell,dmg); - return dmg; +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(455,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + if(job == JOB_WHM or sjob == JOB_WHM) then + dmg = calculateMagicDamage(455,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false) + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_MND)-target:getStat(MOD_MND),DIVINE_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + duration = 45; + if(caster:getObjType() == TYPE_PC) then + if(job == JOB_WHM or sjob == JOB_WHM) then + duration = 45 + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + power = 700; + local ring1 = caster:getEquipID(SLOT_RING1); + local ring2 = caster:getEquipID(SLOT_RING2); + local hands = caster:getEquipID(SLOT_HANDS); + -- Equipment Bonuses + if(ring1 == 15831 or ring2 == 15831) then + power = power + 25; + end + if(hands == 15104 or hands == 14911) then + power = power + 25; + end + if(hands == 10692) then + power = power + 50; + end + if(target:isUndead()) then + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + elseif(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == true) then + target:delStatusEffect(EFFECT_DEFENSE_DOWN); + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + end + end + return dmg; end; \ No newline at end of file Index: scripts/globals/spells/banishga_iv.lua =================================================================== --- scripts/globals/spells/banishga_iv.lua (revision 0) +++ scripts/globals/spells/banishga_iv.lua (working copy) @@ -0,0 +1,66 @@ +----------------------------------------- +-- Spell: Banishga IV +-- Deals light damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(810,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + if(job == JOB_WHM or sjob == JOB_WHM) then + dmg = calculateMagicDamage(810,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false) + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_MND)-target:getStat(MOD_MND),DIVINE_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + duration = 60; + if(caster:getObjType() == TYPE_PC) then + if(job == JOB_WHM or sjob == JOB_WHM) then + duration = 60 + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + power = 800; + local ring1 = caster:getEquipID(SLOT_RING1); + local ring2 = caster:getEquipID(SLOT_RING2); + local hands = caster:getEquipID(SLOT_HANDS); + -- Equipment Bonuses + if(ring1 == 15831 or ring2 == 15831) then + power = power + 25; + end + if(hands == 15104 or hands == 14911) then + power = power + 25; + end + if(hands == 10692) then + power = power + 50; + end + if(target:isUndead()) then + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + elseif(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == true) then + target:delStatusEffect(EFFECT_DEFENSE_DOWN); + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + end + end + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/banishga_v.lua =================================================================== --- scripts/globals/spells/banishga_v.lua (revision 0) +++ scripts/globals/spells/banishga_v.lua (working copy) @@ -0,0 +1,66 @@ +----------------------------------------- +-- Spell: Banishga V +-- Deals light damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(1512,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + if(job == JOB_WHM or sjob == JOB_WHM) then + dmg = calculateMagicDamage(1512,1,caster,spell,target,DIVINE_MAGIC_SKILL,MOD_MND,false) + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_MND)-target:getStat(MOD_MND),DIVINE_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + duration = 75; + if(caster:getObjType() == TYPE_PC) then + if(job == JOB_WHM or sjob == JOB_WHM) then + duration = 75 + caster:getMerit(MERIT_BANISH_EFFECT); + end + end + power = 900; + local ring1 = caster:getEquipID(SLOT_RING1); + local ring2 = caster:getEquipID(SLOT_RING2); + local hands = caster:getEquipID(SLOT_HANDS); + -- Equipment Bonuses + if(ring1 == 15831 or ring2 == 15831) then + power = power + 25; + end + if(hands == 15104 or hands == 14911) then + power = power + 25; + end + if(hands == 10692) then + power = power + 50; + end + if(target:isUndead()) then + if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + elseif(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == true) then + target:delStatusEffect(EFFECT_DEFENSE_DOWN); + target:addStatusEffect(EFFECT_DEFENSE_DOWN,power,0,duration); + end + end + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/baraera.lua =================================================================== --- scripts/globals/spells/baraera.lua (revision 3520) +++ scripts/globals/spells/baraera.lua (working copy) @@ -8,15 +8,18 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); + power = 40 + (0.2 * enchanceSkill); - power = 40 + 0.2 * enchanceSkill; - + if(caster:getObjType() == TYPE_PC) then + power = 40 + (0.2 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end + duration = 150; if(enchanceSkill >180)then @@ -26,8 +29,29 @@ if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARAERO,power,0,duration,0,1,extraBarspellEffect); - target:addStatusEffect(EFFECT_BARAERO,power,0,duration,0,1); - return EFFECT_BARAERO; end; Index: scripts/globals/spells/baraero.lua =================================================================== --- scripts/globals/spells/baraero.lua (revision 3520) +++ scripts/globals/spells/baraero.lua (working copy) @@ -8,10 +8,10 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); @@ -26,8 +26,29 @@ if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end - target:addStatusEffect(EFFECT_BARAERO,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARAERO,power,0,duration,0,1,extraBarspellEffect); return EFFECT_BARAERO; end; Index: scripts/globals/spells/baramnesia.lua =================================================================== --- scripts/globals/spells/baramnesia.lua (revision 0) +++ scripts/globals/spells/baramnesia.lua (working copy) @@ -0,0 +1,40 @@ +----------------------------------------- +-- Spell: Baramnesia +----------------------------------------- +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + duration = 150; + enchanceSkill = caster:getSkillLevel(34); + power = 40 + 0.2 * enchanceSkill; + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster == target) then + duration = duration * 3; + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:delStatusEffect(EFFECT_BARAMNESIA); + target:addStatusEffect(EFFECT_BARAMNESIA,power,0,duration,0,1,extraBarspellEffect); +end; \ No newline at end of file Index: scripts/globals/spells/baramnesra.lua =================================================================== --- scripts/globals/spells/baramnesra.lua (revision 0) +++ scripts/globals/spells/baramnesra.lua (working copy) @@ -0,0 +1,41 @@ +----------------------------------------- +-- Spell: Baramnesra +----------------------------------------- +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + duration = 150; + enchanceSkill = caster:getSkillLevel(34); + power = 40 + 0.2 * enchanceSkill; + + if(caster:getObjType() == TYPE_PC) then + power = power + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster == target) then + duration = duration * 3; + end + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:delStatusEffect(EFFECT_BARAMNESIA); + target:addStatusEffect(EFFECT_BARAMNESIA,power,0,duration,0,1,extraBarspellEffect); +end; \ No newline at end of file Index: scripts/globals/spells/barblind.lua =================================================================== --- scripts/globals/spells/barblind.lua (revision 3520) +++ scripts/globals/spells/barblind.lua (working copy) @@ -27,7 +27,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARBLIND,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARBLIND,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARBLIND; end; Index: scripts/globals/spells/barblindra.lua =================================================================== --- scripts/globals/spells/barblindra.lua (revision 3520) +++ scripts/globals/spells/barblindra.lua (working copy) @@ -8,15 +8,17 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); + power = 1 + (0.02 * enchanceSkill); + if(caster:getObjType() == TYPE_PC) then + power = 1 + (0.02 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end - power = 1 + 0.02 * enchanceSkill; - duration = 150; if(enchanceSkill >180)then @@ -26,7 +28,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARBLIND,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARBLIND,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARBLIND; end; Index: scripts/globals/spells/barblizzara.lua =================================================================== --- scripts/globals/spells/barblizzara.lua (revision 3520) +++ scripts/globals/spells/barblizzara.lua (working copy) @@ -8,15 +8,17 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); + power = 40 + (0.2 * enchanceSkill); - power = 40 + 0.2 * enchanceSkill; - + if(caster:getObjType() == TYPE_PC) then + power = 40 + (0.2 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end duration = 150; if(enchanceSkill >180)then @@ -26,8 +28,30 @@ if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); - target:addStatusEffect(EFFECT_BARBLIZZARD,power,0,duration,0,1); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARBLIZZARD,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARBLIZZARD; end; Index: scripts/globals/spells/barblizzard.lua =================================================================== --- scripts/globals/spells/barblizzard.lua (revision 3520) +++ scripts/globals/spells/barblizzard.lua (working copy) @@ -8,10 +8,10 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); @@ -26,8 +26,30 @@ if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); - target:addStatusEffect(EFFECT_BARBLIZZARD,power,0,duration,0,1); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARBLIZZARD,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARBLIZZARD; end; Index: scripts/globals/spells/barfira.lua =================================================================== --- scripts/globals/spells/barfira.lua (revision 3520) +++ scripts/globals/spells/barfira.lua (working copy) @@ -8,15 +8,17 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); + power = 40 + (0.2 * enchanceSkill); - power = 40 + 0.2 * enchanceSkill; - + if(caster:getObjType() == TYPE_PC) then + power = 40 + (0.2 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end duration = 150; if(enchanceSkill >180)then @@ -27,7 +29,29 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARFIRE,power,0,duration,0,1); + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); + + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARFIRE,power,0,duration,0,1,extraBarspellEffect); spell:setMsg(230); return EFFECT_BARFIRE; Index: scripts/globals/spells/barfire.lua =================================================================== --- scripts/globals/spells/barfire.lua (revision 3520) +++ scripts/globals/spells/barfire.lua (working copy) @@ -8,10 +8,10 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); @@ -27,7 +27,29 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARFIRE,power,0,duration,0,1); + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARFIRE,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARFIRE; end; Index: scripts/globals/spells/barparalyze.lua =================================================================== --- scripts/globals/spells/barparalyze.lua (revision 3520) +++ scripts/globals/spells/barparalyze.lua (working copy) @@ -26,8 +26,22 @@ if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); - target:addStatusEffect(EFFECT_BARPARALYZE,power,0,duration,0,1); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + target:addStatusEffect(EFFECT_BARPARALYZE,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARPARALYZE; end; Index: scripts/globals/spells/barparalyzra.lua =================================================================== --- scripts/globals/spells/barparalyzra.lua (revision 3520) +++ scripts/globals/spells/barparalyzra.lua (working copy) @@ -8,15 +8,16 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); - - power = 1 + 0.02 * enchanceSkill; - + power = 1 + (0.02 * enchanceSkill); + if(caster:getObjType() == TYPE_PC) then + power = 1 + (0.02 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end duration = 150; if(enchanceSkill >180)then @@ -27,7 +28,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARPARALYZE,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARPARALYZE,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARPARALYZE; end; Index: scripts/globals/spells/barpetra.lua =================================================================== --- scripts/globals/spells/barpetra.lua (revision 3520) +++ scripts/globals/spells/barpetra.lua (working copy) @@ -8,15 +8,16 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); - - power = 1 + 0.02 * enchanceSkill; - + power = 1 + (0.02 * enchanceSkill); + if(caster:getObjType() == TYPE_PC) then + power = 1 + (0.02 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end duration = 150; if(enchanceSkill >180)then @@ -27,7 +28,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARPETRIFY,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARPETRIFY,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARPETRIFY; end; Index: scripts/globals/spells/barpetrify.lua =================================================================== --- scripts/globals/spells/barpetrify.lua (revision 3520) +++ scripts/globals/spells/barpetrify.lua (working copy) @@ -27,7 +27,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARPETRIFY,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARPETRIFY,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARPETRIFY; end; Index: scripts/globals/spells/barpoison.lua =================================================================== --- scripts/globals/spells/barpoison.lua (revision 3520) +++ scripts/globals/spells/barpoison.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: BARAERA +-- Spell: BARPOISON ----------------------------------------- require("scripts/globals/status"); @@ -27,7 +27,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARPOISON,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARPOISON,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARPOISON; end; Index: scripts/globals/spells/barpoisonra.lua =================================================================== --- scripts/globals/spells/barpoisonra.lua (revision 3520) +++ scripts/globals/spells/barpoisonra.lua (working copy) @@ -8,15 +8,16 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); - - power = 1 + 0.02 * enchanceSkill; - + power = 1 + (0.02 * enchanceSkill); + if(caster:getObjType() == TYPE_PC) then + power = 1 + (0.02 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end duration = 150; if(enchanceSkill >180)then @@ -27,7 +28,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARPOISON,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARPOISON,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARPOISON; end; Index: scripts/globals/spells/barsilence.lua =================================================================== --- scripts/globals/spells/barsilence.lua (revision 3520) +++ scripts/globals/spells/barsilence.lua (working copy) @@ -27,7 +27,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARSILENCE,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARSILENCE,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARSILENCE; end; Index: scripts/globals/spells/barsilencera.lua =================================================================== --- scripts/globals/spells/barsilencera.lua (revision 3520) +++ scripts/globals/spells/barsilencera.lua (working copy) @@ -8,15 +8,16 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); - - power = 1 + 0.02 * enchanceSkill; - + power = 1 + (0.02 * enchanceSkill); + if(caster:getObjType() == TYPE_PC) then + power = 1 + (0.02 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end duration = 150; if(enchanceSkill >180)then @@ -27,7 +28,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARSILENCE,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARSILENCE,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARSILENCE; end; Index: scripts/globals/spells/barsleep.lua =================================================================== --- scripts/globals/spells/barsleep.lua (revision 3520) +++ scripts/globals/spells/barsleep.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Barsleepra +-- Spell: Barsleep ----------------------------------------- require("scripts/globals/status"); @@ -27,7 +27,20 @@ duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); - target:addStatusEffect(EFFECT_BARSLEEP,power,0,duration,0,1); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARSLEEP,power,0,duration,0,1,extraBarspellEffect); return EFFECT_BARSLEEP; end; Index: scripts/globals/spells/barsleepra.lua =================================================================== --- scripts/globals/spells/barsleepra.lua (revision 3520) +++ scripts/globals/spells/barsleepra.lua (working copy) @@ -8,15 +8,16 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); - - power = 1 + 0.02 * enchanceSkill; - + power = 1 + (0.02 * enchanceSkill); + if(caster:getObjType() == TYPE_PC) then + power = 1 + (0.02 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end duration = 150; if(enchanceSkill >180)then @@ -27,7 +28,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARSLEEP,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARSLEEP,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARSLEEP; end; Index: scripts/globals/spells/barstone.lua =================================================================== --- scripts/globals/spells/barstone.lua (revision 3520) +++ scripts/globals/spells/barstone.lua (working copy) @@ -8,10 +8,10 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); @@ -26,8 +26,30 @@ if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); - target:addStatusEffect(EFFECT_BARSTONE,power,0,duration,0,1); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARSTONE,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARSTONE; end; Index: scripts/globals/spells/barstonra.lua =================================================================== --- scripts/globals/spells/barstonra.lua (revision 3520) +++ scripts/globals/spells/barstonra.lua (working copy) @@ -8,15 +8,17 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); + power = 40 + (0.2 * enchanceSkill); - power = 40 + 0.2 * enchanceSkill; - + if(caster:getObjType() == TYPE_PC) then + power = 40 + (0.2 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end duration = 150; if(enchanceSkill >180)then @@ -26,8 +28,30 @@ if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); - target:addStatusEffect(EFFECT_BARSTONE,power,0,duration,0,1); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARSTONE,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARSTONE; end; Index: scripts/globals/spells/barthunder.lua =================================================================== --- scripts/globals/spells/barthunder.lua (revision 3520) +++ scripts/globals/spells/barthunder.lua (working copy) @@ -8,10 +8,10 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); @@ -26,8 +26,30 @@ if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); - target:addStatusEffect(EFFECT_BARTHUNDER,power,0,duration,0,1); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARTHUNDER,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARTHUNDER; end; Index: scripts/globals/spells/barthundra.lua =================================================================== --- scripts/globals/spells/barthundra.lua (revision 3520) +++ scripts/globals/spells/barthundra.lua (working copy) @@ -8,15 +8,17 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); + power = 40 + (0.2 * enchanceSkill); - power = 40 + 0.2 * enchanceSkill; - + if(caster:getObjType() == TYPE_PC) then + power = 40 + (0.2 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end duration = 150; if(enchanceSkill >180)then @@ -26,8 +28,30 @@ if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); - target:addStatusEffect(EFFECT_BARTHUNDER,power,0,duration,0,1); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARTHUNDER,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARTHUNDER; end; Index: scripts/globals/spells/barvira.lua =================================================================== --- scripts/globals/spells/barvira.lua (revision 3520) +++ scripts/globals/spells/barvira.lua (working copy) @@ -14,9 +14,10 @@ function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); - - power = 1 + 0.02 * enchanceSkill; - + power = 1 + (0.02 * enchanceSkill); + if(caster:getObjType() == TYPE_PC) then + power = 1 + (0.02 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end duration = 150; if(enchanceSkill >180)then @@ -27,7 +28,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARVIRUS,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARVIRUS,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARVIRUS; end; Index: scripts/globals/spells/barvirus.lua =================================================================== --- scripts/globals/spells/barvirus.lua (revision 3520) +++ scripts/globals/spells/barvirus.lua (working copy) @@ -27,7 +27,21 @@ duration = duration * 3; end - target:addStatusEffect(EFFECT_BARVIRUS,power,0,duration,0,1); + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + local extraBarspellEffect = 0; + local body = caster:getEquipID(SLOT_BODY); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + + target:addStatusEffect(EFFECT_BARVIRUS,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARVIRUS; end; Index: scripts/globals/spells/barwater.lua =================================================================== --- scripts/globals/spells/barwater.lua (revision 3520) +++ scripts/globals/spells/barwater.lua (working copy) @@ -8,10 +8,10 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); @@ -26,8 +26,30 @@ if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); - target:addStatusEffect(EFFECT_BARWATER,power,0,duration,0,1); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARWATER,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARWATER; end; Index: scripts/globals/spells/barwatera.lua =================================================================== --- scripts/globals/spells/barwatera.lua (revision 3520) +++ scripts/globals/spells/barwatera.lua (working copy) @@ -8,15 +8,17 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enchanceSkill = caster:getSkillLevel(34); + power = 40 + (0.2 * enchanceSkill); - power = 40 + 0.2 * enchanceSkill; - + if(caster:getObjType() == TYPE_PC) then + power = 40 + (0.2 * enchanceSkill) + caster:getMerit(MERIT_BAR_SPELL_EFFECT); + end duration = 150; if(enchanceSkill >180)then @@ -26,8 +28,30 @@ if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + local extraBarspellEffect = 0; + if(caster:getEquipID(SLOT_MAIN) == 17077 or caster:getEquipID(SLOT_SUB) == 17077) then + extraBarspellEffect = 5; + end + + local body = caster:getEquipID(SLOT_BODY); - target:addStatusEffect(EFFECT_BARWATER,power,0,duration,0,1); + if(caster:hasStatusEffect(EFFECT_AFFLATUS_SOLACE) == true) then + if(body == 11186) then -- Orison Bliaud +1 + extraBarspellEffect = extraBarspellEffect + 5; + elseif(body == 11086) then -- Orison Bliaud +2 + extraBarspellEffect = extraBarspellEffect + 10; + end + end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + duration = duration + (duration * caster:getMod(MOD_BARSPELL_DUR)); + + power = power + caster:getMod(MOD_BARSPELL_PWR); + + target:addStatusEffect(EFFECT_BARWATER,power,0,duration,0,1,extraBarspellEffect); + return EFFECT_BARWATER; end; Index: scripts/globals/spells/battlefield_elegy.lua =================================================================== --- scripts/globals/spells/battlefield_elegy.lua (revision 3520) +++ scripts/globals/spells/battlefield_elegy.lua (working copy) @@ -28,29 +28,13 @@ if(100 * math.random() < target:getMod(MOD_SLOWRES)) then spell:setMsg(85); -- resisted spell else - local sItem = caster:getEquipID(2); - - -- horn +1 - if(sItem == 17371) then - power = power + 20; - duration = duration * 1.2; - end - - if(sItem == 17352) then - power = power + 11; - duration = duration * 1.1; - end - - if(sItem == 18342) then - power = power + 20; - duration = duration * 1.2; - end - - if(sItem == 17856) then - power = power + 30; - duration = duration * 1.3; - end - + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ELEGY) * 10)/100)); + + power = power + ((caster:getMod(MOD_ELEGY) + caster:getMod(MOD_ALL_SONGS)) * 5); + -- Try to overwrite weaker elegy if(target:addStatusEffect(EFFECT_ELEGY,power,0,duration)) then spell:setMsg(237); Index: scripts/globals/spells/bewitching_etude.lua =================================================================== --- scripts/globals/spells/bewitching_etude.lua (revision 0) +++ scripts/globals/spells/bewitching_etude.lua (working copy) @@ -0,0 +1,45 @@ +-------------------------------------- +-- Spell: Betwitching Etude +-- Boosts targets CHR stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <416)then + power = 12 + elseif(enchanceSkill >=417 and enchanceSkill <=445)then + power = 13 + elseif(enchanceSkill >=446 and enchanceSkill <=474)then + power = 14 + elseif(enchanceSkill >=475)then + power = 15 + else + power = 15 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_CHR_DOWN) == true) then + target:delStatusEffect(EFFECT_CHR_DOWN); + else + target:addStatusEffect(EFFECT_CHR_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/bind.lua =================================================================== --- scripts/globals/spells/bind.lua (revision 3520) +++ scripts/globals/spells/bind.lua (working copy) @@ -22,8 +22,19 @@ --Resist resist = applyResistance(caster,spell,target,dINT,35,bonus); - - if(100 * math.random() >= target:getMod(MOD_BINDRES)) then + + local resistMod = 100 * math.random(); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + resistMod = resistMod + 10; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + caster:delStatusEffect(EFFECT_SABOTEUR); + end + + if(resistMod >= target:getMod(MOD_BINDRES)) then if(resist >= 0.5) then --Do it! --Try to erase a weaker bind. if(target:addStatusEffect(EFFECT_BIND,target:speed(),0,duration)) then Index: scripts/globals/spells/bindga.lua =================================================================== --- scripts/globals/spells/bindga.lua (revision 0) +++ scripts/globals/spells/bindga.lua (working copy) @@ -0,0 +1,48 @@ +----------------------------------------- +-- Spell: Bindga +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + --Pull base stats. + dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); + bonus = AffinityBonus(caster,spell); + + --Duration, including resistance. May need more research. + duration = math.random(5,60); + + --Resist + resist = applyResistance(caster,spell,target,dINT,35,bonus); + + local resistMod = 100 * math.random(); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + resistMod = resistMod + 10; + end + + if(resistMod >= target:getMod(MOD_BINDRES)) then + if(resist >= 0.5) then --Do it! + --Try to erase a weaker bind. + if(target:addStatusEffect(EFFECT_BIND,target:speed(),0,duration)) then + spell:setMsg(236); + else + spell:setMsg(75); + end + end + else + spell:setMsg(85); + end + + + return EFFECT_BIND; + +end; \ No newline at end of file Index: scripts/globals/spells/bio.lua =================================================================== --- scripts/globals/spells/bio.lua (revision 3520) +++ scripts/globals/spells/bio.lua (working copy) @@ -21,9 +21,9 @@ basedmg = caster:getSkillLevel(DARK_MAGIC_SKILL) / 4; dmg = calculateMagicDamage(basedmg,1,caster,spell,target,DARK_MAGIC_SKILL,MOD_INT,false); - -- Softcaps at 15, should always do at least 1 - if(dmg > 15) then - dmg = 15; + -- Softcaps at 10, should always do at least 1 + if(dmg > 10) then + dmg = 10; end if(dmg < 1) then dmg = 1; Index: scripts/globals/spells/bio_ii.lua =================================================================== --- scripts/globals/spells/bio_ii.lua (revision 3520) +++ scripts/globals/spells/bio_ii.lua (working copy) @@ -21,9 +21,9 @@ basedmg = caster:getSkillLevel(DARK_MAGIC_SKILL) / 4; dmg = calculateMagicDamage(basedmg,2,caster,spell,target,DARK_MAGIC_SKILL,MOD_INT,false); - -- Softcaps at 8, should always do at least 1 - if(dmg > 30) then - dmg = 30; + -- Softcaps at 50, should always do at least 1 + if(dmg > 50) then + dmg = 50; end if(dmg < 1) then dmg = 1; @@ -47,7 +47,18 @@ dia = target:getStatusEffect(EFFECT_DIA); -- Calculate DoT (rough, though fairly accurate) - dotdmg = 3 + math.floor(caster:getSkillLevel(DARK_MAGIC_SKILL) / 60); + local darkSkill = caster:getSkillLevel(DARK_MAGIC_SKILL); + if(darkSkill <199)then + dotdmg = 4; + elseif(darkSkill >=200 and darkSkill <=210)then + dotdmg = 5; + elseif(darkSkill >=211 and darkSkill <=268)then + dotdmg = 6; + elseif(darkSkill >=269 and darkSkill <=290)then + dotdmg = 7; + elseif(darkSkill >=291)then + dotdmg = 8; + end -- Do it! if(dia == nil or (BIO_OVERWRITE == 0 and dia:getPower() <= 2) or (BIO_OVERWRITE == 1 and dia:getPower() < 2)) then Index: scripts/globals/spells/bio_iii.lua =================================================================== --- scripts/globals/spells/bio_iii.lua (revision 3520) +++ scripts/globals/spells/bio_iii.lua (working copy) @@ -21,9 +21,9 @@ basedmg = caster:getSkillLevel(DARK_MAGIC_SKILL) / 4; dmg = calculateMagicDamage(basedmg,3,caster,spell,target,DARK_MAGIC_SKILL,MOD_INT,false); - -- Softcaps at 32, should always do at least 1 - if(dmg > 62) then - dmg = 62; + -- Softcaps at 100, should always do at least 1 + if(dmg > 100) then + dmg = 100; end if(dmg < 1) then dmg = 1; @@ -50,7 +50,7 @@ dia = target:getStatusEffect(EFFECT_DIA); -- Calculate DoT (rough, though fairly accurate) - dotdmg = 4 + math.floor(caster:getSkillLevel(DARK_MAGIC_SKILL) / 60); + dotdmg = math.floor((caster:getSkillLevel(DARK_MAGIC_SKILL) + 59) / 27); -- Do it! if(dia == nil or (BIO_OVERWRITE == 0 and dia:getPower() <= 3) or (BIO_OVERWRITE == 1 and dia:getPower() < 3)) then Index: scripts/globals/spells/bio_iv.lua =================================================================== --- scripts/globals/spells/bio_iv.lua (revision 0) +++ scripts/globals/spells/bio_iv.lua (working copy) @@ -0,0 +1,67 @@ +----------------------------------------- +-- Spell: Bio IV +-- Deals dark damage that weakens an enemy's attacks and gruadually reduces its HP. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + --calculate raw damage + basedmg = caster:getSkillLevel(DARK_MAGIC_SKILL) / 3; + dmg = calculateMagicDamage(basedmg,3,caster,spell,target,DARK_MAGIC_SKILL,MOD_INT,false); + + -- Softcaps at 150, should always do at least 1 + if(dmg > 150) then + dmg = 150; + end + if(dmg < 1) then + dmg = 1; + end + + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),DARK_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments including the actual damage dealt + final = finalMagicAdjustments(caster,target,spell,dmg); + + -- Calculate duration. + duration = 120; + + -- Check for Dia. + dia = target:getStatusEffect(EFFECT_DIA); + + -- Calculate DoT (rough, though fairly accurate) + dotdmg = 5 + math.floor(caster:getSkillLevel(DARK_MAGIC_SKILL) / 60); + + -- Do it! + if(dia == nil or (BIO_OVERWRITE == 0 and dia:getPower() <= 4) or (BIO_OVERWRITE == 1 and dia:getPower() < 4)) then + target:delStatusEffect(EFFECT_BIO); -- delete old bio + target:addStatusEffect(EFFECT_BIO,dotdmg,3,duration,FLAG_ERASABLE); + end + + --Try to kill same tier Dia (default behavior) + if(DIA_OVERWRITE == 1 and dia ~= nil) then + if(dia:getPower() <= 4) then + target:delStatusEffect(EFFECT_DIA); + end + end + + return final; + +end; Index: scripts/globals/spells/bio_v.lua =================================================================== --- scripts/globals/spells/bio_v.lua (revision 0) +++ scripts/globals/spells/bio_v.lua (working copy) @@ -0,0 +1,67 @@ +----------------------------------------- +-- Spell: Bio V +-- Deals dark damage that weakens an enemy's attacks and gruadually reduces its HP. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + --calculate raw damage + basedmg = caster:getSkillLevel(DARK_MAGIC_SKILL) / 2; + dmg = calculateMagicDamage(basedmg,3,caster,spell,target,DARK_MAGIC_SKILL,MOD_INT,false); + + -- Softcaps at 200, should always do at least 1 + if(dmg > 200) then + dmg = 200; + end + if(dmg < 1) then + dmg = 1; + end + + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),DARK_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments including the actual damage dealt + final = finalMagicAdjustments(caster,target,spell,dmg); + + -- Calculate duration. + duration = 150; + + -- Check for Dia. + dia = target:getStatusEffect(EFFECT_DIA); + + -- Calculate DoT (rough, though fairly accurate) + dotdmg = 6 + math.floor(caster:getSkillLevel(DARK_MAGIC_SKILL) / 60); + + -- Do it! + if(dia == nil or (BIO_OVERWRITE == 0 and dia:getPower() <= 5) or (BIO_OVERWRITE == 1 and dia:getPower() < 5)) then + target:delStatusEffect(EFFECT_BIO); -- delete old bio + target:addStatusEffect(EFFECT_BIO,dotdmg,3,duration,FLAG_ERASABLE); + end + + --Try to kill same tier Dia (default behavior) + if(DIA_OVERWRITE == 1 and dia ~= nil) then + if(dia:getPower() <= 5) then + target:delStatusEffect(EFFECT_DIA); + end + end + + return final; + +end; Index: scripts/globals/spells/blade_madrigal.lua =================================================================== --- scripts/globals/spells/blade_madrigal.lua (revision 3520) +++ scripts/globals/spells/blade_madrigal.lua (working copy) @@ -3,7 +3,7 @@ -- Gives party members accuracy ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,24 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local acc = caster:getSkillLevel(SINGING_SKILL) / 16 + 1; - local sItem = caster:getEquipID(2); - local duration = 120; - - if(sItem == 17348) then - acc = acc + 2; - end - - -- traversiere + 1 - if(sItem == 17375 or sItem == 17845) then - acc = acc + 4; - end - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:addStatusEffect(EFFECT_MADRIGAL,acc,0,duration); - spell:setMsg(230); - - return EFFECT_MADRIGAL; end; \ No newline at end of file Index: scripts/globals/spells/blaze_spikes.lua =================================================================== --- scripts/globals/spells/blaze_spikes.lua (revision 3520) +++ scripts/globals/spells/blaze_spikes.lua (working copy) @@ -8,20 +8,34 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local duration = SPIKE_EFFECT_DURATION; - local typeEffect = EFFECT_BLAZE_SPIKES; + local typeEffect = EFFECT_BLAZE_SPIKES; + local legs = caster:getEquipID(SLOT_LEGS); + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); local int = caster:getStat(MOD_INT); local magicAtk = caster:getMod(MOD_MATT); local power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)); + + -- Equipment Bonus Amount + if (legs == 15622) then -- Mercenarys Trousers + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (4/256)); + elseif (legs == 15121 or legs == 15584) then -- Duelist Tights & +1 + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (6/256)); + elseif (legs == 10714) then -- Duelist Tights +2 + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (8/256)); + end if(target:addStatusEffect(typeEffect,power,0,duration)) then spell:setMsg(230); Index: scripts/globals/spells/blind.lua =================================================================== --- scripts/globals/spells/blind.lua (revision 3520) +++ scripts/globals/spells/blind.lua (working copy) @@ -19,7 +19,7 @@ dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); bonus = AffinityBonus(caster,spell); - -- Base power. May need more research. + -- Base power. power = math.floor((dINT + 60) / 4); if(power < 5) then power = 5; @@ -31,6 +31,17 @@ -- Duration, including resistance. Unconfirmed. duration = 120 * applyResistance(caster,spell,target,dINT,35,bonus); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power + (power * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + caster:delStatusEffect(EFFECT_SABOTEUR); + end + if(100 * math.random() >= target:getMod(MOD_BLINDRES)) then if(duration >= 90) then --Do it! Index: scripts/globals/spells/blind_ii.lua =================================================================== --- scripts/globals/spells/blind_ii.lua (revision 3520) +++ scripts/globals/spells/blind_ii.lua (working copy) @@ -35,6 +35,17 @@ -- Duration, including resistance. Unconfirmed. duration = 180 * applyResistance(caster,spell,target,dINT,35,bonus); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power + (power * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + caster:delStatusEffect(EFFECT_SABOTEUR); + end + if(100 * math.random() >= target:getMod(MOD_BLINDRES)) then if(duration >= 90) then --Do it! Index: scripts/globals/spells/blindga.lua =================================================================== --- scripts/globals/spells/blindga.lua (revision 0) +++ scripts/globals/spells/blindga.lua (working copy) @@ -0,0 +1,55 @@ +----------------------------------------- +-- Spell: Blindga +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + -- Pull base stats. + dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); + bonus = AffinityBonus(caster,spell); + + -- Base power. + power = math.floor((dINT + 60) / 4); + if(power < 5) then + power = 5; + end + if(power > 20) then + power = 20; + end + + -- Duration, including resistance. Unconfirmed. + duration = 120 * applyResistance(caster,spell,target,dINT,35,bonus); + + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + + if(100 * math.random() >= target:getMod(MOD_BLINDRES)) then + if(duration >= 90) then --Do it! + + if(target:addStatusEffect(EFFECT_BLINDNESS,power,0,duration)) then + spell:setMsg(236); + else + + spell:setMsg(75); + end + else + spell:setMsg(85); + end + else + spell:setMsg(284); + end + return EFFECT_BLINDNESS; +end; \ No newline at end of file Index: scripts/globals/spells/blink.lua =================================================================== --- scripts/globals/spells/blink.lua (revision 3520) +++ scripts/globals/spells/blink.lua (working copy) @@ -8,16 +8,19 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) duration = 300; if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + if(target:addStatusEffect(EFFECT_BLINK, BLINK_SHADOWS, 0, duration)) then spell:setMsg(230); else Index: scripts/globals/spells/blizzaga_ii.lua =================================================================== --- scripts/globals/spells/blizzaga_ii.lua (revision 3520) +++ scripts/globals/spells/blizzaga_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Blizzaga 2 +-- Spell: Blizzaga II -- Deals ice damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/blizzaga_iii.lua =================================================================== --- scripts/globals/spells/blizzaga_iii.lua (revision 3520) +++ scripts/globals/spells/blizzaga_iii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Blizzaga 3 +-- Spell: Blizzaga III -- Deals ice damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/blizzaga_iv.lua =================================================================== --- scripts/globals/spells/blizzaga_iv.lua (revision 0) +++ scripts/globals/spells/blizzaga_iv.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Blizzaga IV +-- Deals ice damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(934,2,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/blizzaga_v.lua =================================================================== --- scripts/globals/spells/blizzaga_v.lua (revision 0) +++ scripts/globals/spells/blizzaga_v.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Blizzaga V +-- Deals ice damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(1146,2.3,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/blizzard_ii.lua =================================================================== --- scripts/globals/spells/blizzard_ii.lua (revision 3520) +++ scripts/globals/spells/blizzard_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Blizzard +-- Spell: Blizzard II -- Deals ice damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/blizzard_iii.lua =================================================================== --- scripts/globals/spells/blizzard_iii.lua (revision 3520) +++ scripts/globals/spells/blizzard_iii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Blizzard +-- Spell: Blizzard III -- Deals ice damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/blizzard_iv.lua =================================================================== --- scripts/globals/spells/blizzard_iv.lua (revision 3520) +++ scripts/globals/spells/blizzard_iv.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Blizzard +-- Spell: Blizzard IV -- Deals ice damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/blizzard_v.lua =================================================================== --- scripts/globals/spells/blizzard_v.lua (revision 3520) +++ scripts/globals/spells/blizzard_v.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Blizzard +-- Spell: Blizzard V -- Deals ice damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/bluemagic/blank_gaze.lua =================================================================== --- scripts/globals/spells/bluemagic/blank_gaze.lua (revision 0) +++ scripts/globals/spells/bluemagic/blank_gaze.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- Spell: Blank Gaze +-- +----------------------------------------- +require("scripts/globals/magic"); +require("scripts/globals/status"); +require("scripts/globals/settings"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + -- Pull base stats. + dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); + + -- apply bonus, flash is hard to fully resist + bonus = AffinityBonus(caster,spell) + 300; + + local resist = applyResistance(caster,spell,target,dINT,BLUE_SKILL,bonus); + local effect = EFFECT_NONE; + + if(resist > 0.0625) then + if(target:hasStatusEffect(EFFECT_FLASH) == false) then + spell:setMsg(341); + effect = target:dispelStatusEffect(); + if(effect == EFFECT_NONE) then + -- no effect + spell:setMsg(75); + end + else + spell:setMsg(75); + end + else + spell:setMsg(85); + end + + return effect; +end; Index: scripts/globals/spells/bluemagic/geist_wall.lua =================================================================== --- scripts/globals/spells/bluemagic/geist_wall.lua (revision 0) +++ scripts/globals/spells/bluemagic/geist_wall.lua (working copy) @@ -0,0 +1,42 @@ +----------------------------------------- +-- Spell: Geist Wall +-- +----------------------------------------- +require("scripts/globals/magic"); +require("scripts/globals/status"); +require("scripts/globals/settings"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Pull base stats. + dINT = (caster:getStat(MOD_INT)*1.3 - target:getStat(MOD_INT)); + + -- apply bonus, flash is hard to fully resist + bonus = AffinityBonus(caster,spell); + + local resist = applyResistance(caster,spell,target,dINT,BLUE_SKILL,bonus); + local effect = EFFECT_NONE; + + if(resist > 0.0625) then + if(target:hasStatusEffect(EFFECT_FLASH) == false) then + spell:setMsg(341); + effect = target:dispelStatusEffect(); + if(effect == EFFECT_NONE) then + -- no effect + spell:setMsg(75); + end + else + spell:setMsg(75); + end + else + spell:setMsg(85); + end + + return effect; +end; \ No newline at end of file Index: scripts/globals/spells/boost-agi.lua =================================================================== --- scripts/globals/spells/boost-agi.lua (revision 0) +++ scripts/globals/spells/boost-agi.lua (working copy) @@ -0,0 +1,38 @@ +-------------------------------------- +-- Spell: Boost-AGI +-- Boosts targets AGI stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill >300)then + power = 5 + (0.1 * (enchanceSkill - 300)); + else + power = 5; + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + if(target:hasStatusEffect(EFFECT_AGI_DOWN) == true) then + target:delStatusEffect(EFFECT_AGI_DOWN); + else + target:addStatusEffect(EFFECT_AGI_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/boost-chr.lua =================================================================== --- scripts/globals/spells/boost-chr.lua (revision 0) +++ scripts/globals/spells/boost-chr.lua (working copy) @@ -0,0 +1,38 @@ +-------------------------------------- +-- Spell: Boost-CHR +-- Boosts targets CHR stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill >300)then + power = 5 + (0.1 * (enchanceSkill - 300)); + else + power = 5; + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + if(target:hasStatusEffect(EFFECT_CHR_DOWN) == true) then + target:delStatusEffect(EFFECT_CHR_DOWN); + else + target:addStatusEffect(EFFECT_CHR_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/boost-dex.lua =================================================================== --- scripts/globals/spells/boost-dex.lua (revision 0) +++ scripts/globals/spells/boost-dex.lua (working copy) @@ -0,0 +1,38 @@ +-------------------------------------- +-- Spell: Boost-DEX +-- Boosts targets DEX stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill >300)then + power = 5 + (0.1 * (enchanceSkill - 300)); + else + power = 5; + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + if(target:hasStatusEffect(EFFECT_DEX_DOWN) == true) then + target:delStatusEffect(EFFECT_DEX_DOWN); + else + target:addStatusEffect(EFFECT_DEX_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/boost-int.lua =================================================================== --- scripts/globals/spells/boost-int.lua (revision 0) +++ scripts/globals/spells/boost-int.lua (working copy) @@ -0,0 +1,38 @@ +-------------------------------------- +-- Spell: Boost-INT +-- Boosts targets INT stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill >300)then + power = 5 + (0.1 * (enchanceSkill - 300)); + else + power = 5; + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + if(target:hasStatusEffect(EFFECT_INT_DOWN) == true) then + target:delStatusEffect(EFFECT_INT_DOWN); + else + target:addStatusEffect(EFFECT_INT_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/boost-mnd.lua =================================================================== --- scripts/globals/spells/boost-mnd.lua (revision 0) +++ scripts/globals/spells/boost-mnd.lua (working copy) @@ -0,0 +1,38 @@ +-------------------------------------- +-- Spell: Boost-MND +-- Boosts targets MND stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill >300)then + power = 5 + (0.1 * (enchanceSkill - 300)); + else + power = 5; + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + if(target:hasStatusEffect(EFFECT_MND_DOWN) == true) then + target:delStatusEffect(EFFECT_MND_DOWN); + else + target:addStatusEffect(EFFECT_MND_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/boost-str.lua =================================================================== --- scripts/globals/spells/boost-str.lua (revision 0) +++ scripts/globals/spells/boost-str.lua (working copy) @@ -0,0 +1,38 @@ +-------------------------------------- +-- Spell: Boost-STR +-- Boosts targets STR stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill >300)then + power = 5 + (0.1 * (enchanceSkill - 300)); + else + power = 5; + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + if(target:hasStatusEffect(EFFECT_STR_DOWN) == true) then + target:delStatusEffect(EFFECT_STR_DOWN); + else + target:addStatusEffect(EFFECT_STR_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/boost-vit.lua =================================================================== --- scripts/globals/spells/boost-vit.lua (revision 0) +++ scripts/globals/spells/boost-vit.lua (working copy) @@ -0,0 +1,38 @@ +-------------------------------------- +-- Spell: Boost-VIT +-- Boosts targets VIT stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill >300)then + power = 5 + (0.1 * (enchanceSkill - 300)); + else + power = 5; + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + if(target:hasStatusEffect(EFFECT_VIT_DOWN) == true) then + target:delStatusEffect(EFFECT_VIT_DOWN); + else + target:addStatusEffect(EFFECT_VIT_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/break.lua =================================================================== --- scripts/globals/spells/break.lua (revision 0) +++ scripts/globals/spells/break.lua (working copy) @@ -0,0 +1,61 @@ +----------------------------------------- +-- Spell: Break +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + -- Pull base stats. + dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); + bonus = AffinityBonus(caster,spell); + + -- Base power. + power = math.floor((dINT + 60) / 4); + if(power < 5) then + power = 5; + end + if(power > 20) then + power = 20; + end + + -- Duration, including resistance. Unconfirmed. + duration = 60 * applyResistance(caster,spell,target,dINT,35,bonus); + + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power + (power * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + caster:delStatusEffect(EFFECT_SABOTEUR); + end + + if(100 * math.random() >= target:getMod(MOD_PETRIFYRES)) then + if(duration >= 45) then --Do it! + + if(target:addStatusEffect(EFFECT_PETRIFICATION,power,0,duration)) then + spell:setMsg(236); + else + + spell:setMsg(75); + end + else + spell:setMsg(85); + end + else + spell:setMsg(284); + end + return EFFECT_PETRIFICATION; +end; \ No newline at end of file Index: scripts/globals/spells/breakga.lua =================================================================== --- scripts/globals/spells/breakga.lua (revision 0) +++ scripts/globals/spells/breakga.lua (working copy) @@ -0,0 +1,64 @@ +----------------------------------------- +-- Spell: Breakga +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local effect = EFFECT_PETRIFICATION; + local duration = 30; + + pINT = caster:getStat(MOD_INT); + mINT = target:getStat(MOD_INT); + + dINT = (pINT - mINT); + local power = caster:getSkillLevel(ENFEEBLING_MAGIC_SKILL) / 20 + 1; + if power > 20 then + power = 20; + end + + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + + if(math.random(0,100) >= target:getMod(MOD_PETRIFYRES)) then + bonus = AffinityBonus(caster, spell); + resist = applyResistance(caster,spell,target,dINT,ENFEEBLING_MAGIC_SKILL,bonus); + if(resist == 1 or resist == 0.5) then -- effect taken + duration = duration / resist; + + -- Try to erase a weaker petrify. + petrify = target:getStatusEffect(effect) + if(petrify ~= nil) then + if(petrify:getPower() < power) then + -- remove weaker petrify + target:delStatusEffect(effect); + target:addStatusEffect(effect,power,0,duration); + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + target:addStatusEffect(effect,power,0,duration); + spell:setMsg(236); + end + + else -- resist entirely. + spell:setMsg(85); + end + else + spell:setMsg(284); + end + return effect; +end; \ No newline at end of file Index: scripts/globals/spells/cactuar_fugue.lua =================================================================== --- scripts/globals/spells/cactuar_fugue.lua (revision 0) +++ scripts/globals/spells/cactuar_fugue.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- Spell: Cactuar Fugue +-- Increases Gravity Resistance to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_FUGUE); + target:addStatusEffect(EFFECT_FUGUE,power,0,duration); + spell:setMsg(230); + return EFFECT_FUGUE; +end; \ No newline at end of file Index: scripts/globals/spells/carnage_elegy.lua =================================================================== --- scripts/globals/spells/carnage_elegy.lua (revision 3520) +++ scripts/globals/spells/carnage_elegy.lua (working copy) @@ -28,29 +28,13 @@ if(100 * math.random() < target:getMod(MOD_SLOWRES)) then spell:setMsg(85); -- resisted spell else - local sItem = caster:getEquipID(2); - -- horn +1 - if(sItem == 17371) then - power = power + 20; - duration = duration * 1.2; - end + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ELEGY) * 10)/100)); + + power = power + ((caster:getMod(MOD_ELEGY) + caster:getMod(MOD_ALL_SONGS)) * 5); - if(sItem == 17352) then - power = power + 11; - duration = duration * 1.1; - end - - if(sItem == 18342) then - power = power + 20; - duration = duration * 1.2; - end - - if(sItem == 17856) then - power = power + 30; - duration = duration * 1.3; - end - -- Try to overwrite weaker elegy if(target:addStatusEffect(EFFECT_ELEGY,power,0,duration)) then spell:setMsg(237); Index: scripts/globals/spells/chocobo_hum.lua =================================================================== --- scripts/globals/spells/chocobo_hum.lua (revision 0) +++ scripts/globals/spells/chocobo_hum.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- Spell: Chocobo Hum +-- Increases Paralyze Resistance to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_HUM); + target:addStatusEffect(EFFECT_HUM,power,0,duration); + spell:setMsg(230); + return EFFECT_HUM; +end; \ No newline at end of file Index: scripts/globals/spells/chocobo_mazurka.lua =================================================================== --- scripts/globals/spells/chocobo_mazurka.lua (revision 3520) +++ scripts/globals/spells/chocobo_mazurka.lua (working copy) @@ -14,10 +14,19 @@ end; function onSpellCast(caster,target,spell) - + local duration = 120; + local power = 24; + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_MAZURKA) * 10)/100)); + + power = power + ((target:getMod(MOD_MAZURKA) + target:getMod(MOD_ALL_SONGS)) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:addStatusEffect(EFFECT_MAZURKA,25,0,120); + target:addStatusEffect(EFFECT_MAZURKA,power,0,duration); return EFFECT_MAZURKA; end; Index: scripts/globals/spells/curaga.lua =================================================================== --- scripts/globals/spells/curaga.lua (revision 3520) +++ scripts/globals/spells/curaga.lua (working copy) @@ -40,6 +40,22 @@ if(final > diff) then final = diff; end + + local legs = caster:getEquipID(SLOT_LEGS); + local recoverMP = 0; + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:addHP(final); target:wakeUp(); Index: scripts/globals/spells/curaga_ii.lua =================================================================== --- scripts/globals/spells/curaga_ii.lua (revision 3520) +++ scripts/globals/spells/curaga_ii.lua (working copy) @@ -40,6 +40,22 @@ if(final > diff) then final = diff; end + + local legs = caster:getEquipID(SLOT_LEGS); + local recoverMP = 0; + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:addHP(final); target:wakeUp(); Index: scripts/globals/spells/curaga_iii.lua =================================================================== --- scripts/globals/spells/curaga_iii.lua (revision 3520) +++ scripts/globals/spells/curaga_iii.lua (working copy) @@ -40,6 +40,22 @@ if(final > diff) then final = diff; end + + local legs = caster:getEquipID(SLOT_LEGS); + local recoverMP = 0; + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:addHP(final); target:wakeUp(); Index: scripts/globals/spells/curaga_iv.lua =================================================================== --- scripts/globals/spells/curaga_iv.lua (revision 3520) +++ scripts/globals/spells/curaga_iv.lua (working copy) @@ -40,6 +40,22 @@ if(final > diff) then final = diff; end + + local legs = caster:getEquipID(SLOT_LEGS); + local recoverMP = 0; + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:addHP(final); target:wakeUp(); Index: scripts/globals/spells/curaga_v.lua =================================================================== --- scripts/globals/spells/curaga_v.lua (revision 3520) +++ scripts/globals/spells/curaga_v.lua (working copy) @@ -37,6 +37,22 @@ if(final > diff) then final = diff; end + + local legs = caster:getEquipID(SLOT_LEGS); + local recoverMP = 0; + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:restoreHP(final); target:wakeUp(); Index: scripts/globals/spells/cure.lua =================================================================== --- scripts/globals/spells/cure.lua (revision 3520) +++ scripts/globals/spells/cure.lua (working copy) @@ -23,6 +23,7 @@ local power = 0; local basecure = 0; local final = 0; + local recoverMP = 0; local minCure = 10; if(USE_OLD_CURE_FORMULA == true) then @@ -93,6 +94,21 @@ if(final > diff) then final = diff; end + + local legs = caster:getEquipID(SLOT_LEGS); + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:addHP(final); target:wakeUp(); @@ -109,8 +125,22 @@ dmg = adjustForTarget(target,dmg); dmg = finalMagicAdjustments(caster,target,spell,dmg); final = dmg; + + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:delHP(final); - target:updateEnmityFromDamage(caster,final); + target:updateEnmityFromDamage(caster,final,true); elseif(caster:getObjType() == TYPE_PC) then spell:setMsg(75); else Index: scripts/globals/spells/cure_ii.lua =================================================================== --- scripts/globals/spells/cure_ii.lua (revision 3520) +++ scripts/globals/spells/cure_ii.lua (working copy) @@ -23,6 +23,7 @@ local power = 0; local basecure = 0; local final = 0; + local recoverMP = 0; local minCure = 60; if(USE_OLD_CURE_FORMULA == true) then @@ -93,6 +94,21 @@ if(final > diff) then final = diff; end + + local legs = caster:getEquipID(SLOT_LEGS); + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:addHP(final); target:wakeUp(); @@ -107,8 +123,22 @@ dmg = adjustForTarget(target,dmg); dmg = finalMagicAdjustments(caster,target,spell,dmg); final = dmg; + + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:delHP(final); - target:updateEnmityFromDamage(caster,final); + target:updateEnmityFromDamage(caster,final,true); elseif(caster:getObjType() == TYPE_PC) then spell:setMsg(75); else Index: scripts/globals/spells/cure_iii.lua =================================================================== --- scripts/globals/spells/cure_iii.lua (revision 3520) +++ scripts/globals/spells/cure_iii.lua (working copy) @@ -23,6 +23,7 @@ local power = 0; local basecure = 0; local final = 0; + local recoverMP = 0; local minCure = 130; if(USE_OLD_CURE_FORMULA == true) then @@ -89,6 +90,21 @@ if(final > diff) then final = diff; end + + local legs = caster:getEquipID(SLOT_LEGS); + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:addHP(final); target:wakeUp(); @@ -103,8 +119,22 @@ dmg = adjustForTarget(target,dmg); dmg = finalMagicAdjustments(caster,target,spell,dmg); final = dmg; + + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:delHP(final); - target:updateEnmityFromDamage(caster,final); + target:updateEnmityFromDamage(caster,final,true); elseif(caster:getObjType() == TYPE_PC) then spell:setMsg(75); else Index: scripts/globals/spells/cure_iv.lua =================================================================== --- scripts/globals/spells/cure_iv.lua (revision 3520) +++ scripts/globals/spells/cure_iv.lua (working copy) @@ -22,6 +22,7 @@ local power = 0; local basecure = 0; local final = 0; + local recoverMP = 0; local minCure = 270; if(USE_OLD_CURE_FORMULA == true) then @@ -88,6 +89,21 @@ if(final > diff) then final = diff; end + + local legs = caster:getEquipID(SLOT_LEGS); + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:addHP(final); target:wakeUp(); caster:updateEnmityFromCure(target,final); @@ -101,8 +117,22 @@ dmg = adjustForTarget(target,dmg); dmg = finalMagicAdjustments(caster,target,spell,dmg); final = dmg; + + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:delHP(final); - target:updateEnmityFromDamage(caster,final); + target:updateEnmityFromDamage(caster,final,true); elseif(caster:getObjType() == TYPE_PC) then spell:setMsg(75); else Index: scripts/globals/spells/cure_v.lua =================================================================== --- scripts/globals/spells/cure_v.lua (revision 3520) +++ scripts/globals/spells/cure_v.lua (working copy) @@ -23,6 +23,7 @@ local power = 0; local basecure = 0; local final = 0; + local recoverMP = 0; local minCure = 450; if(USE_OLD_CURE_FORMULA == true) then @@ -97,6 +98,21 @@ if(final > diff) then final = diff; end + + local legs = caster:getEquipID(SLOT_LEGS); + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:addHP(final); target:wakeUp(); @@ -111,8 +127,22 @@ dmg = adjustForTarget(target,dmg); dmg = finalMagicAdjustments(caster,target,spell,dmg); final = dmg; + + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:delHP(final); - target:updateEnmityFromDamage(caster,final); + target:updateEnmityFromDamage(caster,final,true); elseif(caster:getObjType() == TYPE_PC) then spell:setMsg(75); else Index: scripts/globals/spells/cure_vi.lua =================================================================== --- scripts/globals/spells/cure_vi.lua (revision 3520) +++ scripts/globals/spells/cure_vi.lua (working copy) @@ -23,6 +23,7 @@ local power = 0; local basecure = 0; local final = 0; + local recoverMP = 0; local minCure = 600; power = getCurePower(caster); @@ -76,6 +77,21 @@ if(final > diff) then final = diff; end + + local legs = caster:getEquipID(SLOT_LEGS); + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:restoreHP(final); target:wakeUp(); @@ -90,8 +106,22 @@ dmg = adjustForTarget(target,dmg); dmg = finalMagicAdjustments(caster,target,spell,dmg); final = dmg; + + if(legs == 11226) then -- Orison's Pantaloon's +1 + recoverMP = final * .02; + caster:addMP(recoverMP); + end + if(legs == 11126) then -- Orison's Pantaloon's +2 + recoverMP = final * .05; + caster:addMP(recoverMP); + end + -- printf("Cure MP Recovered %u",recoverMP); + if(recoverMP > 0) then + caster:messageBasic(25,0,recoverMP); + end + target:delHP(final); - target:updateEnmityFromDamage(caster,final); + target:updateEnmityFromDamage(caster,final,true); elseif(caster:getObjType() == TYPE_PC) then spell:setMsg(75); else Index: scripts/globals/spells/curse.lua =================================================================== --- scripts/globals/spells/curse.lua (revision 0) +++ scripts/globals/spells/curse.lua (working copy) @@ -0,0 +1,69 @@ +----------------------------------------- +-- Spell: Curse +-- Spell accuracy is most highly affected by +-- Enfeebling Magic Skill, Magic Accuracy, and MND. +-- Effect -Max HP -Max MP -Move +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + -- Calculate duration. + local double duration = 120; + + -- Grabbing variables for paralyze potency + mLVL = caster:getMainLvl(); + pMND = caster:getStat(MOD_MND); + mMND = target:getStat(MOD_MND); + + dMND = (pMND - mMND); + multiplier = 150 / mLVL; + + -- Calculate potency. + potency = (multiplier * dMND) / 10; + + if potency > 25 then + potency = 25; + end + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + potency = potency * 1.1; + end + --printf("Duration : %u",duration); + --printf("Potency : %u",potency); + if(target:hasStatusEffect(EFFECT_CURSE_I)) then --effect already on, do nothing + spell:setMsg(75); + elseif(math.random(0,100) >= target:getMod(MOD_CURSERES)) then + bonus = AffinityBonus(caster, spell); + resist = applyResistance(caster,spell,target,dMND,35,bonus); + + if(resist >= 0.25) then + if(target:addStatusEffect(EFFECT_CURSE_I,potency,0,duration*resist)) then + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + -- resist + spell:setMsg(85); + end + + + else -- resist entirely. + + spell:setMsg(85); + end + + return EFFECT_CURSE_I; +end; Index: scripts/globals/spells/cursna.lua =================================================================== --- scripts/globals/spells/cursna.lua (revision 3520) +++ scripts/globals/spells/cursna.lua (working copy) @@ -9,16 +9,21 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) curse = target:getStatusEffect(EFFECT_CURSE_I); curse2 = target:getStatusEffect(EFFECT_CURSE_II); bane = target:getStatusEffect(EFFECT_BANE); - + local pEquipMods = 0.25; + + -- Equipment Bonuses + pEquipMods = pEquipMods + (caster:getMod(MOD_CURSNA_EFFECT)/100); + pEquipMods = pEquipMods + (target:getMod(MOD_CURSNA_RCVD)/100); + spell:setMsg(75); if(curse ~= nil and curse2 ~= nil and bane ~= nil) then target:delStatusEffect(EFFECT_CURSE_I); @@ -48,7 +53,7 @@ target:delStatusEffect(EFFECT_BANE); final = EFFECT_BANE; spell:setMsg(83); - elseif(target:hasStatusEffect(EFFECT_DOOM) and math.random() <= 0.25) then + elseif(target:hasStatusEffect(EFFECT_DOOM) and math.random() <= pEquipMods) then -- remove doom final = EFFECT_DOOM; target:delStatusEffect(EFFECT_DOOM); Index: scripts/globals/spells/dark_carol.lua =================================================================== --- scripts/globals/spells/dark_carol.lua (revision 0) +++ scripts/globals/spells/dark_carol.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Dark Carol +-- MOD_DARKRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 40, 120, MOD_DARKRES); +end; Index: scripts/globals/spells/dark_carol_ii.lua =================================================================== --- scripts/globals/spells/dark_carol_ii.lua (revision 0) +++ scripts/globals/spells/dark_carol_ii.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Dark Carol II +-- MOD_DARKRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 50, 120, MOD_DARKRES); +end; Index: scripts/globals/spells/death.lua =================================================================== --- scripts/globals/spells/death.lua (revision 0) +++ scripts/globals/spells/death.lua (working copy) @@ -0,0 +1,47 @@ +----------------------------------------- +-- Spell: Death +-- Grim reaper time. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + pMND = caster:getStat(MOD_MND); + mMND = target:getStat(MOD_MND); + dMND = (pMND - mMND); + + if(5 * math.random() >= target:getMod(MOD_DARKRES)) then + if(target:hasImmunity(1)) then + spell:setMsg(75); + else + bonus = AffinityBonus(caster, spell); + resist = applyResistance(caster,spell,target,dMND,35,bonus); + if(resist >= 0.125) then + if(target:addStatusEffect(EFFECT_DEATH,1,0,1)) then + spell:setMsg(237); + else + -- no effect + spell:setMsg(75); + end + else + -- resist + spell:setMsg(85); + end + end + else + -- resist + spell:setMsg(85); + end + + return EFFECT_DEATH; +end; \ No newline at end of file Index: scripts/globals/spells/deodorize.lua =================================================================== --- scripts/globals/spells/deodorize.lua (revision 3520) +++ scripts/globals/spells/deodorize.lua (working copy) @@ -27,6 +27,9 @@ duration = duration * target:getMainLvl() / 15; -- level adjustment end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + spell:setMsg(230); target:addStatusEffect(EFFECT_DEODORIZE,0,10,(math.floor(duration) * SNEAK_INVIS_DURATION_MULTIPLIER)); else Index: scripts/globals/spells/devotees_serenade.lua =================================================================== --- scripts/globals/spells/devotees_serenade.lua (revision 0) +++ scripts/globals/spells/devotees_serenade.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- Spell: Devotees Serenade +-- Increases Disease Resistance to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_SERENADE); + target:addStatusEffect(EFFECT_SERENADE,power,0,duration); + spell:setMsg(230); + return EFFECT_SERENADE; +end; \ No newline at end of file Index: scripts/globals/spells/dextrous_etude.lua =================================================================== --- scripts/globals/spells/dextrous_etude.lua (revision 0) +++ scripts/globals/spells/dextrous_etude.lua (working copy) @@ -0,0 +1,51 @@ +-------------------------------------- +-- Spell: Dextrous Etude +-- Boosts targets DEX stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <180)then + power = 3 + elseif(enchanceSkill >=181 and enchanceSkill <=235)then + power = 4 + elseif(enchanceSkill >=236 and enchanceSkill <=288)then + power = 5 + elseif(enchanceSkill >=289 and enchanceSkill <=342)then + power = 6 + elseif(enchanceSkill >=343 and enchanceSkill <=396)then + power = 7 + elseif(enchanceSkill >=397 and enchanceSkill <=449)then + power = 8 + elseif(enchanceSkill >=450)then + power = 9 + else + power = 10 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_DEX_DOWN) == true) then + target:delStatusEffect(EFFECT_DEX_DOWN); + else + target:addStatusEffect(EFFECT_DEX_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/dia.lua =================================================================== --- scripts/globals/spells/dia.lua (revision 3520) +++ scripts/globals/spells/dia.lua (working copy) @@ -36,14 +36,25 @@ --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - duration = 60; + local duration = 60; + local diaPowerMod = 0; + + if(caster:getEquipID(SLOT_MAIN) == 17466 or caster:getEquipID(SLOT_SUB) == 17466) then -- Dia Wand + diaPowerMod = 1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + diaPowerMod = diaPowerMod + 1; + caster:delStatusEffect(EFFECT_SABOTEUR); + end -- Check for Bio. bio = target:getStatusEffect(EFFECT_BIO); -- Do it! if(DIA_OVERWRITE == 0 or (DIA_OVERWRITE == 1 and bio == nil)) then - target:addStatusEffect(EFFECT_DIA,1,3,duration); + target:addStatusEffect(EFFECT_DIA,1,3,duration,0,diaPowerMod); spell:setMsg(2); else spell:setMsg(75); Index: scripts/globals/spells/dia_ii.lua =================================================================== --- scripts/globals/spells/dia_ii.lua (revision 3520) +++ scripts/globals/spells/dia_ii.lua (working copy) @@ -37,14 +37,25 @@ final = finalMagicAdjustments(caster,target,spell,dmg); -- Calculate duration. - duration = 120; + local duration = 120; + local diaPowerMod = 0; + + if(caster:getEquipID(SLOT_MAIN) == 17466 or caster:getEquipID(SLOT_SUB) == 17466) then -- Dia Wand + diaPowerMod = 1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + diaPowerMod = diaPowerMod + 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end -- Check for Bio. bio = target:getStatusEffect(EFFECT_BIO); -- Do it! if(bio == nil or (DIA_OVERWRITE == 0 and bio:getPower() <= 2) or (DIA_OVERWRITE == 1 and bio:getPower() < 2)) then - target:addStatusEffect(EFFECT_DIA,2,3,duration,FLAG_ERASABLE); + target:addStatusEffect(EFFECT_DIA,2,3,duration,0,diaPowerMod); spell:setMsg(2); else spell:setMsg(75); Index: scripts/globals/spells/dia_iii.lua =================================================================== --- scripts/globals/spells/dia_iii.lua (revision 3520) +++ scripts/globals/spells/dia_iii.lua (working copy) @@ -39,14 +39,25 @@ -- Calculate duration. local merits = caster:getMerit(MERIT_DIA_III); - duration = 30 * merits; + local duration = 30 * merits; + local diaPowerMod = 0; + + if(caster:getEquipID(SLOT_MAIN) == 17466 or caster:getEquipID(SLOT_SUB) == 17466) then -- Dia Wand + diaPowerMod = 1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + diaPowerMod = diaPowerMod + 3; + caster:delStatusEffect(EFFECT_SABOTEUR); + end -- Check for Bio. bio = target:getStatusEffect(EFFECT_BIO); -- Do it! if(bio == nil or (DIA_OVERWRITE == 0 and bio:getPower() <= 3) or (DIA_OVERWRITE == 1 and bio:getPower() < 3)) then - target:addStatusEffect(EFFECT_DIA,3,3,duration); + target:addStatusEffect(EFFECT_DIA,3,3,duration,0,diaPowerMod); spell:setMsg(2); else spell:setMsg(75); Index: scripts/globals/spells/dia_iv.lua =================================================================== --- scripts/globals/spells/dia_iv.lua (revision 0) +++ scripts/globals/spells/dia_iv.lua (working copy) @@ -0,0 +1,73 @@ +----------------------------------------- +-- Spell: Dia IV +-- Lowers an enemy's defense and gradually deals light elemental damage. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + --calculate raw damage + basedmg = caster:getSkillLevel(ENFEEBLING_MAGIC_SKILL) / 4; + dmg = calculateMagicDamage(basedmg,5,caster,spell,target,ENFEEBLING_MAGIC_SKILL,MOD_INT,false); + + -- Softcaps at 128, should always do at least 1 + + dmg = utils.clamp(dmg, 1, 128); + + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ENFEEBLING_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments including the actual damage dealt + final = finalMagicAdjustments(caster,target,spell,dmg); + + -- Calculate duration. + local duration = 90; + local diaPowerMod = 0; + + if(caster:getEquipID(SLOT_MAIN) == 17466 or caster:getEquipID(SLOT_SUB) == 17466) then -- Dia Wand + diaPowerMod = 1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + diaPowerMod = diaPowerMod + 4; + caster:delStatusEffect(EFFECT_SABOTEUR); + end + + -- Check for Bio. + bio = target:getStatusEffect(EFFECT_BIO); + + -- Do it! + if(bio == nil or (DIA_OVERWRITE == 0 and bio:getPower() <= 4) or (DIA_OVERWRITE == 1 and bio:getPower() < 4)) then + target:addStatusEffect(EFFECT_DIA,4,3,duration,0,diaPowerMod); + spell:setMsg(2); + else + spell:setMsg(75); + end + + -- Try to kill same tier Bio + if(BIO_OVERWRITE == 1 and bio ~= nil) then + if(bio:getPower() <= 4) then + target:delStatusEffect(EFFECT_BIO); + end + end + + return final; + +end; Index: scripts/globals/spells/dia_v.lua =================================================================== --- scripts/globals/spells/dia_v.lua (revision 0) +++ scripts/globals/spells/dia_v.lua (working copy) @@ -0,0 +1,73 @@ +----------------------------------------- +-- Spell: Dia V +-- Lowers an enemy's defense and gradually deals light elemental damage. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + --calculate raw damage + basedmg = caster:getSkillLevel(ENFEEBLING_MAGIC_SKILL); + dmg = calculateMagicDamage(basedmg,5,caster,spell,target,ENFEEBLING_MAGIC_SKILL,MOD_INT,false); + + -- Softcaps at 512, should always do at least 1 + + dmg = utils.clamp(dmg, 1, 512); + + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ENFEEBLING_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments including the actual damage dealt + final = finalMagicAdjustments(caster,target,spell,dmg); + + -- Calculate duration. + local duration = 120; + local diaPowerMod = 0; + + if(caster:getEquipID(SLOT_MAIN) == 17466 or caster:getEquipID(SLOT_SUB) == 17466) then -- Dia Wand + diaPowerMod = 1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + diaPowerMod = diaPowerMod + 5; + caster:delStatusEffect(EFFECT_SABOTEUR); + end + + -- Check for Bio. + bio = target:getStatusEffect(EFFECT_BIO); + + -- Do it! + if(bio == nil or (DIA_OVERWRITE == 0 and bio:getPower() <= 5) or (DIA_OVERWRITE == 1 and bio:getPower() < 5)) then + target:addStatusEffect(EFFECT_DIA,5,3,duration,0,diaPowerMod); + spell:setMsg(2); + else + spell:setMsg(75); + end + + -- Try to kill same tier Bio + if(BIO_OVERWRITE == 1 and bio ~= nil) then + if(bio:getPower() <= 5) then + target:delStatusEffect(EFFECT_BIO); + end + end + + return final; + +end; Index: scripts/globals/spells/diaga.lua =================================================================== --- scripts/globals/spells/diaga.lua (revision 3520) +++ scripts/globals/spells/diaga.lua (working copy) @@ -36,14 +36,26 @@ final = finalMagicAdjustments(caster,target,spell,dmg); -- Calculate duration. - duration = 60; + local duration = 60; + + local diaPowerMod = 0; + + if(caster:getEquipID(SLOT_MAIN) == 17466 or caster:getEquipID(SLOT_SUB) == 17466) then -- Dia Wand + diaPowerMod = 1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + diaPowerMod = diaPowerMod + 1; + caster:delStatusEffect(EFFECT_SABOTEUR); + end -- Check for Bio. bio = target:getStatusEffect(EFFECT_BIO); -- Do it! if(DIA_OVERWRITE == 0 or (DIA_OVERWRITE == 1 and bio == nil)) then - target:addStatusEffect(EFFECT_DIA,1,3,duration); + target:addStatusEffect(EFFECT_DIA,1,3,duration,0,diaPowerMod); spell:setMsg(2); else spell:setMsg(75); Index: scripts/globals/spells/diaga_ii.lua =================================================================== --- scripts/globals/spells/diaga_ii.lua (revision 3520) +++ scripts/globals/spells/diaga_ii.lua (working copy) @@ -35,14 +35,26 @@ final = finalMagicAdjustments(caster,target,spell,dmg); -- Calculate duration. - duration = 120; + local duration = 120; + local diaPowerMod = 0; + + if(caster:getEquipID(SLOT_MAIN) == 17466 or caster:getEquipID(SLOT_SUB) == 17466) then -- Dia Wand + diaPowerMod = 1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + diaPowerMod = diaPowerMod + 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end + -- Check for Bio. bio = target:getStatusEffect(EFFECT_BIO); -- Do it! if(bio == nil or (DIA_OVERWRITE == 0 and bio:getPower() <= 2) or (DIA_OVERWRITE == 1 and bio:getPower() < 2)) then - target:addStatusEffect(EFFECT_DIA,2,3,duration,FLAG_ERASABLE); + target:addStatusEffect(EFFECT_DIA,2,3,duration,0,diaPowerMod); spell:setMsg(2); else spell:setMsg(75); Index: scripts/globals/spells/diaga_iii.lua =================================================================== --- scripts/globals/spells/diaga_iii.lua (revision 3520) +++ scripts/globals/spells/diaga_iii.lua (working copy) @@ -35,14 +35,26 @@ final = finalMagicAdjustments(caster,target,spell,dmg); -- Calculate duration. - duration = 120; + local duration = 120; + + local diaPowerMod = 0; + + if(caster:getEquipID(SLOT_MAIN) == 17466 or caster:getEquipID(SLOT_SUB) == 17466) then -- Dia Wand + diaPowerMod = 1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + diaPowerMod = diaPowerMod + 3; + caster:delStatusEffect(EFFECT_SABOTEUR); + end -- Check for Bio. bio = target:getStatusEffect(EFFECT_BIO); -- Do it! if(bio == nil or (DIA_OVERWRITE == 0 and bio:getPower() <= 3) or (DIA_OVERWRITE == 1 and bio:getPower() < 3)) then - target:addStatusEffect(EFFECT_DIA,3,3,duration,FLAG_ERASABLE); + target:addStatusEffect(EFFECT_DIA,3,3,duration,0,diaPowerMod); spell:setMsg(2); else spell:setMsg(75); Index: scripts/globals/spells/diaga_iv.lua =================================================================== --- scripts/globals/spells/diaga_iv.lua (revision 0) +++ scripts/globals/spells/diaga_iv.lua (working copy) @@ -0,0 +1,72 @@ +----------------------------------------- +-- Spell: Diaga IV +-- Lowers an enemy's defense and gradually deals light elemental damage. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + --calculate raw damage + basedmg = caster:getSkillLevel(ENFEEBLING_MAGIC_SKILL) / 3; + dmg = calculateMagicDamage(basedmg,5,caster,spell,target,ENFEEBLING_MAGIC_SKILL,MOD_INT,false); + + dmg = utils.clamp(dmg, 1, 120); + + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ENFEEBLING_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments including the actual damage dealt + final = finalMagicAdjustments(caster,target,spell,dmg); + + -- Calculate duration. + local duration = 150; + + local diaPowerMod = 0; + + if(caster:getEquipID(SLOT_MAIN) == 17466 or caster:getEquipID(SLOT_SUB) == 17466) then -- Dia Wand + diaPowerMod = 1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + diaPowerMod = diaPowerMod + 4; + caster:delStatusEffect(EFFECT_SABOTEUR); + end + + -- Check for Bio. + bio = target:getStatusEffect(EFFECT_BIO); + + -- Do it! + if(bio == nil or (DIA_OVERWRITE == 0 and bio:getPower() <= 4) or (DIA_OVERWRITE == 1 and bio:getPower() < 4)) then + target:addStatusEffect(EFFECT_DIA,4,3,duration,0,diaPowerMod); + spell:setMsg(2); + else + spell:setMsg(75); + end + + -- Try to kill same tier Bio + if(BIO_OVERWRITE == 1 and bio ~= nil) then + if(bio:getPower() <= 4) then + target:delStatusEffect(EFFECT_BIO); + end + end + + return final; + +end; \ No newline at end of file Index: scripts/globals/spells/diaga_v.lua =================================================================== --- scripts/globals/spells/diaga_v.lua (revision 0) +++ scripts/globals/spells/diaga_v.lua (working copy) @@ -0,0 +1,72 @@ +----------------------------------------- +-- Spell: Diaga V +-- Lowers an enemy's defense and gradually deals light elemental damage. +----------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + --calculate raw damage + basedmg = caster:getSkillLevel(ENFEEBLING_MAGIC_SKILL) / 2; + dmg = calculateMagicDamage(basedmg,5,caster,spell,target,ENFEEBLING_MAGIC_SKILL,MOD_INT,false); + + dmg = utils.clamp(dmg, 1, 240); + + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ENFEEBLING_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments including the actual damage dealt + final = finalMagicAdjustments(caster,target,spell,dmg); + + -- Calculate duration. + local duration = 180; + + local diaPowerMod = 0; + + if(caster:getEquipID(SLOT_MAIN) == 17466 or caster:getEquipID(SLOT_SUB) == 17466) then -- Dia Wand + diaPowerMod = 1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + diaPowerMod = diaPowerMod + 5; + caster:delStatusEffect(EFFECT_SABOTEUR); + end + + -- Check for Bio. + bio = target:getStatusEffect(EFFECT_BIO); + + -- Do it! + if(bio == nil or (DIA_OVERWRITE == 0 and bio:getPower() <= 5) or (DIA_OVERWRITE == 1 and bio:getPower() < 5)) then + target:addStatusEffect(EFFECT_DIA,5,3,duration,0,diaPowerMod); + spell:setMsg(2); + else + spell:setMsg(75); + end + + -- Try to kill same tier Bio + if(BIO_OVERWRITE == 1 and bio ~= nil) then + if(bio:getPower() <= 5) then + target:delStatusEffect(EFFECT_BIO); + end + end + + return final; + +end; \ No newline at end of file Index: scripts/globals/spells/dispel.lua =================================================================== --- scripts/globals/spells/dispel.lua (revision 3520) +++ scripts/globals/spells/dispel.lua (working copy) @@ -1,8 +1,9 @@ ----------------------------------------- -- Spell: Dispel --- ----------------------------------------- - +require("scripts/globals/magic"); +require("scripts/globals/status"); +require("scripts/globals/settings"); ----------------------------------------- -- OnSpellCast ----------------------------------------- @@ -19,6 +20,11 @@ -- apply bonus, flash is hard to fully resist bonus = AffinityBonus(caster,spell) + 300; + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + bonus = bonus * 1.1; + end + local resist = applyResistance(caster,spell,target,dINT,ENFEEBLING_MAGIC_SKILL,bonus); local effect = EFFECT_NONE; Index: scripts/globals/spells/dispelga.lua =================================================================== --- scripts/globals/spells/dispelga.lua (revision 3520) +++ scripts/globals/spells/dispelga.lua (working copy) @@ -2,7 +2,9 @@ -- Spell: Dispelga -- ----------------------------------------- - +require("scripts/globals/magic"); +require("scripts/globals/status"); +require("scripts/globals/settings"); ----------------------------------------- -- OnSpellCast ----------------------------------------- @@ -18,6 +20,11 @@ -- apply bonus, flash is hard to fully resist bonus = AffinityBonus(caster,spell); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + bonus = bonus * 1.1; + end + local resist = applyResistance(caster,spell,target,dINT,ENFEEBLING_MAGIC_SKILL,bonus); local effect = EFFECT_NONE; Index: scripts/globals/spells/dokumori_ichi.lua =================================================================== --- scripts/globals/spells/dokumori_ichi.lua (revision 3520) +++ scripts/globals/spells/dokumori_ichi.lua (working copy) @@ -31,7 +31,7 @@ if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then if(duration >= 30) then if(target:addStatusEffect(effect,power,3,duration)) then - spell:setMsg(236); + spell:setMsg(237); else spell:setMsg(75); end Index: scripts/globals/spells/dokumori_ni.lua =================================================================== --- scripts/globals/spells/dokumori_ni.lua (revision 3520) +++ scripts/globals/spells/dokumori_ni.lua (working copy) @@ -31,7 +31,7 @@ if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then if(duration >= 60) then if(target:addStatusEffect(effect,power,3,duration)) then - spell:setMsg(236); + spell:setMsg(237); else spell:setMsg(75); end Index: scripts/globals/spells/dokumori_san.lua =================================================================== --- scripts/globals/spells/dokumori_san.lua (revision 3520) +++ scripts/globals/spells/dokumori_san.lua (working copy) @@ -31,7 +31,7 @@ if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then if(duration >= 120) then if(target:addStatusEffect(effect,power,3,duration)) then - spell:setMsg(236); + spell:setMsg(237); else spell:setMsg(75); end Index: scripts/globals/spells/doom.lua =================================================================== --- scripts/globals/spells/doom.lua (revision 3520) +++ scripts/globals/spells/doom.lua (working copy) @@ -17,8 +17,10 @@ function onSpellCast(caster,target,spell) local effect = EFFECT_DOOM; if(target:hasStatusEffect(effect) == false) then - spell:setMsg(237); -- gains effect - target:addStatusEffect(effect,10,3,30); + if(math.random(0,100) >= target:getMod(MOD_DOOMRES)) then + spell:setMsg(237); -- gains effect + target:addStatusEffect(effect,10,3,30); + end else spell:setMsg(75) -- no effect end Index: scripts/globals/spells/doton_ichi.lua =================================================================== --- scripts/globals/spells/doton_ichi.lua (revision 3520) +++ scripts/globals/spells/doton_ichi.lua (working copy) @@ -22,20 +22,27 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end - + -- boost ninjitsu damage + -- 5% ninjitsu damage + local head = caster:getEquipID(SLOT_HEAD); + if(head == 15084 or head == 15257) then + dmg = math.floor(dmg * 1.05); + end + if(head == 10662) then + dmg = math.floor(dmg * 1.10); + end dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_DOTON_EFFECT); + duration = 30 + caster:getMerit(MERIT_DOTON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_WINDRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_WINDRES); return final; Index: scripts/globals/spells/doton_ni.lua =================================================================== --- scripts/globals/spells/doton_ni.lua (revision 3520) +++ scripts/globals/spells/doton_ni.lua (working copy) @@ -22,20 +22,27 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end - + -- boost ninjitsu damage + -- 5% ninjitsu damage + local head = caster:getEquipID(SLOT_HEAD); + if(head == 15084 or head == 15257) then + dmg = math.floor(dmg * 1.05); + end + if(head == 10662) then + dmg = math.floor(dmg * 1.10); + end dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_DOTON_EFFECT); + duration = 30 + caster:getMerit(MERIT_DOTON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_WINDRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_WINDRES); return final; Index: scripts/globals/spells/doton_san.lua =================================================================== --- scripts/globals/spells/doton_san.lua (revision 3520) +++ scripts/globals/spells/doton_san.lua (working copy) @@ -22,20 +22,27 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end - + -- boost ninjitsu damage + -- 5% ninjitsu damage + local head = caster:getEquipID(SLOT_HEAD); + if(head == 15084 or head == 15257) then + dmg = math.floor(dmg * 1.05); + end + if(head == 10662) then + dmg = math.floor(dmg * 1.10); + end dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_DOTON_EFFECT); + duration = 30 + caster:getMerit(MERIT_DOTON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_WINDRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_WINDRES); return final; Index: scripts/globals/spells/dragonfoe_mambo.lua =================================================================== --- scripts/globals/spells/dragonfoe_mambo.lua (revision 3520) +++ scripts/globals/spells/dragonfoe_mambo.lua (working copy) @@ -3,7 +3,7 @@ -- Grants evasion bonus to all members. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,16 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local sItem = caster:getEquipID(2); - local sLvl = caster:getSkillLevel(SINGING_SKILL); -- Gets skill level of Singing - - -- TODO: mambo bonus - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_MAMBO); - target:addStatusEffect(EFFECT_MAMBO,2,0,120); - spell:setMsg(230); - return EFFECT_MAMBO; end; \ No newline at end of file Index: scripts/globals/spells/drain_ii.lua =================================================================== --- scripts/globals/spells/drain_ii.lua (revision 3520) +++ scripts/globals/spells/drain_ii.lua (working copy) @@ -16,6 +16,7 @@ end; function onSpellCast(caster,target,spell) + --calculate raw damage (unknown function -> only dark skill though) - using http://www.bluegartr.com/threads/44518-Drain-Calculations -- also have small constant to account for 0 dark skill dmg = 20 + (1.236 * (caster:getSkillLevel(DARK_MAGIC_SKILL)) + caster:getMod(79 + DARK_MAGIC_SKILL)); @@ -40,7 +41,7 @@ dmg = finalMagicAdjustments(caster,target,spell,dmg); dmg = (dmg * DRAIN_POWER); - + local leftOver = (caster:getHP() + dmg) - caster:getMaxHP(); if(leftOver > 0) then Index: scripts/globals/spells/dread_spikes.lua =================================================================== --- scripts/globals/spells/dread_spikes.lua (revision 3520) +++ scripts/globals/spells/dread_spikes.lua (working copy) @@ -13,18 +13,19 @@ end; function onSpellCast(caster,target,spell) - local duration = 60; - local power = 0; - local typeEffect = EFFECT_DREAD_SPIKES; + local duration = 60; + local power = 0; + local typeEffect = EFFECT_DREAD_SPIKES; + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + if(target:addStatusEffect(typeEffect,power,0,duration)) then + spell:setMsg(230); + else + spell:setMsg(75); + end - if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then - duration = duration * 3; - end - if(target:addStatusEffect(typeEffect,power,0,duration)) then - spell:setMsg(230); - else - spell:setMsg(75); - end - - return typeEffect; + return typeEffect; end; Index: scripts/globals/spells/earth_carol.lua =================================================================== --- scripts/globals/spells/earth_carol.lua (revision 0) +++ scripts/globals/spells/earth_carol.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Earth Carol +-- MOD_EARTHRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 40, 120, MOD_EARTHRES); +end; Index: scripts/globals/spells/earth_carol_ii.lua =================================================================== --- scripts/globals/spells/earth_carol_ii.lua (revision 0) +++ scripts/globals/spells/earth_carol_ii.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Earth Carol II +-- MOD_EARTHRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 50, 120, MOD_EARTHRES); +end; Index: scripts/globals/spells/embrava.lua =================================================================== --- scripts/globals/spells/embrava.lua (revision 3520) +++ scripts/globals/spells/embrava.lua (working copy) @@ -1,9 +1,10 @@ --------------------------------------- --- Spell: Embrava --- Consumes 20% of your maximum MP. Gradually restores --- target party member's HP and MP and increases attack speed. --------------------------------------- - +----------------------------------------- +-- Spell: Embrava +-- Adds Regen Regain and Haste AoE +-- Stacks with other Status +-- Duration: 300 secs +----------------------------------------- + require("scripts/globals/settings"); require("scripts/globals/status"); require("scripts/globals/magic"); @@ -13,20 +14,21 @@ ----------------------------------------- function OnMagicCastingCheck(caster,target,spell) - return 0; + return 0; end; function onSpellCast(caster,target,spell) - local skill = caster:getSkillLevel(ENHANCING_MAGIC_SKILL); - if (skill > 500) then - skill = 500; - end - local regen = math.floor(skill / 7) + 1; - local refresh = math.floor(skill / 100) + 1; - local haste = math.floor(skill/(500/256)); - - target:addStatusEffect(EFFECT_EMBRAVA,regen,0,180,0,refresh,haste); - - return EFFECT_EMBRAVA; -end; \ No newline at end of file + local skill = caster:getSkillLevel(ENHANCING_MAGIC_SKILL); + if (skill > 500) then + skill = 500; + end + local regen = math.floor(skill / 7) + 1; + local refresh = math.floor(skill / 100) + 1; + local haste = math.floor(skill/(500/256)); + + target:addStatusEffect(EFFECT_EMBRAVA,regen,0,180,0,refresh,haste); + + return EFFECT_EMBRAVA; +end; + Index: scripts/globals/spells/enchanting_etude.lua =================================================================== --- scripts/globals/spells/enchanting_etude.lua (revision 0) +++ scripts/globals/spells/enchanting_etude.lua (working copy) @@ -0,0 +1,51 @@ +-------------------------------------- +-- Spell: Enchanting Etude +-- Boosts targets CHR stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <180)then + power = 3 + elseif(enchanceSkill >=181 and enchanceSkill <=235)then + power = 4 + elseif(enchanceSkill >=236 and enchanceSkill <=288)then + power = 5 + elseif(enchanceSkill >=289 and enchanceSkill <=342)then + power = 6 + elseif(enchanceSkill >=343 and enchanceSkill <=396)then + power = 7 + elseif(enchanceSkill >=397 and enchanceSkill <=449)then + power = 8 + elseif(enchanceSkill >=450)then + power = 9 + else + power = 10 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_CHR_DOWN) == true) then + target:delStatusEffect(EFFECT_CHR_DOWN); + else + target:addStatusEffect(EFFECT_CHR_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/esuna.lua =================================================================== --- scripts/globals/spells/esuna.lua (revision 3520) +++ scripts/globals/spells/esuna.lua (working copy) @@ -38,6 +38,5 @@ end spell:setMsg(75); -- no effect - return 0; end; Index: scripts/globals/spells/firaga_ii.lua =================================================================== --- scripts/globals/spells/firaga_ii.lua (revision 3520) +++ scripts/globals/spells/firaga_ii.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- Spell: Firaga 2 --- Deals wind damage to an enemy. +-- Spell: Firaga II +-- Deals fire damage to an enemy. ----------------------------------------- require("scripts/globals/magic"); Index: scripts/globals/spells/firaga_iii.lua =================================================================== --- scripts/globals/spells/firaga_iii.lua (revision 3520) +++ scripts/globals/spells/firaga_iii.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- Spell: Firaga 3 --- Deals wind damage to an enemy. +-- Spell: Firaga III +-- Deals fire damage to an enemy. ----------------------------------------- require("scripts/globals/magic"); Index: scripts/globals/spells/firaga_iv.lua =================================================================== --- scripts/globals/spells/firaga_iv.lua (revision 0) +++ scripts/globals/spells/firaga_iv.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Firaga IV +-- Deals fire damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(886,2,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/firaga_v.lua =================================================================== --- scripts/globals/spells/firaga_v.lua (revision 0) +++ scripts/globals/spells/firaga_v.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Firaga V +-- Deals fire damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(1178,2.3,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/fire_carol.lua =================================================================== --- scripts/globals/spells/fire_carol.lua (revision 0) +++ scripts/globals/spells/fire_carol.lua (working copy) @@ -0,0 +1,18 @@ +----------------------------------------- +-- Spell: Fire Carol +-- MOD_FIRERES +----------------------------------------- +package.loaded["scripts/globals/magic"] = nil; +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 40, 120, MOD_FIRERES); +end; Index: scripts/globals/spells/fire_carol_ii.lua =================================================================== --- scripts/globals/spells/fire_carol_ii.lua (revision 0) +++ scripts/globals/spells/fire_carol_ii.lua (working copy) @@ -0,0 +1,18 @@ +----------------------------------------- +-- Spell: Fire Carol II +-- MOD_FIRERES +----------------------------------------- +package.loaded["scripts/globals/magic"] = nil; +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 50, 120, MOD_FIRERES); +end; Index: scripts/globals/spells/fire_ii.lua =================================================================== --- scripts/globals/spells/fire_ii.lua (revision 3520) +++ scripts/globals/spells/fire_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Fire +-- Spell: Fire II -- Deals fire damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/fire_iii.lua =================================================================== --- scripts/globals/spells/fire_iii.lua (revision 3520) +++ scripts/globals/spells/fire_iii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Fire +-- Spell: Fire III -- Deals fire damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/fire_iv.lua =================================================================== --- scripts/globals/spells/fire_iv.lua (revision 3520) +++ scripts/globals/spells/fire_iv.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Fire +-- Spell: Fire IV -- Deals fire damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/fire_v.lua =================================================================== --- scripts/globals/spells/fire_v.lua (revision 3520) +++ scripts/globals/spells/fire_v.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Fire +-- Spell: Fire V -- Deals fire damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/foe_lullaby.lua =================================================================== --- scripts/globals/spells/foe_lullaby.lua (revision 3520) +++ scripts/globals/spells/foe_lullaby.lua (working copy) @@ -29,17 +29,10 @@ else -- add equipment bonus - local sItem = caster:getEquipID(2); + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_LULLABY) * 10)/100)); - -- Mary's Horn - if(sItem == 17366) then - duration = duration * 1.1; - end - - if(sItem == 17841 or sItem == 17854) then - duration = duration * 1.2; - end - if(target:addStatusEffect(EFFECT_LULLABY,1,0,duration)) then spell:setMsg(237); else Index: scripts/globals/spells/foe_lullaby_ii.lua =================================================================== --- scripts/globals/spells/foe_lullaby_ii.lua (revision 3520) +++ scripts/globals/spells/foe_lullaby_ii.lua (working copy) @@ -29,17 +29,10 @@ else -- add equipment bonus - local sItem = caster:getEquipID(2); + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_LULLABY) * 10)/100)); - -- Mary's Horn - if(sItem == 17366) then - duration = duration * 1.1; - end - - if(sItem == 17841 or sItem == 17854) then - duration = duration * 1.2; - end - if(target:addStatusEffect(EFFECT_LULLABY,1,0,duration)) then spell:setMsg(237); else Index: scripts/globals/spells/foe_requiem.lua =================================================================== --- scripts/globals/spells/foe_requiem.lua (revision 3520) +++ scripts/globals/spells/foe_requiem.lua (working copy) @@ -25,42 +25,12 @@ spell:setMsg(85);--resist message return 1; end - - local sItem = caster:getEquipID(2); - - -- flute +1 - if(sItem == 17372) then - power = power + 1; - end - - if(sItem == 17844) then - power = power + 1; - end - - if(sItem == 17346) then - power = power + 2; - end - - if(sItem == 17379) then - power = power + 2; - end - - if(sItem == 17362) then - power = power + 2; - end - - if(sItem == 17832) then - power = power + 3; - end - - if(sItem == 17852) then - power = power + 4; - end - - if(sItem == 18342) then - power = power + 2; - end - + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_REQUIEM) * 10)/100)); + + power = power + caster:getMod(MOD_REQUIEM) + caster:getMod(MOD_ALL_SONGS); + -- Try to overwrite weaker slow / haste if(canOverwrite(target, effect, power)) then -- overwrite them Index: scripts/globals/spells/foe_requiem_ii.lua =================================================================== --- scripts/globals/spells/foe_requiem_ii.lua (revision 3520) +++ scripts/globals/spells/foe_requiem_ii.lua (working copy) @@ -25,42 +25,13 @@ spell:setMsg(85);--resist message return 1; end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_REQUIEM) * 10)/100)); + + power = power + caster:getMod(MOD_REQUIEM) + caster:getMod(MOD_ALL_SONGS); - local sItem = caster:getEquipID(2); - - -- flute +1 - if(sItem == 17372) then - power = power + 1; - end - - if(sItem == 17844) then - power = power + 1; - end - - if(sItem == 17346) then - power = power + 2; - end - - if(sItem == 17379) then - power = power + 2; - end - - if(sItem == 17362) then - power = power + 2; - end - - if(sItem == 17832) then - power = power + 3; - end - - if(sItem == 17852) then - power = power + 4; - end - - if(sItem == 18342) then - power = power + 2; - end - -- Try to overwrite weaker slow / haste if(canOverwrite(target, effect, power)) then -- overwrite them Index: scripts/globals/spells/foe_requiem_iii.lua =================================================================== --- scripts/globals/spells/foe_requiem_iii.lua (revision 3520) +++ scripts/globals/spells/foe_requiem_iii.lua (working copy) @@ -25,42 +25,12 @@ spell:setMsg(85);--resist message return 1; end + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_REQUIEM) * 10)/100)); + + power = power + caster:getMod(MOD_REQUIEM) + caster:getMod(MOD_ALL_SONGS); - local sItem = caster:getEquipID(2); - - -- flute +1 - if(sItem == 17372) then - power = power + 1; - end - - if(sItem == 17844) then - power = power + 1; - end - - if(sItem == 17346) then - power = power + 2; - end - - if(sItem == 17379) then - power = power + 2; - end - - if(sItem == 17362) then - power = power + 2; - end - - if(sItem == 17832) then - power = power + 3; - end - - if(sItem == 17852) then - power = power + 4; - end - - if(sItem == 18342) then - power = power + 2; - end - -- Try to overwrite weaker slow / haste if(canOverwrite(target, effect, power)) then -- overwrite them Index: scripts/globals/spells/foe_requiem_iv.lua =================================================================== --- scripts/globals/spells/foe_requiem_iv.lua (revision 3520) +++ scripts/globals/spells/foe_requiem_iv.lua (working copy) @@ -25,42 +25,12 @@ spell:setMsg(85);--resist message return 1; end + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_REQUIEM) * 10)/100)); + + power = power + caster:getMod(MOD_REQUIEM) + caster:getMod(MOD_ALL_SONGS); - local sItem = caster:getEquipID(2); - - -- flute +1 - if(sItem == 17372) then - power = power + 1; - end - - if(sItem == 17844) then - power = power + 1; - end - - if(sItem == 17346) then - power = power + 2; - end - - if(sItem == 17379) then - power = power + 2; - end - - if(sItem == 17362) then - power = power + 2; - end - - if(sItem == 17832) then - power = power + 3; - end - - if(sItem == 17852) then - power = power + 4; - end - - if(sItem == 18342) then - power = power + 2; - end - -- Try to overwrite weaker slow / haste if(canOverwrite(target, effect, power)) then -- overwrite them Index: scripts/globals/spells/foe_requiem_v.lua =================================================================== --- scripts/globals/spells/foe_requiem_v.lua (revision 3520) +++ scripts/globals/spells/foe_requiem_v.lua (working copy) @@ -25,42 +25,12 @@ spell:setMsg(85);--resist message return 1; end + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_REQUIEM) * 10)/100)); + + power = power + caster:getMod(MOD_REQUIEM) + caster:getMod(MOD_ALL_SONGS); - local sItem = caster:getEquipID(2); - - -- flute +1 - if(sItem == 17372) then - power = power + 1; - end - - if(sItem == 17844) then - power = power + 1; - end - - if(sItem == 17346) then - power = power + 2; - end - - if(sItem == 17379) then - power = power + 2; - end - - if(sItem == 17362) then - power = power + 2; - end - - if(sItem == 17832) then - power = power + 3; - end - - if(sItem == 17852) then - power = power + 4; - end - - if(sItem == 18342) then - power = power + 2; - end - -- Try to overwrite weaker slow / haste if(canOverwrite(target, effect, power)) then -- overwrite them Index: scripts/globals/spells/foe_requiem_vi.lua =================================================================== --- scripts/globals/spells/foe_requiem_vi.lua (revision 3520) +++ scripts/globals/spells/foe_requiem_vi.lua (working copy) @@ -30,42 +30,12 @@ if(caster:getMainLvl() >= 75) then power = power + 1; end - - local sItem = caster:getEquipID(2); - - -- flute +1 - if(sItem == 17372) then - power = power + 1; - end - - if(sItem == 17844) then - power = power + 1; - end - - if(sItem == 17346) then - power = power + 2; - end - - if(sItem == 17379) then - power = power + 2; - end - - if(sItem == 17362) then - power = power + 2; - end - - if(sItem == 17832) then - power = power + 3; - end - - if(sItem == 17852) then - power = power + 4; - end - - if(sItem == 18342) then - power = power + 2; - end - + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_REQUIEM) * 10)/100)); + + power = power + caster:getMod(MOD_REQUIEM) + caster:getMod(MOD_ALL_SONGS); + -- Try to overwrite weaker slow / haste if(canOverwrite(target, effect, power)) then -- overwrite them Index: scripts/globals/spells/foe_requiem_vii.lua =================================================================== --- scripts/globals/spells/foe_requiem_vii.lua (revision 3520) +++ scripts/globals/spells/foe_requiem_vii.lua (working copy) @@ -14,7 +14,7 @@ function onSpellCast(caster,target,spell) local effect = EFFECT_REQUIEM; local duration = 160; - local power = 8; + local power = 7; bonus = AffinityBonus(caster, spell); pCHR = caster:getStat(MOD_CHR); @@ -25,42 +25,12 @@ spell:setMsg(85);--resist message return 1; end + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_REQUIEM) * 10)/100)); + + power = power + caster:getMod(MOD_REQUIEM) + caster:getMod(MOD_ALL_SONGS); - local sItem = caster:getEquipID(2); - - -- flute +1 - if(sItem == 17372) then - power = power + 1; - end - - if(sItem == 17844) then - power = power + 1; - end - - if(sItem == 17346) then - power = power + 2; - end - - if(sItem == 17379) then - power = power + 2; - end - - if(sItem == 17362) then - power = power + 2; - end - - if(sItem == 17832) then - power = power + 3; - end - - if(sItem == 17852) then - power = power + 4; - end - - if(sItem == 18342) then - power = power + 2; - end - -- Try to overwrite weaker slow / haste if(canOverwrite(target, effect, power)) then -- overwrite them Index: scripts/globals/spells/foe_requiem_viii.lua =================================================================== --- scripts/globals/spells/foe_requiem_viii.lua (revision 0) +++ scripts/globals/spells/foe_requiem_viii.lua (working copy) @@ -0,0 +1,45 @@ +----------------------------------------- +-- Spell: Foe Requiem VIII +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local effect = EFFECT_REQUIEM; + local duration = 160; + local power = 8; + + bonus = AffinityBonus(caster, spell); + pCHR = caster:getStat(MOD_CHR); + mCHR = target:getStat(MOD_CHR); + dCHR = (pCHR - mCHR); + resm = applyResistance(caster,spell,target,dCHR,SINGING_SKILL,bonus); + if(resm < 0.5) then + spell:setMsg(85);--resist message + return 1; + end + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_REQUIEM) * 10)/100)); + + power = power + caster:getMod(MOD_REQUIEM) + caster:getMod(MOD_ALL_SONGS); + + -- Try to overwrite weaker slow / haste + if(canOverwrite(target, effect, power)) then + -- overwrite them + target:delStatusEffect(effect); + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(237); + else + spell:setMsg(75); -- no effect + end + + return effect; +end; \ No newline at end of file Index: scripts/globals/spells/foe_sirvente.lua =================================================================== --- scripts/globals/spells/foe_sirvente.lua (revision 0) +++ scripts/globals/spells/foe_sirvente.lua (working copy) @@ -0,0 +1,36 @@ +----------------------------------------- +-- Spell: Foe Sirvente +-- Grants enmity minus to a party member. +-- I'm sure it's not correct but a stop gap until it's implemented. +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local duration = 120; + local power = 30; + if(caster:getObjType() == TYPE_PC) then + local merit =((target:getMerit(MERIT_FOE_SIRVENTE) * .01) - .05); + power = power + (power * merit); + end + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 2); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_SIRVENTE); + target:addStatusEffect(EFFECT_SIRVENTE,power,3,duration); + spell:setMsg(230); + return EFFECT_SIRVENTE; +end; \ No newline at end of file Index: scripts/globals/spells/fowl_aubade.lua =================================================================== --- scripts/globals/spells/fowl_aubade.lua (revision 0) +++ scripts/globals/spells/fowl_aubade.lua (working copy) @@ -0,0 +1,72 @@ +----------------------------------------- +-- Spell: Fowl Aubade +-- Increases Sleep Resistance to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + local sItem = caster:getEquipID(SLOT_RANGED); + local sLvl = caster:getSkillLevel(SINGING_SKILL); -- Gets skill level of Singing + local weapon = caster:getEquipID(SLOT_MAIN); + local weapon2 = caster:getEquipID(SLOT_SUB); + + if (caster:getEquipID(SLOT_BODY) == 11093) then -- Aoidos Hongreline +2 + duration = duration * 1.1; + elseif(caster:getEquipID(SLOT_BODY) == 11193) then -- Aoidos Hongreline +1 + duration = duration * 1.05; + end + if (caster:getEquipID(SLOT_NECK) == 11618) then -- Aoidos Matinee + duration = duration * 1.1; + end + if (caster:getEquipID(SLOT_LEGS) == 28074) then -- Marduks Shalwar +1 + duration = duration * 1.1; + end + if (weapon == 19000 or weapon2 == 19000) then -- Carnwenhan Lvl 75 + duration = duration * 1.1; + elseif (weapon == 19069 or weapon2 == 19069) then -- Carnwenhan Lvl 80 + duration = duration * 1.2; + elseif (weapon == 19089 or weapon2 == 19089) then -- Carnwenhan Lvl 85 + duration = duration * 1.3; + elseif (weapon == 19089 or weapon2 == 19089) then -- Carnwenhan Lvl 90 + duration = duration * 1.4; + elseif (weapon == 19719 or weapon2 == 19719) then -- Carnwenhan Lvl 95 + duration = duration * 1.4; + elseif (weapon == 19828 or weapon2 == 19828) then -- Carnwenhan Lvl 99 + duration = duration * 1.5; + elseif (weapon == 19957 or weapon2 == 19957) then -- Carnwenhan Lvl 99 - 2 + duration = duration * 1.4; + end + if(sItem == 18342 or sItem == 18577 or sItem == 18578) then -- Gjallarhorn Lvl 75 - 80 - 85 + power = power + 4; + elseif(sItem == 18579 or sItem == 18580) then -- Gjallarhorn Lvl 90 - 95 + power = power + 6; + elseif(sItem == 18840 or sItem == 18572) then -- Gjallarhorn Lvl 99 - 99-2 + power = power + 8; + end + if (sItem == 18575) then -- Daurdabla Lvl 90 + duration = duration * 1.25; + elseif (sItem == 18576 or sItem == 18839 or sItem == 18571) then -- Daurdabla Lvl 95 - 99 - 99-2 + duration = duration * 1.3; + end + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_AUBADE); + target:addStatusEffect(EFFECT_AUBADE,power,0,duration); + spell:setMsg(230); + return EFFECT_AUBADE; +end; \ No newline at end of file Index: scripts/globals/spells/gain-agi.lua =================================================================== --- scripts/globals/spells/gain-agi.lua (revision 0) +++ scripts/globals/spells/gain-agi.lua (working copy) @@ -0,0 +1,79 @@ +-------------------------------------- +-- Spell: Gain-AGI +-- Boosts targets AGI stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill <309)then + power = 5; + elseif(enchanceSkill >=309 and enchanceSkill <=319)then + power = 6; + elseif(enchanceSkill >=320 and enchanceSkill <=329)then + power = 7; + elseif(enchanceSkill >=330 and enchanceSkill <=339)then + power = 8; + elseif(enchanceSkill >=340 and enchanceSkill <=349)then + power = 9; + elseif(enchanceSkill >=350 and enchanceSkill <=359)then + power = 10; + elseif(enchanceSkill >=360 and enchanceSkill <=369)then + power = 11; + elseif(enchanceSkill >=370 and enchanceSkill <=379)then + power = 12; + elseif(enchanceSkill >=380 and enchanceSkill <=389)then + power = 13; + elseif(enchanceSkill >=390 and enchanceSkill <=399)then + power = 14; + elseif(enchanceSkill >=400 and enchanceSkill <=409)then + power = 15; + elseif(enchanceSkill >=410 and enchanceSkill <=419)then + power = 16; + elseif(enchanceSkill >=420 and enchanceSkill <=429)then + power = 17; + elseif(enchanceSkill >=430 and enchanceSkill <=439)then + power = 18; + elseif(enchanceSkill >=440 and enchanceSkill <=449)then + power = 19; + elseif(enchanceSkill >=450 and enchanceSkill <=459)then + power = 20; + elseif(enchanceSkill >=460 and enchanceSkill <=469)then + power = 21; + elseif(enchanceSkill >=470 and enchanceSkill <=479)then + power = 22; + elseif(enchanceSkill >=480 and enchanceSkill <=489)then + power = 23; + elseif(enchanceSkill >=480 and enchanceSkill <=499)then + power = 24; + else + power = 25; + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if(target:hasStatusEffect(EFFECT_AGI_DOWN) == true) then + target:delStatusEffect(EFFECT_AGI_DOWN); + else + target:addStatusEffect(EFFECT_AGI_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/gain-chr.lua =================================================================== --- scripts/globals/spells/gain-chr.lua (revision 0) +++ scripts/globals/spells/gain-chr.lua (working copy) @@ -0,0 +1,79 @@ +-------------------------------------- +-- Spell: Gain-CHR +-- Boosts targets CHR stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill <309)then + power = 5; + elseif(enchanceSkill >=309 and enchanceSkill <=319)then + power = 6; + elseif(enchanceSkill >=320 and enchanceSkill <=329)then + power = 7; + elseif(enchanceSkill >=330 and enchanceSkill <=339)then + power = 8; + elseif(enchanceSkill >=340 and enchanceSkill <=349)then + power = 9; + elseif(enchanceSkill >=350 and enchanceSkill <=359)then + power = 10; + elseif(enchanceSkill >=360 and enchanceSkill <=369)then + power = 11; + elseif(enchanceSkill >=370 and enchanceSkill <=379)then + power = 12; + elseif(enchanceSkill >=380 and enchanceSkill <=389)then + power = 13; + elseif(enchanceSkill >=390 and enchanceSkill <=399)then + power = 14; + elseif(enchanceSkill >=400 and enchanceSkill <=409)then + power = 15; + elseif(enchanceSkill >=410 and enchanceSkill <=419)then + power = 16; + elseif(enchanceSkill >=420 and enchanceSkill <=429)then + power = 17; + elseif(enchanceSkill >=430 and enchanceSkill <=439)then + power = 18; + elseif(enchanceSkill >=440 and enchanceSkill <=449)then + power = 19; + elseif(enchanceSkill >=450 and enchanceSkill <=459)then + power = 20; + elseif(enchanceSkill >=460 and enchanceSkill <=469)then + power = 21; + elseif(enchanceSkill >=470 and enchanceSkill <=479)then + power = 22; + elseif(enchanceSkill >=480 and enchanceSkill <=489)then + power = 23; + elseif(enchanceSkill >=480 and enchanceSkill <=499)then + power = 24; + else + power = 25; + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if(target:hasStatusEffect(EFFECT_CHR_DOWN) == true) then + target:delStatusEffect(EFFECT_CHR_DOWN); + else + target:addStatusEffect(EFFECT_CHR_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/gain-dex.lua =================================================================== --- scripts/globals/spells/gain-dex.lua (revision 0) +++ scripts/globals/spells/gain-dex.lua (working copy) @@ -0,0 +1,80 @@ +-------------------------------------- +-- Spell: Gain-DEX +-- Boosts targets DEX stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill <309)then + power = 5; + elseif(enchanceSkill >=309 and enchanceSkill <=319)then + power = 6; + elseif(enchanceSkill >=320 and enchanceSkill <=329)then + power = 7; + elseif(enchanceSkill >=330 and enchanceSkill <=339)then + power = 8; + elseif(enchanceSkill >=340 and enchanceSkill <=349)then + power = 9; + elseif(enchanceSkill >=350 and enchanceSkill <=359)then + power = 10; + elseif(enchanceSkill >=360 and enchanceSkill <=369)then + power = 11; + elseif(enchanceSkill >=370 and enchanceSkill <=379)then + power = 12; + elseif(enchanceSkill >=380 and enchanceSkill <=389)then + power = 13; + elseif(enchanceSkill >=390 and enchanceSkill <=399)then + power = 14; + elseif(enchanceSkill >=400 and enchanceSkill <=409)then + power = 15; + elseif(enchanceSkill >=410 and enchanceSkill <=419)then + power = 16; + elseif(enchanceSkill >=420 and enchanceSkill <=429)then + power = 17; + elseif(enchanceSkill >=430 and enchanceSkill <=439)then + power = 18; + elseif(enchanceSkill >=440 and enchanceSkill <=449)then + power = 19; + elseif(enchanceSkill >=450 and enchanceSkill <=459)then + power = 20; + elseif(enchanceSkill >=460 and enchanceSkill <=469)then + power = 21; + elseif(enchanceSkill >=470 and enchanceSkill <=479)then + power = 22; + elseif(enchanceSkill >=480 and enchanceSkill <=489)then + power = 23; + elseif(enchanceSkill >=480 and enchanceSkill <=499)then + power = 24; + else + power = 25; + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if(target:hasStatusEffect(EFFECT_DEX_DOWN) == true) then + target:delStatusEffect(EFFECT_DEX_DOWN); + else + target:addStatusEffect(EFFECT_DEX_BOOST,power,0,duration); + spell:setMsg(230); + end +end; Index: scripts/globals/spells/gain-int.lua =================================================================== --- scripts/globals/spells/gain-int.lua (revision 0) +++ scripts/globals/spells/gain-int.lua (working copy) @@ -0,0 +1,79 @@ +-------------------------------------- +-- Spell: Gain-INT +-- Boosts targets INT stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill <309)then + power = 5 + elseif(enchanceSkill >=309 and enchanceSkill <=319)then + power = 6 + elseif(enchanceSkill >=320 and enchanceSkill <=329)then + power = 7 + elseif(enchanceSkill >=330 and enchanceSkill <=339)then + power = 8 + elseif(enchanceSkill >=340 and enchanceSkill <=349)then + power = 9 + elseif(enchanceSkill >=350 and enchanceSkill <=359)then + power = 10 + elseif(enchanceSkill >=360 and enchanceSkill <=369)then + power = 11 + elseif(enchanceSkill >=370 and enchanceSkill <=379)then + power = 12 + elseif(enchanceSkill >=380 and enchanceSkill <=389)then + power = 13 + elseif(enchanceSkill >=390 and enchanceSkill <=399)then + power = 14 + elseif(enchanceSkill >=400 and enchanceSkill <=409)then + power = 15 + elseif(enchanceSkill >=410 and enchanceSkill <=419)then + power = 16 + elseif(enchanceSkill >=420 and enchanceSkill <=429)then + power = 17 + elseif(enchanceSkill >=430 and enchanceSkill <=439)then + power = 18 + elseif(enchanceSkill >=440 and enchanceSkill <=449)then + power = 19 + elseif(enchanceSkill >=450 and enchanceSkill <=459)then + power = 20 + elseif(enchanceSkill >=460 and enchanceSkill <=469)then + power = 21 + elseif(enchanceSkill >=470 and enchanceSkill <=479)then + power = 22 + elseif(enchanceSkill >=480 and enchanceSkill <=489)then + power = 23 + elseif(enchanceSkill >=480 and enchanceSkill <=499)then + power = 24 + else + power = 25 + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if(target:hasStatusEffect(EFFECT_INT_DOWN) == true) then + target:delStatusEffect(EFFECT_INT_DOWN); + else + target:addStatusEffect(EFFECT_INT_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/gain-mnd.lua =================================================================== --- scripts/globals/spells/gain-mnd.lua (revision 0) +++ scripts/globals/spells/gain-mnd.lua (working copy) @@ -0,0 +1,79 @@ +-------------------------------------- +-- Spell: Gain-MND +-- Boosts targets MND stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill <309)then + power = 5 + elseif(enchanceSkill >=309 and enchanceSkill <=319)then + power = 6 + elseif(enchanceSkill >=320 and enchanceSkill <=329)then + power = 7 + elseif(enchanceSkill >=330 and enchanceSkill <=339)then + power = 8 + elseif(enchanceSkill >=340 and enchanceSkill <=349)then + power = 9 + elseif(enchanceSkill >=350 and enchanceSkill <=359)then + power = 10 + elseif(enchanceSkill >=360 and enchanceSkill <=369)then + power = 11 + elseif(enchanceSkill >=370 and enchanceSkill <=379)then + power = 12 + elseif(enchanceSkill >=380 and enchanceSkill <=389)then + power = 13 + elseif(enchanceSkill >=390 and enchanceSkill <=399)then + power = 14 + elseif(enchanceSkill >=400 and enchanceSkill <=409)then + power = 15 + elseif(enchanceSkill >=410 and enchanceSkill <=419)then + power = 16 + elseif(enchanceSkill >=420 and enchanceSkill <=429)then + power = 17 + elseif(enchanceSkill >=430 and enchanceSkill <=439)then + power = 18 + elseif(enchanceSkill >=440 and enchanceSkill <=449)then + power = 19 + elseif(enchanceSkill >=450 and enchanceSkill <=459)then + power = 20 + elseif(enchanceSkill >=460 and enchanceSkill <=469)then + power = 21 + elseif(enchanceSkill >=470 and enchanceSkill <=479)then + power = 22 + elseif(enchanceSkill >=480 and enchanceSkill <=489)then + power = 23 + elseif(enchanceSkill >=480 and enchanceSkill <=499)then + power = 24 + else + power = 25 + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if(target:hasStatusEffect(EFFECT_MND_DOWN) == true) then + target:delStatusEffect(EFFECT_MND_DOWN); + else + target:addStatusEffect(EFFECT_MND_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/gain-str.lua =================================================================== --- scripts/globals/spells/gain-str.lua (revision 0) +++ scripts/globals/spells/gain-str.lua (working copy) @@ -0,0 +1,79 @@ +-------------------------------------- +-- Spell: Gain-STR +-- Boosts targets STR stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill <309)then + power = 5 + elseif(enchanceSkill >=309 and enchanceSkill <=319)then + power = 6 + elseif(enchanceSkill >=320 and enchanceSkill <=329)then + power = 7 + elseif(enchanceSkill >=330 and enchanceSkill <=339)then + power = 8 + elseif(enchanceSkill >=340 and enchanceSkill <=349)then + power = 9 + elseif(enchanceSkill >=350 and enchanceSkill <=359)then + power = 10 + elseif(enchanceSkill >=360 and enchanceSkill <=369)then + power = 11 + elseif(enchanceSkill >=370 and enchanceSkill <=379)then + power = 12 + elseif(enchanceSkill >=380 and enchanceSkill <=389)then + power = 13 + elseif(enchanceSkill >=390 and enchanceSkill <=399)then + power = 14 + elseif(enchanceSkill >=400 and enchanceSkill <=409)then + power = 15 + elseif(enchanceSkill >=410 and enchanceSkill <=419)then + power = 16 + elseif(enchanceSkill >=420 and enchanceSkill <=429)then + power = 17 + elseif(enchanceSkill >=430 and enchanceSkill <=439)then + power = 18 + elseif(enchanceSkill >=440 and enchanceSkill <=449)then + power = 19 + elseif(enchanceSkill >=450 and enchanceSkill <=459)then + power = 20 + elseif(enchanceSkill >=460 and enchanceSkill <=469)then + power = 21 + elseif(enchanceSkill >=470 and enchanceSkill <=479)then + power = 22 + elseif(enchanceSkill >=480 and enchanceSkill <=489)then + power = 23 + elseif(enchanceSkill >=480 and enchanceSkill <=499)then + power = 24 + else + power = 25 + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if(target:hasStatusEffect(EFFECT_STR_DOWN) == true) then + target:delStatusEffect(EFFECT_STR_DOWN); + else + target:addStatusEffect(EFFECT_STR_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/gain-vit.lua =================================================================== --- scripts/globals/spells/gain-vit.lua (revision 0) +++ scripts/globals/spells/gain-vit.lua (working copy) @@ -0,0 +1,79 @@ +-------------------------------------- +-- Spell: Gain-VIT +-- Boosts targets VIT stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(34); + + duration = 300; + + if(enchanceSkill <309)then + power = 5 + elseif(enchanceSkill >=309 and enchanceSkill <=319)then + power = 6 + elseif(enchanceSkill >=320 and enchanceSkill <=329)then + power = 7 + elseif(enchanceSkill >=330 and enchanceSkill <=339)then + power = 8 + elseif(enchanceSkill >=340 and enchanceSkill <=349)then + power = 9 + elseif(enchanceSkill >=350 and enchanceSkill <=359)then + power = 10 + elseif(enchanceSkill >=360 and enchanceSkill <=369)then + power = 11 + elseif(enchanceSkill >=370 and enchanceSkill <=379)then + power = 12 + elseif(enchanceSkill >=380 and enchanceSkill <=389)then + power = 13 + elseif(enchanceSkill >=390 and enchanceSkill <=399)then + power = 14 + elseif(enchanceSkill >=400 and enchanceSkill <=409)then + power = 15 + elseif(enchanceSkill >=410 and enchanceSkill <=419)then + power = 16 + elseif(enchanceSkill >=420 and enchanceSkill <=429)then + power = 17 + elseif(enchanceSkill >=430 and enchanceSkill <=439)then + power = 18 + elseif(enchanceSkill >=440 and enchanceSkill <=449)then + power = 19 + elseif(enchanceSkill >=450 and enchanceSkill <=459)then + power = 20 + elseif(enchanceSkill >=460 and enchanceSkill <=469)then + power = 21 + elseif(enchanceSkill >=470 and enchanceSkill <=479)then + power = 22 + elseif(enchanceSkill >=480 and enchanceSkill <=489)then + power = 23 + elseif(enchanceSkill >=480 and enchanceSkill <=499)then + power = 24 + else + power = 25 + end + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if(target:hasStatusEffect(EFFECT_VIT_DOWN) == true) then + target:delStatusEffect(EFFECT_VIT_DOWN); + else + target:addStatusEffect(EFFECT_VIT_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/goblin_gavotte.lua =================================================================== --- scripts/globals/spells/goblin_gavotte.lua (revision 0) +++ scripts/globals/spells/goblin_gavotte.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- Spell: Goblin Gavotte +-- Increases Bind Resistance to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_GAVOTTE); + target:addStatusEffect(EFFECT_GAVOTTE,power,0,duration); + spell:setMsg(230); + return EFFECT_GAVOTTE; +end; \ No newline at end of file Index: scripts/globals/spells/goddesss_hymnus.lua =================================================================== --- scripts/globals/spells/goddesss_hymnus.lua (revision 0) +++ scripts/globals/spells/goddesss_hymnus.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- Spell: Goddess's Hymnus +-- Grants Reraise to Party Members +-- within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local duration = 120; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_HYMNUS) * 10)/100)); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_HYMNUS); + target:addStatusEffect(EFFECT_HYMNUS,3,0,duration); + spell:setMsg(230); + return EFFECT_HYMNUS; +end; \ No newline at end of file Index: scripts/globals/spells/gold_capriccio.lua =================================================================== --- scripts/globals/spells/gold_capriccio.lua (revision 0) +++ scripts/globals/spells/gold_capriccio.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- Spell: Gold Capriccio +-- Increases Petrification Resistance to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_CAPRICCIO); + target:addStatusEffect(EFFECT_CAPRICCIO,power,0,duration); + spell:setMsg(230); + return EFFECT_CAPRICCIO; +end; \ No newline at end of file Index: scripts/globals/spells/graviga.lua =================================================================== --- scripts/globals/spells/graviga.lua (revision 0) +++ scripts/globals/spells/graviga.lua (working copy) @@ -0,0 +1,51 @@ +----------------------------------------- +-- Spell: Graviga +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + -- Pull base stats. + dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); + bonus = AffinityBonus(caster,spell); + power = 20; -- 20% reduction + + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + + -- Duration, including resistance. Unconfirmed. + duration = 120 * applyResistance(caster,spell,target,dINT,35,bonus); + + if(100 * math.random() >= target:getMod(MOD_GRAVITYRES)) then + if(duration >= 30) then --Do it! + target:delStatusEffect(EFFECT_WEIGHT); + target:addStatusEffect(EFFECT_WEIGHT,power,0,duration); + spell:setMsg(236); + else +-- if(spell:isAOE() == false) then +-- spell:setMsg(85); +-- else + spell:setMsg(284); +-- end + end + else +-- if(spell:isAOE() == false) then +-- spell:setMsg(85); +-- else + spell:setMsg(284); +-- end + end + return EFFECT_WEIGHT; +end; \ No newline at end of file Index: scripts/globals/spells/gravity.lua =================================================================== --- scripts/globals/spells/gravity.lua (revision 3520) +++ scripts/globals/spells/gravity.lua (working copy) @@ -18,11 +18,22 @@ -- Pull base stats. dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); bonus = AffinityBonus(caster,spell); - power = 50; -- 50% reduction - + power = 20; -- 20% reduction + + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + -- Duration, including resistance. Unconfirmed. duration = 120 * applyResistance(caster,spell,target,dINT,35,bonus); + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power + (power * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + caster:delStatusEffect(EFFECT_SABOTEUR); + end + if(100 * math.random() >= target:getMod(MOD_GRAVITYRES)) then if(duration >= 30) then --Do it! target:delStatusEffect(EFFECT_WEIGHT); Index: scripts/globals/spells/gravity_ii.lua =================================================================== --- scripts/globals/spells/gravity_ii.lua (revision 0) +++ scripts/globals/spells/gravity_ii.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- Spell: Gravity II +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + -- Pull base stats. + dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); + bonus = AffinityBonus(caster,spell); + power = 40; -- 40% reduction + + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + + -- Duration, including resistance. Unconfirmed. + duration = 120 * applyResistance(caster,spell,target,dINT,35,bonus); + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power + (power * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + caster:delStatusEffect(EFFECT_SABOTEUR); + end + + if(100 * math.random() >= target:getMod(MOD_GRAVITYRES)) then + if(duration >= 30) then --Do it! + target:delStatusEffect(EFFECT_WEIGHT); + target:addStatusEffect(EFFECT_WEIGHT,power,0,duration); + spell:setMsg(236); + else +-- if(spell:isAOE() == false) then +-- spell:setMsg(85); +-- else + spell:setMsg(284); +-- end + end + else +-- if(spell:isAOE() == false) then +-- spell:setMsg(85); +-- else + spell:setMsg(284); +-- end + end + return EFFECT_WEIGHT; +end; \ No newline at end of file Index: scripts/globals/spells/haste.lua =================================================================== --- scripts/globals/spells/haste.lua (revision 3520) +++ scripts/globals/spells/haste.lua (working copy) @@ -9,10 +9,10 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) duration = 180; @@ -21,6 +21,9 @@ duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + power = 150; if(target:addStatusEffect(EFFECT_HASTE,power,0,duration) == false) then Index: scripts/globals/spells/hastega.lua =================================================================== --- scripts/globals/spells/hastega.lua (revision 0) +++ scripts/globals/spells/hastega.lua (working copy) @@ -0,0 +1,43 @@ +----------------------------------------- +-- Spell: Hastega +-- Composure increases duration 3x +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + duration = 180; + + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then + duration = duration * 3; + end + + if (caster:getEquipID(SLOT_FEET) == 11148) then -- Estoqueurs Houseaux +2 + duration = duration * 1.2; + elseif(caster:getEquipID(SLOT_FEET) == 11248) then -- Estoqueurs Houseaux +1 + duration = duration * 1.1; + end + if (caster:getEquipID(SLOT_BACK) == 16204) then -- Estoqueurs Cape + duration = duration * 1.1; + end + + power = 150; + + if(target:addStatusEffect(EFFECT_HASTE,power,0,duration) == false) then + spell:setMsg(75); + end + + return EFFECT_HASTE; +end; + + + Index: scripts/globals/spells/herb_pastoral.lua =================================================================== --- scripts/globals/spells/herb_pastoral.lua (revision 0) +++ scripts/globals/spells/herb_pastoral.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- Spell: Herb Pastoral +-- Increases Poison Resistance to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_PASTORAL); + target:addStatusEffect(EFFECT_PASTORAL,power,0,duration); + spell:setMsg(230); + return EFFECT_PASTORAL; +end; \ No newline at end of file Index: scripts/globals/spells/herculean_etude.lua =================================================================== --- scripts/globals/spells/herculean_etude.lua (revision 0) +++ scripts/globals/spells/herculean_etude.lua (working copy) @@ -0,0 +1,45 @@ +-------------------------------------- +-- Spell: Herculean Etude +-- Boosts targets STR stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + duration = 120; + + if(enchanceSkill <416)then + power = 12 + elseif(enchanceSkill >=417 and enchanceSkill <=445)then + power = 13 + elseif(enchanceSkill >=446 and enchanceSkill <=474)then + power = 14 + elseif(enchanceSkill >=475)then + power = 15 + else + power = 15 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_STR_DOWN) == true) then + target:delStatusEffect(EFFECT_STR_DOWN); + else + target:addStatusEffect(EFFECT_STR_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/hojo_ichi.lua =================================================================== --- scripts/globals/spells/hojo_ichi.lua (revision 3520) +++ scripts/globals/spells/hojo_ichi.lua (working copy) @@ -27,13 +27,29 @@ if(math.random(0,100) >= target:getMod(MOD_SLOWRES)) then -- Spell succeeds if a 1 or 1/2 resist check is achieved if(duration >= 150) then - - if(target:addStatusEffect(EFFECT_SLOW,power,0,duration)) then - spell:setMsg(236); + --Looks for another Slow or Haste effect and replaces it if stronger + slow = target:getStatusEffect(EFFECT_SLOW); + haste = target:getStatusEffect(EFFECT_HASTE); + if(slow ~= nil) then + if(slow:getPower() > power) then + target:delStatusEffect(EFFECT_SLOW); + target:addStatusEffect(EFFECT_SLOW,power,0,duration); + spell:setMsg(237); + else + spell:setMsg(75); + end + elseif(haste ~= nil) then + if(haste:getPower() < (-1 * power)) then + target:delStatusEffect(EFFECT_HASTE); + target:addStatusEffect(EFFECT_SLOW,power,0,duration); + spell:setMsg(237); + else + spell:setMsg(75); + end else - spell:setMsg(75); + target:addStatusEffect(EFFECT_SLOW,power,0,duration); + spell:setMsg(237); end - else spell:setMsg(85); end Index: scripts/globals/spells/hojo_ni.lua =================================================================== --- scripts/globals/spells/hojo_ni.lua (revision 3520) +++ scripts/globals/spells/hojo_ni.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- -- Spell: Hojo:Ni --- Description: Inflicts Slow on target. +-- Description: Inflicts Slow on target. -- Edited from slow.lua ----------------------------------------- @@ -16,7 +16,7 @@ end; function onSpellCast(caster,target,spell) - + dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); bonus = AffinityBonus(caster,spell); --Power for Hojo is a flat 19.5% reduction @@ -27,11 +27,28 @@ if(math.random(0,100) >= target:getMod(MOD_SLOWRES)) then -- Spell succeeds if a 1 or 1/2 resist check is achieved if(duration >= 150) then - - if(target:addStatusEffect(EFFECT_SLOW,power,0,duration)) then - spell:setMsg(236); + --Looks for another Slow or Haste effect and replaces it if stronger + slow = target:getStatusEffect(EFFECT_SLOW); + haste = target:getStatusEffect(EFFECT_HASTE); + if(slow ~= nil) then + if(slow:getPower() > power) then + target:delStatusEffect(EFFECT_SLOW); + target:addStatusEffect(EFFECT_SLOW,power,0,duration); + spell:setMsg(237); + else + spell:setMsg(75); + end + elseif(haste ~= nil) then + if(haste:getPower() < (-1 * power)) then + target:delStatusEffect(EFFECT_HASTE); + target:addStatusEffect(EFFECT_SLOW,power,0,duration); + spell:setMsg(237); + else + spell:setMsg(75); + end else - spell:setMsg(75); + target:addStatusEffect(EFFECT_SLOW,power,0,duration); + spell:setMsg(237); end else spell:setMsg(85); Index: scripts/globals/spells/hojo_san.lua =================================================================== --- scripts/globals/spells/hojo_san.lua (revision 3520) +++ scripts/globals/spells/hojo_san.lua (working copy) @@ -27,13 +27,29 @@ if(math.random(0,100) >= target:getMod(MOD_SLOWRES)) then -- Spell succeeds if a 1 or 1/2 resist check is achieved if(duration >= 210) then - - if(target:addStatusEffect(EFFECT_SLOW,power,0,duration)) then - spell:setMsg(236); + --Looks for another Slow or Haste effect and replaces it if stronger + slow = target:getStatusEffect(EFFECT_SLOW); + haste = target:getStatusEffect(EFFECT_HASTE); + if(slow ~= nil) then + if(slow:getPower() > power) then + target:delStatusEffect(EFFECT_SLOW); + target:addStatusEffect(EFFECT_SLOW,power,0,duration); + spell:setMsg(237); + else + spell:setMsg(75); + end + elseif(haste ~= nil) then + if(haste:getPower() < (-1 * power)) then + target:delStatusEffect(EFFECT_HASTE); + target:addStatusEffect(EFFECT_SLOW,power,0,duration); + spell:setMsg(237); + else + spell:setMsg(75); + end else - spell:setMsg(75); + target:addStatusEffect(EFFECT_SLOW,power,0,duration); + spell:setMsg(237); end - else spell:setMsg(85); end Index: scripts/globals/spells/holy_ii.lua =================================================================== --- scripts/globals/spells/holy_ii.lua (revision 3520) +++ scripts/globals/spells/holy_ii.lua (working copy) @@ -27,5 +27,12 @@ dmg = adjustForTarget(target,dmg); --add in final adjustments dmg = finalMagicAdjustments(caster,target,spell,dmg); + + if((caster:hasStatusEffect(EFFECT_DIVINE_EMBLEM) == true) and (target:isUndead() == true)) then + if(target:hasStatusEffect(EFFECT_AMNESIA) == false) then + target:addStatusEffect(EFFECT_AMNESIA,1,0,25); + end + end + return dmg; end; \ No newline at end of file Index: scripts/globals/spells/horde_lullaby.lua =================================================================== --- scripts/globals/spells/horde_lullaby.lua (revision 3520) +++ scripts/globals/spells/horde_lullaby.lua (working copy) @@ -28,17 +28,10 @@ spell:setMsg(75); else -- add equipment bonus - local sItem = caster:getEquipID(2); + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_LULLABY) * 10)/100)); - -- Mary's Horn - if(sItem == 17366) then - duration = duration * 1.1; - end - - if(sItem == 17841 or sItem == 17854) then - duration = duration * 1.2; - end - if(target:addStatusEffect(EFFECT_LULLABY,1,0,duration)) then spell:setMsg(237); else Index: scripts/globals/spells/horde_lullaby_ii.lua =================================================================== --- scripts/globals/spells/horde_lullaby_ii.lua (revision 3520) +++ scripts/globals/spells/horde_lullaby_ii.lua (working copy) @@ -28,17 +28,10 @@ spell:setMsg(75); else -- add equipment bonus - local sItem = caster:getEquipID(2); + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_LULLABY) * 10)/100)); - -- Mary's Horn - if(sItem == 17366) then - duration = duration * 1.1; - end - - if(sItem == 17841 or sItem == 17854) then - duration = duration * 1.2; - end - if(target:addStatusEffect(EFFECT_LULLABY,1,0,duration)) then spell:setMsg(237); else Index: scripts/globals/spells/hunters_prelude.lua =================================================================== --- scripts/globals/spells/hunters_prelude.lua (revision 0) +++ scripts/globals/spells/hunters_prelude.lua (working copy) @@ -0,0 +1,30 @@ +----------------------------------------- +-- Spell: Hunter's Prelude +-- Grants Ranged Accuracy bonus to target. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local duration = 120; + local sLvl = caster:getSkillLevel(SINGING_SKILL); -- Gets skill level of Singing + + duration = duration + (duration * (target:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((target:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((target:getMod(MOD_PRELUDE) * 10)/100)); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_PRELUDE); + target:addStatusEffect(EFFECT_PRELUDE,1,0,duration); + spell:setMsg(230); + return EFFECT_PRELUDE; +end; \ No newline at end of file Index: scripts/globals/spells/huton_ichi.lua =================================================================== --- scripts/globals/spells/huton_ichi.lua (revision 3520) +++ scripts/globals/spells/huton_ichi.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_HUTON_EFFECT); + duration = 30 + caster:getMerit(MERIT_HUTON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_ICERES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_ICERES); return final; Index: scripts/globals/spells/huton_ni.lua =================================================================== --- scripts/globals/spells/huton_ni.lua (revision 3520) +++ scripts/globals/spells/huton_ni.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_HUTON_EFFECT); + duration = 30 + caster:getMerit(MERIT_HUTON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_ICERES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_ICERES); return final; Index: scripts/globals/spells/huton_san.lua =================================================================== --- scripts/globals/spells/huton_san.lua (revision 3520) +++ scripts/globals/spells/huton_san.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_HUTON_EFFECT); + duration = 30 + caster:getMerit(MERIT_HUTON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_ICERES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_ICERES); return final; Index: scripts/globals/spells/hyoton_ichi.lua =================================================================== --- scripts/globals/spells/hyoton_ichi.lua (revision 3520) +++ scripts/globals/spells/hyoton_ichi.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_HYOTON_EFFECT); + duration = 30 + caster:getMerit(MERIT_HYOTON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_FIRERES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_FIRERES); return final; Index: scripts/globals/spells/hyoton_ni.lua =================================================================== --- scripts/globals/spells/hyoton_ni.lua (revision 3520) +++ scripts/globals/spells/hyoton_ni.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_HYOTON_EFFECT); + duration = 30 + caster:getMerit(MERIT_HYOTON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_FIRERES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_FIRERES); return final; Index: scripts/globals/spells/hyoton_san.lua =================================================================== --- scripts/globals/spells/hyoton_san.lua (revision 3520) +++ scripts/globals/spells/hyoton_san.lua (working copy) @@ -23,21 +23,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end - - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_HYOTON_EFFECT); + duration = 30 + caster:getMerit(MERIT_HYOTON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_FIRERES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_FIRERES); return final; Index: scripts/globals/spells/ice_carol.lua =================================================================== --- scripts/globals/spells/ice_carol.lua (revision 0) +++ scripts/globals/spells/ice_carol.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Ice Carol +-- MOD_ICERES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 40, 120, MOD_ICERES); +end; Index: scripts/globals/spells/ice_carol_ii.lua =================================================================== --- scripts/globals/spells/ice_carol_ii.lua (revision 0) +++ scripts/globals/spells/ice_carol_ii.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Ice Carol II +-- MOD_ICERES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 50, 120, MOD_ICERES); +end; Index: scripts/globals/spells/ice_spikes.lua =================================================================== --- scripts/globals/spells/ice_spikes.lua (revision 3520) +++ scripts/globals/spells/ice_spikes.lua (working copy) @@ -8,21 +8,35 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local duration = SPIKE_EFFECT_DURATION; - local typeEffect = EFFECT_ICE_SPIKES; + local typeEffect = EFFECT_ICE_SPIKES; + local legs = caster:getEquipID(SLOT_LEGS); + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + local int = caster:getStat(MOD_INT); local magicAtk = caster:getMod(MOD_MATT); local power = ((int + 10) / 20 + 2) * (1 + (magicAtk / 100)); + -- Equipment Bonus Amount + if (legs == 15622) then -- Mercenarys Trousers + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (4/256)); + elseif (legs == 15121 or legs == 15584) then -- Duelist Tights & +1 + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (6/256)); + elseif (legs == 10714) then -- Duelist Tights +2 + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (8/256)); + end + if(target:addStatusEffect(typeEffect,power,0,duration)) then spell:setMsg(230); else Index: scripts/globals/spells/invisible.lua =================================================================== --- scripts/globals/spells/invisible.lua (revision 3520) +++ scripts/globals/spells/invisible.lua (working copy) @@ -24,13 +24,15 @@ duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + if (target:getMainLvl() < 20) then duration = duration * target:getMainLvl() / 20; -- level adjustment end - if (target:getEquipID(15) == 13692) then -- skulker's cape - duration = duration * 1.5; - end - + -- Equip Bonus + duration = duration + (duration * target:getMod(MOD_INVIS_DUR)); + spell:setMsg(230); target:addStatusEffect(EFFECT_INVISIBLE,0,10,(math.floor(duration) * SNEAK_INVIS_DURATION_MULTIPLIER)); else Index: scripts/globals/spells/jesters_operetta.lua =================================================================== --- scripts/globals/spells/jesters_operetta.lua (revision 0) +++ scripts/globals/spells/jesters_operetta.lua (working copy) @@ -0,0 +1,18 @@ +----------------------------------------- +-- Spell: Jester's Opperetta +-- Increases Silence Resistance to +-- Party Members within target AoE +----------------------------------------- + +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) +end; \ No newline at end of file Index: scripts/globals/spells/jubaku_ichi.lua =================================================================== --- scripts/globals/spells/jubaku_ichi.lua (revision 3520) +++ scripts/globals/spells/jubaku_ichi.lua (working copy) @@ -16,6 +16,42 @@ end; function onSpellCast(caster,target,spell) + omod = target:getMod(MOD_STUNRES); + printf("Stun Resistance %u",omod); + amod = target:getMod(MOD_SLEEPRES); + printf("Sleep Resistance %u",amod); + bmod = target:getMod(MOD_PARALYZERES); + printf("Paralyze Resistance %u",bmod); + cmod = target:getMod(MOD_SILENCERES); + printf("Silence Resistance %u",cmod); + dmod = target:getMod(MOD_VIRUSRES); + printf("Virus Resistance %u",dmod); + emod = target:getMod(MOD_PETRIFYRES); + printf("Petrify Resistance %u",emod); + fmod = target:getMod(MOD_BINDRES); + printf("Stun Resistance %u",fmod); + gmod = target:getMod(MOD_CURSERES); + printf("Curse Resistance %u",gmod); + hmod = target:getMod(MOD_GRAVITYRES); + printf("Gravity Resistance %u",hmod); + imod = target:getMod(MOD_SLOWRES); + printf("Slow Resistance %u",imod); + jmod = target:getMod(MOD_CHARMRES); + printf("Stun Resistance %u",jmod); + kmod = target:getMod(MOD_FIRERES); + printf("Fire Resistance %u",kmod); + lmod = target:getMod(MOD_ICERES); + printf("Ice Resistance %u",lmod); + mmod = target:getMod(MOD_WINDRES); + printf("Wind Resistance %u",omod); + nmod = target:getMod(MOD_EARTHRES); + printf("Earth Resistance %u",nmod); + pmod = target:getMod(MOD_THUNDERRES); + printf("Thunder Resistance %u",pmod); + qmod = target:getMod(MOD_LIGHTRES); + printf("Light Resistance %u",qmod); + rmod = target:getMod(MOD_DARKRES); + printf("Dark Resistance %u",rmod); local effect = EFFECT_PARALYSIS; -- Base Stats local dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); Index: scripts/globals/spells/kakka_ichi.lua =================================================================== --- scripts/globals/spells/kakka_ichi.lua (revision 0) +++ scripts/globals/spells/kakka_ichi.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- Spell: Kakka: Ichi +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + target:delStatusEffect(EFFECT_STORE_TP); + effect = target:getStatusEffect(EFFECT_STORE_TP); + + target:addStatusEffect(EFFECT_STORE_TP,EFFECT_STORE_TP,10,0,180); + spell:setMsg(230); + + return EFFECT_STORE_TP; +end; \ No newline at end of file Index: scripts/globals/spells/katon_ichi.lua =================================================================== --- scripts/globals/spells/katon_ichi.lua (revision 3520) +++ scripts/globals/spells/katon_ichi.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_KATON_EFFECT); + duration = 30 + caster:getMerit(MERIT_KATON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_WATERRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_WATERRES); return final; Index: scripts/globals/spells/katon_ni.lua =================================================================== --- scripts/globals/spells/katon_ni.lua (revision 3520) +++ scripts/globals/spells/katon_ni.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_KATON_EFFECT); + duration = 30 + caster:getMerit(MERIT_KATON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_WATERRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_WATERRES); return final; Index: scripts/globals/spells/katon_san.lua =================================================================== --- scripts/globals/spells/katon_san.lua (revision 3520) +++ scripts/globals/spells/katon_san.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_KATON_EFFECT); + duration = 30 + caster:getMerit(MERIT_KATON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_WATERRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_WATERRES); return final; Index: scripts/globals/spells/kaustra.lua =================================================================== --- scripts/globals/spells/kaustra.lua (revision 3520) +++ scripts/globals/spells/kaustra.lua (working copy) @@ -1,9 +1,10 @@ --------------------------------------- --- Spell: Kaustra --- Consumes 20% of your maximum MP. Relentless --- dark damage slowly devours an enemy. --------------------------------------- - +----------------------------------------- +-- Spell: Kaustra +-- Relentless dark damage slowly devours +-- an enemy. +-- Duration: Your current lvl +5 secs +----------------------------------------- + require("scripts/globals/settings"); require("scripts/globals/status"); require("scripts/globals/magic"); @@ -13,31 +14,31 @@ ----------------------------------------- function OnMagicCastingCheck(caster,target,spell) - return 0; + return 0; end; function onSpellCast(caster,target,spell) - - local skill = caster:getSkillLevel(DARK_MAGIC_SKILL); - local dINT = caster:getStat(MOD_INT) - target:getStat(MOD_INT); - - if (skill > 500) then - skill = 500; - end - - local duration = 3 * (1 + (skill / 11)); - local base = math.floor((math.floor(0.67 * caster:getMainLvl())/10)*(37 + math.floor(0.67*dINT))) - - local resist = applyResistance(caster,spell,target,dINT,skill,0) - - duration = duration * resist; - local dmg = base * resist; - - dmg = adjustForTarget(target,dmg); - - dmg = finalMagicAdjustments(caster,target,spell,dmg); - - target:addStatusEffect(EFFECT_KAUSTRA,math.floor(dmg/3),3,duration); - - return dmg; -end; \ No newline at end of file + + local skill = caster:getSkillLevel(DARK_MAGIC_SKILL); + local dINT = caster:getStat(MOD_INT) - target:getStat(MOD_INT); + + if (skill > 500) then + skill = 500; + end + + local duration = 3 * (1 + (skill / 11)); + local base = math.floor((math.floor(0.67 * caster:getMainLvl())/10)*(37 + math.floor(0.67*dINT))) + + local resist = applyResistance(caster,spell,target,dINT,skill,0) + + duration = duration * resist; + local dmg = base * resist; + + dmg = adjustForTarget(target,dmg); + + dmg = finalMagicAdjustments(caster,target,spell,dmg); + + target:addStatusEffect(EFFECT_KAUSTRA,math.floor(dmg/3),3,duration); + + return dmg; +end; Index: scripts/globals/spells/klimaform.lua =================================================================== --- scripts/globals/spells/klimaform.lua (revision 0) +++ scripts/globals/spells/klimaform.lua (working copy) @@ -0,0 +1,29 @@ +----------------------------------------- +-- Spell: Klimaform +-- Increases MACC for spells of the same +-- element as current weather. +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + local power = 1; + local duration = 180; + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + target:delStatusEffect(EFFECT_KLIMAFORM); + target:addStatusEffect(EFFECT_KLIMAFORM,power,0,duration); + + return EFFECT_KLIMAFORM; +end; \ No newline at end of file Index: scripts/globals/spells/knights_minne.lua =================================================================== --- scripts/globals/spells/knights_minne.lua (revision 3520) +++ scripts/globals/spells/knights_minne.lua (working copy) @@ -3,7 +3,7 @@ -- Grants Defense bonus to all allies. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,36 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local sItem = caster:getEquipID(2); - local sLvl = caster:getSkillLevel(40); -- Gets skill level of Singing - - if (sLvl < 6) then -- If your skill level is below 6 your stuck at the minimum - power = 7; - end - - if (sLvl >= 6 and sLvl <= 61) then -- If your above 5 skill then you get the bonus of 1 more defense for every 8 skill - sBoost = math.floor((sLvl - 5)/8); - power = 7 + sBoost; - end - - if(sLvl >= 61) then -- The bonus caps at skill 61 - power = 14; - end - - if(sItem == 17373 or sItem == 17354) then -- Maple Harp +1 or Harp will add 3 more - power = power + 3; - end - - if(sItem == 17374) then -- Harp +1 gives 5 more - power = power + 5; - end - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_MINNE); - target:addStatusEffect(EFFECT_MINNE,power,0,120); - spell:setMsg(230); - - return EFFECT_MINNE; end; \ No newline at end of file Index: scripts/globals/spells/knights_minne_ii.lua =================================================================== --- scripts/globals/spells/knights_minne_ii.lua (revision 3520) +++ scripts/globals/spells/knights_minne_ii.lua (working copy) @@ -3,7 +3,7 @@ -- Grants Defense bonus to all allies. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,33 +14,4 @@ end; function onSpellCast(caster,target,spell) - - -- If your skill level is below 65 your stuck at the minimum - local sItem = caster:getEquipID(2); - local sLvl = caster:getSkillLevel(40); -- Gets skill level of Singing - power=0; - -- If your above 64 skill then you get the bonus of 1 more defense for every 4 skill - if (sLvl >= 65 and sLvl <= 121) then - sBoost = math.floor((sLvl - 61)/4); - power = power + sBoost; - end - -- The bonus caps at skill 125 - if(sLvl >= 125) then - power = 28; - end - -- Maple Harp +1 or Harp will add 3 more - if(sItem == 17373 or sItem == 17354) then - power = power + 3; - end - -- Harp +1 gives 5 more - if(sItem == 17374) then - power = power + 5; - end - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_MINNE); - target:addStatusEffect(EFFECT_MINNE,power,0,120); - spell:setMsg(230); - - return EFFECT_MINNE; end; \ No newline at end of file Index: scripts/globals/spells/knights_minne_iii.lua =================================================================== --- scripts/globals/spells/knights_minne_iii.lua (revision 3520) +++ scripts/globals/spells/knights_minne_iii.lua (working copy) @@ -3,7 +3,7 @@ -- Grants Defense bonus to all allies. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,35 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local sItem = caster:getEquipID(2); - local sLvl = caster:getSkillLevel(40); -- Gets skill level of Singing - - if (sLvl < 118) then -- If your skill level is below 118 your stuck at the minimum - power = 26; - end - - if (sLvl >= 118 and sLvl <= 186) then -- If your above 117 skill then you get the bonus of 1 more defense for every 5 skill - sBoost = math.floor((sLvl - 117)/5); - power = 26 + sBoost; - end - - if(sLvl >= 187) then -- The bonus caps at skill 187 - power = 40; - end - - if(sItem == 17373 or sItem == 17354) then -- Maple Harp +1 or Harp will add 3 more - power = power + 3; - end - - if(sItem == 17374) then -- Harp +1 gives 5 more - power = power + 5; - end - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_MINNE); - target:addStatusEffect(EFFECT_MINNE,power,0,120); - spell:setMsg(230); - return EFFECT_MINNE; end; \ No newline at end of file Index: scripts/globals/spells/knights_minne_iv.lua =================================================================== --- scripts/globals/spells/knights_minne_iv.lua (revision 3520) +++ scripts/globals/spells/knights_minne_iv.lua (working copy) @@ -3,7 +3,7 @@ -- Grants Defense bonus to all allies. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,35 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local sItem = caster:getEquipID(2); - local sLvl = caster:getSkillLevel(40); -- Gets skill level of Singing - - if (sLvl < 193) then -- If your skill level is below 193 your stuck at the minimum - power = 38; - end - - if (sLvl >= 193 and sLvl <= 221) then -- If your above 192 skill then you get the bonus of 1 more defense for every 3 skill - sBoost = math.floor((sLvl - 192)/3); - power = 38 + sBoost; - end - - if(sLvl >= 222) then -- The bonus caps at skill 222 - power = 48; - end - - if(sItem == 17373 or sItem == 17354) then -- Maple Harp +1 or Harp will add 3 more - power = power + 3; - end - - if(sItem == 17374) then -- Harp +1 gives 5 more - power = power + 5; - end - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_MINNE); - target:addStatusEffect(EFFECT_MINNE,power,0,120); - spell:setMsg(230); - return EFFECT_MINNE; end; \ No newline at end of file Index: scripts/globals/spells/knights_minne_v.lua =================================================================== --- scripts/globals/spells/knights_minne_v.lua (revision 0) +++ scripts/globals/spells/knights_minne_v.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Knight's Minne V +-- Grants Defense bonus to all allies. +----------------------------------------- + +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) +end; \ No newline at end of file Index: scripts/globals/spells/kurayami_ichi.lua =================================================================== --- scripts/globals/spells/kurayami_ichi.lua (revision 3520) +++ scripts/globals/spells/kurayami_ichi.lua (working copy) @@ -26,11 +26,19 @@ --Calculates resist chance from Reist Blind if(math.random(0,100) >= target:getMod(MOD_BLINDRES)) then if(duration >= 80) then - - if(target:addStatusEffect(EFFECT_BLINDNESS,power,0,duration)) then - spell:setMsg(236); + -- Erases a weaker blind and applies the stronger one + local blindness = target:getStatusEffect(EFFECT_BLINDNESS); + if(blindness ~= nil) then + if(blindness:getPower() < power) then + target:delStatusEffect(EFFECT_BLINDNESS); + target:addStatusEffect(EFFECT_BLINDNESS,power,0,duration); + spell:setMsg(237); + else + spell:setMsg(75); + end else - spell:setMsg(75); + target:addStatusEffect(EFFECT_BLINDNESS,power,0,duration); + spell:setMsg(237); end else spell:setMsg(85); Index: scripts/globals/spells/kurayami_ni.lua =================================================================== --- scripts/globals/spells/kurayami_ni.lua (revision 3520) +++ scripts/globals/spells/kurayami_ni.lua (working copy) @@ -26,11 +26,19 @@ --Calculates resist chanve from Reist Blind if(math.random(0,100) >= target:getMod(MOD_BLINDRES)) then if(duration >= 150) then - - if(target:addStatusEffect(EFFECT_BLINDNESS,power,0,duration)) then - spell:setMsg(236); + -- Erases a weaker blind and applies the stronger one + local blindness = target:getStatusEffect(EFFECT_BLINDNESS); + if(blindness ~= nil) then + if(blindness:getPower() < power) then + target:delStatusEffect(EFFECT_BLINDNESS); + target:addStatusEffect(EFFECT_BLINDNESS,power,0,duration); + spell:setMsg(237); + else + spell:setMsg(75); + end else - spell:setMsg(75); + target:addStatusEffect(EFFECT_BLINDNESS,power,0,duration); + spell:setMsg(237); end else spell:setMsg(85); Index: scripts/globals/spells/kurayami_san.lua =================================================================== --- scripts/globals/spells/kurayami_san.lua (revision 3520) +++ scripts/globals/spells/kurayami_san.lua (working copy) @@ -26,11 +26,19 @@ --Calculates resist chanve from Reist Blind if(math.random(0,100) >= target:getMod(MOD_BLINDRES)) then if(duration >= 210) then - - if(target:addStatusEffect(EFFECT_BLINDNESS,power,0,duration)) then - spell:setMsg(236); + -- Erases a weaker blind and applies the stronger one + local blindness = target:getStatusEffect(EFFECT_BLINDNESS); + if(blindness ~= nil) then + if(blindness:getPower() < power) then + target:delStatusEffect(EFFECT_BLINDNESS); + target:addStatusEffect(EFFECT_BLINDNESS,power,0,duration); + spell:setMsg(237); + else + spell:setMsg(75); + end else - spell:setMsg(75); + target:addStatusEffect(EFFECT_BLINDNESS,power,0,duration); + spell:setMsg(237); end else spell:setMsg(85); Index: scripts/globals/spells/learned_etude.lua =================================================================== --- scripts/globals/spells/learned_etude.lua (revision 0) +++ scripts/globals/spells/learned_etude.lua (working copy) @@ -0,0 +1,51 @@ +-------------------------------------- +-- Spell: Learned Etude +-- Boosts targets INT stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <180)then + power = 3 + elseif(enchanceSkill >=181 and enchanceSkill <=235)then + power = 4 + elseif(enchanceSkill >=236 and enchanceSkill <=288)then + power = 5 + elseif(enchanceSkill >=289 and enchanceSkill <=342)then + power = 6 + elseif(enchanceSkill >=343 and enchanceSkill <=396)then + power = 7 + elseif(enchanceSkill >=397 and enchanceSkill <=449)then + power = 8 + elseif(enchanceSkill >=450)then + power = 9 + else + power = 10 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_INT_DOWN) == true) then + target:delStatusEffect(EFFECT_INT_DOWN); + else + target:addStatusEffect(EFFECT_INT_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/light_carol.lua =================================================================== --- scripts/globals/spells/light_carol.lua (revision 0) +++ scripts/globals/spells/light_carol.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Light Carol +-- MOD_LIGHTRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 40, 120, MOD_LIGHTRES); +end; Index: scripts/globals/spells/light_carol_ii.lua =================================================================== --- scripts/globals/spells/light_carol_ii.lua (revision 0) +++ scripts/globals/spells/light_carol_ii.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Light Carol II +-- MOD_LIGHTRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 50, 120, MOD_LIGHTRES); +end; Index: scripts/globals/spells/lightning_carol.lua =================================================================== --- scripts/globals/spells/lightning_carol.lua (revision 0) +++ scripts/globals/spells/lightning_carol.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Lightning Carol +-- MOD_THUNDERRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 40, 120, MOD_THUNDERRES); +end; Index: scripts/globals/spells/lightning_carol_ii.lua =================================================================== --- scripts/globals/spells/lightning_carol_ii.lua (revision 0) +++ scripts/globals/spells/lightning_carol_ii.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Lightning Carol II +-- MOD_THUNDERRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 50, 120, MOD_THUNDERRES); +end; Index: scripts/globals/spells/logical_etude.lua =================================================================== --- scripts/globals/spells/logical_etude.lua (revision 0) +++ scripts/globals/spells/logical_etude.lua (working copy) @@ -0,0 +1,45 @@ +-------------------------------------- +-- Spell: Logical Etude +-- Boosts targets MND stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <416)then + power = 12 + elseif(enchanceSkill >=417 and enchanceSkill <=445)then + power = 13 + elseif(enchanceSkill >=446 and enchanceSkill <=474)then + power = 14 + elseif(enchanceSkill >=475)then + power = 15 + else + power = 15 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_MND_DOWN) == true) then + target:delStatusEffect(EFFECT_MND_DOWN); + else + target:addStatusEffect(EFFECT_MND_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/mages_ballad.lua =================================================================== --- scripts/globals/spells/mages_ballad.lua (revision 3520) +++ scripts/globals/spells/mages_ballad.lua (working copy) @@ -3,7 +3,7 @@ -- Gradually restores target's MP. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,13 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local mp = 1; - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:addStatusEffect(EFFECT_BALLAD,mp,3,120); - spell:setMsg(230); - - return EFFECT_BALLAD; end; Index: scripts/globals/spells/mages_ballad_ii.lua =================================================================== --- scripts/globals/spells/mages_ballad_ii.lua (revision 3520) +++ scripts/globals/spells/mages_ballad_ii.lua (working copy) @@ -3,7 +3,7 @@ -- Gradually restores target's MP. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,13 +14,5 @@ end; function onSpellCast(caster,target,spell) +end; - local mp = 2; - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:addStatusEffect(EFFECT_BALLAD,mp,3,120); - - spell:setMsg(230); - return EFFECT_BALLAD; -end; Index: scripts/globals/spells/mages_ballad_iii.lua =================================================================== --- scripts/globals/spells/mages_ballad_iii.lua (revision 0) +++ scripts/globals/spells/mages_ballad_iii.lua (working copy) @@ -0,0 +1,18 @@ +----------------------------------------- +-- Spell: Mage's Ballad III +-- Gradually restores target's MP. +----------------------------------------- + +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) +end; + Index: scripts/globals/spells/magic_finale.lua =================================================================== --- scripts/globals/spells/magic_finale.lua (revision 3520) +++ scripts/globals/spells/magic_finale.lua (working copy) @@ -14,10 +14,13 @@ function onSpellCast(caster,target,spell) -- Pull base stats. dINT = (caster:getStat(MOD_CHR) - target:getStat(MOD_CHR)); - + SINGING_SKILL = caster:getSkillLevel(SINGING_SKILL); -- apply bonus, flash is hard to fully resist bonus = AffinityBonus(caster,spell) + 300; + bonus = bonus + (caster:getMod(MOD_ALL_SONGS) * 10); + bonus = bonus + (caster:getMod(MOD_FINALE) * 10); + local resist = applyResistance(caster,spell,target,dINT,SINGING_SKILL,bonus); local effect = EFFECT_NONE; Index: scripts/globals/spells/massacre_elegy.lua =================================================================== --- scripts/globals/spells/massacre_elegy.lua (revision 3520) +++ scripts/globals/spells/massacre_elegy.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Battlefield Elegy +-- Spell: Massacre Elegy ----------------------------------------- require("scripts/globals/status"); require("scripts/globals/magic"); @@ -12,8 +12,8 @@ end; function onSpellCast(caster,target,spell) - duration = 240; - power = 1024; + duration = 120; + power = 768; bonus = AffinityBonus(caster, spell); pCHR = caster:getStat(MOD_CHR); @@ -28,34 +28,18 @@ if(100 * math.random() < target:getMod(MOD_SLOWRES)) then spell:setMsg(85); -- resisted spell else - local sItem = caster:getEquipID(2); - - -- horn +1 - if(sItem == 17371) then - power = power + 20; - duration = duration * 1.2; - end - - if(sItem == 17352) then - power = power + 11; - duration = duration * 1.1; - end - - if(sItem == 18342) then - power = power + 20; - duration = duration * 1.2; - end - - if(sItem == 17856) then - power = power + 30; - duration = duration * 1.3; - end - + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ELEGY) * 10)/100)); + + power = power + ((caster:getMod(MOD_ELEGY) + caster:getMod(MOD_ALL_SONGS)) * 5); + if (power > 1024) then + power = 1024; + end + -- Try to overwrite weaker elegy - if(canOverwrite(target, EFFECT_ELEGY, power)) then - -- overwrite them - target:delStatusEffect(EFFECT_ELEGY); - target:addStatusEffect(EFFECT_ELEGY,power,0,duration); + if(target:addStatusEffect(EFFECT_ELEGY,power,0,duration)) then spell:setMsg(237); else spell:setMsg(75); -- no effect Index: scripts/globals/spells/meteor.lua =================================================================== --- scripts/globals/spells/meteor.lua (revision 3520) +++ scripts/globals/spells/meteor.lua (working copy) @@ -34,6 +34,11 @@ dmg = adjustForTarget(target,dmg); --add in final adjustments dmg = finalMagicAdjustments(caster,target,spell,dmg); - return dmg; + if (caster:getID() == 17297441) then -- For King Behemoth + target:delHP(dmg*6); + return dmg*6; + else + return dmg; + end end; \ No newline at end of file Index: scripts/globals/spells/meteor_ii.lua =================================================================== --- scripts/globals/spells/meteor_ii.lua (revision 0) +++ scripts/globals/spells/meteor_ii.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Meteor II +-- Deals non-elemental damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + --Byrthnoth @ Random Facts Thread: Magic @ BG: + --Spell Base Damage = MAB/MDB*floor(Int + Elemental Magic Skill/6)*3.5 + --NOT AFFECTED BY DARK BONUSES (bonus ETC) + --I'll just point this out again. It can't resist, there's no dINT, and the damage is non-elemental. The only terms that affect it for monsters (that we know of) are MDB and MDT. If a --normal monster would take 50k damage from your group, Botulus would take 40k damage. Every. Time. + dmg = ((100+caster:getMod(MOD_MATT))/(100+target:getMod(MOD_MDEF))) * (caster:getStat(MOD_INT) + (caster:getMod(79+ELEMENTAL_MAGIC_SKILL)+caster:getSkillLevel(ELEMENTAL_MAGIC_SKILL))/6) * 5.5; + + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/migawari_ichi.lua =================================================================== --- scripts/globals/spells/migawari_ichi.lua (revision 0) +++ scripts/globals/spells/migawari_ichi.lua (working copy) @@ -0,0 +1,23 @@ +----------------------------------------- +-- Spell: Migawari: Ichi +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + target:delStatusEffect(EFFECT_MIGAWARI); + effect = target:getStatusEffect(EFFECT_MIGAWARI); + + target:addStatusEffect(EFFECT_MIGAWARI,EFFECT_MIGAWARI,0,0,60); + spell:setMsg(230); + + return EFFECT_MIGAWARI; +end; \ No newline at end of file Index: scripts/globals/spells/monomi_ichi.lua =================================================================== --- scripts/globals/spells/monomi_ichi.lua (revision 3520) +++ scripts/globals/spells/monomi_ichi.lua (working copy) @@ -17,7 +17,8 @@ function onSpellCast(caster,target,spell) if (target:hasStatusEffect(EFFECT_SNEAK) == false) then spell:setMsg(230); - target:addStatusEffect(EFFECT_SNEAK,0,10,180); + local duration = 180; + target:addStatusEffect(EFFECT_SNEAK,0,10,duration); else spell:setMsg(75); -- no effect. end Index: scripts/globals/spells/moogle_rhapsody.lua =================================================================== --- scripts/globals/spells/moogle_rhapsody.lua (revision 0) +++ scripts/globals/spells/moogle_rhapsody.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- Spell: Moogle Rhapsody +-- Increases Confusion Resistance to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_RHAPSODY); + target:addStatusEffect(EFFECT_RHAPSODY,power,0,duration); + spell:setMsg(230); + return EFFECT_RHAPSODY; +end; \ No newline at end of file Index: scripts/globals/spells/myoshui_ichi.lua =================================================================== --- scripts/globals/spells/myoshui_ichi.lua (revision 0) +++ scripts/globals/spells/myoshui_ichi.lua (working copy) @@ -0,0 +1,24 @@ +----------------------------------------- +-- Spell: Myoshui: Ichi +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + target:delStatusEffect(EFFECT_SUBTLE_BLOW_PLUS); + effect = target:getStatusEffect(EFFECT_SUBTLE_BLOW_PLUS); + + -- The power is unknown. + target:addStatusEffect(EFFECT_SUBTLE_BLOW_PLUS,EFFECT_SUBTLE_BLOW_PLUS,10,0,180); + spell:setMsg(230); + + return EFFECT_SUBTLE_BLOW_PLUS; +end; \ No newline at end of file Index: scripts/globals/spells/odin.lua =================================================================== --- scripts/globals/spells/odin.lua (revision 0) +++ scripts/globals/spells/odin.lua (working copy) @@ -0,0 +1,19 @@ +----------------------------------------- +-- Spell: Odin +-- Summons Odin to fight by your side +----------------------------------------- + +require("scripts/globals/pets"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + caster:spawnPet(PET_ODIN); + return 0; +end; \ No newline at end of file Index: scripts/globals/spells/paralyga.lua =================================================================== --- scripts/globals/spells/paralyga.lua (revision 0) +++ scripts/globals/spells/paralyga.lua (working copy) @@ -0,0 +1,69 @@ +----------------------------------------- +-- Spell: Paralyga +-- Spell accuracy is most highly affected by Enfeebling Magic Skill, Magic Accuracy, and MND. +-- Slow's potency is calculated with the formula (150 + dMND*2)/1024, and caps at 300/1024 (~29.3%). +-- And MND of 75 is neccessary to reach the hardcap of Slow. +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + -- Calculate duration. + local double duration = 120; + + -- Grabbing variables for paralyze potency + mLVL = caster:getMainLvl(); + pMND = caster:getStat(MOD_MND); + mMND = target:getStat(MOD_MND); + + dMND = (pMND - mMND); + multiplier = 150 / mLVL; + + -- Calculate potency. + potency = (multiplier * dMND) / 10; + + if potency > 25 then + potency = 25; + end + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + potency = potency * 1.1; + end + --printf("Duration : %u",duration); + --printf("Potency : %u",potency); + if(target:hasStatusEffect(EFFECT_PARALYSIS)) then --effect already on, do nothing + spell:setMsg(75); + elseif(math.random(0,100) >= target:getMod(MOD_PARALYZERES)) then + bonus = AffinityBonus(caster, spell); + resist = applyResistance(caster,spell,target,dMND,35,bonus); + + if(resist >= 0.25) then + if(target:addStatusEffect(EFFECT_PARALYSIS,potency,0,duration*resist)) then + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + -- resist + spell:setMsg(85); + end + + + else -- resist entirely. + + spell:setMsg(85); + end + + return EFFECT_PARALYSIS; +end; Index: scripts/globals/spells/paralyze.lua =================================================================== --- scripts/globals/spells/paralyze.lua (revision 3520) +++ scripts/globals/spells/paralyze.lua (working copy) @@ -35,6 +35,16 @@ if potency > 25 then potency = 25; end + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + potency = potency * 1.1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + potency = potency + (potency * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + caster:delStatusEffect(EFFECT_SABOTEUR); + end --printf("Duration : %u",duration); --printf("Potency : %u",potency); if(target:hasStatusEffect(EFFECT_PARALYSIS)) then --effect already on, do nothing Index: scripts/globals/spells/paralyze_ii.lua =================================================================== --- scripts/globals/spells/paralyze_ii.lua (revision 3520) +++ scripts/globals/spells/paralyze_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Paralyze +-- Spell: Paralyze II -- Spell accuracy is most highly affected by Enfeebling Magic Skill, Magic Accuracy, and MND. -- Slow's potency is calculated with the formula (150 + dMND*2)/1024, and caps at 300/1024 (~29.3%). -- And MND of 75 is neccessary to reach the hardcap of Slow. @@ -37,6 +37,17 @@ if potency > 30 then potency = 30; end + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + potency = potency * 1.1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + potency = potency + (potency * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + caster:delStatusEffect(EFFECT_SABOTEUR); + end + --printf("Duration : %u",duration); --printf("Potency : %u",potency); if(target:hasStatusEffect(EFFECT_PARALYSIS)) then --effect already on, do nothing Index: scripts/globals/spells/phalanx.lua =================================================================== --- scripts/globals/spells/phalanx.lua (revision 3520) +++ scripts/globals/spells/phalanx.lua (working copy) @@ -9,10 +9,10 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) enhskill = caster:getSkillLevel(ENHANCING_MAGIC_SKILL); final = 0; @@ -21,6 +21,9 @@ duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + if(enhskill<=300) then final = (enhskill/10) -2; if(final<0) then Index: scripts/globals/spells/phalanx_ii.lua =================================================================== --- scripts/globals/spells/phalanx_ii.lua (revision 3520) +++ scripts/globals/spells/phalanx_ii.lua (working copy) @@ -24,6 +24,9 @@ duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + final = (enhskill / 25) + (3 * merits) + 1; if(final>35) then Index: scripts/globals/spells/pining_nocturne.lua =================================================================== --- scripts/globals/spells/pining_nocturne.lua (revision 0) +++ scripts/globals/spells/pining_nocturne.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Pining Nocturne +-- Decreases enemy's MACC and increases +-- spellcasting time. +-- Substituted with Addle +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local power = 20 + local duration = 120; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 4); + + -- Temporary solution EFFECT_NOCTURNE not avaliable in core + target:addStatusEffect(EFFECT_ADDLE,power,0,duration); + spell:setMsg(230); + return EFFECT_ADDLE; +end; \ No newline at end of file Index: scripts/globals/spells/poison.lua =================================================================== --- scripts/globals/spells/poison.lua (revision 3520) +++ scripts/globals/spells/poison.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Poison +-- Spell: Poison ----------------------------------------- require("scripts/globals/status"); @@ -25,6 +25,17 @@ if power > 4 then power = 4; end + + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = 5; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power * 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then bonus = AffinityBonus(caster, spell); @@ -32,10 +43,20 @@ if(resist == 1 or resist == 0.5) then -- effect taken duration = duration / resist; - if(target:addStatusEffect(effect,power,3,duration)) then + -- Try to erase a weaker poison. + poison = target:getStatusEffect(effect) + if(poison ~= nil) then + if(poison:getPower() < power) then + -- remove weaker poison + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + target:addStatusEffect(effect,power,3,duration); spell:setMsg(236); - else - spell:setMsg(75); end else -- resist entirely. Index: scripts/globals/spells/poison_ii.lua =================================================================== --- scripts/globals/spells/poison_ii.lua (revision 3520) +++ scripts/globals/spells/poison_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Poison +-- Spell: Poison II ----------------------------------------- require("scripts/globals/status"); @@ -25,6 +25,16 @@ if power > 10 then power = 10; end + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power * 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then bonus = AffinityBonus(caster, spell); @@ -32,10 +42,21 @@ if(resist == 1 or resist == 0.5) then -- effect taken duration = duration / resist; - if(target:addStatusEffect(effect,power,3,duration)) then + -- Try to erase a weaker poison. + poison = target:getStatusEffect(effect) + if(poison ~= nil) then + if(poison:getPower() < power) then + -- remove weaker poison + target:delStatusEffect(effect); + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + target:addStatusEffect(effect,power,3,duration); spell:setMsg(236); - else - spell:setMsg(75); end else -- resist entirely. Index: scripts/globals/spells/poison_iii.lua =================================================================== --- scripts/globals/spells/poison_iii.lua (revision 3520) +++ scripts/globals/spells/poison_iii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Poison +-- Spell: Poison III ----------------------------------------- require("scripts/globals/status"); @@ -25,6 +25,12 @@ if power > 25 then power = 25; end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power * 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then bonus = AffinityBonus(caster, spell); @@ -32,10 +38,21 @@ if(resist == 1 or resist == 0.5) then -- effect taken duration = duration / resist; - if(target:addStatusEffect(effect,power,3,duration)) then + -- Try to erase a weaker poison. + poison = target:getStatusEffect(effect) + if(poison ~= nil) then + if(poison:getPower() < power) then + -- remove weaker poison + target:delStatusEffect(effect); + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + target:addStatusEffect(effect,power,3,duration); spell:setMsg(236); - else - spell:setMsg(75); end else -- resist entirely. Index: scripts/globals/spells/poison_iv.lua =================================================================== --- scripts/globals/spells/poison_iv.lua (revision 0) +++ scripts/globals/spells/poison_iv.lua (working copy) @@ -0,0 +1,59 @@ +----------------------------------------- +-- Spell: Poison IV +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local effect = EFFECT_POISON; + local duration = 240; + + pINT = caster:getStat(MOD_INT); + mINT = target:getStat(MOD_INT); + + dINT = (pINT - mINT); + power = caster:getSkillLevel(ENFEEBLING_MAGIC_SKILL) / 8 + 1; + if power > 62 then + power = 62; + end + + if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then + bonus = AffinityBonus(caster, spell); + resist = applyResistance(caster,spell,target,dINT,ENFEEBLING_MAGIC_SKILL,bonus); + if(resist == 1 or resist == 0.5) then -- effect taken + duration = duration / resist; + + -- Try to erase a weaker poison. + poison = target:getStatusEffect(effect) + if(poison ~= nil) then + if(poison:getPower() < power) then + -- remove weaker poison + target:delStatusEffect(effect); + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + end + + else -- resist entirely. + spell:setMsg(85); + end + else + spell:setMsg(284); + end + return effect; +end; \ No newline at end of file Index: scripts/globals/spells/poison_v.lua =================================================================== --- scripts/globals/spells/poison_v.lua (revision 0) +++ scripts/globals/spells/poison_v.lua (working copy) @@ -0,0 +1,59 @@ +----------------------------------------- +-- Spell: Poison V +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local effect = EFFECT_POISON; + local duration = 300; + + pINT = caster:getStat(MOD_INT); + mINT = target:getStat(MOD_INT); + + dINT = (pINT - mINT); + power = caster:getSkillLevel(ENFEEBLING_MAGIC_SKILL) / 3 + 1; + if power > 155 then + power = 155; + end + + if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then + bonus = AffinityBonus(caster, spell); + resist = applyResistance(caster,spell,target,dINT,ENFEEBLING_MAGIC_SKILL,bonus); + if(resist == 1 or resist == 0.5) then -- effect taken + duration = duration / resist; + + -- Try to erase a weaker poison. + poison = target:getStatusEffect(effect) + if(poison ~= nil) then + if(poison:getPower() < power) then + -- remove weaker poison + target:delStatusEffect(effect); + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + end + + else -- resist entirely. + spell:setMsg(85); + end + else + spell:setMsg(284); + end + return effect; +end; \ No newline at end of file Index: scripts/globals/spells/poisonga.lua =================================================================== --- scripts/globals/spells/poisonga.lua (revision 3520) +++ scripts/globals/spells/poisonga.lua (working copy) @@ -25,6 +25,12 @@ if power > 6 then power = 6; end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power * 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then bonus = AffinityBonus(caster, spell); @@ -32,10 +38,21 @@ if(resist == 1 or resist == 0.5) then -- effect taken duration = duration / resist; - if(target:addStatusEffect(effect,power,3,duration)) then + -- Try to erase a weaker poison. + poison = target:getStatusEffect(effect) + if(poison ~= nil) then + if(poison:getPower() < power) then + -- remove weaker poison + target:delStatusEffect(effect); + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + target:addStatusEffect(effect,power,3,duration); spell:setMsg(236); - else - spell:setMsg(75); end else -- resist entirely. Index: scripts/globals/spells/poisonga_ii.lua =================================================================== --- scripts/globals/spells/poisonga_ii.lua (revision 3520) +++ scripts/globals/spells/poisonga_ii.lua (working copy) @@ -15,7 +15,7 @@ function onSpellCast(caster,target,spell) local effect = EFFECT_POISON; - local duration = 60; + local duration = 90; pINT = caster:getStat(MOD_INT); mINT = target:getStat(MOD_INT); @@ -25,6 +25,12 @@ if power > 15 then power = 15; end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power * 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then bonus = AffinityBonus(caster, spell); @@ -32,10 +38,21 @@ if(resist == 1 or resist == 0.5) then -- effect taken duration = duration / resist; - if(target:addStatusEffect(effect,power,3,duration)) then + -- Try to erase a weaker poison. + poison = target:getStatusEffect(effect) + if(poison ~= nil) then + if(poison:getPower() < power) then + -- remove weaker poison + target:delStatusEffect(effect); + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + target:addStatusEffect(effect,power,3,duration); spell:setMsg(236); - else - spell:setMsg(75); end else -- resist entirely. Index: scripts/globals/spells/poisonga_iii.lua =================================================================== --- scripts/globals/spells/poisonga_iii.lua (revision 3520) +++ scripts/globals/spells/poisonga_iii.lua (working copy) @@ -15,7 +15,7 @@ function onSpellCast(caster,target,spell) local effect = EFFECT_POISON; - local duration = 60; + local duration = 120; pINT = caster:getStat(MOD_INT); mINT = target:getStat(MOD_INT); @@ -25,6 +25,12 @@ if power > 25 then power = 25; end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power * 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then bonus = AffinityBonus(caster, spell); @@ -32,10 +38,21 @@ if(resist == 1 or resist == 0.5) then -- effect taken duration = duration / resist; - if(target:addStatusEffect(effect,power,3,duration)) then + -- Try to erase a weaker poison. + poison = target:getStatusEffect(effect) + if(poison ~= nil) then + if(poison:getPower() < power) then + -- remove weaker poison + target:delStatusEffect(effect); + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + target:addStatusEffect(effect,power,3,duration); spell:setMsg(236); - else - spell:setMsg(75); end else -- resist entirely. Index: scripts/globals/spells/poisonga_iv.lua =================================================================== --- scripts/globals/spells/poisonga_iv.lua (revision 0) +++ scripts/globals/spells/poisonga_iv.lua (working copy) @@ -0,0 +1,59 @@ +----------------------------------------- +-- Spell: Poisonga IV +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local effect = EFFECT_POISON; + local duration = 150; + + pINT = caster:getStat(MOD_INT); + mINT = target:getStat(MOD_INT); + + dINT = (pINT - mINT); + local power = caster:getSkillLevel(ENFEEBLING_MAGIC_SKILL) / 10 + 1; + if power > 50 then + power = 50; + end + + if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then + bonus = AffinityBonus(caster, spell); + resist = applyResistance(caster,spell,target,dINT,ENFEEBLING_MAGIC_SKILL,bonus); + if(resist == 1 or resist == 0.5) then -- effect taken + duration = duration / resist; + + -- Try to erase a weaker poison. + poison = target:getStatusEffect(effect) + if(poison ~= nil) then + if(poison:getPower() < power) then + -- remove weaker poison + target:delStatusEffect(effect); + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + end + + else -- resist entirely. + spell:setMsg(85); + end + else + spell:setMsg(284); + end + return effect; +end; \ No newline at end of file Index: scripts/globals/spells/poisonga_v.lua =================================================================== --- scripts/globals/spells/poisonga_v.lua (revision 0) +++ scripts/globals/spells/poisonga_v.lua (working copy) @@ -0,0 +1,59 @@ +----------------------------------------- +-- Spell: Poisonga V +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local effect = EFFECT_POISON; + local duration = 180; + + pINT = caster:getStat(MOD_INT); + mINT = target:getStat(MOD_INT); + + dINT = (pINT - mINT); + local power = caster:getSkillLevel(ENFEEBLING_MAGIC_SKILL) / 6 + 1; + if power > 80 then + power = 80; + end + + if(math.random(0,100) >= target:getMod(MOD_POISONRES)) then + bonus = AffinityBonus(caster, spell); + resist = applyResistance(caster,spell,target,dINT,ENFEEBLING_MAGIC_SKILL,bonus); + if(resist == 1 or resist == 0.5) then -- effect taken + duration = duration / resist; + + -- Try to erase a weaker poison. + poison = target:getStatusEffect(effect) + if(poison ~= nil) then + if(poison:getPower() < power) then + -- remove weaker poison + target:delStatusEffect(effect); + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + else + -- no effect + spell:setMsg(75); + end + else + target:addStatusEffect(effect,power,3,duration); + spell:setMsg(236); + end + + else -- resist entirely. + spell:setMsg(85); + end + else + spell:setMsg(284); + end + return effect; +end; \ No newline at end of file Index: scripts/globals/spells/protect.lua =================================================================== --- scripts/globals/spells/protect.lua (revision 3520) +++ scripts/globals/spells/protect.lua (working copy) @@ -8,14 +8,24 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local power = 15; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 2; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 2; + end + local typeEffect = EFFECT_PROTECT; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/protect_ii.lua =================================================================== --- scripts/globals/spells/protect_ii.lua (revision 3520) +++ scripts/globals/spells/protect_ii.lua (working copy) @@ -8,14 +8,24 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local power = 40; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 4; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 4; + end + local typeEffect = EFFECT_PROTECT; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/protect_iii.lua =================================================================== --- scripts/globals/spells/protect_iii.lua (revision 3520) +++ scripts/globals/spells/protect_iii.lua (working copy) @@ -8,14 +8,24 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local power = 75; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 6; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 6; + end + local typeEffect = EFFECT_PROTECT; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/protect_iv.lua =================================================================== --- scripts/globals/spells/protect_iv.lua (revision 3520) +++ scripts/globals/spells/protect_iv.lua (working copy) @@ -8,14 +8,24 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local power = 120; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 8; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 8; + end + local typeEffect = EFFECT_PROTECT; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/protect_v.lua =================================================================== --- scripts/globals/spells/protect_v.lua (revision 3520) +++ scripts/globals/spells/protect_v.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Protect IV +-- Spell: Protect V ----------------------------------------- require("scripts/globals/status"); @@ -16,6 +16,16 @@ local power = 175; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 10; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 10; + end + local typeEffect = EFFECT_PROTECT; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/protected_aria.lua =================================================================== --- scripts/globals/spells/protected_aria.lua (revision 0) +++ scripts/globals/spells/protected_aria.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- Spell: Protected Aria +-- Increases Charm Resistance to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_ARIA); + target:addStatusEffect(EFFECT_ARIA,power,0,duration); + spell:setMsg(230); + return EFFECT_ARIA; +end; \ No newline at end of file Index: scripts/globals/spells/protectra.lua =================================================================== --- scripts/globals/spells/protectra.lua (revision 3520) +++ scripts/globals/spells/protectra.lua (working copy) @@ -8,14 +8,24 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local power = 15; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 2; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 2; + end + local typeEffect = EFFECT_PROTECT; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/protectra_ii.lua =================================================================== --- scripts/globals/spells/protectra_ii.lua (revision 3520) +++ scripts/globals/spells/protectra_ii.lua (working copy) @@ -8,14 +8,24 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local power = 40; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 4; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 4; + end + local typeEffect = EFFECT_PROTECT; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/protectra_iii.lua =================================================================== --- scripts/globals/spells/protectra_iii.lua (revision 3520) +++ scripts/globals/spells/protectra_iii.lua (working copy) @@ -16,6 +16,16 @@ local power = 75; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 6; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 6; + end + local typeEffect = EFFECT_PROTECT; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/protectra_iv.lua =================================================================== --- scripts/globals/spells/protectra_iv.lua (revision 3520) +++ scripts/globals/spells/protectra_iv.lua (working copy) @@ -16,6 +16,13 @@ local power = 120; local duration = 1800; + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 8; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 8; + end + local typeEffect = EFFECT_PROTECT; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/protectra_v.lua =================================================================== --- scripts/globals/spells/protectra_v.lua (revision 3520) +++ scripts/globals/spells/protectra_v.lua (working copy) @@ -1,27 +1,44 @@ ----------------------------------------- --- Spell: Protectra V ------------------------------------------ - -require("scripts/globals/status"); - ------------------------------------------ --- OnSpellCast ------------------------------------------ - +-- Spell: Protectra IV +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + function OnMagicCastingCheck(caster,target,spell) return 0; end; -function onSpellCast(caster,target,spell) - local power = 175; - local duration = 1800; +function onSpellCast(caster,target,spell) + local power = 175 + if(caster:getObjType() == TYPE_PC) then + local power = 170 + (target:getMerit(MERIT_PROTECTRA_V)); + end + local duration = 1800; - local typeEffect = EFFECT_PROTECT; - if(target:addStatusEffect(typeEffect, power, 0, duration)) then - spell:setMsg(230); - else - spell:setMsg(75); -- no effect - end - - return typeEffect; -end; + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 10; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 10; + end + + local typeEffect = EFFECT_PROTECT; + if(target:hasStatusEffect(typeEffect) == true) then + local effect = target:getStatusEffect(typeEffect); + local cPower = effect:getPower(); + if(cPower > power) then + spell:setMsg(75); -- no effect + else + target:delStatusEffect(typeEffect); + target:addStatusEffect(typeEffect,power,0,duration); + end + else + target:addStatusEffect(typeEffect,power,0,duration); + end + + return typeEffect; +end; Index: scripts/globals/spells/puppets_operetta.lua =================================================================== --- scripts/globals/spells/puppets_operetta.lua (revision 0) +++ scripts/globals/spells/puppets_operetta.lua (working copy) @@ -0,0 +1,18 @@ +----------------------------------------- +-- Spell: Puppet's Opperetta +-- Increases Silence Resistance to +-- Party Members within target AoE +----------------------------------------- + +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) +end; \ No newline at end of file Index: scripts/globals/spells/quick_etude.lua =================================================================== --- scripts/globals/spells/quick_etude.lua (revision 0) +++ scripts/globals/spells/quick_etude.lua (working copy) @@ -0,0 +1,51 @@ +-------------------------------------- +-- Spell: Quick Etude +-- Boosts targets AGI stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <180)then + power = 3 + elseif(enchanceSkill >=181 and enchanceSkill <=235)then + power = 4 + elseif(enchanceSkill >=236 and enchanceSkill <=288)then + power = 5 + elseif(enchanceSkill >=289 and enchanceSkill <=342)then + power = 6 + elseif(enchanceSkill >=343 and enchanceSkill <=396)then + power = 7 + elseif(enchanceSkill >=397 and enchanceSkill <=449)then + power = 8 + elseif(enchanceSkill >=450)then + power = 9 + else + power = 10 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_AGI_DOWN) == true) then + target:delStatusEffect(EFFECT_AGI_DOWN); + else + target:addStatusEffect(EFFECT_AGI_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/raiton_ichi.lua =================================================================== --- scripts/globals/spells/raiton_ichi.lua (revision 3520) +++ scripts/globals/spells/raiton_ichi.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_RAITON_EFFECT); + duration = 30 + caster:getMerit(MERIT_RAITON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_EARTHRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_EARTHRES); return final; Index: scripts/globals/spells/raiton_ni.lua =================================================================== --- scripts/globals/spells/raiton_ni.lua (revision 3520) +++ scripts/globals/spells/raiton_ni.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_RAITON_EFFECT); + duration = 30 + caster:getMerit(MERIT_RAITON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_EARTHRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_EARTHRES); return final; Index: scripts/globals/spells/raiton_san.lua =================================================================== --- scripts/globals/spells/raiton_san.lua (revision 3520) +++ scripts/globals/spells/raiton_san.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_RAITON_EFFECT); + duration = 30 + caster:getMerit(MERIT_RAITON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_EARTHRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_EARTHRES); return final; Index: scripts/globals/spells/raptor_mazurka.lua =================================================================== --- scripts/globals/spells/raptor_mazurka.lua (revision 3520) +++ scripts/globals/spells/raptor_mazurka.lua (working copy) @@ -14,11 +14,19 @@ end; function onSpellCast(caster,target,spell) + local duration = 120; + local power = 12; - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_MAZURKA) * 10)/100)); + + power = power + ((target:getMod(MOD_MAZURKA) + target:getMod(MOD_ALL_SONGS)) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. -- Since all the tiers use the same effect buff it is hard to delete a specific one. target:delStatusEffect(EFFECT_MAZURKA); - target:addStatusEffect(EFFECT_MAZURKA,12,0,120); + target:addStatusEffect(EFFECT_MAZURKA,power,0,duration); return EFFECT_MAZURKA; end; Index: scripts/globals/spells/recall-jugner.lua =================================================================== --- scripts/globals/spells/recall-jugner.lua (revision 0) +++ scripts/globals/spells/recall-jugner.lua (working copy) @@ -0,0 +1,24 @@ +----------------------------------------- +-- Spell: Recall-Jugner +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/keyitems"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + if (target:hasKeyItem(JUGNER_GATE_CRYSTAL) == true) then + recallJugner(target); + spell:setMsg(93); + else + spell:setMsg(283); + end; + return 0; +end; \ No newline at end of file Index: scripts/globals/spells/recall-meriph.lua =================================================================== --- scripts/globals/spells/recall-meriph.lua (revision 0) +++ scripts/globals/spells/recall-meriph.lua (working copy) @@ -0,0 +1,24 @@ +----------------------------------------- +-- Spell: Recall-Meriph +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/keyitems"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + if (target:hasKeyItem(MERIPHATAUD_GATE_CRYSTAL) == true) then + recallMeriph(target); + spell:setMsg(93); + else + spell:setMsg(283); + end; + return 0; +end; \ No newline at end of file Index: scripts/globals/spells/recall-pashh.lua =================================================================== --- scripts/globals/spells/recall-pashh.lua (revision 0) +++ scripts/globals/spells/recall-pashh.lua (working copy) @@ -0,0 +1,24 @@ +----------------------------------------- +-- Spell: Recall-Pashh +----------------------------------------- + +require("scripts/globals/teleports"); +require("scripts/globals/keyitems"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + if (target:hasKeyItem(PASHHOW_GATE_CRYSTAL) == true) then + recallPashh(target); + spell:setMsg(93); + else + spell:setMsg(283); + end; + return 0; +end; \ No newline at end of file Index: scripts/globals/spells/refresh.lua =================================================================== --- scripts/globals/spells/refresh.lua (revision 3520) +++ scripts/globals/spells/refresh.lua (working copy) @@ -10,23 +10,34 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) - - mp = 3; + local back = target:getEquipID(SLOT_BACK); + mp = 3; duration = 150; if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (caster:getEquipID(SLOT_LEGS) == 11128) then -- Estoqueurs Fuseau +2 + mp = mp + 1; + end + if (target:getMainLvl() < 41) then duration = duration * target:getMainLvl() / 41; end + if (back == 11575) then -- Grapevine Cape + duration = duration + 30; + end + target:delStatusEffect(EFFECT_REFRESH); target:addStatusEffect(EFFECT_REFRESH,mp,3,duration); Index: scripts/globals/spells/refresh_ii.lua =================================================================== --- scripts/globals/spells/refresh_ii.lua (revision 0) +++ scripts/globals/spells/refresh_ii.lua (working copy) @@ -0,0 +1,41 @@ +----------------------------------------- +-- Spell: Refresh II +-- Gradually restores target party member's MP +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + local back = target:getEquipID(SLOT_BACK); + mp = 6; + duration = 180; + + + if (target:getMainLvl() < 41) then + duration = duration * target:getMainLvl() / 41; + end + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (back == 11575) then -- Grapevine Cape + duration = duration + 30; + end + if (caster:getEquipID(SLOT_LEGS) == 11128) then -- Estoqueurs Fuseau +2 + mp = mp + 2; + end + + target:delStatusEffect(EFFECT_REFRESH); + target:addStatusEffect(EFFECT_REFRESH,mp,3,duration); + return 0; + +end; \ No newline at end of file Index: scripts/globals/spells/regen.lua =================================================================== --- scripts/globals/spells/regen.lua (revision 3520) +++ scripts/globals/spells/regen.lua (working copy) @@ -13,19 +13,35 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) hp = 5; + local body = caster:getEquipID(SLOT_BODY); + local head = caster:getEquipID(SLOT_HEAD); + local hands = caster:getEquipID(SLOT_HANDS); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + merit = caster:getMerit(MERIT_REGEN_EFFECT); + if(job == JOB_WHM or sjob == JOB_WHM) then + if(merit > 0) then + hp = hp + merit; + end + end - --TODO: put this into a mod? +1 hp PER TIER, would need a new mod - body = caster:getEquipID(SLOT_BODY); + if (body == 15089 or body == 14502) then hp = hp+1; + elseif (body == 10672) then + hp = hp+2; end + if (head == 11083) then + hp = hp+1; + end hp = hp + caster:getMod(MOD_REGEN_EFFECT); @@ -37,6 +53,15 @@ duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (hands == 11206) then + duration = duration + 10; + elseif (hands == 11106) then + duration = duration + 15; + end + if (target:getMainLvl() < 21) then duration = duration * target:getMainLvl() / 21; end @@ -48,4 +73,5 @@ end return EFFECT_REGEN; + end; end; \ No newline at end of file Index: scripts/globals/spells/regen_ii.lua =================================================================== --- scripts/globals/spells/regen_ii.lua (revision 3520) +++ scripts/globals/spells/regen_ii.lua (working copy) @@ -13,18 +13,35 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) hp = 12; - - body = caster:getEquipID(SLOT_BODY); + local body = caster:getEquipID(SLOT_BODY); + local head = caster:getEquipID(SLOT_HEAD); + local hands = caster:getEquipID(SLOT_HANDS); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + merit = caster:getMerit(MERIT_REGEN_EFFECT); + if(job == JOB_WHM or sjob == JOB_WHM) then + if(merit > 0) then + hp = hp + merit; + end + end + + if (body == 15089 or body == 14502) then hp = hp+2; + elseif (body == 10672) then + hp = hp+3; end + if (head == 11083) then + hp = hp+2; + end hp = hp + caster:getMod(MOD_REGEN_EFFECT); @@ -36,6 +53,15 @@ duration = duration * target:getMainLvl() / 66; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (hands == 11206) then + duration = duration + 10; + elseif (hands == 11106) then + duration = duration + 15; + end + if(target:addStatusEffect(EFFECT_REGEN,hp,3,duration)) then spell:setMsg(230); else @@ -43,4 +69,5 @@ end return EFFECT_REGEN; + end; end; \ No newline at end of file Index: scripts/globals/spells/regen_iii.lua =================================================================== --- scripts/globals/spells/regen_iii.lua (revision 3520) +++ scripts/globals/spells/regen_iii.lua (working copy) @@ -20,18 +20,40 @@ function onSpellCast(caster,target,spell) hp = 20; - - body = caster:getEquipID(SLOT_BODY); + local body = caster:getEquipID(SLOT_BODY); + local head = caster:getEquipID(SLOT_HEAD); + local hands = caster:getEquipID(SLOT_HANDS); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + merit = caster:getMerit(MERIT_REGEN_EFFECT); + if(job == JOB_WHM or sjob == JOB_WHM) then + if(merit > 0) then + hp = hp + merit; + end + end + if (body == 15089 or body == 14502) then hp = hp+3; + elseif (body == 10672) then + hp = hp+5; end + if (head == 11083) then + hp = hp+3; + end hp = hp + caster:getMod(MOD_REGEN_EFFECT); duration = 60; duration = duration + caster:getMod(MOD_REGEN_DURATION); - + + if (hands == 11206) then + duration = duration + 10; + elseif (hands == 11106) then + duration = duration + 15; + end + if (target:getMainLvl() < 21) then duration = duration * target:getMainLvl() / 21; end @@ -39,8 +61,9 @@ if(target:addStatusEffect(EFFECT_REGEN,hp,3,duration)) then spell:setMsg(230); else - spell:setMsg(75); -- no effect - end + spell:setMsg(75); -- no effect + end return EFFECT_REGEN; + end; end; \ No newline at end of file Index: scripts/globals/spells/regen_iv.lua =================================================================== --- scripts/globals/spells/regen_iv.lua (revision 0) +++ scripts/globals/spells/regen_iv.lua (working copy) @@ -0,0 +1,69 @@ +----------------------------------------- +-- Spell: Regen IV +-- Gradually restores target's HP. +----------------------------------------- +-- Cleric's Briault enhances the effect +-- Scale down duration based on level +-- Composure increases duration 3x +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + hp = 30; + local body = caster:getEquipID(SLOT_BODY); + local head = caster:getEquipID(SLOT_HEAD); + local hands = caster:getEquipID(SLOT_HANDS); + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + merit = caster:getMerit(MERIT_REGEN_EFFECT); + if(job == JOB_WHM or sjob == JOB_WHM) then + if(merit > 0) then + hp = hp + merit; + end + end + + if (body == 15089 or body == 14502) then + hp = hp+4; + elseif (body == 10672) then + hp = hp+7; + end + if (head == 11083) then + hp = hp+4; + end + + duration = 60; + + duration = duration + caster:getMod(MOD_REGEN_DURATION); + + if (hands == 11206) then + duration = duration + 10; + elseif (hands == 11106) then + duration = duration + 15; + end + + hp = hp + caster:getMod(MOD_REGEN_EFFECT); + + if (target:getMainLvl() < 21) then + duration = duration * target:getMainLvl() / 21; + end + + if(target:addStatusEffect(EFFECT_REGEN,hp,3,duration)) then + spell:setMsg(230); + else + spell:setMsg(75); -- no effect + end + + return EFFECT_REGEN; + end; +end; \ No newline at end of file Index: scripts/globals/spells/regen_v.lua =================================================================== --- scripts/globals/spells/regen_v.lua (revision 0) +++ scripts/globals/spells/regen_v.lua (working copy) @@ -0,0 +1,63 @@ +----------------------------------------- +-- Spell: Regen V +-- Gradually restores target's HP. +----------------------------------------- +-- Cleric's Briault enhances the effect +-- Scale down duration based on level +-- Composure increases duration 3x +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + hp = 40; + local head = caster:getEquipID(SLOT_HEAD); + local body = caster:getEquipID(SLOT_BODY); + + if(caster:getObjType() == TYPE_PC) then + local job = caster:getMainJob(); + local sjob = caster:getSubJob(); + merit = caster:getMerit(MERIT_REGEN_EFFECT); + if(job == JOB_WHM or sjob == JOB_WHM) then + if(merit > 0) then + hp = hp + merit; + end + end + + if (body == 15089 or body == 14502) then + hp = hp+4; + elseif (body == 10672) then + hp = hp+7; + end + if (head == 11083) then + hp = hp+5; + end + + hp = hp + caster:getMod(MOD_REGEN_EFFECT); + + duration = 60; + + duration = duration + caster:getMod(MOD_REGEN_DURATION); + + if (target:getMainLvl() < 21) then + duration = duration * target:getMainLvl() / 21; + end + + if(target:addStatusEffect(EFFECT_REGEN,hp,3,duration)) then + spell:setMsg(230); + else + spell:setMsg(75); -- no effect + end + + return EFFECT_REGEN; + end; +end; \ No newline at end of file Index: scripts/globals/spells/reprisal.lua =================================================================== --- scripts/globals/spells/reprisal.lua (revision 3520) +++ scripts/globals/spells/reprisal.lua (working copy) @@ -13,8 +13,10 @@ end; function onSpellCast(caster,target,spell) + + local shield = caster:getEquipID(SLOT_SUB); duration = 60; - local typeEffect = EFFECT_REPRISAL; + local typeEffect = EFFECT_REPRISAL; if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end @@ -25,11 +27,14 @@ -- totally guessing local power = ((int + 10) / 20 + 2) * (1 + (magicAtk / 100)); - if(target:addStatusEffect(typeEffect,power,0,duration)) then - spell:setMsg(230); - else - spell:setMsg(75); - end + if (shield == 10806) then -- Adamas + power = power * 1.5; + if(target:addStatusEffect(typeEffect,power,0,duration)) then + spell:setMsg(230); + else + spell:setMsg(75); + end + return typeEffect; end; Index: scripts/globals/spells/reraise_iii.lua =================================================================== --- scripts/globals/spells/reraise_iii.lua (revision 3520) +++ scripts/globals/spells/reraise_iii.lua (working copy) @@ -1,5 +1,6 @@ ----------------------------------------- -- Spell: Reraise 3 +-- Durration: 1 Hr ----------------------------------------- require("scripts/globals/status"); @@ -13,9 +14,8 @@ end; function onSpellCast(caster,target,spell) - --duration = 1800; target:delStatusEffect(EFFECT_RERAISE); - target:addStatusEffect(EFFECT_RERAISE,3,0,3600); --reraise 3, 30min duration + target:addStatusEffect(EFFECT_RERAISE,3,0,3600); --reraise 3, 1 hr duration return EFFECT_RERAISE; end; Index: scripts/globals/spells/sage_etude.lua =================================================================== --- scripts/globals/spells/sage_etude.lua (revision 0) +++ scripts/globals/spells/sage_etude.lua (working copy) @@ -0,0 +1,45 @@ +-------------------------------------- +-- Spell: Sage Etude +-- Boosts targets INT stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <416)then + power = 12 + elseif(enchanceSkill >=417 and enchanceSkill <=445)then + power = 13 + elseif(enchanceSkill >=446 and enchanceSkill <=474)then + power = 14 + elseif(enchanceSkill >=475)then + power = 15 + else + power = 15 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_INT_DOWN) == true) then + target:delStatusEffect(EFFECT_INT_DOWN); + else + target:addStatusEffect(EFFECT_INT_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/scops_operetta.lua =================================================================== --- scripts/globals/spells/scops_operetta.lua (revision 0) +++ scripts/globals/spells/scops_operetta.lua (working copy) @@ -0,0 +1,18 @@ +----------------------------------------- +-- Spell: Jester's Opperetta +-- Increases Silence Resistance to +-- Party Members within target AoE +----------------------------------------- + +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) +end; \ No newline at end of file Index: scripts/globals/spells/sentinels_scherzo.lua =================================================================== --- scripts/globals/spells/sentinels_scherzo.lua (revision 0) +++ scripts/globals/spells/sentinels_scherzo.lua (working copy) @@ -0,0 +1,35 @@ +----------------------------------------- +-- Spell: Sentinel's Scherzo +-- Mitigates severly damaging attacks to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + duration = duration + (duration * (target:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((target:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((target:getMod(MOD_SCHERZO) * 10)/100)); + + power = power + (target:getMod(MOD_SCHERZO) * 5); + power = power + (target:getMod(MOD_ALL_SONGS) * 5); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_SCHERZO); + target:addStatusEffect(EFFECT_SCHERZO,power,0,duration); + spell:setMsg(230); + return EFFECT_SCHERZO; +end; \ No newline at end of file Index: scripts/globals/spells/sheepfoe_mambo.lua =================================================================== --- scripts/globals/spells/sheepfoe_mambo.lua (revision 3520) +++ scripts/globals/spells/sheepfoe_mambo.lua (working copy) @@ -3,7 +3,7 @@ -- Grants evasion bonus to all members. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,16 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local sItem = caster:getEquipID(2); - local sLvl = caster:getSkillLevel(SINGING_SKILL); -- Gets skill level of Singing - - -- TODO: mambo bonus - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_MAMBO); - target:addStatusEffect(EFFECT_MAMBO,1,0,120); - spell:setMsg(230); - return EFFECT_MAMBO; end; \ No newline at end of file Index: scripts/globals/spells/shell.lua =================================================================== --- scripts/globals/spells/shell.lua (revision 3520) +++ scripts/globals/spells/shell.lua (working copy) @@ -8,14 +8,24 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local power = 24; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 5; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 5; + end + local typeEffect = EFFECT_SHELL; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/shell_ii.lua =================================================================== --- scripts/globals/spells/shell_ii.lua (revision 3520) +++ scripts/globals/spells/shell_ii.lua (working copy) @@ -8,14 +8,24 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local power = 36; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 4; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 4; + end + local typeEffect = EFFECT_SHELL; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/shell_iii.lua =================================================================== --- scripts/globals/spells/shell_iii.lua (revision 3520) +++ scripts/globals/spells/shell_iii.lua (working copy) @@ -8,14 +8,24 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local power = 48; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 3; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 3; + end + local typeEffect = EFFECT_SHELL; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/shell_iv.lua =================================================================== --- scripts/globals/spells/shell_iv.lua (revision 3520) +++ scripts/globals/spells/shell_iv.lua (working copy) @@ -8,14 +8,24 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local power = 56; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 2; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 2; + end + local typeEffect = EFFECT_SHELL; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/shell_v.lua =================================================================== --- scripts/globals/spells/shell_v.lua (revision 3520) +++ scripts/globals/spells/shell_v.lua (working copy) @@ -16,6 +16,16 @@ local power = 62; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 1; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 1; + end + local typeEffect = EFFECT_SHELL; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/shellra.lua =================================================================== --- scripts/globals/spells/shellra.lua (revision 3520) +++ scripts/globals/spells/shellra.lua (working copy) @@ -8,14 +8,24 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local power = 24; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 5; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 5; + end + local typeEffect = EFFECT_SHELL; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/shellra_ii.lua =================================================================== --- scripts/globals/spells/shellra_ii.lua (revision 3520) +++ scripts/globals/spells/shellra_ii.lua (working copy) @@ -16,6 +16,16 @@ local power = 36; local duration = 1800; + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 4; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 4; + end + local typeEffect = EFFECT_SHELL; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/shellra_iii.lua =================================================================== --- scripts/globals/spells/shellra_iii.lua (revision 3520) +++ scripts/globals/spells/shellra_iii.lua (working copy) @@ -16,6 +16,13 @@ local power = 48; local duration = 1800; + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 3; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 3; + end + local typeEffect = EFFECT_SHELL; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/shellra_iv.lua =================================================================== --- scripts/globals/spells/shellra_iv.lua (revision 3520) +++ scripts/globals/spells/shellra_iv.lua (working copy) @@ -16,6 +16,13 @@ local power = 56; local duration = 1800; + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 2; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 2; + end + local typeEffect = EFFECT_SHELL; if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); Index: scripts/globals/spells/shellra_v.lua =================================================================== --- scripts/globals/spells/shellra_v.lua (revision 3520) +++ scripts/globals/spells/shellra_v.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Shellra +-- Spell: Shellra IV ----------------------------------------- require("scripts/globals/status"); @@ -13,14 +13,24 @@ end; function onSpellCast(caster,target,spell) - local power = 62; - local duration = 1800; + local power = 62; + if(caster:getObjType() == TYPE_PC) then + local power = 62 + (target:getMerit(MERIT_SHELLRA_V)); + end + local duration = 1800; - local typeEffect = EFFECT_SHELL; - if(target:addStatusEffect(typeEffect, power, 0, duration)) then + if (target:getEquipID(SLOT_EAR1) == 11039 or target:getEquipID(SLOT_EAR2) == 11039) then -- Brachyura Earring + power = power + 1; + end + if (target:getEquipID(SLOT_RING1) == 10764 or target:getEquipID(SLOT_RING2) == 10764) then -- Sheltered Ring + power = power + 1; + end + + local typeEffect = EFFECT_SHELL; + if(target:addStatusEffect(typeEffect, power, 0, duration)) then spell:setMsg(230); else spell:setMsg(75); -- no effect end - return typeEffect; + return typeEffect; end; Index: scripts/globals/spells/shining_fantasia.lua =================================================================== --- scripts/globals/spells/shining_fantasia.lua (revision 0) +++ scripts/globals/spells/shining_fantasia.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- Spell: Shining Fantasia +-- Increases Blindness Resistance to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_FANTASIA); + target:addStatusEffect(EFFECT_FANTASIA,power,0,duration); + spell:setMsg(230); + return EFFECT_FANTASIA; +end; \ No newline at end of file Index: scripts/globals/spells/shock_spikes.lua =================================================================== --- scripts/globals/spells/shock_spikes.lua (revision 3520) +++ scripts/globals/spells/shock_spikes.lua (working copy) @@ -8,22 +8,35 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) local duration = SPIKE_EFFECT_DURATION; - - local typeEffect = EFFECT_SHOCK_SPIKES; + local legs = caster:getEquipID(SLOT_LEGS); + local typeEffect = EFFECT_SHOCK_SPIKES; + if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + local int = caster:getStat(MOD_INT); local magicAtk = caster:getMod(MOD_MATT); local power = ((int + 10) / 20 + 2) * (1 + (magicAtk / 100)); + -- Equipment Bonus Amount + if (legs == 15622) then -- Mercenarys Trousers + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (4/256)); + elseif (legs == 15121 or legs == 15584) then -- Duelist Tights & +1 + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (6/256)); + elseif (legs == 10714) then -- Duelist Tights +2 + power = ((int + 2) / 12 + 4) * (1 + (magicAtk / 100)) + (int * (8/256)); + end + if(target:addStatusEffect(typeEffect,power,0,duration)) then spell:setMsg(230); else Index: scripts/globals/spells/silence.lua =================================================================== --- scripts/globals/spells/silence.lua (revision 3520) +++ scripts/globals/spells/silence.lua (working copy) @@ -17,6 +17,16 @@ --Pull base stats. dINT = (caster:getStat(MOD_MND) - target:getStat(MOD_MND)); bonus = AffinityBonus(caster,spell); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + bonus = bonus * 1.1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + bonus = bonus * 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end --Duration, including resistance. May need more research. duration = 180; Index: scripts/globals/spells/silencega.lua =================================================================== --- scripts/globals/spells/silencega.lua (revision 0) +++ scripts/globals/spells/silencega.lua (working copy) @@ -0,0 +1,50 @@ +----------------------------------------- +-- Spell: Silencega +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local effectType = EFFECT_SILENCE; + + --Pull base stats. + dINT = (caster:getStat(MOD_MND) - target:getStat(MOD_MND)); + bonus = AffinityBonus(caster,spell); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + bonus = bonus * 1.1; + end + + --Duration, including resistance. May need more research. + duration = 180; + + --Resist + resist = applyResistance(caster,spell,target,dINT,35,bonus); + + if(target:hasStatusEffect(effectType)) then + spell:setMsg(75); -- no effect + return effectType; + end + + if(100 * math.random() >= target:getMod(MOD_SILENCERES)) then + if(resist >= 0.5) then --Do it! + target:addStatusEffect(effectType,1,0,duration * resist); + spell:setMsg(236); + else + spell:setMsg(85); + end + else + spell:setMsg(85); -- resist + end + + + return effectType; + +end; \ No newline at end of file Index: scripts/globals/spells/sinewy_etude.lua =================================================================== --- scripts/globals/spells/sinewy_etude.lua (revision 0) +++ scripts/globals/spells/sinewy_etude.lua (working copy) @@ -0,0 +1,51 @@ +-------------------------------------- +-- Spell: Sinewy Etude +-- Boosts targets STR stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <180)then + power = 3 + elseif(enchanceSkill >=181 and enchanceSkill <=235)then + power = 4 + elseif(enchanceSkill >=236 and enchanceSkill <=288)then + power = 5 + elseif(enchanceSkill >=289 and enchanceSkill <=342)then + power = 6 + elseif(enchanceSkill >=343 and enchanceSkill <=396)then + power = 7 + elseif(enchanceSkill >=397 and enchanceSkill <=449)then + power = 8 + elseif(enchanceSkill >=450)then + power = 9 + else + power = 10 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_STR_DOWN) == true) then + target:delStatusEffect(EFFECT_STR_DOWN); + else + target:addStatusEffect(EFFECT_STR_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/sleep.lua =================================================================== --- scripts/globals/spells/sleep.lua (revision 3520) +++ scripts/globals/spells/sleep.lua (working copy) @@ -14,6 +14,17 @@ function onSpellCast(caster,target,spell) duration = 60; bonus = AffinityBonus(caster, spell); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + bonus = bonus * 1.1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + bonus = bonus * 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end + pINT = caster:getStat(MOD_INT); mINT = target:getStat(MOD_INT); dINT = (pINT - mINT); Index: scripts/globals/spells/sleep_ii.lua =================================================================== --- scripts/globals/spells/sleep_ii.lua (revision 3520) +++ scripts/globals/spells/sleep_ii.lua (working copy) @@ -15,6 +15,17 @@ duration = 90; local typeEffect = EFFECT_SLEEP_II; bonus = AffinityBonus(caster, spell); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + bonus = bonus * 1.1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + bonus = bonus * 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end + pINT = caster:getStat(MOD_INT); mINT = target:getStat(MOD_INT); dINT = (pINT - mINT); Index: scripts/globals/spells/sleepga.lua =================================================================== --- scripts/globals/spells/sleepga.lua (revision 3520) +++ scripts/globals/spells/sleepga.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Sleep I +-- Spell: Sleepga ----------------------------------------- require("scripts/globals/status"); require("scripts/globals/magic"); @@ -14,6 +14,17 @@ function onSpellCast(caster,target,spell) duration = 60; bonus = AffinityBonus(caster, spell); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + bonus = bonus * 1.1; + end + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + bonus = bonus * 2; + caster:delStatusEffect(EFFECT_SABOTEUR); + end + pINT = caster:getStat(MOD_INT); mINT = target:getStat(MOD_INT); dINT = (pINT - mINT); Index: scripts/globals/spells/sleepga_ii.lua =================================================================== --- scripts/globals/spells/sleepga_ii.lua (revision 3520) +++ scripts/globals/spells/sleepga_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Sleep II +-- Spell: Sleepga II ----------------------------------------- require("scripts/globals/status"); require("scripts/globals/magic"); @@ -15,6 +15,10 @@ duration = 90; local typeEffect = EFFECT_SLEEP_II; bonus = AffinityBonus(caster, spell); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + bonus = bonus * 1.1; + end pINT = caster:getStat(MOD_INT); mINT = target:getStat(MOD_INT); dINT = (pINT - mINT); Index: scripts/globals/spells/slow.lua =================================================================== --- scripts/globals/spells/slow.lua (revision 3520) +++ scripts/globals/spells/slow.lua (working copy) @@ -26,9 +26,20 @@ if(power > 300) then power = 300; end + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end --Duration, including resistance. duration = 120 * applyResistance(caster,spell,target,dMND,35,bonus); + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power + (power * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + caster:delStatusEffect(EFFECT_SABOTEUR); + end + if(100 * math.random() >= target:getMod(MOD_SLOWRES)) then if(duration >= 60) then --Do it! Index: scripts/globals/spells/slow_ii.lua =================================================================== --- scripts/globals/spells/slow_ii.lua (revision 3520) +++ scripts/globals/spells/slow_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Slow +-- Spell: Slow II -- Spell accuracy is most highly affected by Enfeebling Magic Skill, Magic Accuracy, and MND. -- Slow's potency is calculated with the formula (150 + dMND*2)/1024, and caps at 300/1024 (~29.3%). -- And MND of 75 is neccessary to reach the hardcap of Slow. @@ -28,6 +28,10 @@ if(potency > 350) then potency = 350; end + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + potency = potency * 1.1; + end local merits = caster:getMerit(MERIT_SLOW_II); --Power. @@ -35,6 +39,12 @@ --Duration, including resistance. duration = 180 * applyResistance(caster,spell,target,dMND,35,bonus); + + if (caster:hasStatusEffect(EFFECT_SABOTEUR) == true) then + duration = duration + (duration * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + power = power + (power * (1 + (caster:getMod(MOD_SABOTEUR)/100))); + caster:delStatusEffect(EFFECT_SABOTEUR); + end if(100 * math.random() >= target:getMod(MOD_SLOWRES)) then if(duration >= 60) then --Do it! Index: scripts/globals/spells/slowga.lua =================================================================== --- scripts/globals/spells/slowga.lua (revision 0) +++ scripts/globals/spells/slowga.lua (working copy) @@ -0,0 +1,53 @@ +----------------------------------------- +-- Spell: Slowga +-- Spell accuracy is most highly affected by Enfeebling Magic Skill, Magic Accuracy, and MND. +-- Slow's potency is calculated with the formula (150 + dMND*2)/1024, and caps at 300/1024 (~29.3%). +-- And MND of 75 is neccessary to reach the hardcap of Slow. +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + dMND = (caster:getStat(MOD_MND) - target:getStat(MOD_MND)); + bonus = AffinityBonus(caster,spell); + + --Power. + power = 150 + dMND * 2; + if(power > 300) then + power = 300; + end + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + + --Duration, including resistance. + duration = 120 * applyResistance(caster,spell,target,dMND,35,bonus); + if(100 * math.random() >= target:getMod(MOD_SLOWRES)) then + if(duration >= 60) then --Do it! + + if(target:addStatusEffect(EFFECT_SLOW,power,0,duration)) then + spell:setMsg(236); + else + spell:setMsg(75); + end + + else + spell:setMsg(85); + end + else + spell:setMsg(85); + end + + return EFFECT_SLOW; +end; \ No newline at end of file Index: scripts/globals/spells/sneak.lua =================================================================== --- scripts/globals/spells/sneak.lua (revision 3520) +++ scripts/globals/spells/sneak.lua (working copy) @@ -17,7 +17,6 @@ function onSpellCast(caster,target,spell) if (target:hasStatusEffect(EFFECT_SNEAK) == false) then - local duration = math.random(30, 300); if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; @@ -26,9 +25,12 @@ if (target:getMainLvl() < 20) then duration = duration * target:getMainLvl() / 20; -- level adjustment end - if (target:getEquipID(SLOT_BACK) == 13692) then -- skulker's cape - duration = duration * 1.5; - end + -- Equip Mods + duration = duration + (duration * target:getMod(MOD_SNEAK_DUR)); + + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); + spell:setMsg(230); target:addStatusEffect(EFFECT_SNEAK,0,10,(math.floor(duration) * SNEAK_INVIS_DURATION_MULTIPLIER)); else Index: scripts/globals/spells/spirited_etude.lua =================================================================== --- scripts/globals/spells/spirited_etude.lua (revision 0) +++ scripts/globals/spells/spirited_etude.lua (working copy) @@ -0,0 +1,51 @@ +-------------------------------------- +-- Spell: Spirited Etude +-- Boosts targets MND stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <180)then + power = 3 + elseif(enchanceSkill >=181 and enchanceSkill <=235)then + power = 4 + elseif(enchanceSkill >=236 and enchanceSkill <=288)then + power = 5 + elseif(enchanceSkill >=289 and enchanceSkill <=342)then + power = 6 + elseif(enchanceSkill >=343 and enchanceSkill <=396)then + power = 7 + elseif(enchanceSkill >=397 and enchanceSkill <=449)then + power = 8 + elseif(enchanceSkill >=450)then + power = 9 + else + power = 10 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_MND_DOWN) == true) then + target:delStatusEffect(EFFECT_MND_DOWN); + else + target:addStatusEffect(EFFECT_MND_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/stone.lua =================================================================== --- scripts/globals/spells/stone.lua (revision 3520) +++ scripts/globals/spells/stone.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- Spell: Fire --- Deals fire damage to an enemy. +-- Spell: Stone +-- Deals earth damage to an enemy. ----------------------------------------- require("scripts/globals/magic"); Index: scripts/globals/spells/stone_ii.lua =================================================================== --- scripts/globals/spells/stone_ii.lua (revision 3520) +++ scripts/globals/spells/stone_ii.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- Spell: Fire --- Deals fire damage to an enemy. +-- Spell: Stone II +-- Deals earth damage to an enemy. ----------------------------------------- require("scripts/globals/magic"); Index: scripts/globals/spells/stone_iii.lua =================================================================== --- scripts/globals/spells/stone_iii.lua (revision 3520) +++ scripts/globals/spells/stone_iii.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- Spell: Fire --- Deals fire damage to an enemy. +-- Spell: Stone III +-- Deals earth damage to an enemy. ----------------------------------------- require("scripts/globals/magic"); Index: scripts/globals/spells/stone_iv.lua =================================================================== --- scripts/globals/spells/stone_iv.lua (revision 3520) +++ scripts/globals/spells/stone_iv.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- Spell: Fire --- Deals fire damage to an enemy. +-- Spell: Stone IV +-- Deals earth damage to an enemy. ----------------------------------------- require("scripts/globals/magic"); Index: scripts/globals/spells/stone_v.lua =================================================================== --- scripts/globals/spells/stone_v.lua (revision 3520) +++ scripts/globals/spells/stone_v.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- Spell: Fire --- Deals fire damage to an enemy. +-- Spell: Stone V +-- Deals earth damage to an enemy. ----------------------------------------- require("scripts/globals/magic"); Index: scripts/globals/spells/stonega_ii.lua =================================================================== --- scripts/globals/spells/stonega_ii.lua (revision 3520) +++ scripts/globals/spells/stonega_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Stonega 2 +-- Spell: Stonega II -- Deals earth damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/stonega_iii.lua =================================================================== --- scripts/globals/spells/stonega_iii.lua (revision 3520) +++ scripts/globals/spells/stonega_iii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Stonega 3 +-- Spell: Stonega III -- Deals earth damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/stonega_iv.lua =================================================================== --- scripts/globals/spells/stonega_iv.lua (revision 0) +++ scripts/globals/spells/stonega_iv.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Stonega IV +-- Deals earth damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(667,2,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/stonega_v.lua =================================================================== --- scripts/globals/spells/stonega_v.lua (revision 0) +++ scripts/globals/spells/stonega_v.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Stonega V +-- Deals earth damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(868,2.3,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/stoneskin.lua =================================================================== --- scripts/globals/spells/stoneskin.lua (revision 3520) +++ scripts/globals/spells/stoneskin.lua (working copy) @@ -11,14 +11,14 @@ -- OnSpellCast ----------------------------------------- -function OnMagicCastingCheck(caster,target,spell) - return 0; -end; - +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + function onSpellCast(caster,target,spell) pMod = (caster:getSkillLevel(ENHANCING_MAGIC_SKILL)/3)+caster:getStat(MOD_MND); pAbs = 0; - pEquipMods = 0; + pEquipMods = caster:getMod(MOD_STONESKIN_HP); duration = 300; if (pMod < 80) then pAbs = pMod; @@ -30,24 +30,13 @@ if (pAbs > STONESKIN_CAP) then -- hard cap of 350 from natural power pAbs = STONESKIN_CAP; end - -- equipment mods - if (caster:getEquipID(SLOT_NECK) == 13177) then -- stone gorget - pEquipMods = pEquipMods + 30; - end - if (caster:getEquipID(SLOT_HANDS) == 15034) then -- stone mufflers - pEquipMods = pEquipMods + 30; - end - if (caster:getEquipID(SLOT_WAIST) == 15960) then -- siegel sash - pEquipMods = pEquipMods + 20; - end - if (caster:getEquipID(SLOT_LEGS) == 11949) then -- haven hose - pEquipMods = pEquipMods + 20; - end if (caster:hasStatusEffect(EFFECT_COMPOSURE) == true and caster:getID() == target:getID()) then duration = duration * 3; end + -- Estoqueurs Bonus + duration = duration + (duration * caster:getMod(MOD_ENHANCING_DUR)); final = pAbs + pEquipMods; if(target:addStatusEffect(EFFECT_STONESKIN,final,0,duration)) then Index: scripts/globals/spells/stun.lua =================================================================== --- scripts/globals/spells/stun.lua (revision 3520) +++ scripts/globals/spells/stun.lua (working copy) @@ -31,5 +31,5 @@ spell:setMsg(236); end - return EFFECT_STUN; + return 0; end; \ No newline at end of file Index: scripts/globals/spells/suiton_ichi.lua =================================================================== --- scripts/globals/spells/suiton_ichi.lua (revision 3520) +++ scripts/globals/spells/suiton_ichi.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_SUITON_EFFECT); + duration = 30 + caster:getMerit(MERIT_SUITON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_THUNDERRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_THUNDERRES); return final; Index: scripts/globals/spells/suiton_ni.lua =================================================================== --- scripts/globals/spells/suiton_ni.lua (revision 3520) +++ scripts/globals/spells/suiton_ni.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_SUITON_EFFECT); + duration = 30 + caster:getMerit(MERIT_SUITON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_THUNDERRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_THUNDERRES); return final; Index: scripts/globals/spells/suiton_san.lua =================================================================== --- scripts/globals/spells/suiton_san.lua (revision 3520) +++ scripts/globals/spells/suiton_san.lua (working copy) @@ -22,20 +22,19 @@ --get the resisted damage dmg = dmg*resist; --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) - -- boost ninjitsu damage - -- 5% ninjitsu damage - local head = caster:getEquipID(SLOT_HEAD); - if(head == 15084) then - dmg = math.floor(dmg * 1.05); - end + dmg = addBonuses(caster,spell,target,dmg); - dmg = addBonuses(caster,spell,target,dmg); + duration = 30; + if(caster:getObjType() == TYPE_PC) then + dmg = dmg + caster:getMerit(MERIT_SUITON_EFFECT); + duration = 30 + caster:getMerit(MERIT_SUITON_EFFECT); + end --add in target adjustment dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - handleNinjutsuDebuff(caster, target, spell, 30, 15, MOD_THUNDERRES); + handleNinjutsuDebuff(caster, target, spell, duration, 15, MOD_THUNDERRES); return final; Index: scripts/globals/spells/swift_etude.lua =================================================================== --- scripts/globals/spells/swift_etude.lua (revision 0) +++ scripts/globals/spells/swift_etude.lua (working copy) @@ -0,0 +1,45 @@ +-------------------------------------- +-- Spell: Swift Etude +-- Boosts targets AGI stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <416)then + power = 12 + elseif(enchanceSkill >=417 and enchanceSkill <=445)then + power = 13 + elseif(enchanceSkill >=446 and enchanceSkill <=474)then + power = 14 + elseif(enchanceSkill >=475)then + power = 15 + else + power = 15 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_AGI_DOWN) == true) then + target:delStatusEffect(EFFECT_AGI_DOWN); + else + target:addStatusEffect(EFFECT_AGI_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/sword_madrigal.lua =================================================================== --- scripts/globals/spells/sword_madrigal.lua (revision 3520) +++ scripts/globals/spells/sword_madrigal.lua (working copy) @@ -3,7 +3,7 @@ -- Gives party members accuracy ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,28 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local acc = caster:getSkillLevel(SINGING_SKILL) / 16 + 1; - local sItem = caster:getEquipID(2); - local duration = 120; - - if(acc > 15) then - acc = 15; - end - - if(sItem == 17348) then - acc = acc + 2; - end - - -- traversiere + 1 - if(sItem == 17375 or sItem == 17845) then - acc = acc + 4; - end - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_MADRIGAL); - target:addStatusEffect(EFFECT_MADRIGAL,acc,0,duration); - spell:setMsg(230); - return EFFECT_MADRIGAL; end; \ No newline at end of file Index: scripts/globals/spells/temper.lua =================================================================== --- scripts/globals/spells/temper.lua (revision 0) +++ scripts/globals/spells/temper.lua (working copy) @@ -0,0 +1,47 @@ +----------------------------------------- +-- Spell: Temper +-- Author: mvd1987 +-- Effect acts as a Double Attack enhancement, +-- not Occasionally Attacks Twice +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + local base = 5; + local power = 5 + ((target:getMod(ENHANCING_MAGIC_SKILL) - 360) / 10); + local duration = 180; + if(target:hasStatusEffect(EFFECT_COMPOSURE) == true) then + duration = duration * 3; + end + + + if(target:hasStatusEffect(EFFECT_MULTI_STRIKES) == false) then + + if(target:getMod(ENHANCING_MAGIC_SKILL) <= 360) then + target:addStatusEffect(EFFECT_MULTI_STRIKES,base,0,duration); + + return EFFECT_MULTI_STRIKES; + + elseif(target:getMod(ENHANCING_MAGIC_SKILL) > 360) then + target:addStatusEffect(EFFECT_MULTI_STRIKES,power,0,duration); + + return EFFECT_MULTI_STRIKES; + end + + else + spell:setMsg(75) + + end + + +end; \ No newline at end of file Index: scripts/globals/spells/thundaga_ii.lua =================================================================== --- scripts/globals/spells/thundaga_ii.lua (revision 3520) +++ scripts/globals/spells/thundaga_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Thundaga 2 +-- Spell: Thundaga II -- Deals thunder damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/thundaga_iii.lua =================================================================== --- scripts/globals/spells/thundaga_iii.lua (revision 3520) +++ scripts/globals/spells/thundaga_iii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Thundaga 3 +-- Spell: Thundaga III -- Deals thunder damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/thundaga_iv.lua =================================================================== --- scripts/globals/spells/thundaga_iv.lua (revision 0) +++ scripts/globals/spells/thundaga_iv.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Thundaga IV +-- Deals thunder damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(1002,2,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/thundaga_v.lua =================================================================== --- scripts/globals/spells/thundaga_v.lua (revision 0) +++ scripts/globals/spells/thundaga_v.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Thundaga V +-- Deals thunder damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(1394,2.3,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/thunder.lua =================================================================== --- scripts/globals/spells/thunder.lua (revision 3520) +++ scripts/globals/spells/thunder.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- Spell: Fire --- Deals fire damage to an enemy. +-- Spell: Thunder +-- Deals lightning damage to an enemy. ----------------------------------------- require("scripts/globals/magic"); Index: scripts/globals/spells/thunder_ii.lua =================================================================== --- scripts/globals/spells/thunder_ii.lua (revision 3520) +++ scripts/globals/spells/thunder_ii.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- Spell: Fire --- Deals fire damage to an enemy. +-- Spell: Thunder II +-- Deals lightning damage to an enemy. ----------------------------------------- require("scripts/globals/magic"); Index: scripts/globals/spells/thunder_iii.lua =================================================================== --- scripts/globals/spells/thunder_iii.lua (revision 3520) +++ scripts/globals/spells/thunder_iii.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- Spell: Fire --- Deals fire damage to an enemy. +-- Spell: Thunder III +-- Deals lightning damage to an enemy. ----------------------------------------- require("scripts/globals/magic"); Index: scripts/globals/spells/thunder_iv.lua =================================================================== --- scripts/globals/spells/thunder_iv.lua (revision 3520) +++ scripts/globals/spells/thunder_iv.lua (working copy) @@ -1,6 +1,6 @@ ----------------------------------------- --- Spell: Fire --- Deals fire damage to an enemy. +-- Spell: Thunder IV +-- Deals lightning damage to an enemy. ----------------------------------------- require("scripts/globals/magic"); Index: scripts/globals/spells/tonko_ichi.lua =================================================================== --- scripts/globals/spells/tonko_ichi.lua (revision 3520) +++ scripts/globals/spells/tonko_ichi.lua (working copy) @@ -16,7 +16,8 @@ function onSpellCast(caster,target,spell) if (target:hasStatusEffect(EFFECT_INVISIBLE) == false) then - target:addStatusEffect(EFFECT_INVISIBLE,0,10,180); + local duration = 180; + target:addStatusEffect(EFFECT_INVISIBLE,0,10,duration); spell:setMsg(230); else spell:setMsg(75); -- no effect. Index: scripts/globals/spells/tonko_ni.lua =================================================================== --- scripts/globals/spells/tonko_ni.lua (revision 3520) +++ scripts/globals/spells/tonko_ni.lua (working copy) @@ -16,7 +16,8 @@ function onSpellCast(caster,target,spell) if (target:hasStatusEffect(EFFECT_INVISIBLE) == false) then - target:addStatusEffect(EFFECT_INVISIBLE,0,10,300); + local duration = 300; + target:addStatusEffect(EFFECT_INVISIBLE,0,10,duration); spell:setMsg(230); else spell:setMsg(75); -- no effect. Index: scripts/globals/spells/tonko_san.lua =================================================================== --- scripts/globals/spells/tonko_san.lua (revision 3520) +++ scripts/globals/spells/tonko_san.lua (working copy) @@ -16,7 +16,8 @@ function onSpellCast(caster,target,spell) if (target:hasStatusEffect(EFFECT_INVISIBLE) == false) then - target:addStatusEffect(EFFECT_INVISIBLE,0,10,420); + local duration = 420; + target:addStatusEffect(EFFECT_INVISIBLE,0,10,duration); spell:setMsg(230); else spell:setMsg(75); -- no effect. Index: scripts/globals/spells/tractor_ii.lua =================================================================== --- scripts/globals/spells/tractor_ii.lua (revision 0) +++ scripts/globals/spells/tractor_ii.lua (working copy) @@ -0,0 +1,21 @@ +----------------------------------------- +-- Spell: Tractor II +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + -- target:setPos(caster:getXPos(), caster:getYPos(), caster:getZPos()); + + return 0; +end; \ No newline at end of file Index: scripts/globals/spells/uncanny_etude.lua =================================================================== --- scripts/globals/spells/uncanny_etude.lua (revision 0) +++ scripts/globals/spells/uncanny_etude.lua (working copy) @@ -0,0 +1,45 @@ +-------------------------------------- +-- Spell: Uncanny Etude +-- Boosts targets DEX stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + duration = 120; + + if(enchanceSkill <416)then + power = 12 + elseif(enchanceSkill >=417 and enchanceSkill <=445)then + power = 13 + elseif(enchanceSkill >=446 and enchanceSkill <=474)then + power = 14 + elseif(enchanceSkill >=475)then + power = 15 + else + power = 15 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_DEX_DOWN) == true) then + target:delStatusEffect(EFFECT_DEX_DOWN); + else + target:addStatusEffect(EFFECT_DEX_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/utsusemi_ichi.lua =================================================================== --- scripts/globals/spells/utsusemi_ichi.lua (revision 3520) +++ scripts/globals/spells/utsusemi_ichi.lua (working copy) @@ -14,18 +14,34 @@ function onSpellCast(caster,target,spell) effect = target:getStatusEffect(EFFECT_COPY_IMAGE); - if (effect == nil) then - target:addStatusEffectEx(EFFECT_COPY_IMAGE,EFFECT_COPY_IMAGE_3,3,0,900); - target:setMod(MOD_UTSUSEMI, 3); - spell:setMsg(230); - elseif (effect:getPower() <= 3) then - effect:setPower(3); - effect:setIcon(EFFECT_COPY_IMAGE_3); - effect:resetStartTime(); - target:setMod(MOD_UTSUSEMI, 3); - spell:setMsg(230); + if(caster:getEquipID(SLOT_FEET) == 11156) then + if (effect == nil) then + target:addStatusEffectEx(EFFECT_COPY_IMAGE,EFFECT_COPY_IMAGE_4,4,0,900); + target:setMod(MOD_UTSUSEMI, 4); + spell:setMsg(230); + elseif (effect:getPower() <= 4) then + spell:setMsg(230); + effect:setPower(4); + effect:setIcon(EFFECT_COPY_IMAGE_4); + effect:resetStartTime(); + target:setMod(MOD_UTSUSEMI, 4); + else + spell:setMsg(75); + end else - spell:setMsg(75); + if (effect == nil) then + target:addStatusEffectEx(EFFECT_COPY_IMAGE,EFFECT_COPY_IMAGE_3,3,0,900); + target:setMod(MOD_UTSUSEMI, 3); + spell:setMsg(230); + elseif (effect:getPower() <= 3) then + effect:setPower(3); + effect:setIcon(EFFECT_COPY_IMAGE_3); + effect:resetStartTime(); + target:setMod(MOD_UTSUSEMI, 3); + spell:setMsg(230); + else + spell:setMsg(75); + end end return EFFECT_COPY_IMAGE; Index: scripts/globals/spells/utsusemi_ni.lua =================================================================== --- scripts/globals/spells/utsusemi_ni.lua (revision 3520) +++ scripts/globals/spells/utsusemi_ni.lua (working copy) @@ -13,11 +13,15 @@ end; function onSpellCast(caster,target,spell) + local shadows = 4; + if(caster:getEquipID(SLOT_FEET) == 11156) then + shadows = 5; + end effect = target:getStatusEffect(EFFECT_COPY_IMAGE); if (effect == nil) then if caster:getMainJob() == 13 then - target:addStatusEffectEx(EFFECT_COPY_IMAGE,EFFECT_COPY_IMAGE_4,4,0,900); - target:setMod(MOD_UTSUSEMI, 4); + target:addStatusEffectEx(EFFECT_COPY_IMAGE,EFFECT_COPY_IMAGE_4,shadows,0,900); + target:setMod(MOD_UTSUSEMI, shadows); spell:setMsg(230); else target:addStatusEffectEx(EFFECT_COPY_IMAGE,EFFECT_COPY_IMAGE_3,3,0,900); @@ -27,10 +31,10 @@ elseif caster:getMainJob() == 13 then if (effect:getPower() <= 4) then spell:setMsg(230); - effect:setPower(4); + effect:setPower(shadows); effect:setIcon(EFFECT_COPY_IMAGE_4); effect:resetStartTime(); - target:setMod(MOD_UTSUSEMI, 4); + target:setMod(MOD_UTSUSEMI, shadows); else spell:setMsg(75); end Index: scripts/globals/spells/valor_minuet.lua =================================================================== --- scripts/globals/spells/valor_minuet.lua (revision 3520) +++ scripts/globals/spells/valor_minuet.lua (working copy) @@ -3,7 +3,7 @@ -- Grants Attack bonus to all allies. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,36 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local sItem = caster:getEquipID(2); - local sLvl = caster:getSkillLevel(40); -- Gets skill level of Singing - - if (sLvl < 11) then -- If your skill level is below 11 your stuck at the minimum - power = 8; - end - - if (sLvl >= 11 and sLvl <= 65) then -- If your above 10 skill then you get the bonus of 1 more attack for every 7 skill - sBoost = math.floor((sLvl - 10)/7); - power = 8 + sBoost; - end - - if(sLvl >= 66) then -- The bonus caps at skill 66 - power = 16; - end - - if(sItem == 17344) then -- Cornette will add 3 more - power = power + 3; - end - - if(sItem == 17369 or sItem == 17846) then -- Cornette +1 and Cornette +2 give 5 more - power = power + 5; - end - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_MINUET); - target:addStatusEffect(EFFECT_MINUET,power,0,120); - spell:setMsg(230); - - return EFFECT_MINUET; end; \ No newline at end of file Index: scripts/globals/spells/valor_minuet_ii.lua =================================================================== --- scripts/globals/spells/valor_minuet_ii.lua (revision 3520) +++ scripts/globals/spells/valor_minuet_ii.lua (working copy) @@ -3,7 +3,7 @@ -- Grants Attack bonus to all allies. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,35 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local sItem = caster:getEquipID(2); - local sLvl = caster:getSkillLevel(40); -- Gets skill level of Singing - - if (sLvl < 67) then -- If your skill level is below 67 your stuck at the minimum - power = 14; - end - - if (sLvl >= 67 and sLvl <= 119) then -- If your above 66 skill then you get the bonus of 1 more attack for every 3 skill - sBoost = math.floor((sLvl - 66)/3); - power = 14 + sBoost; - end - - if(sLvl >= 120) then -- The bonus caps at skill 120 - power = 32; - end - - if(sItem == 17344) then -- Cornette will add 3 more - power = power + 3; - end - - if(sItem == 17369 or sItem == 17846) then -- Cornette +1 and Cornette +2 give 5 more - power = power + 5; - end - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_MINUET); - target:addStatusEffect(EFFECT_MINUET,power,0,120); - spell:setMsg(230); - return EFFECT_MINUET; end; \ No newline at end of file Index: scripts/globals/spells/valor_minuet_iii.lua =================================================================== --- scripts/globals/spells/valor_minuet_iii.lua (revision 3520) +++ scripts/globals/spells/valor_minuet_iii.lua (working copy) @@ -3,7 +3,7 @@ -- Grants Attack bonus to all allies. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,36 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local sItem = caster:getEquipID(2); - local sLvl = caster:getSkillLevel(40); -- Gets skill level of Singing - - if (sLvl < 123) then -- If your skill level is below 123 your stuck at the minimum - power = 30; - end - - if (sLvl >= 123 and sLvl <= 193) then -- If your above 122 skill then you get the bonus of 1 more attack for every 4 skill - sBoost = math.floor((sLvl - 122)/4); - power = 30 + sBoost; - end - - if(sLvl >= 194) then -- The bonus caps at skill 194 - power = 48; - end - - if(sItem == 17344) then -- Cornette will add 3 more - power = power + 3; - end - - if(sItem == 17369 or sItem == 17846) then -- Cornette +1 and Cornette +2 give 5 more - power = power + 5; - end - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_MINUET); - target:addStatusEffect(EFFECT_MINUET,power,0,120); - spell:setMsg(230); - - return EFFECT_MINUET; end; \ No newline at end of file Index: scripts/globals/spells/valor_minuet_iv.lua =================================================================== --- scripts/globals/spells/valor_minuet_iv.lua (revision 3520) +++ scripts/globals/spells/valor_minuet_iv.lua (working copy) @@ -3,7 +3,7 @@ -- Grants Attack bonus to all allies. ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,36 +14,4 @@ end; function onSpellCast(caster,target,spell) - - local sItem = caster:getEquipID(2); - local sLvl = caster:getSkillLevel(40); -- Gets skill level of Singing - - if (sLvl < 123) then -- If your skill level is below 123 your stuck at the minimum - power = 30; - end - - if (sLvl >= 123 and sLvl <= 193) then -- If your above 122 skill then you get the bonus of 1 more attack for every 4 skill - sBoost = math.floor((sLvl - 122)/4); - power = 30 + sBoost; - end - - if(sLvl >= 194) then -- The bonus caps at skill 194 - power = 56; - end - - if(sItem == 17344) then -- Cornette will add 3 more - power = power + 3; - end - - if(sItem == 17369 or sItem == 17846) then -- Cornette +1 and Cornette +2 give 5 more - power = power + 5; - end - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - target:delStatusEffect(EFFECT_MINUET); - target:addStatusEffect(EFFECT_MINUET,power,0,120); - spell:setMsg(230); - - return EFFECT_MINUET; end; \ No newline at end of file Index: scripts/globals/spells/valor_minuet_v.lua =================================================================== --- scripts/globals/spells/valor_minuet_v.lua (revision 0) +++ scripts/globals/spells/valor_minuet_v.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Valor Minuet IV +-- Grants Attack bonus to all allies. +----------------------------------------- + +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) +end; \ No newline at end of file Index: scripts/globals/spells/victory_march.lua =================================================================== --- scripts/globals/spells/victory_march.lua (revision 3520) +++ scripts/globals/spells/victory_march.lua (working copy) @@ -3,7 +3,7 @@ -- Gives party members Haste ----------------------------------------- -require("scripts/globals/status"); +-- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() ----------------------------------------- -- OnSpellCast @@ -14,30 +14,4 @@ end; function onSpellCast(caster,target,spell) - --- NOTE: THIS SCRIPT IS CURRENTLY IGNORED. See battleutils:SingSong() - - local haste = 96; - local sItem = caster:getEquipID(2); - local duration = 120; - - local power = caster:getSkillLevel(SINGING_SKILL); - - -- Royal Spearman's Horn, Kingdom Horn, San d'Orian Horn Adds +1 haste - if(sItem == 17367 or sItem == 17836 or sItem == 17835) then - power = power + 16; - end - - -- Faerie Piccolo and Iron Ram Horn Adds +2 haste - if(sItem == 17349 or sItem == 17853) then - power = power + 32; - end - - -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. - -- Since all the tiers use the same effect buff it is hard to delete a specific one. - haste = power / 2; - target:delStatusEffect(EFFECT_MARCH); - target:addStatusEffect(EFFECT_MARCH,haste,0,duration); - spell:setMsg(230); - return EFFECT_MARCH; end; \ No newline at end of file Index: scripts/globals/spells/virus.lua =================================================================== --- scripts/globals/spells/virus.lua (revision 0) +++ scripts/globals/spells/virus.lua (working copy) @@ -0,0 +1,57 @@ +----------------------------------------- +-- Spell: Virus +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + + -- Pull base stats. + dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); + bonus = AffinityBonus(caster,spell); + + -- Base power. + power = math.floor((dINT + 60) / 4); + if(power < 5) then + power = 5; + end + if(power > 20) then + power = 20; + end + + -- Duration, including resistance. Unconfirmed. + duration = 120 * applyResistance(caster,spell,target,dINT,35,bonus); + + -- Equipment bonus + local back = caster:getEquipID(SLOT_BACK); + local body = caster:getEquipID(SLOT_BODY); + if (body == 11088) then -- Estoquers Sayon +2 + power = power * 1.1; + end + + if(100 * math.random() >= target:getMod(MOD_VIRUSRES)) then + if(duration >= 90) then --Do it! + + if(target:addStatusEffect(EFFECT_DISEASE,power,3,duration)) then + spell:setMsg(236); + else + + spell:setMsg(75); + end + else + spell:setMsg(85); + end + else + spell:setMsg(284); + end + return EFFECT_DISEASE; +end; \ No newline at end of file Index: scripts/globals/spells/vital_etude.lua =================================================================== --- scripts/globals/spells/vital_etude.lua (revision 0) +++ scripts/globals/spells/vital_etude.lua (working copy) @@ -0,0 +1,45 @@ +-------------------------------------- +-- Spell: Vital Etude +-- Boosts targets VIT stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <416)then + power = 12 + elseif(enchanceSkill >=417 and enchanceSkill <=445)then + power = 13 + elseif(enchanceSkill >=446 and enchanceSkill <=474)then + power = 14 + elseif(enchanceSkill >=475)then + power = 15 + else + power = 15 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_VIT_DOWN) == true) then + target:delStatusEffect(EFFECT_VIT_DOWN); + else + target:addStatusEffect(EFFECT_VIT_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/vivacious_etude.lua =================================================================== --- scripts/globals/spells/vivacious_etude.lua (revision 0) +++ scripts/globals/spells/vivacious_etude.lua (working copy) @@ -0,0 +1,51 @@ +-------------------------------------- +-- Spell: Vivacious Etude +-- Boosts targets VIT stat +-------------------------------------- + +require("scripts/globals/settings"); +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + local enchanceSkill = caster:getSkillLevel(40); -- Singing Skill + local duration = 120; + + if(enchanceSkill <180)then + power = 3 + elseif(enchanceSkill >=181 and enchanceSkill <=235)then + power = 4 + elseif(enchanceSkill >=236 and enchanceSkill <=288)then + power = 5 + elseif(enchanceSkill >=289 and enchanceSkill <=342)then + power = 6 + elseif(enchanceSkill >=343 and enchanceSkill <=396)then + power = 7 + elseif(enchanceSkill >=397 and enchanceSkill <=449)then + power = 8 + elseif(enchanceSkill >=450)then + power = 9 + else + power = 10 + end + + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ETUDE) * 10)/100)); + + power = power + target:getMod(MOD_ETUDE) + target:getMod(MOD_ALL_SONGS); + + if(target:hasStatusEffect(EFFECT_VIT_DOWN) == true) then + target:delStatusEffect(EFFECT_VIT_DOWN); + else + target:addStatusEffect(EFFECT_VIT_BOOST,power,0,duration); + end +end; Index: scripts/globals/spells/warding_round.lua =================================================================== --- scripts/globals/spells/warding_round.lua (revision 0) +++ scripts/globals/spells/warding_round.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------------- +-- Spell: Warding Round +-- Increases Curse Resistance to +-- Party Members within target AoE +----------------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/magic"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + -- Mostly Guestimate ?? + local duration = 120; + local power = 20; + duration = duration + (duration * (caster:getMod(MOD_SONG_DURATION)/100)); + duration = duration + (duration * ((caster:getMod(MOD_ALL_SONGS) * 10)/100)); + + power = power + (caster:getMod(MOD_ALL_SONGS) * 4); + + -- Until someone finds a way to delete Effects by tier we should not allow bard spells to stack. + -- Since all the tiers use the same effect buff it is hard to delete a specific one. + target:delStatusEffect(EFFECT_ROUND); + target:addStatusEffect(EFFECT_ROUND,power,0,duration); + spell:setMsg(230); + return EFFECT_ROUND; +end; \ No newline at end of file Index: scripts/globals/spells/water_carol.lua =================================================================== --- scripts/globals/spells/water_carol.lua (revision 0) +++ scripts/globals/spells/water_carol.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Water Carol +-- MOD_WATERRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 40, 120, MOD_WATERRES); +end; Index: scripts/globals/spells/water_carol_ii.lua =================================================================== --- scripts/globals/spells/water_carol_ii.lua (revision 0) +++ scripts/globals/spells/water_carol_ii.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Water Carol II +-- MOD_WATERRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 50, 120, MOD_WATERRES); +end; Index: scripts/globals/spells/water_ii.lua =================================================================== --- scripts/globals/spells/water_ii.lua (revision 3520) +++ scripts/globals/spells/water_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Water +-- Spell: Water II -- Deals water damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/water_iii.lua =================================================================== --- scripts/globals/spells/water_iii.lua (revision 3520) +++ scripts/globals/spells/water_iii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Water +-- Spell: Water III -- Deals water damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/water_iv.lua =================================================================== --- scripts/globals/spells/water_iv.lua (revision 3520) +++ scripts/globals/spells/water_iv.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Water +-- Spell: Water IV -- Deals water damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/water_v.lua =================================================================== --- scripts/globals/spells/water_v.lua (revision 3520) +++ scripts/globals/spells/water_v.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Water +-- Spell: Water V -- Deals water damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/waterga.lua =================================================================== --- scripts/globals/spells/waterga.lua (revision 3520) +++ scripts/globals/spells/waterga.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Water +-- Spell: Waterga -- Deals water damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/waterga_ii.lua =================================================================== --- scripts/globals/spells/waterga_ii.lua (revision 3520) +++ scripts/globals/spells/waterga_ii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Water +-- Spell: Waterga II -- Deals water damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/waterga_iii.lua =================================================================== --- scripts/globals/spells/waterga_iii.lua (revision 3520) +++ scripts/globals/spells/waterga_iii.lua (working copy) @@ -1,5 +1,5 @@ ----------------------------------------- --- Spell: Water +-- Spell: Waterga III -- Deals water damage to an enemy. ----------------------------------------- Index: scripts/globals/spells/waterga_iv.lua =================================================================== --- scripts/globals/spells/waterga_iv.lua (revision 0) +++ scripts/globals/spells/waterga_iv.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Waterga IV +-- Deals water damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(728,2,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/waterga_v.lua =================================================================== --- scripts/globals/spells/waterga_v.lua (revision 0) +++ scripts/globals/spells/waterga_v.lua (working copy) @@ -0,0 +1,31 @@ +----------------------------------------- +-- Spell: Waterga V +-- Deals water damage to an enemy. +----------------------------------------- + +require("scripts/globals/magic"); +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + --calculate raw damage + dmg = calculateMagicDamage(960,2.3,caster,spell,target,ELEMENTAL_MAGIC_SKILL,MOD_INT,false); + --get resist multiplier (1x if no resist) + resist = applyResistance(caster,spell,target,caster:getStat(MOD_INT)-target:getStat(MOD_INT),ELEMENTAL_MAGIC_SKILL,1.0); + --get the resisted damage + dmg = dmg*resist; + --add on bonuses (staff/day/weather/jas/mab/etc all go in this function) + dmg = addBonuses(caster,spell,target,dmg); + --add in target adjustment + dmg = adjustForTarget(target,dmg); + --add in final adjustments + dmg = finalMagicAdjustments(caster,target,spell,dmg); + return dmg; +end; \ No newline at end of file Index: scripts/globals/spells/wind_carol.lua =================================================================== --- scripts/globals/spells/wind_carol.lua (revision 0) +++ scripts/globals/spells/wind_carol.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Wind Carol +-- MOD_WINDRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 40, 120, MOD_WINDRES); +end; Index: scripts/globals/spells/wind_carol_ii.lua =================================================================== --- scripts/globals/spells/wind_carol_ii.lua (revision 0) +++ scripts/globals/spells/wind_carol_ii.lua (working copy) @@ -0,0 +1,17 @@ +----------------------------------------- +-- Spell: Wind Carol II +-- MOD_WINDRES +----------------------------------------- +require("scripts/globals/status"); +require("scripts/globals/magic"); +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + return handleCarol(caster, target, spell, 50, 120, MOD_WINDRES); +end; Index: scripts/globals/spells/yurin_ichi.lua =================================================================== --- scripts/globals/spells/yurin_ichi.lua (revision 0) +++ scripts/globals/spells/yurin_ichi.lua (working copy) @@ -0,0 +1,24 @@ +----------------------------------------- +-- Spell: Yurin: Ichi +----------------------------------------- + +require("scripts/globals/status"); + +----------------------------------------- +-- OnSpellCast +----------------------------------------- + +function OnMagicCastingCheck(caster,target,spell) + return 0; +end; + +function onSpellCast(caster,target,spell) + target:delStatusEffect(EFFECT_INHIBIT_TP); + effect = target:getStatusEffect(EFFECT_INHIBIT_TP); + + -- The power is unknown. + target:addStatusEffect(EFFECT_INHIBIT_TP,EFFECT_INHIBIT_TP,10,0,180); + spell:setMsg(230); + + return EFFECT_INHIBIT_TP; +end; \ No newline at end of file Index: scripts/globals/status.lua =================================================================== --- scripts/globals/status.lua (revision 3520) +++ scripts/globals/status.lua (working copy) @@ -24,9 +24,8 @@ JOB_PUP = 18; JOB_DNC = 19; JOB_SCH = 20; -JOB_GEO = 21; -JOB_RUN = 22; - +JOB_GEO = 21; +JOB_RUN = 22; ----------------------------------- -- These codes represent the actual status effects. -- They are simply for convenience. @@ -54,8 +53,12 @@ EFFECT_SLEEP_II = 19 EFFECT_CURSE_II = 20 EFFECT_ADDLE = 21 -EFFECT_INTIMIDATE = 22 -EFFECT_KAUSTRA = 23 +EFFECT_INTIMIDATE = 22 +EFFECT_KAUSTRA = 23 +EFFECT_ST24 = 24 +EFFECT_ST25 = 25 +EFFECT_ST26 = 26 +EFFECT_ST27 = 27 EFFECT_TERROR = 28 EFFECT_MUTE = 29 EFFECT_BANE = 30 @@ -251,14 +254,16 @@ EFFECT_SIRVENTE = 220 EFFECT_DIRGE = 221 EFFECT_SCHERZO = 222 -EFFECT_NOCTURNE = 223 -EFFECT_STORE_TP = 227 -EFFECT_EMBRAVA = 228 -EFFECT_MANAWELL = 229 -EFFECT_SPONTANEITY = 230 -EFFECT_MARCATO = 231 +EFFECT_NOCTURNE = 223 +EFFECT_ST224 = 224 +EFFECT_ST225 = 225 +EFFECT_ST226 = 226 +EFFECT_STORE_TP = 227 +EFFECT_EMBRAVA = 228 +EFFECT_MANAWELL = 229 +EFFECT_SPONTANEITY = 230 +EFFECT_MARCATO = 231 EFFECT_NA = 232 -EFFECT_NA = 232 EFFECT_AUTO_REGEN = 233 EFFECT_AUTO_REFRESH = 234 EFFECT_FISHING_IMAGERY = 235 @@ -362,10 +367,10 @@ EFFECT_BLITZERS_ROLL = 333 EFFECT_TACTICIANS_ROLL = 334 EFFECT_ALLIES_ROLL = 335 -EFFECT_NONE_I = 336 -EFFECT_NONE_II = 337 -EFFECT_NONE_III = 338 -EFFECT_NONE_IV = 339 +EFFECT_MISERS_ROLL = 336 +EFFECT_COMPANIONS_ROLL = 337 +EFFECT_AVENGERS_ROLL = 338 +-- EFFECT_NONE = 339 EFFECT_WARRIOR_S_CHARGE = 340 EFFECT_FORMLESS_STRIKES = 341 EFFECT_ASSASSIN_S_CHARGE = 342 @@ -398,6 +403,9 @@ EFFECT_ASPIR_SAMBA = 369 EFFECT_HASTE_SAMBA = 370 EFFECT_VELOCITY_SHOT = 371 +-- . = 372 +-- . = 373 +-- . = 374 EFFECT_BUILDING_FLOURISH = 375 EFFECT_TRANCE = 376 EFFECT_TABULA_RASA = 377 @@ -445,16 +453,16 @@ EFFECT_COMPOSURE = 419 EFFECT_YONIN = 420 EFFECT_INNIN = 421 -EFFECT_CARBUNCLE_S_FAVOR = 422 -EFFECT_IFRIT_S_FAVOR = 423 -EFFECT_SHIVA_S_FAVOR = 424 -EFFECT_GARUDA_S_FAVOR = 425 -EFFECT_TITAN_S_FAVOR = 426 -EFFECT_RAMUH_S_FAVOR = 427 -EFFECT_LEVIATHAN_S_FAVOR = 428 -EFFECT_FENRIR_S_FAVOR = 429 -EFFECT_DIABOLOS_S_FAVOR = 430 -EFFECT_AVATAR_S_FAVOR = 431 +EFFECT_CARBUNCLES_FAVOR = 422 +EFFECT_IFRITS_FAVOR = 423 +EFFECT_SHIVAS_FAVOR = 424 +EFFECT_GARUDAS_FAVOR = 425 +EFFECT_TITANS_FAVOR = 426 +EFFECT_RAMUHS_FAVOR = 427 +EFFECT_LEVIATHANS_FAVOR = 428 +EFFECT_FENRIRS_FAVOR = 429 +EFFECT_DIABOLOSS_FAVOR = 430 +EFFECT_AVATARS_FAVOR = 431 EFFECT_MULTI_STRIKES = 432 EFFECT_DOUBLE_SHOT = 433 EFFECT_TRANSCENDENCY = 434 @@ -495,13 +503,106 @@ EFFECT_PERPETUANCE = 469 EFFECT_IMMANENCE = 470 EFFECT_MIGAWARI = 471 -EFFECT_ISSEKIGAN = 484 -EFFECT_AVATAR = 491 -EFFECT_NINJUTSU_ELE_DEBUFF = 510 +EFFECT_TERNARY_FLOURISH = 472 +EFFECT_MUDDLE = 473 +EFFECT_PROWESS = 474 +EFFECT_VOIDWATCHER = 475 +EFFECT_ENSPHERE = 476 +EFFECT_SACROSANCTITY = 477 +EFFECT_PALISADE = 478 +EFFECT_SCARLET_DELIRIUM_I = 479 +EFFECT_SCARLET_DELIRIUM_II = 480 +-- NONE = 481 +EFFECT_DECOY_SHOT = 482 +EFFECT_HAGAKURE = 483 +EFFECT_ISSEKIGAN = 484 +EFFECT_UNBRIDLED_LEARNING = 485 +EFFECT_COUNTER_BOOST = 486 +EFFECT_ENDRAIN = 487 +EFFECT_ENASPIR = 488 +EFFECT_AFTERGLOW = 489 +EFFECT_IMMINENT_STRIKES = 490 +EFFECT_AVATAR = 491 -- EFFECT_MNK_SP2 CONSUMATE_COUNTER +EFFECT_ASYLUM = 492 +EFFECT_SUBTLE_SORCERY = 493 +EFFECT_ENCOMIUM = 494 +EFFECT_BAMBOOZLE = 495 +EFFECT_RIGHTEOUS_GAURD = 496 +EFFECT_SOUL_ENSLAVEMENT = 497 +EFFECT_BST_SP2 = 498 +EFFECT_MALINCONICO = 499 +EFFECT_INSTINCTIVE_AIM = 500 +EFFECT_YAEGASUMI = 501 +EFFECT_TENGEN = 502 +EFFECT_ROUSE_WYVERN = 503 +EFFECT_ASTRAL_CONDUIT = 504 +EFFECT_UNBRIDLED_WISDOM = 505 +EFFECT_THREE_TO_ONE = 506 +EFFECT_GRAND_PAS = 507 +-- EFFECT_NONE = 508 +-- EFFECT_NONE = 509 +EFFECT_NINJUTSU_ELE_DEBUFF = 510 -- EFFECT_ERGON_MIGHT +EFFECT_REIVE_MARK = 511 +EFFECT_HEALING = 512 -- EFFECT_IONIS +EFFECT_LEAVEGAME = 513 -- EFFECT_BOLSTER +EFFECT_SKILLCHAIN = 514 -- EFFECT_NONE +EFFECT_LASTING_EMANATION = 515 +EFFECT_ECLIPTIC_ATTRITION = 516 +EFFECT_COLLIMATED_FERVOR = 517 +EFFECT_DEMATERIALIZE = 518 +EFFECT_THEURGIC_FOCUS = 519 +-- EFFECT_NONE = 520 +-- EFFECT_NONE = 521 +EFFECT_ELEMENTAL_SFORZO = 522 +EFFECT_IGNIS = 523 +EFFECT_GELUS = 524 +EFFECT_FLABRA = 525 +EFFECT_TELLUS = 526 +EFFECT_SULPOR = 527 +EFFECT_UNDA = 528 +EFFECT_LUX = 529 +EFFECT_TENEBRAE = 530 +EFFECT_VALLATION = 531 +EFFECT_SWORDPLAY = 532 +EFFECT_PFLUG = 533 +EFFECT_EMBOLDEN = 534 +EFFECT_VALIANCE = 535 +EFFECT_GAMBIT = 536 +EFFECT_LIEMENT = 537 +EFFECT_ONE_FOR_ALL = 538 +EFFECT_REGEN_II = 539 +EFFECT_POISON_II = 540 +EFFECT_REFRESH_II = 541 +EFFECT_STR_BOOST_III = 542 +EFFECT_DEX_BOOST_III = 543 +EFFECT_VIT_BOOST_III = 544 +EFFECT_AGI_BOOST_III = 545 +EFFECT_INT_BOOST_III = 546 +EFFECT_MND_BOOST_III = 547 +EFFECT_CHR_BOOST_III = 548 +EFFECT_ATTACK_BOOST_II = 549 +EFFECT_DEFENSE_BOOST_II = 550 +EFFECT_MAGIC_ATK_BOOST_II = 551 +EFFECT_MAGIC_DEF_BOOST_II = 552 +EFFECT_ACCURACY_BOOST_II = 553 +EFFECT_EVASION_BOOST_II = 554 +EFFECT_MAGIC_ACC_BOOST_II = 555 +EFFECT_MAGIC_EVASION_BOOST_II = 556 +EFFECT_ATTACK_DOWN_II = 557 +EFFECT_DEFENSE_DOWN_II = 558 +EFFECT_MAGIC_ATK_DOWN_II = 559 +EFFECT_MAGIC_DEF_DOWN_II = 560 +EFFECT_ACCURACY_DOWN_II = 561 +EFFECT_EVASION_DOWN_II = 562 +EFFECT_MAGIC_ACC_DOWN_II = 563 +EFFECT_MAGIC_EVASION_DOWN_II = 564 +EFFECT_SLOW_II = 565 +EFFECT_PARALYSIS_II = 566 +EFFECT_WEIGHT_II = 567 +EFFECT_FOIL = 568 +EFFECT_BLAZE_OF_GLORY = 569 +-- 570 - 639 NONE on POL Utils EFFECT_DYNAMIS = 800 -EFFECT_HEALING = 512 -EFFECT_LEAVEGAME = 513 -EFFECT_SKILLCHAIN = 514 EFFECT_SKILLCHAIN0 = 0x200 EFFECT_SKILLCHAIN1 = 0x400 @@ -541,10 +642,10 @@ MOD_DEF = 0x01 MOD_HP = 0x02 MOD_HPP = 0x03 -MOD_CONVMPTOHP = 0x04 +MOD_CONVMPTOHP = 0x04 MOD_MP = 0x05 MOD_MPP = 0x06 -MOD_CONVHPTOMP = 0x07 +MOD_CONVHPTOMP = 0x07 MOD_STR = 0x08 MOD_DEX = 0x09 MOD_VIT = 0x0A @@ -552,64 +653,79 @@ MOD_INT = 0x0C MOD_MND = 0x0D MOD_CHR = 0x0E + MOD_FIREDEF = 0x0F MOD_ICEDEF = 0x10 MOD_WINDDEF = 0x11 -MOD_EARTHDEF = 0x12 -MOD_THUNDERDEF = 0x13 -MOD_WATERDEF = 0x14 -MOD_LIGHTDEF = 0x15 +MOD_EARTHDEF = 0x12 +MOD_THUNDERDEF = 0x13 +MOD_WATERDEF = 0x14 +MOD_LIGHTDEF = 0x15 MOD_DARKDEF = 0x16 + MOD_ATT = 0x17 MOD_RATT = 0x18 MOD_ACC = 0x19 MOD_RACC = 0x1A MOD_ENMITY = 0x1B +MOD_TRANQUIL_HEART = 0x233 MOD_MATT = 0x1C MOD_MDEF = 0x1D MOD_MACC = 0x1E MOD_MEVA = 0x1F +MOD_MAG_BURST_DMG = 0x19E +MOD_ELEM_MAG_DMG = 0x1A2 +MOD_ENFB_MAG_DMG = 0x1A3 +MOD_NIN_MAG_DMG = 0x1A4 + MOD_FIREATT = 0x20 MOD_ICEATT = 0x21 MOD_WINDATT = 0x22 -MOD_EARTHATT = 0x23 -MOD_THUNDERATT = 0x24 -MOD_WATERATT = 0x25 -MOD_LIGHTATT = 0x26 +MOD_EARTHATT = 0x23 +MOD_THUNDERATT = 0x24 +MOD_WATERATT = 0x25 +MOD_LIGHTATT = 0x26 MOD_DARKATT = 0x27 MOD_FIREACC = 0x28 MOD_ICEACC = 0x29 MOD_WINDACC = 0x2A -MOD_EARTHACC = 0x2B -MOD_THUNDERACC = 0x2C -MOD_WATERACC = 0x2D -MOD_LIGHTACC = 0x2E +MOD_EARTHACC = 0x2B +MOD_THUNDERACC = 0x2C +MOD_WATERACC = 0x2D +MOD_LIGHTACC = 0x2E MOD_DARKACC = 0x2F + MOD_WSACC = 0x30 -MOD_SLASHRES = 0x31 -MOD_PIERCERES = 0x32 -MOD_IMPACTRES = 0x33 +MOD_WS_DMG = 0x1C9 + +MOD_SLASHRES = 0x31 +MOD_PIERCERES = 0x32 +MOD_IMPACTRES = 0x33 MOD_HTHRES = 0x34 + MOD_FIRERES = 0x36 MOD_ICERES = 0x37 MOD_WINDRES = 0x38 -MOD_EARTHRES = 0x39 -MOD_THUNDERRES = 0x3A -MOD_WATERRES = 0x3B -MOD_LIGHTRES = 0x3C +MOD_EARTHRES = 0x39 +MOD_THUNDERRES = 0x3A +MOD_WATERRES = 0x3B +MOD_LIGHTRES = 0x3C MOD_DARKRES = 0x3D + MOD_ATTP = 0x3E MOD_DEFP = 0x3F MOD_ACCP = 0x40 MOD_EVAP = 0x41 MOD_RATTP = 0x42 MOD_RACCP = 0x43 +MOD_PARRYP = 0x232 MOD_EVA = 0x44 MOD_RDEF = 0x45 MOD_REVA = 0x46 MOD_MPHEAL = 0x47 MOD_HPHEAL = 0x48 MOD_STORETP = 0x49 + MOD_HTH = 0x50 MOD_DAGGER = 0x51 MOD_SWORD = 0x52 @@ -623,28 +739,30 @@ MOD_CLUB = 0x5A MOD_STAFF = 0x5B MOD_ARCHERY = 0x68 -MOD_MARKSMAN = 0x69 +MOD_MARKSMAN = 0x69 MOD_THROW = 0x6A MOD_GUARD = 0x6B MOD_EVASION = 0x6C MOD_SHIELD = 0x6D MOD_PARRY = 0x6E + MOD_DIVINE = 0x6F MOD_HEALING = 0x70 MOD_ENHANCE = 0x71 -MOD_ENFEEBLE = 0x72 +MOD_ENFEEBLE = 0x72 MOD_ELEM = 0x73 MOD_DARK = 0x74 -MOD_SUMMONING = 0x75 -MOD_NINJUTSU = 0x76 +MOD_SUMMONING = 0x75 +MOD_NINJUTSU = 0x76 MOD_SINGING = 0x77 MOD_STRING = 0x78 MOD_WIND = 0x79 MOD_BLUE = 0x7A + MOD_FISH = 0x7F MOD_WOOD = 0x80 MOD_SMITH = 0x81 -MOD_GOLDSMITH = 0x82 +MOD_GOLDSMITH = 0x82 MOD_CLOTH = 0x83 MOD_LEATHER = 0x84 MOD_BONE = 0x85 @@ -652,34 +770,41 @@ MOD_COOK = 0x87 MOD_SYNERGY = 0x88 MOD_RIDING = 0x89 -MOD_ANTIHQ_WOOD = 0x90 -MOD_ANTIHQ_SMITH = 0x91 -MOD_ANTIHQ_GOLDSMITH = 0x92 -MOD_ANTIHQ_CLOTH = 0x93 -MOD_ANTIHQ_LEATHER = 0x94 -MOD_ANTIHQ_BONE = 0x95 -MOD_ANTIHQ_ALCHEMY = 0x96 -MOD_ANTIHQ_COOK = 0x97 +MOD_GOLDFISHING = 0x1D1 + +MOD_ANTIHQ_WOOD = 0x90 +MOD_ANTIHQ_SMITH = 0x91 +MOD_ANTIHQ_GOLDSMITH= 0x92 +MOD_ANTIHQ_CLOTH = 0x93 +MOD_ANTIHQ_LEATHER = 0x94 +MOD_ANTIHQ_BONE = 0x95 +MOD_ANTIHQ_ALCHEMY = 0x96 +MOD_ANTIHQ_COOK = 0x97 + MOD_DMG = 0xA0 MOD_DMGPHYS = 0xA1 -MOD_DMGBREATH = 0xA2 -MOD_DMGMAGIC = 0xA3 -MOD_DMGRANGE = 0xA4 -MOD_UDMGPHYS = 0x183 -MOD_UDMGBREATH = 0x184 -MOD_UDMGMAGIC = 0x185 -MOD_UDMGRANGE = 0x186 -MOD_CRITHITRATE = 0xA5 -MOD_ENEMYCRITRATE = 0xA6 -MOD_HASTE_MAGIC = 0xA7 -MOD_SPELLINTERRUPT = 0xA8 +MOD_DMGBREATH = 0xA2 +MOD_DMGMAGIC = 0xA3 +MOD_DMGRANGE = 0xA4 +MOD_UDMGPHYS = 0x183 +MOD_UDMGBREATH = 0x184 +MOD_UDMGMAGIC = 0x185 +MOD_UDMGRANGE = 0x186 +MOD_CRITHITRATE = 0xA5 +MOD_ENEMYCRITRATE = 0xA6 +MOD_CRIT_DMG = 0x1CB +MOD_MAGIC_CRIT_RATE = 0x22F +MOD_MAG_CRIT_DMG = 0x230 +MOD_SHIELD_DEF = 0x1CC + +MOD_HASTE_MAGIC = 0xA7 +MOD_SPELLINTERRUPT = 0xA8 MOD_MOVE = 0xA9 -MOD_FASTCAST = 0xAA +MOD_FASTCAST = 0xAA MOD_DELAY = 0xAB -MOD_RANGED_DELAY = 0xAC -MOD_MARTIAL_ARTS = 0xAD -MOD_SKILLCHAINBONUS = 0xAE -MOD_SKILLCHAINDMG = 0xAF +MOD_RANGED_DELAY = 0xAC +MOD_SKILLCHAINBONUS = 0xAE +MOD_SKILLCHAINDMG = 0xAF MOD_FOOD_HPP = 0xB0 MOD_FOOD_HP_CAP = 0xB1 @@ -695,6 +820,7 @@ MOD_FOOD_RATT_CAP = 0xBB MOD_FOOD_RACCP = 0xBC MOD_FOOD_RACC_CAP = 0xBD + MOD_VERMIN_KILLER = 0xE0 MOD_BIRD_KILLER = 0xE1 MOD_AMORPH_KILLER = 0xE2 @@ -708,8 +834,9 @@ MOD_DEMON_KILLER = 0xEA MOD_EMPTY_KILLER = 0xEB MOD_HUMANOID_KILLER = 0xEC -MOD_LUMORIAN_KILLER = 0xED -MOD_LUMINION_KILLER = 0xEE +MOD_LUMORIAN_KILLER = 0xED +MOD_LUMINION_KILLER = 0xEE + MOD_SLEEPRES = 0xF0 MOD_POISONRES = 0xF1 MOD_PARALYZERES = 0xF2 @@ -717,43 +844,213 @@ MOD_SILENCERES = 0xF4 MOD_VIRUSRES = 0xF5 MOD_PETRIFYRES = 0xF6 -MOD_BINDRES = 0xF7 +MOD_BINDRES = 0xF7 MOD_CURSERES = 0xF8 MOD_GRAVITYRES = 0xF9 -MOD_SLOWRES = 0xFA -MOD_STUNRES = 0xFB +MOD_SLOWRES = 0xFA +MOD_STUNRES = 0xFB MOD_CHARMRES = 0xFC -MOD_UNKNOWN = 0xFF +MOD_DEATHRES = 0xFD +MOD_TERRORRES = 0xFE +MOD_AMNESIARES = 0xFF +MOD_DOOMRES = 0x19C + MOD_PARALYZE = 0x101 -MOD_MIJIN_GAKURE = 0x102 -MOD_DUAL_WIELD = 0x103 + +-- Paladin +MOD_SHIELD_BASH = 0x181 +MOD_SHIELD_MASTERY = 0x1CD +MOD_DIVINE_EMBLEM = 0x21C +MOD_BLOCK_RATE = 0x21D + +-- Dark Knight +MOD_OCCULT_ACCUMEN = 0x1D0 +MOD_STALWART_SOUL = 0x1D5 +MOD_WEAPON_BASH = 0x1B1 +MOD_DARK_MAG_CAST = 0x1DA +MOD_ABSORB_POTENCY = 0x21E +MOD_ABSORB_DURATION = 0x21F +MOD_SCARLET_DMG = 0x229 +MOD_SCARLET_MDMG = 0x22A + +-- Warrior MOD_DOUBLE_ATTACK = 0x120 +MOD_RETALIATION_DMG = 0x1DB +MOD_BLOOD_RAGE = 0x228 + +-- Monk MOD_SUBTLE_BLOW = 0x121 -MOD_COUNTER = 0x123 +MOD_COUNTER = 0x123 MOD_KICK_ATTACK = 0x124 +MOD_KICK_DMG = 0x182 +MOD_TACTICAL_GUARD = 0x1CE +MOD_MARTIAL_ARTS = 0xAD +MOD_COUNTER_BASE_DMG = 0x1D9 +MOD_PFT_COUNTER_DMG = 0x21A + +-- White Mage MOD_AFFLATUS_SOLACE = 0x125 MOD_AFFLATUS_MISERY = 0x126 +MOD_CURE_CAST = 0x18E +MOD_HEALING_CAST = 0x194 +MOD_DIVINE_BENISON_FASTCAST = 0x234 +MOD_DIVINE_BENISON_ENMITY = 0x235 + +-- Black Mage MOD_CLEAR_MIND = 0x127 MOD_CONSERVE_MP = 0x128 -MOD_STEAL = 0x12A -MOD_BLINK = 0x12B +MOD_ELEMENTAL_CAST = 0x193 +MOD_ELEMENTAL_RECAST = 0x188 +MOD_BLACK_CAST = 0x18D +MOD_MANA_WALL_DMG = 0x21B + +-- Thief +MOD_STEAL = 0x12A +MOD_TRIPLE_ATTACK = 0x12E +MOD_TREASURE_HUNTER = 0x12F +MOD_SNEAK_ATK_MOD = 0x1CA +MOD_TRICK_ATK_MOD = 0x1D6 +MOD_SATA_DMG = 0x1D7 +MOD_GILFINDER = 0x1D4 +MOD_DESPOIL = 0x1DC + +-- Red Mage +MOD_BLINK = 0x12B MOD_STONESKIN = 0x12C -MOD_PHALANX = 0x12D -MOD_TRIPLE_ATTACK = 0x12E -MOD_TREASURE_HUNTER = 0x12F -MOD_TAME = 0x130 -MOD_RECYCLE = 0x131 -MOD_ZANSHIN = 0x132 +MOD_PHALANX = 0x12D +MOD_STONESKIN_CAST = 0x191 +MOD_ENHANCING_CAST = 0x197 +MOD_ENFEEBLING_CAST = 0x198 +MOD_SABOTEUR = 0x220 + +-- Beastmaster +MOD_TAME = 0x130 +MOD_CHARM_TIME = 0x168 +MOD_CHARM_CHANCE = 0x19B +MOD_REWARD_HP_BONUS = 0x16C +MOD_REWARD_RECAST = 0x18C + +-- Bard +MOD_SONG_RECAST = 0x187 +MOD_SONG_CAST = 0x18F +MOD_SONG_DURATION = 0x1B3 +MOD_SONG_EFFECTS = 0x1C8 +MOD_ALL_SONGS = 0x1B4 +MOD_ETUDE = 0x1B5 +MOD_REQUIEM = 0x1B6 +MOD_VIRELAI = 0x1B7 +MOD_MARCH = 0x1B8 +MOD_HYMNUS = 0x1B9 +MOD_MADRIGAL = 0x1BA +MOD_MINUET = 0x1BB +MOD_CAROL = 0x1BC +MOD_PAEON = 0x1BD +MOD_MAMBO = 0x1BE +MOD_LULLABY = 0x1BF +MOD_BALLAD = 0x1C0 +MOD_MAZURKA = 0x1C1 +MOD_THRENODY = 0x1C2 +MOD_FINALE = 0x1C3 +MOD_MINNE = 0x1C4 +MOD_SCHERZO = 0x1C5 +MOD_ELEGY = 0x1C6 +MOD_PRELUDE = 0x1C7 + +-- Ranger +MOD_RECYCLE = 0x131 +MOD_SHADOWBIND = 0x1D2 +MOD_WIDESCAN = 0x154 +MOD_RAPID_SHOT = 0x167 +MOD_SNAP_SHOT = 0x16D +MOD_BARRAGE = 0x1D3 +MOD_DEAD_AIM = 0x237 + +-- Samurai +MOD_ZANSHIN = 0x132 +MOD_MEDITATE_DUR = 0x1B0 + +-- Ninja +MOD_STEALTH = 0x166 MOD_UTSUSEMI = 0x133 MOD_NINJA_TOOL = 0x134 +MOD_MIJIN_GAKURE = 0x102 +MOD_DUAL_WIELD = 0x103 +MOD_NINJUTSU_RECAST = 0x18A +MOD_UTSUSEMI_CAST = 0x195 +MOD_PARRY_RATE = 0x22D + +-- Blue Mage MOD_BLUE_POINTS = 0x135 -MOD_DEDICATION = 0x136 -MOD_DEDICATION_CAP = 0x137 +MOD_BLUE_CAST = 0x196 +MOD_BLUE_RECAST = 0x189 +MOD_BLUE_LEARN = 0x231 + +-- Pets / Avatars / Wyverns / Automatons MOD_PET_MABB = 0x138 MOD_PET_MACC = 0x139 +MOD_PET_MDEF = 0x1E8 + MOD_PET_ATTP = 0x13A -MOD_PET_ACC = 0x13B +MOD_PET_DEFP = 0x1E9 +MOD_PET_ACC = 0x13B +MOD_PET_RACC = 0x1EA +MOD_PET_ATT = 0x1EB +MOD_PET_RATT = 0x1EC +MOD_PET_DEF = 0x1ED +MOD_PET_EVA = 0x1EE + +MOD_PET_HP = 0x1EF +MOD_PET_HPP = 0x1F0 +MOD_PET_MP = 0x1F1 + +MOD_PET_HPHEAL = 0x1F2 +MOD_PET_MPHEAL = 0x1F3 + +MOD_PET_ENMITY = 0x1F4 +MOD_PET_BLD_PACT_DMG = 0x1F5 +MOD_PET_REGAIN = 0x1F6 +MOD_PET_REGEN = 0x1F7 +MOD_PET_REFRESH = 0x1F8 +MOD_PET_HASTE = 0x1F9 +MOD_PET_STORETP = 0x1FA +MOD_PET_TPBONUS = 0x1FB + +MOD_PET_DMG = 0x1FC +MOD_PET_PPHYS_DMG = 0x1FD +MOD_PET_MAG_DMG = 0x1FE +MOD_PET_CRITRATE = 0x1FF + +MOD_PET_BREATH_ACC = 0x200 +MOD_WYVERN_BREATH = 0x201 +MOD_PET_BREATH_DMG = 0x202 +MOD_WYVERN_SUBJOB = 0x216 + +MOD_PET_BMAG_SKL = 0x203 +MOD_PET_COMBAT_SKL = 0x204 +MOD_PET_MELEE_SKL = 0x205 +MOD_PET_WMAG_SKL = 0x206 + +MOD_PET_DBL_ATK = 0x207 +MOD_PET_COUNTER = 0x208 +MOD_PET_SPELL_TIME = 0x209 +MOD_PET_CONSERVE_MP = 0x20A +MOD_PET_MP_COST = 0x20B +MOD_PET_CURE_PTNCY = 0x20C +MOD_PET_SUBTLE_BLOW = 0x217 +MOD_PET_FASTCAST = 0x218 +MOD_PET_SPELL_INT = 0x219 + +MOD_PET_STR = 0x20D +MOD_PET_DEX = 0x20E +MOD_PET_VIT = 0x20F +MOD_PET_AGI = 0x210 +MOD_PET_INT = 0x211 +MOD_PET_MND = 0x212 +MOD_PET_CHR = 0x213 + MOD_DMG_REFLECT = 0x13C + +-- Corsair MOD_ROLL_ROGUES = 0x13D MOD_ROLL_GALLANTS = 0x13E MOD_ROLL_CHAOS = 0x13F @@ -769,71 +1066,120 @@ MOD_ROLL_PUPPET = 0x149 MOD_ROLL_DANCERS = 0x14A MOD_ROLL_SCHOLARS = 0x14B -MOD_BUST = 0x14C +MOD_BUST = 0x14C + +-- Dancer MOD_FINISHING_MOVES = 0x14D -MOD_WIDESCAN = 0x154 -MOD_ENSPELL = 0x155 -MOD_SPIKES = 0x156 -MOD_ENSPELL_DMG = 0x157 -MOD_SPIKES_DMG = 0x158 -MOD_PERPETUATION_REDUCTION = 0x15A +MOD_JIG_TIME = 0x1A6 +MOD_TACTICAL_PARRY = 0x1CF +MOD_WALTZ_POTENCY = 0x1DD +MOD_WALTZ_RCVD = 0x1DE + +-- Scholar +MOD_SUBLIMATION_EFFECT = 0x14E +MOD_LIGHT_ARTS_EFFECT = 0x1B2 +MOD_DARK_ARTS_EFFECT = 0x14F +MOD_LIGHT_ARTS_SKILL = 0x150 +MOD_DARK_ARTS_SKILL = 0x151 +MOD_REGEN_EFFECT = 0x152 +MOD_REGEN_DURATION = 0x153 +MOD_HELIX_EFFECT = 0x22B +MOD_HELIX_DURATION = 0x22C +MOD_STORMSURGE_EFFECT = 0x22E +MOD_BLACK_MAGIC_COST = 0x221 +MOD_WHITE_MAGIC_COST = 0x222 +MOD_BLACK_MAGIC_CAST = 0x223 +MOD_WHITE_MAGIC_CAST = 0x224 +MOD_BLACK_MAGIC_RECAST = 0x225 +MOD_WHITE_MAGIC_RECAST = 0x226 +MOD_ALACRITY_CELERITY_EFFECT = 0x227 +MOD_GRIMOIRE_RECAST = 0x19A +MOD_GRIMOIRE_CAST = 0x190 + +-- Fellow +MOD_FELLOW_HP = 0x1DF +MOD_FELLOW_MP = 0x1E0 +MOD_FELLOW_STR = 0x1E1 +MOD_FELLOW_DEX = 0x1E2 +MOD_FELLOW_VIT = 0x1E3 +MOD_FELLOW_AGI = 0x1E4 +MOD_FELLOW_INT = 0x1E5 +MOD_FELLOW_MND = 0x1E6 +MOD_FELLOW_CHR = 0x1E7 + +MOD_ENSPELL = 0x155 +MOD_SPIKES = 0x156 +MOD_ENSPELL_DMG = 0x157 +MOD_SPIKES_DMG = 0x158 +MOD_ENSPELL_DURATION = 0x19D + +-- Summoner +MOD_PERPETUATION_REDUCTION = 0x15A +MOD_ELE_AVATAR_RECAST = 0x18B +MOD_SUMMON_CAST = 0x192 +MOD_AVATAR_PERPETUATION = 0x173 +MOD_WEATHER_REDUCTION = 0x174 +MOD_DAY_REDUCTION = 0x175 +MOD_BLOOD_BOON = 0x238 + MOD_FIRE_AFFINITY = 0x15B MOD_EARTH_AFFINITY = 0x15C MOD_WATER_AFFINITY = 0x15D MOD_ICE_AFFINITY = 0x15E -MOD_THUNDER_AFFINITY = 0x15F +MOD_THUNDER_AFFINITY = 0x15F MOD_WIND_AFFINITY = 0x160 MOD_LIGHT_AFFINITY = 0x161 MOD_DARK_AFFINITY = 0x162 -MOD_ADDS_WEAPONSKILL = 0x163 -MOD_ADDS_WEAPONSKILL_DYN = 0x164 -MOD_BP_DELAY = 0x165 -MOD_STEALTH = 0x166 -MOD_RAPID_SHOT = 0x167 -MOD_CHARM_TIME = 0x168 + +-- Dragoon MOD_JUMP_TP_BONUS = 0x169 MOD_JUMP_ATT_BONUS = 0x16A MOD_HIGH_JUMP_ENMITY_REDUCTION = 0x16B -MOD_REWARD_HP_BONUS = 0x16C -MOD_SNAP_SHOT = 0x16D +MOD_SPIRIT_JUMP_TP = 0x214 +MOD_SPIRIT_JUMP_ATT = 0x215 +MOD_CONSERVE_TP = 0x236 + +MOD_CRYSTAL_DROP = 0x1D8 + MOD_MAIN_DMG_RATING = 0x16E MOD_SUB_DMG_RATING = 0x16F -MOD_REGAIN = 0x170 -MOD_REFRESH = 0x171 -MOD_REGEN = 0x172 -MOD_AVATAR_PERPETUATION = 0x173 -MOD_WEATHER_REDUCTION = 0x174 -MOD_DAY_REDUCTION = 0x175 + +MOD_REGAIN = 0x170 +MOD_REFRESH = 0x171 +MOD_REGEN = 0x172 + MOD_CURE_POTENCY = 0x176 MOD_CURE_POTENCY_RCVD = 0x177 MOD_DELAYP = 0x17C MOD_RANGED_DELAYP = 0x17D MOD_EXP_BONUS = 0x17E +MOD_DEDICATION = 0x136 +MOD_DEDICATION_CAP = 0x137 MOD_HASTE_ABILITY = 0x17F -MOD_HASTE_GEAR = 0x180 -MOD_SHIELD_BASH = 0x181 -MOD_KICK_DMG = 0x182 -MOD_CHARM_CHANCE = 0x187 -MOD_WEAPON_BASH = 0x188 -MOD_BLACK_MAGIC_COST = 0x189 -MOD_WHITE_MAGIC_COST = 0x18A -MOD_BLACK_MAGIC_CAST = 0x18B -MOD_WHITE_MAGIC_CAST = 0x18C -MOD_BLACK_MAGIC_RECAST = 0x18D -MOD_WHITE_MAGIC_RECAST = 0x18E -MOD_ALACRITY_CELERITY_EFFECT = 0x18F -MOD_LIGHT_ARTS_EFFECT = 0x14E -MOD_DARK_ARTS_EFFECT = 0x14F -MOD_LIGHT_ARTS_SKILL = 0x150 -MOD_DARK_ARTS_SKILL = 0x151 -MOD_REGEN_EFFECT = 0x152 -MOD_REGEN_DURATION = 0x153 -MOD_HELIX_EFFECT = 0x154 -MOD_HELIX_DURATION = 0x155 -MOD_STORMSURGE_EFFECT = 0x190 -MOD_SUBLIMATION_BONUS = 0x191 +MOD_HASTE_GEAR = 0x180 + +MOD_QUICK_MAGIC = 0x199 + +MOD_CHOCOBO_TIME = 0x19F MOD_WYVERN_BREATH = 0x192 +MOD_EAT_RAW_FISH = 0x1A0 +MOD_EAT_RAW_MEAT = 0x1A1 + +MOD_QUADRUPLE_ATTACK = 0x1A5 + +MOD_SNEAK_DUR = 0x1A7 +MOD_INVIS_DUR = 0x1A8 +MOD_ENHANCING_DUR = 0x1A9 +MOD_BARSPELL_DUR = 0x1AB +MOD_BARSPELL_PWR = 0x1AC +MOD_DRAIN_ASPIR = 0x1AD +MOD_CURSNA_EFFECT = 0x1AE +MOD_CURSNA_RCVD = 0x1AF + +MOD_STONESKIN_HP = 0x1AA + + ----------------------------------- -- Merit Definitions ----------------------------------- @@ -1325,7 +1671,7 @@ MSGBASIC_USES_BUT_MISSES = 324 -- The uses .. but misses . MSGBASIC_CANT_BE_USED_IN_AREA = 316 -- That action cannot be used in this area. MSGBASIC_REQUIRES_SHIELD = 199 -- That action requires a shield. -MSGBASIC_STATUS_PREVENTS = 569 -- Your current status prevents you from using that ability. +MSGBASIC_STATUS_PREVENTS = 569 -- Your current status prevents you from using that ability. -- Distance MSGBASIC_TARG_OUT_OF_RANGE = 4 -- is out of range. MSGBASIC_UNABLE_TO_SEE_TARG = 5 -- Unable to see . @@ -1368,7 +1714,7 @@ MSGBASIC_DOUBLEUP_BUST = 426 -- The uses Double-Up. Bust! loses the effect of .. MSGBASIC_DOUBLEUP_BUST_SUB = 427 -- loses the effect of .. MSGBASIC_NO_ELIGIBLE_ROLL = 428 -- There are no rolls eligible for Double-Up. Unable to use ability. -MSGBASIC_ROLL_ALREADY_ACTIVE = 429 -- The same roll is already active on the . +MSGBASIC_ROLL_ALREADY_ACTIVE = 429 -- The same roll is already active on the . MSGBASIC_EFFECT_ALREADY_ACTIVE = 523 -- The same effect is already active on . SPELLGROUP_NONE = 0 Index: scripts/globals/teleports.lua =================================================================== --- scripts/globals/teleports.lua (revision 3520) +++ scripts/globals/teleports.lua (working copy) @@ -3,7 +3,10 @@ -- by ReaperX -- coordinates marked {R} have been obtained by packet capture from retail. Don't change them. ----------------------------------- +require("scripts/globals/settings"); +require("scripts/globals/status"); + function toFeiYin(player) player:setPos(280, 20, 543, 192, 0x6F); end; @@ -19,7 +22,7 @@ function toBatalliaDowns(player) player:setPos(180,8,-420,167,0x69); -- to main entrance of the Eldieme Necropolis. end; - + function toThroneRoom(player) player:setPos(72, -4, 0, 128, 0xA5); end; @@ -106,7 +109,7 @@ function toCatBurglarsHideout(player) player:setPos(-5, 0, 21, 128, 0xC0); -- to G-8 in Inner Horutoto Ruins, Beetle's Burrow, in front of Mahagony Door. -end; +end; function toHouseOfTheHero(player) player:setPos(-26, -12, 253, 194, 0xEF); -- to the House of the Hero, G-4 Windurst Walls. @@ -126,8 +129,8 @@ function toPurgonorgoBibiki(player) player:setPos(-382, -2, -428, 190, 0x04) -- to Purgonorgo Isle (bibiki bay) -end; - +end; + function toWindurstMissionOverseer(player) which = player:getVar("firstmissionguard"); if(which == 1) then @@ -138,7 +141,7 @@ end; function toAltep(player) - player:setPos(-61.942,3.949,224.9,0,0x72); -- to Altep Telepoint {R} + player:setPos(-61.942,3.949,224.9,0,0x72); -- to Altep Telepoint {R} end; function toYhoat(player) @@ -172,7 +175,7 @@ function toChateaudOraguille(player) player:setPos(0, 0, 0, 192, 0xE9); end; - + function toGhelsba(player) player:setPos(-156, -10, 80, 119, 0x8C); -- to the BCNM hut in Ghelsba Outpost. end; @@ -182,7 +185,7 @@ end; function toSkyGreenPorterLeft(player) - player:setPos(-134.145, -32.327, -205.947, 215, 0x82); -- {R} + player:setPos(-134.145, -32.327, -205.947, 215, 0x82); -- {R} end; function toHallofTransferenceDem(player) @@ -204,7 +207,7 @@ function toHallofTransferenceMea(player) player:setPos(280.066, -80.63337, -67.096, 192, 0xE); -- {R} end; - + function toPalaceEntrance(player) player:setPos(-25, 0, -615, 200, 0x21); -- to Palace Entrance in Al'Taieu. end; @@ -254,28 +257,28 @@ -- ----------------- function toCampaignDestination(player, option) - if(option == 1) then + if(option == 1) then player:setPos(205.973,-23.5875,-206.606, 167, 0x89); -- Xarcabard [S] {R} elseif(option == 2) then player:setPos(-46.172,-60.1088,-38.487, 16, 0x88); -- Beaucedine Glacier [S] {R} - elseif(option == 3) then + elseif(option == 3) then player:setPos(306.939, -1, -141.567, 173, 0x54); -- Batallia Downs [S] {R} - elseif(option == 4) then + elseif(option == 4) then player:setPos(-4.701, 15.981, 235.996, 160, 0x5B); -- Rolanberry Fields [S] {R} - elseif(option == 5) then + elseif(option == 5) then player:setPos(-64.212, 7.579, -51.292, 192, 0x62); -- Sauromugue Champaign [S] {R} - elseif(option == 6) then + elseif(option == 6) then player:setPos(60.617, -3.952, 56.658, 64, 0x52); -- Jugner Forest [S] {R} - elseif(option == 7) then + elseif(option == 7) then player:setPos(504.088, 24.442, 628.36, 69, 0x5A); -- Pashhow Marshlands [S] {R} - elseif(option == 8) then + elseif(option == 8) then player:setPos(-447.084, 23.433, 586.847, 31, 0x61); -- Meriphataud Mountains [S] {R} - elseif(option == 9) then + elseif(option == 9) then player:setPos(-77.817, -47.234, -302.732, 135, 0x53); -- Vunkerl Inlet [S] {R} - elseif(option == 10) then + elseif(option == 10) then player:setPos(314.335, -36.368, -12.2, 192,0x59); -- Grauberg [S] {R} - elseif(option == 11) then - player:setPos(141.021, -45, 19.543, 0, 0x60); -- Fort Karugo-Narugo [S] {R} + elseif(option == 11) then + player:setPos(141.021, -45, 19.543, 0, 0x60); -- Fort Karugo-Narugo [S] {R} elseif(option == 12) then player:setPos(183.297, -19.9714, -240.895, 2, 0x51); -- East Ronfaure [S] {R} elseif(option == 13) then @@ -286,7 +289,7 @@ player:setPos(-98, 1, -41, 224, 0x50); -- Southern San d'Oria [S] {approximated from memory} elseif(option == 16) then player:setPos(-291, -10, -107, 212, 0x57); -- Bastok Markets [S] {appoximated from memory} - elseif(option == 17) then + elseif(option == 17) then player:setPos(-31.442, -5, 129.202, 128, 0x5E); -- Windurst Waters [S} {R} elseif(option == 18) then player:setPos(-194.095, 0, 30.009, 0, 0xA4); -- Garlaige Citdadel [S] {R} @@ -335,18 +338,68 @@ elseif(option == 18) then -- Meriphataud Mountains player:setPos(597,-32,279,95,0x77); -- Abyessa Maws - --Tahrongi Canyon (H-12) - --Konschtat Highlands (I-12) - --La Theine Plateau (E-4) - --Valkurm Dunes (I-9) - --Jugner Forest (J-8) - --Buburimu Peninsula (F-7) - --South Gustaberg (J-10) - --North Gustaberg (G-6) - --Xarcabard (H-8) + --Tahrongi Canyon (H-12) + --Konschtat Highlands (I-12) + --La Theine Plateau (E-4) + --Valkurm Dunes (I-9) + --Jugner Forest (J-8) + --Buburimu Peninsula (F-7) + --South Gustaberg (J-10) + --North Gustaberg (G-6) + --Xarcabard (H-8) end; end; +function toMaw(player, option) + if (option == 1) then -- Batallia Downs [S] + player:setPos(-48, 0, 437, 52, 0x54); + elseif (option == 2) then -- Batallia Downs + player:setPos(-49, 0, 435, 1, 0x69); + elseif (option == 3) then -- Rolanberry Fields [S] + player:setPos(-190, -8, 363, 11, 0x5b); + elseif (option == 4) then -- Rolanberry Fields + player:setPos(-193, 8, 360, 0, 0x6e); + elseif (option == 5) then -- Sauromugue Champaign [S] + player:setPos(372, 9, -228, 27, 0x62); + elseif (option == 6) then -- Sauromugue Champaign + player:setPos(370, 8, -228, 0, 0x78); + elseif (option == 7) then -- West Sarutabaruta [S] + player:setPos(0, 0, -164, 29, 0x5f); + elseif (option == 8) then -- West Sarutabaruta + player:setPos(0, 0, -164, 29, 0x73); + elseif (option == 9) then -- East Ronfaure [S] + player:setPos(320, -60, 500, 79, 0x51); + elseif (option == 10) then -- East Ronfaure + player:setPos(320, -60, 500, 79, 0x65); + elseif (option == 11) then -- North Gustaberg [S] + player:setPos(469, 0, 479, 254, 0x58); + elseif (option == 12) then -- North Gustaberg + player:setPos(469, 0, 479, 254, 0x6A); + --elseif (option == 13) then -- Jugner Forest [S] + -- player:setPos(); + --elseif (option == 14) then -- Jugner Forest + -- player:setPos(); + --elseif (option == 15) then -- Pashhow Marshlands [S] + -- player:setPos(); + --elseif (option == 16) then -- Pashhow Marshlands + -- player:setPos(); + --elseif (option == 17) then -- Meriphataud Mountains [S] + -- player:setPos(); + --elseif (option == 18) then -- Meriphataud Mountains + -- player:setPos(); + -- Abyessa Maws + --Tahrongi Canyon (H-12) + --Konschtat Highlands (I-12) + --La Theine Plateau (E-4) + --Valkurm Dunes (I-9) + --Jugner Forest (J-8) + --Buburimu Peninsula (F-7) + --South Gustaberg (J-10) + --North Gustaberg (G-6) + --Xarcabard (H-8) + end; +end; + function recallJugner(player) player:setPos(-122.862, 0, -163.154, 192, 0x52); -- {R} end; @@ -387,7 +440,7 @@ if(math.random(1,2) == 1) then player:setPos(133.4, 1.485, 47.427, 96, 0x32); -- Aht Urhgan Whitegate Chamber of Passage Left {R} else - player:setPos(116.67, 1.485, 47.427, 32, 0x32); -- Aht Urhgan Whitegate Chamber of Passage Right {R} + player:setPos(116.67, 1.485, 47.427, 32, 0x32); -- Aht Urhgan Whitegate Chamber of Passage Right {R} end end; @@ -404,7 +457,7 @@ end; function MamoolJaTrainingGround1(player) - player:setPos(-20, -2.271, -405, 63, 0x42); -- Mamool Ja Training Grounds Rank 1 + player:setPos(-20, -2.271, -405, 63, 0x42); -- Mamool Ja Training Grounds Rank 1 end; function MamoolJaTrainingExit(player) @@ -420,15 +473,15 @@ end; function toExplorerMoogle(player,zone) - if(zone == 231) then + if(zone == 231) then player:setPos(39.4, -0.2, 25, 253, zone); -- Northern_San_d'Oria - elseif(zone == 234) then + elseif(zone == 234) then player:setPos(76.82, 0, -66.12, 232, zone); -- Bastok_Mines - elseif(zone == 240) then + elseif(zone == 240) then player:setPos(185.6, -12, 223.5, 96, zone); -- Port_Windurst - elseif(zone == 248) then + elseif(zone == 248) then player:setPos(14.67, -14.56, 66.69, 96, zone); -- Selbina - elseif(zone == 249) then + elseif(zone == 249) then player:setPos(2.87, -4, 71.95, 0, zone); -- Mhaura end end; @@ -441,10 +494,30 @@ player:setPos(0.000, 9.000, -38.670, -67, 243); end; +----------------------------------- +-- debugTeleport +----------------------------------- +function debugTeleport(player,npcid) + if (DEBUG_MODE == 1) then + local npc = GetNPCByID(npcid); + if (npc ~= nil) then + player:setPos(npc:getXPos(), npc:getYPos(), npc:getZPos(), 0, npc:getZone()); + end + end +end; function toWajaomLaypoint(player) -- Wajaom Woodlands Laypoint player:setPos(-200,-10,80,125,0x33); end; +function debugTeleport(player,npcid) + if(DEBUG_MODE == 1) then + local npc = GetNPCByID(npcid); + if(npc ~= nil) then + player:setPos(npc:getXPos(), npc:getYPos(), npc:getZPos(), 0, npc:getZone()); + end + end +end; + ----------------------------------- -- Teleport Items ----------------------------------- @@ -477,28 +550,28 @@ zone = player:getZone(); -- Ronfaure if(zone == 100 or zone == 101 or zone == 139 or zone == 140 or zone == 141 or zone == 142 or zone == 190 or zone == 167 or zone == 230 or zone == 231 or zone == 232 or zone == 233) then - player:setPos(-446, -20 , -220, 0, 100); + player:setPos(-446, -20 , -220, 0, 100); -- Zulkheim elseif(zone == 248 or zone == 102 or zone == 103 or zone == 108 or zone == 193 or zone == 196) then - player:setPos(149, -7 , 94, 154, 103); + player:setPos(149, -7 , 94, 154, 103); -- Norvallen elseif(zone == 104 or zone == 105 or zone == 1 or zone == 2 or zone == 149 or zone == 150 or zone == 195) then - player:setPos(62, 0 , -1, 67, 104); + player:setPos(62, 0 , -1, 67, 104); -- Gustaberg elseif(zone == 234 or zone == 235 or zone == 236 or zone == 237 or zone == 106 or zone == 107 or zone == 172 or zone == 191 or zone == 143 or zone == 173 or zone == 144) then - player:setPos(-579, 39 , 62, 89, 106); + player:setPos(-579, 39 , 62, 89, 106); -- Derfland elseif(zone == 110 or zone == 109 or zone == 197 or zone == 148 or zone == 147) then - player:setPos(465, 24 , 422, 29, 109); + player:setPos(465, 24 , 422, 29, 109); -- Sarutabatura elseif(zone == 238 or zone == 239 or zone == 240 or zone == 241 or zone == 242 or zone == 115 or zone == 116 or zone == 169 or zone == 170 or zone == 192 or zone == 194 or zone == 145 or zone == 146) then - player:setPos(-15, -13 , 318, 128, 115); + player:setPos(-15, -13 , 318, 128, 115); -- Kolshushu elseif(zone == 249 or zone == 4 or zone == 117 or zone == 118 or zone == 198 or zone == 213) then - player:setPos(-480, -30 , 57, 62, 118); + player:setPos(-480, -30 , 57, 62, 118); -- Aragoneu elseif(zone == 7 or zone == 119 or zone == 120 or zone == 200 or zone == 151 or zone == 152 or zone == 8) then - player:setPos(-298, 17 , 418, 98, 119); + player:setPos(-298, 17 , 418, 98, 119); -- Fauregandi elseif(zone == 111 or zone == 166 or zone == 9 or zone == 204 or zone == 10 or zone == 206 or zone == 203) then player:setPos(-18, -59, -108, 100, 111); @@ -507,28 +580,28 @@ player:setPos(210, -23, -206, 160, 112); -- Qufim Island elseif(zone == 127 or zone == 126 or zone == 157 or zone == 158 or zone == 184 or zone == 179) then - player:setPos(-246, -20 , 301, 192, 126); + player:setPos(-246, -20 , 301, 192, 126); -- Lil'Telor elseif(zone == 122 or zone == 121 or zone == 251 or zone == 153 or zone == 154 or zone ==202) then - player:setPos(-38, 0, -140, 69, 121); + player:setPos(-38, 0, -140, 69, 121); -- Kuzotz elseif(zone == 247 or zone == 114 or zone == 125 or zone == 208 or zone == 209 or zone == 168) then - player:setPos(-250, 8, -252, 122, 114); + player:setPos(-250, 8, -252, 122, 114); -- Vollbow elseif(zone == 113 or zone == 128 or zone == 174 or zone == 212 or zone == 201) then - player:setPos(-184, 8, -66, 0, 113); + player:setPos(-184, 8, -66, 0, 113); -- Elshimo Lowlands elseif(zone == 250 or zone == 252 or zone == 176 or zone == 123) then - player:setPos(-243, 0, -400, 192, 123); + player:setPos(-243, 0, -400, 192, 123); -- Elshimo Uplands elseif(zone == 124 or zone == 159 or zone == 160 or zone == 205 or zone == 163 or zone == 211 or zone == 207) then - player:setPos(203, 0, -82, 36, 124); + player:setPos(203, 0, -82, 36, 124); -- Tulia ?! elseif(zone == 130 or zone == 177 or zone == 178 or zone == 180 or zone == 181) then - player:setPos(4, -54, -600, 192, 130); + player:setPos(4, -54, -600, 192, 130); -- Tavnazia elseif(zone == 26 or zone == 25 or zone ==24 or zone == 28 or zone == 29 or zone == 30 or zone == 31 or zone == 32 or zone == 27) then - player:setPos(-535, -6, -53, 122, 24); + player:setPos(-535, -6, -53, 122, 24); end end; @@ -595,28 +668,28 @@ zone = player:getZone(); -- Ronfaure if(zone == 100 or zone == 101 or zone == 139 or zone == 140 or zone == 141 or zone == 142 or zone == 190 or zone == 167 or zone == 230 or zone == 231 or zone == 232 or zone == 233) then - player:setPos(-446, -20 , -220, 0, 100); + player:setPos(-446, -20 , -220, 0, 100); -- Zulkheim elseif(zone == 248 or zone == 102 or zone == 103 or zone == 108 or zone == 193 or zone == 196) then - player:setPos(149, -7 , 94, 154, 103); + player:setPos(149, -7 , 94, 154, 103); -- Norvallen elseif(zone == 104 or zone == 105 or zone == 1 or zone == 2 or zone == 149 or zone == 150 or zone == 195) then - player:setPos(62, 0 , -1, 67, 104); + player:setPos(62, 0 , -1, 67, 104); -- Gustaberg elseif(zone == 234 or zone == 235 or zone == 236 or zone == 237 or zone == 106 or zone == 107 or zone == 172 or zone == 191 or zone == 143 or zone == 173 or zone == 144) then - player:setPos(-579, 39 , 62, 89, 106); + player:setPos(-579, 39 , 62, 89, 106); -- Derfland elseif(zone == 110 or zone == 109 or zone == 197 or zone == 148 or zone == 147) then - player:setPos(465, 24 , 422, 29, 109); + player:setPos(465, 24 , 422, 29, 109); -- Sarutabatura elseif(zone == 238 or zone == 239 or zone == 240 or zone == 241 or zone == 242 or zone == 115 or zone == 116 or zone == 169 or zone == 170 or zone == 192 or zone == 194 or zone == 145 or zone == 146) then - player:setPos(-15, -13 , 318, 128, 115); + player:setPos(-15, -13 , 318, 128, 115); -- Kolshushu elseif(zone == 249 or zone == 4 or zone == 117 or zone == 118 or zone == 198 or zone == 213) then - player:setPos(-480, -30 , 57, 62, 118); + player:setPos(-480, -30 , 57, 62, 118); -- Aragoneu elseif(zone == 7 or zone == 119 or zone == 120 or zone == 200 or zone == 151 or zone == 152 or zone == 8) then - player:setPos(-298, 17 , 418, 98, 119); + player:setPos(-298, 17 , 418, 98, 119); -- Fauregandi elseif(zone == 111 or zone == 166 or zone == 9 or zone == 204 or zone == 10 or zone == 206 or zone == 203) then player:setPos(-18, -59, -108, 100, 111); @@ -625,28 +698,28 @@ player:setPos(210, -23, -206, 160, 112); -- Qufim Island elseif(zone == 127 or zone == 126 or zone == 157 or zone == 158 or zone == 184 or zone == 179) then - player:setPos(-246, -20 , 301, 192, 126); + player:setPos(-246, -20 , 301, 192, 126); -- Lil'Telor elseif(zone == 122 or zone == 121 or zone == 251 or zone == 153 or zone == 154 or zone ==202) then - player:setPos(-38, 0, -140, 69, 121); + player:setPos(-38, 0, -140, 69, 121); -- Kuzotz elseif(zone == 247 or zone == 114 or zone == 125 or zone == 208 or zone == 209 or zone == 168) then - player:setPos(-250, 8, -252, 122, 114); + player:setPos(-250, 8, -252, 122, 114); -- Vollbow elseif(zone == 113 or zone == 128 or zone == 174 or zone == 212 or zone == 201) then - player:setPos(-184, 8, -66, 0, 113); + player:setPos(-184, 8, -66, 0, 113); -- Elshimo Lowlands elseif(zone == 250 or zone == 252 or zone == 176 or zone == 123) then - player:setPos(-243, 0, -400, 192, 123); + player:setPos(-243, 0, -400, 192, 123); -- Elshimo Uplands elseif(zone == 124 or zone == 159 or zone == 160 or zone == 205 or zone == 163 or zone == 211 or zone == 207) then - player:setPos(203, 0, -82, 36, 124); + player:setPos(203, 0, -82, 36, 124); -- Tulia ?! elseif(zone == 130 or zone == 177 or zone == 178 or zone == 180 or zone == 181) then - player:setPos(4, -54, -600, 192, 130); + player:setPos(4, -54, -600, 192, 130); -- Tavnazia elseif(zone == 26 or zone == 25 or zone ==24 or zone == 28 or zone == 29 or zone == 30 or zone == 31 or zone == 32 or zone == 27) then - player:setPos(-535, -6, -53, 122, 24); + player:setPos(-535, -6, -53, 122, 24); end end; @@ -668,4 +741,40 @@ function tavnzanianRing(player) player:setPos(9,-9,11,0,26); +end; + +function bastokMarketsGlyph(player) + player:setPos(-354,-10,-174,231,235); +end; + +function bastokMinesGlyph(player) + player:setPos(-14,-1,-122,194,234); +end; + +function bastokPortGlyph(player) + player:setPos(134,8,-10,92,236); +end; + +function sandoriaEastGlyph(player) + player:setPos(101,1,-46,159,230); +end; + +function sandoriaWestGlyph(player) + player:setPos(-103,1,-48,222,230); +end; + +function sandoriaNorthGlyph(player) + player:setPos(-241,8,45,5,231); +end; + +function windyWatersGlyph(player) + player:setPos(-40,-5,232,64,238); +end; + +function windyPortGlyph(player) + player:setPos(-232,-8,200,252,240); +end; + +function windyWoodsGlyph(player) + player:setPos(113,-5,-39,129,241); end; \ No newline at end of file Index: scripts/globals/utils.lua =================================================================== --- scripts/globals/utils.lua (revision 3520) +++ scripts/globals/utils.lua (working copy) @@ -10,6 +10,41 @@ return input; end; +function utils.manawall(target, dmg) + --handling mana wall + wall = target:getMP(); + if(wall > 0) then + if(wall > ((dmg / 2) - (dmg * (target:getMod(MOD_MANA_WALL_DMG) / 100)))) then --absorb full half damage + target:delMP(dmg / 2); + return 0; + else --absorbs some damage based on MP + target:delMP(wall); + target:delStatusEffect(EFFECT_MANA_WALL); + return (((dmg / 2) - (dmg * (target:getMod(MOD_MANA_WALL_DMG) / 100))) - wall); + end + updateEnmity(target,-180,0); + end + + return dmg; +end; + +function utils.sacrosanctityDmg(target, dmg) + + dmg = dmg * .25; + + return dmg; +end; + +function utils.scarletDelirium(target, dmg) + if (dmg > 0) then + scarletDeliriumBonus = ((dmg / target:getMaxHP()) / 2) * 100; + target:delStatusEffect(EFFECT_SCARLET_DELIRIUM_I); + target:addStatusEffect(EFFECT_SCARLET_DELIRIUM_II,scarletDeliriumBonus,0,60); + end + + return; +end; + function utils.stoneskin(target, dmg) --handling stoneskin skin = target:getMod(MOD_STONESKIN); @@ -109,6 +144,66 @@ return dmg * resist; end; +function utils.absorbMagicDmg(target, dmg) -- Elemental Sachets + target:addHP(dmg); + if(dmg > 0) then + target:messageBasic(24,0,dmg); + end + dmg = 0; + return dmg; +end; + +function utils.dmgToMP(target, dmg) + + if(target:getObjType() == TYPE_PC) then + local etherealMP = 0; + local percentMP = 0; + if(target:getEquipID(SLOT_EAR1) == 15965 or target:getEquipID(SLOT_EAR2) == 15965) then -- Ethereal Earring + percentMP = percentMP + .03; + end + if(target:getEquipID(SLOT_HEAD) == 11170) then -- Creed Armet +1 + percentMP = percentMP + .03; + end + if(target:getEquipID(SLOT_HEAD) == 11070) then -- Creed Armet +2 + percentMP = percentMP + .03; + end + etherealMP = math.floor(dmg * percentMP); + target:addMP(etherealMP); + if(etherealMP > 0) then + target:messageBasic(25,0,etherealMP); + end + -- printf("MP Gained %u",etherealMP); + end + +end; + +function utils.dmgToTP(target, dmg) + + if(target:getObjType() == TYPE_PC) then + local dmgTP = 0; + local percentTP = 0; + if(target:getEquipID(SLOT_SUB) == 28671) then -- Butznard Shield + percentTP = percentTP + .005; + end + if(target:getEquipID(SLOT_SUB) == 28669) then -- Butznard Shield +1 + percentTP = percentTP + .006; + end + if(target:getEquipID(SLOT_BODY) == 11868) then -- Mekira Meikogai + percentTP = percentTP + .014; + end + if(target:getEquipID(SLOT_BODY) == 11865) then -- Mekira Toshugai + percentTP = percentTP + .01; + end + if(target:getEquipID(SLOT_BODY) == 11871) then -- Mekira Toshugai +1 + percentTP = percentTP + .012; + end + dmgTP = math.floor(dmg * percentTP); + target:addTP(dmgTP); + -- printf("TP Gained %u",dmgTP); + end + +end; + function utils.breathDmgTaken(target, breathDmg) local resist = 1 + (target:getMod(MOD_UDMGBREATH) / 100); @@ -126,16 +221,32 @@ function utils.magicDmgTaken(target, magicDmg) + local ring1 = target:getEquipID(SLOT_RING1); + local ring2 = target:getEquipID(SLOT_RING2); -- MDT is stored in amount/256 local resist = ((256 + target:getMod(MOD_UDMGMAGIC))/256); magicDmg = magicDmg * resist; - + resist = ((256 + target:getMod(MOD_DMGMAGIC))/256); if(resist < 0.5) then resist = 0.5; end + + if(target:getObjType() == TYPE_PC) then + if(((ring1 == 14646) or (ring2 == 14646)) -- Shadow Ring + and (math.random(100) <= 13)) then + magicDmg = 0; + end + + if((((magicDmg * resist) / target:getMaxHP()) * 100) > 50) then + if(((ring1 == 11647) or (ring2 == 11647)) -- Archon Ring + and (math.random(100) <= 5)) then + magicDmg = 0; + end + end + end return magicDmg * resist; end; @@ -151,6 +262,21 @@ if(resist < 0.5) then resist = 0.5; end + + if(target:getObjType() == TYPE_PC) then + if(target:getEquipID(SLOT_HEAD) == 14646 and (math.random(100) <= 5)) then -- Nocturnus Helm + target:addHP(dmg); + if(dmg > 0) then + target:messageBasic(24,0,dmg); + end + dmg = 0; + end + if((((dmg * resist) / target:getMaxHP()) * 100) > 50) then + if(target:getEquipID(SLOT_BACK) == 14646 and (math.random(100) <= 5)) then -- Archon Cape + dmg = 0; + end + end + end return dmg * resist; end; Index: scripts/globals/weaponskills.lua =================================================================== --- scripts/globals/weaponskills.lua (revision 3520) +++ scripts/globals/weaponskills.lua (working copy) @@ -184,11 +184,55 @@ end end finaldmg = finaldmg + souleaterBonus(attacker, (tpHitsLanded+extraHitsLanded)); + if(attacker:getMod(MOD_WS_DMG) > 0) then + finaldmg = finaldmg + (finaldmg * (attacker:getMod(MOD_WS_DMG)/100)); + end + + -- Overwhelm Bonus beyond 1 merit + if(attacker:getObjType() == TYPE_PC) then + local job = attacker:getMainJob(); + local sjob = attacker:getSubJob(); + if(job == JOB_SAM or sjob == JOB_SAM) then + local overwhelmBonus = 0; + local merit = 0; + merit = attacker:getMerit(MERIT_OVERWHELM); + if(merit == 10) then + overwhelmBonus = 0.05; + elseif(merit == 15) then + overwhelmBonus = 0.1; + elseif(merit == 20) then + overwhelmBonus = 0.12; + elseif(merit == 25) then + overwhelmBonus = 0.14; + end + finaldmg = finaldmg + (finaldmg * overwhelmBonus); + -- print("Overwhelm Bonus Dmg Percent:",overwhelmBonus); + end + end + + if(attacker:hasStatusEffect(EFFECT_SCARLET_DELIRIUM_II) == true) then + finaldmg = finaldmg + (finaldmg * attacker:getMod(MOD_SCARLET_DMG)/100); + end + + if(attacker:getObjType() == TYPE_PC) then + if((attacker:getEquipID(SLOT_MAIN) == 19174) and (math.random(100) <= 8)) then -- Borealis Greatsword + finaldmg = finaldmg * 1.5; + end + end + -- print("Landed " .. hitslanded .. "/" .. numHits .. " hits with hitrate " .. hitrate .. "!"); if(target:hasStatusEffect(EFFECT_FORMLESS_STRIKES) == false) then utils.dmgTaken(target, finaldmg); utils.physicalDmgTaken(target, finaldmg); + if(target:hasStatusEffect(EFFECT_MANA_WALL) == true) then + finaldmg = utils.manawall(target, finaldmg); + end + if(target:hasStatusEffect(EFFECT_SCARLET_DELIRIUM_I) == true) then + utils.scarletDelirium(target, finaldmg); + end + utils.dmgToMP(target, finaldmg); + utils.dmgToTP(target, finaldmg); end return finaldmg, criticalHit, tpHitsLanded, extraHitsLanded; @@ -201,7 +245,7 @@ if attacker:getMainJob() ~= 8 then percent = percent / 2; end - if attacker:getEquipID(SLOT_HEAD) == 12516 or attacker:getEquipID(SLOT_HEAD) == 15232 or attacker:getEquipID(SLOT_BODY) == 14409 or attacker:getEquipID(SLOT_LEGS) == 15370 then + if attacker:getEquipID(SLOT_HEAD) == 12516 or attacker:getEquipID(SLOT_MAIN) == 18947 or attacker:getEquipID(SLOT_RING1) == 15818 or attacker:getEquipID(SLOT_RING2) == 15818 or attacker:getEquipID(SLOT_HEAD) == 15232 or attacker:getEquipID(SLOT_BODY) == 14409 or attacker:getEquipID(SLOT_LEGS) == 15370 then percent = percent + 0.02; end local hitscounted = 0; @@ -659,8 +703,12 @@ end --print("Landed " .. hitslanded .. "/" .. numHits .. " hits with hitrate " .. hitrate .. "!"); + if(target:hasStatusEffect(EFFECT_MANA_WALL) == true) then + finaldmg = utils.manawall(target, finaldmg); + end utils.dmgTaken(target, finaldmg); utils.rangedDmgTaken(target, finaldmg); + utils.dmgToMP(target, finaldmg); return finaldmg, tpHitsLanded, extraHitsLanded; end; @@ -668,22 +716,31 @@ function getMultiAttacks(attacker, numHits) local bonusHits = 0; local tripleChances = 1; + local quadrupleChances = 1; local doubleRate = attacker:getMod(MOD_DOUBLE_ATTACK)/100; local tripleRate = attacker:getMod(MOD_TRIPLE_ATTACK)/100; + local quadrupleRate = attacker:getMod(MOD_QUADRUPLE_ATTACK)/100; - --triple only procs on first hit, or first two hits if dual wielding + --triple and quadruple only procs on first hit, or first two hits if dual wielding if(attacker:getOffhandDmg() > 0) then tripleChances = 2; + quadrupleChance = 2; end for i = 1, numHits, 1 do chance = math.random(); - if (chance < tripleRate and i <= tripleChances) then + if (chance < quadrupleRate and i <= quadrupleChances) then + bonusHits = bonusHits + 3; + elseif (chance < tripleRate and i <= tripleChances) then bonusHits = bonusHits + 2; else - --have to check if triples are possible, or else double attack chance + --have to check if triples and quadruples are possible, or else double attack chance -- gets accidentally increased by triple chance (since it can only proc on 1 or 2) - if (i <= tripleChances) then + if (i <= quadrupleChances) then + if (chance < quadrupleRate + tripleRate) then + bonusHits = bonusHits + 2; + end + elseif (i <= tripleChances) then if (chance < tripleRate + doubleRate) then bonusHits = bonusHits + 1; end @@ -700,6 +757,7 @@ -- recalculate mods doubleRate = attacker:getMod(MOD_DOUBLE_ATTACK)/100; tripleRate = attacker:getMod(MOD_TRIPLE_ATTACK)/100; + quadrupleRate = attacker:getMod(MOD_QUADRUPLE_ATTACK)/100; end end if ((numHits + bonusHits ) > 8) then Index: scripts/globals/weaponskills/aeolian_edge.lua =================================================================== --- scripts/globals/weaponskills/aeolian_edge.lua (revision 3520) +++ scripts/globals/weaponskills/aeolian_edge.lua (working copy) @@ -1,14 +1,16 @@ +----------------------------------- -- Aeolian Edge -- Dagger weapon skill --- Delivers an area attack that deals wind elemental damage. Damage varies with TP. --- Skill Level: 290 --- Aligned with the Breeze Gorget, Soil Gorget & Thunder Gorget. --- Aligned with the Breeze Belt, Soil Belt & Thunder Belt. --- Element: Wind --- Skillchain Properties: Impaction / Scission / Detonation --- Modifiers: DEX:28%; INT:28% +-- Skill level: 290 +-- Delivers an area attack that deals wind elemental damage. Damage varies with TP. +-- This weapon skill is ranged and can be used from a distance (Up to 15'). +-- Directly affected by Magic Attack Bonus. +-- Aligned with the Breeze Gorget, Soil Gorget, & Thunder Gorget. +-- Aligned with the Breeze Belt, Soil Belt, & Thunder Belt. +-- Element: Wind +-- Modifiers: DEX:28% ; INT:28% -- 100%TP 200%TP 300%TP --- 2.75 3.50 4 +-- 2.75 3.50 4.00 ----------------------------------- require("scripts/globals/status"); @@ -20,7 +22,7 @@ local params = {}; params.numHits = 1; - params.ftp100 = 2.75; params.ftp200 = 3.50; params.ftp300 = 4; + params.ftp100 = 2.75; params.ftp200 = 3.50; params.ftp300 = 4.00; params.str_wsc = 0.0; params.dex_wsc = 0.28; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.28; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; params.canCrit = false; Index: scripts/globals/weaponskills/ascetics_fury.lua =================================================================== --- scripts/globals/weaponskills/ascetics_fury.lua (revision 3520) +++ scripts/globals/weaponskills/ascetics_fury.lua (working copy) @@ -29,6 +29,84 @@ params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 18992) then + aftermath = 1; + elseif (main == 19061) then + aftermath = 1; + elseif (main == 19081) then + aftermath = 1; + elseif (main == 19613) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19711) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19820) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19949) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 18992) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif (main == 19061 or main == 19081 or main == 19613) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif (main == 19711 or main == 19820 or main == 19949) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 18991) then + duration = 90; + subpower = math.floor(2 * (tp / 5) - 60); + elseif (main == 19060 or main == 19080 or main == 19612) then + duration = 120; + subpower = math.floor(3 * (tp / 5) - 90); + elseif (main == 19710 or main == 19819 or main == 19948) then + duration = 120; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + duration = 180; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 18992) then + duration = 60; + subpower = math.floor(tp / 10); + elseif (main == 19061 or main == 19081 or main == 19613) then + duration = 90; + subpower = math.floor(3 * (tp / 20)); + elseif (main == 19711 or main == 19820 or main == 19949) then + duration = 90; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/atonement.lua =================================================================== --- scripts/globals/weaponskills/atonement.lua (revision 0) +++ scripts/globals/weaponskills/atonement.lua (working copy) @@ -0,0 +1,113 @@ +----------------------------------- +-- Atonement +-- Sword weapon skill +-- Skill Level: NA +-- Delivers a twofold attack. Damage varies with TP. Burtgang: Aftermath effect varies with TP. +-- In order to obtain Atonement, the quest Unlocking a Myth must be completed. +-- Will stack with Sneak Attack. +-- Aligned with the Aqua Gorget, Flane Gorget & Light Gorget +-- Aligned with the Aqua Belt, Flame Belt & Light Belt. +-- Element: None +-- Modifiers: Related to accumulated Eminity +-- 100%TP 200%TP 300%TP +-- 1.00 1.75 2.50 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + params.numHits = 2; + params.ftp100 = 1; params.ftp200 = 1.75; params.ftp300 = 2.5; + params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.0; params.mnd_wsc = 0.5; params.chr_wsc = 0.0; + params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; + params.canCrit = false; + params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.atkmulti = 1; + local damage, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 18997 or sub == 18997) then + aftermath = 1; + elseif (main == 19066 or sub == 19066) then + aftermath = 1; + elseif (main == 19086 or sub == 19086) then + aftermath = 1; + elseif (main == 19618 or sub == 19618) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19716 or sub == 19716) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19825 or sub == 19825) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19954 or sub == 19954) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 18997 or sub == 18997) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif ((main == 19066 or sub == 19066) or (main == 19086 or sub == 19086) or (main == 19618 or sub == 19618)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif ((main == 19716 or sub == 19716) or (main == 19825 or sub == 19825) or (main == 19954 or sub == 19954)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 18997 or sub == 18997) then + duration = 90; + subpower = math.floor(2 * (tp / 5) - 60); + elseif ((main == 19066 or sub == 19066) or (main == 19086 or sub == 19086) or (main == 19618 or sub == 19618)) then + duration = 120; + subpower = math.floor(3 * (tp / 5) - 90); + elseif ((main == 19716 or sub == 19716) or (main == 19825 or sub == 19825) or (main == 19954 or sub == 19954)) then + duration = 120; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 18997 or sub == 18997) then + duration = 60; + subpower = math.floor(tp / 10); + elseif ((main == 19066 or sub == 19066) or (main == 19086 or sub == 19086) or (main == 19618 or sub == 19618)) then + duration = 90; + subpower = math.floor(3 * (tp / 20)); + elseif ((main == 19716 or sub == 19716) or (main == 19825 or sub == 19825) or (main == 19954 or sub == 19954)) then + duration = 90; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + + return tpHits, extraHits, damage; + +end Index: scripts/globals/weaponskills/blade_ei.lua =================================================================== --- scripts/globals/weaponskills/blade_ei.lua (revision 0) +++ scripts/globals/weaponskills/blade_ei.lua (working copy) @@ -0,0 +1,33 @@ +----------------------------------- +-- Blade Ei +-- Katana weapon skill +-- Skill Level: 175 +-- Delivers a dark elemental attack. Damage varies with TP. +-- Aligned with the Shadow Gorget. +-- Aligned with the Shadow Belt. +-- Element: Dark +-- Modifiers: STR:30% ; INT:30% +-- 100%TP 200%TP 300%TP +-- 1.00 1.50 2.00 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + params.numHits = 1; + params.ftp100 = 1; params.ftp200 = 1.5; params.ftp300 = 2; + params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.3; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; + params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; + params.canCrit = false; + params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.atkmulti = 1; + local damage, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + return tpHits, extraHits, damage; + +end Index: scripts/globals/weaponskills/blade_hi.lua =================================================================== --- scripts/globals/weaponskills/blade_hi.lua (revision 3520) +++ scripts/globals/weaponskills/blade_hi.lua (working copy) @@ -34,6 +34,49 @@ params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19464 or sub == 19464) then + aftermath = 1; + elseif (main == 19542 or sub == 19542) then + aftermath = 1; + elseif (main == 19640 or sub == 19640) then + aftermath = 1; + elseif (main == 19813 or sub == 19813) then + aftermath = 1; + elseif (main == 19861 or sub == 19861) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end \ No newline at end of file Index: scripts/globals/weaponskills/blade_kamu.lua =================================================================== --- scripts/globals/weaponskills/blade_kamu.lua (revision 3520) +++ scripts/globals/weaponskills/blade_kamu.lua (working copy) @@ -29,6 +29,7 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + if damage > 0 then local tp = player:getTP(); local duration = (tp/100 * 30) + 30; @@ -36,6 +37,85 @@ target:addStatusEffect(EFFECT_ACCURACY_DOWN, 10, 0, duration); end end + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 19003 or sub == 19003) then + aftermath = 1; + elseif (main == 19072 or sub == 19072) then + aftermath = 1; + elseif (main == 19092 or sub == 19092) then + aftermath = 1; + elseif (main == 19624 or sub == 19624) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19722 or sub == 19722) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19831 or sub == 19831) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19960 or sub == 19960) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 19003 or sub == 19003) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif ((main == 19072 or sub == 19072) or (main == 19092 or sub == 19092) or (main == 19624 or sub == 19624)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif ((main == 19722 or sub == 19722) or (main == 19831 or sub == 19831) or (main == 19960 or sub == 19960)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 19003 or sub == 19003) then + duration = 90; + subpower = math.floor(2 * (tp / 5) - 60); + elseif ((main == 19072 or sub == 19072) or (main == 19092 or sub == 19092) or (main == 19624 or sub == 19624)) then + duration = 120; + subpower = math.floor(3 * (tp / 5) - 90); + elseif ((main == 19722 or sub == 19722) or (main == 19831 or sub == 19831) or (main == 19960 or sub == 19960)) then + duration = 120; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 19003 or sub == 19003) then + duration = 60; + subpower = math.floor(tp / 10); + elseif ((main == 19072 or sub == 19072) or (main == 19092 or sub == 19092) or (main == 19624 or sub == 19624)) then + duration = 90; + subpower = math.floor(3 * (tp / 20)); + elseif ((main == 19722 or sub == 19722) or (main == 19831 or sub == 19831) or (main == 19960 or sub == 19960)) then + duration = 90; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/blade_metsu.lua =================================================================== --- scripts/globals/weaponskills/blade_metsu.lua (revision 3520) +++ scripts/globals/weaponskills/blade_metsu.lua (working copy) @@ -31,6 +31,7 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + if damage > 0 then local tp = player:getTP(); local duration = (tp/100 * 20); @@ -38,6 +39,62 @@ player:addStatusEffect(EFFECT_SUBTLE_BLOW_PLUS, 10, 0, duration); end end + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + + if (main == 18312 or sub == 18312) then + aftermath = 1; + elseif (main == 18313 or sub == 18313) then + aftermath = 1; + elseif (main == 18645 or sub == 18645) then + aftermath = 1; + elseif (main == 18659 or sub == 18659) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 18673 or sub == 18673) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 19754 or sub == 19754) then + damage = damage * 1.4; + aftermath = 1; + elseif (main == 19847 or sub == 19847) then + damage = damage * 1.4; + aftermath = 1; + elseif ((main == 18311 or sub == 18311) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,2,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,2,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,2,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/blade_yu.lua =================================================================== --- scripts/globals/weaponskills/blade_yu.lua (revision 0) +++ scripts/globals/weaponskills/blade_yu.lua (working copy) @@ -0,0 +1,41 @@ +----------------------------------- +-- Blade Yu +-- Katana weapon skill +-- Skill Level: 290 +-- Delivers a water elemental attack. Additional effect Poison. Durration varies with TP. +-- Aligned with the Aqua Gorget & Soil Gorget. +-- Aligned with the Aqua Belt & Soil Belt. +-- Element: Water +-- Modifiers: DEX:50% ; INT:50% +-- 100%TP 200%TP 300%TP +-- 2.25 2.25 2.25 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + params.numHits = 1; + params.ftp100 = 2.25; params.ftp200 = 2.25; params.ftp300 = 2.25; + params.str_wsc = 0.0; params.dex_wsc = 0.5; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.5; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; + params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; + params.canCrit = false; + params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.atkmulti = 1; + local damage, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + if damage > 0 then + local tp = player:getTP(); + local duration = (tp/100 * 15) + 75; + if(target:hasStatusEffect(EFFECT_POISON) == false) then + target:addStatusEffect(EFFECT_POISON, 10, 0, duration); + end + end + + return tpHits, extraHits, damage; + +end Index: scripts/globals/weaponskills/camlanns_torment.lua =================================================================== --- scripts/globals/weaponskills/camlanns_torment.lua (revision 3520) +++ scripts/globals/weaponskills/camlanns_torment.lua (working copy) @@ -26,5 +26,48 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19463) then + aftermath = 1; + elseif (main == 19541) then + aftermath = 1; + elseif (main == 19639) then + aftermath = 1; + elseif (main == 19812) then + aftermath = 1; + elseif (main == 19860) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/Cataclysm.lua =================================================================== --- scripts/globals/weaponskills/Cataclysm.lua (revision 3520) +++ scripts/globals/weaponskills/Cataclysm.lua (working copy) @@ -1,19 +1,14 @@ ----------------------------------- --- Skill level: 290 --- Delivers light elemental damage. Additional effect: Flash. Chance of effect varies with TP. --- Generates a significant amount of Enmity. --- Does not stack with Sneak Attack --- Aligned with Aqua Gorget. --- Aligned with Aqua Belt. --- Properties: --- Element: Light --- Skillchain Properties:Induration Reverberation --- Modifiers: STR:30% MND:30% --- Damage Multipliers by TP: --- 100%TP 200%TP 300%TP --- 3.00 3.00 3.00 - - +-- Cataclysm +-- Staff weapon skill +-- Skill Level: 290 +-- Deals dark elemental damage to enemy. Damage varies with TP. +-- Aligned with the Shadow Gorget & Aqua Gorget. +-- Aligned with the Shadow Belt & Aqua Belt. +-- Element: Dark +-- Modifiers: STR:30% ; INT:30% +-- 100%TP 200%TP 300%TP +-- 2.75 4.00 5.00 ----------------------------------- require("scripts/globals/status"); @@ -25,8 +20,8 @@ local params = {}; params.numHits = 2; - params.ftp100 = 3; params.ftp200 = 3; params.ftp300 = 3; - params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.0; params.mnd_wsc = 0.3; params.chr_wsc = 0.0; + params.ftp100 = 2.75; params.ftp200 = 4; params.ftp300 = 5; + params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.3; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; params.canCrit = false; params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; Index: scripts/globals/weaponskills/catastrophe.lua =================================================================== --- scripts/globals/weaponskills/catastrophe.lua (revision 3520) +++ scripts/globals/weaponskills/catastrophe.lua (working copy) @@ -31,7 +31,61 @@ local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); local drain = (damage * 0.4); player:addHP(drain); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + if (main == 18306) then + aftermath = 1; + elseif (main == 18307) then + aftermath = 1; + elseif (main == 18644) then + aftermath = 1; + elseif (main == 18658) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 18672) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 19753) then + damage = damage * 1.4; + aftermath = 1; + elseif (main == 19846) then + damage = damage * 1.4; + aftermath = 1; + elseif ((main == 18305) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,7,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,7,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,7,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/chant_du_cygne.lua =================================================================== --- scripts/globals/weaponskills/chant_du_cygne.lua (revision 3520) +++ scripts/globals/weaponskills/chant_du_cygne.lua (working copy) @@ -27,6 +27,49 @@ params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19458 or sub == 19458) then + aftermath = 1; + elseif (main == 19536 or sub == 19536) then + aftermath = 1; + elseif (main == 19634 or sub == 19634) then + aftermath = 1; + elseif (main == 19807 or sub == 19807) then + aftermath = 1; + elseif (main == 19855 or sub == 19855) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/cloudsplitter.lua =================================================================== --- scripts/globals/weaponskills/cloudsplitter.lua (revision 3520) +++ scripts/globals/weaponskills/cloudsplitter.lua (working copy) @@ -30,6 +30,50 @@ params.atkmulti = 1.0; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19460 or sub == 19460) then + aftermath = 1; + elseif (main == 19538 or sub == 19538) then + aftermath = 1; + elseif (main == 19636 or sub == 19636) then + aftermath = 1; + elseif (main == 19809 or sub == 19809) then + aftermath = 1; + elseif (main == 19857 or sub == 19857) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/coronach.lua =================================================================== --- scripts/globals/weaponskills/coronach.lua (revision 3520) +++ scripts/globals/weaponskills/coronach.lua (working copy) @@ -1,45 +1,89 @@ ------------------------------------ --- Skill Level: N/A --- Description: Additional effect: temporarily lowers enmity. --- Lowers Enmity for a certain amount of time. (Enmity -20) --- Regardless of the damage, Coronach hate is only 80CE / 240 VE (Enmity- effect included). --- This weapon skill is only available with the stage 5 relic Gun Annihilator, within Dynamis with the stage 4 Ferdinand or under the latent effect of Exequy Gun. --- Aligned with the Breeze Gorget & Thunder Gorget. --- Aligned with the Breeze Belt & Thunder Belt. --- Properties --- Element: None --- Skillchain Properties: Darkness/Fragmentation --- Modifiers: DEX:40% ; AGI:40% --- Damage Multipliers by TP: --- 100%TP 200%TP 300%TP --- 3.00 3.00 3.00 - - - - ------------------------------------ - -require("scripts/globals/status"); -require("scripts/globals/settings"); -require("scripts/globals/weaponskills"); ------------------------------------ - -function OnUseWeaponSkill(player, target, wsID) - +----------------------------------- +-- Coronach +-- Marksmanship weapon skill +-- Skill Level: NA +-- Delivers a ranged attack weaponskill. Additional effect temporarily lowers enmity. +-- Aligned with the Breeze Gorget & Thunder Gorget. +-- Aligned with the Breeze Belt & Thunder Belt. +-- Element: None +-- Modifiers: DEX:40% AGI:40% +-- 100%TP 200%TP 300%TP +-- 3.00 3.00 3.00 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + local params = {}; params.numHits = 1; params.ftp100 = 3; params.ftp200 = 3; params.ftp300 = 3; - params.str_wsc = 0.0; params.dex_wsc = 0.4; params.vit_wsc = 0.0; - params.agi_wsc = 0.4; params.int_wsc = 0.0; params.mnd_wsc = 0.0; - params.chr_wsc = 0.0; + params.str_wsc = 0.0; params.dex_wsc = 0.4; params.vit_wsc = 0.0; params.agi_wsc = 0.4; params.int_wsc = 0.0; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; params.canCrit = false; - params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.acc100 = 0.8; params.acc200= 0.9; params.acc300= 1; params.atkmulti = 2; local damage, tpHits, extraHits = doRangedWeaponskill(player, target, params); - local crticalHit = false; + local crticalHit = false; + local main = player:getEquipID(SLOT_RANGED); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + + if (main == 18336) then + aftermath = 1; + elseif (main == 18337) then + aftermath = 1; + elseif (main == 18649) then + aftermath = 1; + elseif (main == 18663) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 18677) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 19758) then + damage = damage * 1.4; + aftermath = 1; + elseif (main == 19851) then + damage = damage * 1.4; + aftermath = 1; + elseif ((main == 18335) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,12,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,12,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,12,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end; Index: scripts/globals/weaponskills/dagan.lua =================================================================== --- scripts/globals/weaponskills/dagan.lua (revision 3520) +++ scripts/globals/weaponskills/dagan.lua (working copy) @@ -5,9 +5,53 @@ require("scripts/globals/settings"); require("scripts/globals/weaponskills"); -function OnUseWeaponSkill(player, target, wsID) +function OnUseWeaponSkill(attacker, target, wsID) local ftphp = fTP(player:getTP(),0.22,0.34,0.52); local ftpmp = fTP(player:getTP(),0.15,0.25,0.35); - player:addHP(ftphp*player:getMaxHP()); - return 0,0,false,(ftpmp*player:getMaxMP()); + player:addHP(ftphp*attacker:getMaxHP()); + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19466 or sub == 19466) then + aftermath = 1; + elseif (main == 19544 or sub == 19544) then + aftermath = 1; + elseif (main == 19642 or sub == 19642) then + aftermath = 1; + elseif (main == 19815 or sub == 19815) then + aftermath = 1; + elseif (main == 19863 or sub == 19863) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + + return (ftpmp*attacker:getMaxMP()); end Index: scripts/globals/weaponskills/death_blossom.lua =================================================================== --- scripts/globals/weaponskills/death_blossom.lua (revision 3520) +++ scripts/globals/weaponskills/death_blossom.lua (working copy) @@ -26,6 +26,7 @@ params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + if damage > 0 then local tp = player:getTP(); local duration = (tp/100 * 20) - 5; @@ -33,5 +34,84 @@ target:addStatusEffect(EFFECT_MAGIC_EVASION_DOWN, 10, 0, duration); end end + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 18995 or sub == 18995) then + aftermath = 1; + elseif (main == 19064 or sub == 19064) then + aftermath = 1; + elseif (main == 19084 or sub == 19084) then + aftermath = 1; + elseif (main == 19616 or sub == 19616) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19714 or sub == 19714) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19823 or sub == 19823) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19952 or sub == 19952) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 18995 or sub == 18995) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif ((main == 19064 or sub == 19064) or (main == 19084 or sub == 19084) or (main == 19616 or sub == 19616)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif ((main == 19714 or sub == 19714) or (main == 19823 or sub == 19823) or (main == 19952 or sub == 19952)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 18995 or sub == 18995) then + duration = 180; + subpower = math.floor((tp / 10) - 10); + elseif ((main == 19064 or sub == 19064) or (main == 19084 or sub == 19084) or (main == 19616 or sub == 19616)) then + duration = 270; + subpower = math.floor((tp / 5) - 20); + elseif ((main == 19714 or sub == 19714) or (main == 19823 or sub == 19823) or (main == 19952 or sub == 19952)) then + duration = 270; + subpower = math.floor((tp / 5) - 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,16,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 18995 or sub == 18995) then + duration = 180; + subpower = math.floor(tp / 10); + elseif ((main == 19064 or sub == 19064) or (main == 19084 or sub == 19084) or (main == 19616 or sub == 19616)) then + duration = 270; + subpower = math.floor(tp / 10); + elseif ((main == 19714 or sub == 19714) or (main == 19823 or sub == 19823) or (main == 19952 or sub == 19952)) then + duration = 270; + subpower = math.floor(tp / 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,15,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/drakesbane.lua =================================================================== --- scripts/globals/weaponskills/drakesbane.lua (revision 3520) +++ scripts/globals/weaponskills/drakesbane.lua (working copy) @@ -29,6 +29,83 @@ params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 19004) then + aftermath = 1; + elseif (main == 19073) then + aftermath = 1; + elseif (main == 19093) then + aftermath = 1; + elseif (main == 19625) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19723) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19832) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19961) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 19004) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif (main == 19073 or main == 19093 or main == 19625) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif (main == 19723 or main == 19832 or main == 19961) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 19004) then + duration = 90; + subpower = math.floor(2 * (tp / 5) - 60); + elseif (main == 19073 or main == 19093 or main == 19625) then + duration = 120; + subpower = math.floor(3 * (tp / 5) - 90); + elseif (main == 19723 or main == 19832 or main == 19961) then + duration = 120; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 19004) then + duration = 60; + subpower = math.floor(tp / 10); + elseif (main == 19073 or main == 19093 or main == 19625) then + duration = 90; + subpower = math.floor(3 * (tp / 20)); + elseif (main == 19723 or main == 19832 or main == 19961) then + duration = 90; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/expiacion.lua =================================================================== --- scripts/globals/weaponskills/expiacion.lua (revision 0) +++ scripts/globals/weaponskills/expiacion.lua (working copy) @@ -0,0 +1,112 @@ +----------------------------------- +-- Expiacion +-- Sword weapon skill +-- Skill level: NA +-- Tizona: Aftermath effect varies with TP. +-- In order to obtain Expiacion, the quest Unlocking a Myth must be completed. +-- Description: Delivers a twofold attack. +-- Aligned with the Aqua Gorget, Snow Gorget & Soil Gorget. +-- Aligned with the Aqua Belt, Snow Belt & Soil Belt. +-- Element: None +-- Modifiers: STR:30% INT:30% +-- 100%TP 200%TP 300%TP +-- 1.5 2.0 2.5 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + params.numHits = 2; + params.ftp100 = 1.5; params.ftp200 = 2.0; params.ftp300 = 2.5; + params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.3; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; + params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; + params.canCrit = false; + params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.atkmulti = 1; + local damage, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 19006 or sub == 19006) then + aftermath = 1; + elseif (main == 19075 or sub == 19075) then + aftermath = 1; + elseif (main == 19095 or sub == 19095) then + aftermath = 1; + elseif (main == 19627 or sub == 19627) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19725 or sub == 19725) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19834 or sub == 19834) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19963 or sub == 19963) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 19006 or sub == 19006) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif ((main == 19075 or sub == 19075) or (main == 19095 or sub == 19095) or (main == 19627 or sub == 19627)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif ((main == 19725 or sub == 19725) or (main == 19834 or sub == 19834) or (main == 19963 or sub == 19963)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 19006 or sub == 19006) then + duration = 180; + subpower = math.floor(tp / 10); + elseif ((main == 19075 or sub == 19075) or (main == 19095 or sub == 19095) or (main == 19627 or sub == 19627)) then + duration = 270; + subpower = math.floor(tp / 10); + elseif ((main == 19725 or sub == 19725) or (main == 19834 or sub == 19834) or (main == 19963 or sub == 19963)) then + duration = 270; + subpower = math.floor(tp / 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,18,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 19006 or sub == 19006) then + duration = 60; + subpower = math.floor(tp / 10); + elseif ((main == 19075 or sub == 19075) or (main == 19095 or sub == 19095) or (main == 19627 or sub == 19627)) then + duration = 90; + subpower = math.floor(3 * (tp / 20)); + elseif ((main == 19725 or sub == 19725) or (main == 19834 or sub == 19834) or (main == 19963 or sub == 19963)) then + duration = 90; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + + return tpHits, extraHits, damage; +end Index: scripts/globals/weaponskills/final_heaven.lua =================================================================== --- scripts/globals/weaponskills/final_heaven.lua (revision 3520) +++ scripts/globals/weaponskills/final_heaven.lua (working copy) @@ -39,7 +39,55 @@ --damage = damage * ftp(player:getTP(), ftp100, ftp200, ftp300); local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + + if (main == 18264) then + aftermath = 1; + elseif (main == 18265) then + aftermath = 1; + elseif (main == 18637) then + aftermath = 1; + elseif (main == 18651) then + aftermath = 1; + elseif (main == 18665) then + aftermath = 1; + elseif (main == 19746) then + aftermath = 1; + elseif (main == 19839) then + aftermath = 1; + elseif ((main == 18263) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,2,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,2,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,2,0,duration); + end + end + end + end - return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/Flash_Nova.lua =================================================================== --- scripts/globals/weaponskills/Flash_Nova.lua (revision 3520) +++ scripts/globals/weaponskills/Flash_Nova.lua (working copy) @@ -1,19 +1,14 @@ ----------------------------------- --- Skill level: 290 --- Delivers light elemental damage. Additional effect: Flash. Chance of effect varies with TP. --- Generates a significant amount of Enmity. --- Does not stack with Sneak Attack --- Aligned with Aqua Gorget. --- Aligned with Aqua Belt. --- Properties: +-- Flash Nova +-- Club weapon skill +-- Skill Level: 290 +-- Delivers a light elemental attack. Additional effect Flash. Chance of effect varies with TP. +-- Aligned with the Aqua Gorget. +-- Aligned with the Aqua Belt. -- Element: Light --- Skillchain Properties:Induration Reverberation --- Modifiers: STR:30% MND:30% --- Damage Multipliers by TP: --- 100%TP 200%TP 300%TP --- 3.00 3.00 3.00 - - +-- Modifiers: STR:30% ; MND:30% +-- 100%TP 200%TP 300%TP +-- 3.00 3.00 3.00 ----------------------------------- require("scripts/globals/status"); @@ -25,13 +20,24 @@ local params = {}; params.numHits = 2; - params.ftp100 = 3; params.ftp200 = 3; params.ftp300 = 3; + params.ftp100 = 3.00; params.ftp200 = 3.00; params.ftp300 = 3.00; params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.0; params.mnd_wsc = 0.3; params.chr_wsc = 0.0; params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; params.canCrit = false; params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + if damage > 0 then + local tp = player:getTP(); + local chance = (math.random(80,150)); + if (tp >= chance) then + if(target:hasStatusEffect(EFFECT_FLASH) == false) then + target:addStatusEffect(EFFECT_FLASH, 100, 0, 15); + end + else + end + end return tpHits, extraHits, criticalHit, damage; Index: scripts/globals/weaponskills/garland_of_bliss.lua =================================================================== --- scripts/globals/weaponskills/garland_of_bliss.lua (revision 3520) +++ scripts/globals/weaponskills/garland_of_bliss.lua (working copy) @@ -29,13 +29,92 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + if damage > 0 then local tp = player:getTP(); local duration = (tp/100 * 30) + 30; if(target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then target:addStatusEffect(EFFECT_DEFENSE_DOWN, 12.5, 0, duration); end - end + end + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 19005) then + aftermath = 1; + elseif (main == 19074) then + aftermath = 1; + elseif (main == 19094) then + aftermath = 1; + elseif (main == 19626) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19724) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19833) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19962) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 19005) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif (main == 19074 or main == 19094 or main == 19626) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif (main == 19724 or main == 19833 or main == 19962) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 19005) then + duration = 180; + subpower = math.floor(2 * (tp / 5) - 60); + elseif (main == 19074 or main == 19094 or main == 19626) then + duration = 270; + subpower = math.floor(3 * (tp / 5) - 90); + elseif (main == 19724 or main == 19833 or main == 19962) then + duration = 270; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 19005) then + duration = 180; + subpower = math.floor(tp / 10); + elseif (main == 19074 or main == 19094 or main == 19626) then + duration = 270; + subpower = math.floor(3 * (tp / 20)); + elseif (main == 19724 or main == 19833 or main == 19962) then + duration = 270; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/gate_of_tartarus.lua =================================================================== --- scripts/globals/weaponskills/gate_of_tartarus.lua (revision 3520) +++ scripts/globals/weaponskills/gate_of_tartarus.lua (working copy) @@ -30,7 +30,61 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + if (main == 18330) then + aftermath = 1; + elseif (main == 18331) then + aftermath = 1; + elseif (main == 18648) then + aftermath = 1; + elseif (main == 18662) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 18676) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 19757) then + damage = damage * 1.4; + aftermath = 1; + elseif (main == 19850) then + damage = damage * 1.4; + aftermath = 1; + elseif ((main == 18329) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,11,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,11,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,11,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/geirskogul.lua =================================================================== --- scripts/globals/weaponskills/geirskogul.lua (revision 3520) +++ scripts/globals/weaponskills/geirskogul.lua (working copy) @@ -28,7 +28,61 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + if (main == 18300) then + aftermath = 1; + elseif (main == 18301) then + aftermath = 1; + elseif (main == 18643) then + aftermath = 1; + elseif (main == 18657) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 18671) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 19752) then + damage = damage * 1.4; + aftermath = 1; + elseif (main == 19845) then + damage = damage * 1.4; + aftermath = 1; + elseif ((main == 18299) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,8,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,8,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,8,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/glory_slash.lua =================================================================== --- scripts/globals/weaponskills/glory_slash.lua (revision 0) +++ scripts/globals/weaponskills/glory_slash.lua (working copy) @@ -0,0 +1,35 @@ +----------------------------------- +-- Glory Slash +-- Sword weapon skill +-- Skill Level: NA +-- Only avaliable during Campaign Battle while weilding Lex Talionis. +-- Delivers and area attacj that deals triple damage. Damage varies with TP. Additional effect Stun. +-- Will stack with Sneak Attack. +-- Aligned with the Flame Gorget & Light Gorget. +-- Aligned with the Flame Belt & Light Belt. +-- Element: Light +-- Modifiers: STR:30% +-- 100%TP 200%TP 300%TP +-- 3.00 3.50 4.00 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + params.numHits = 1; + params.ftp100 = 3; params.ftp200 = 3.5; params.ftp300 = 4; + params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.0; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; + params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; + params.canCrit = false; + params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.atkmulti = 1; + local damage, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + return tpHits, extraHits, damage; + +end Index: scripts/globals/weaponskills/insurgency.lua =================================================================== --- scripts/globals/weaponskills/insurgency.lua (revision 3520) +++ scripts/globals/weaponskills/insurgency.lua (working copy) @@ -28,8 +28,86 @@ params.canCrit = false; params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; + local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 18998) then + aftermath = 1; + elseif (main == 19067) then + aftermath = 1; + elseif (main == 19087) then + aftermath = 1; + elseif (main == 19619) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19717) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19826) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19955) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 18998) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif (main == 19067 or main == 19087 or main == 19619) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif (main == 19717 or main == 19826 or main == 19955) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 18998) then + duration = 90; + subpower = math.floor(2 * (tp / 5) - 60); + elseif (main == 19067 or main == 19087 or main == 19619) then + duration = 120; + subpower = math.floor(3 * (tp / 5) - 90); + elseif (main == 19717 or main == 19826 or main == 19955) then + duration = 120; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 18998) then + duration = 60; + subpower = math.floor(tp / 10); + elseif (main == 19067 or main == 19087 or main == 19619) then + duration = 90; + subpower = math.floor(3 * (tp / 20)); + elseif (main == 19717 or main == 19826 or main == 19955) then + duration = 90; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/jishnus_radiance.lua =================================================================== --- scripts/globals/weaponskills/jishnus_radiance.lua (revision 3520) +++ scripts/globals/weaponskills/jishnus_radiance.lua (working copy) @@ -31,8 +31,50 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, tpHits, extraHits = doRangedWeaponskill(player, target, params); - local crticalHit = false; + local crticalHit = false; + local main = player:getEquipID(SLOT_RANGED); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19468) then + aftermath = 1; + elseif (main == 19546) then + aftermath = 1; + elseif (main == 19644) then + aftermath = 1; + elseif (main == 19817) then + aftermath = 1; + elseif (main == 19865) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end; \ No newline at end of file Index: scripts/globals/weaponskills/kings_justice.lua =================================================================== --- scripts/globals/weaponskills/kings_justice.lua (revision 3520) +++ scripts/globals/weaponskills/kings_justice.lua (working copy) @@ -29,6 +29,84 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 18991) then + aftermath = 1; + elseif (main == 19060) then + aftermath = 1; + elseif (main == 19080) then + aftermath = 1; + elseif (main == 19612) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19710) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19819) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19948) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 18991) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif (main == 19060 or main == 19080 or main == 19612) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif (main == 19710 or main == 19819 or main == 19948) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 18991) then + duration = 90; + subpower = math.floor(2 * (tp / 5) - 60); + elseif (main == 19060 or main == 19080 or main == 19612) then + duration = 120; + subpower = math.floor(3 * (tp / 5) - 90); + elseif (main == 19710 or main == 19819 or main == 19948) then + duration = 120; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 18991) then + duration = 60; + subpower = math.floor(tp / 10); + elseif (main == 19060 or main == 19080 or main == 19612) then + duration = 90; + subpower = math.floor(3 * (tp / 20)); + elseif (main == 19710 or main == 19819 or main == 19948) then + duration = 90; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/knights_of_round.lua =================================================================== --- scripts/globals/weaponskills/knights_of_round.lua (revision 3520) +++ scripts/globals/weaponskills/knights_of_round.lua (working copy) @@ -31,7 +31,58 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + if (main == 18276 or sub == 18276) then + aftermath = 1; + elseif (main == 18277 or sub == 18277) then + aftermath = 1; + elseif (main == 18639 or sub == 18639) then + aftermath = 1; + elseif (main == 18653 or sub == 18653) then + aftermath = 1; + elseif (main == 18667 or sub == 18667) then + aftermath = 1; + elseif (main == 19748 or sub == 19748) then + aftermath = 1; + elseif (main == 19841 or sub == 19841) then + aftermath = 1; + elseif ((main == 18275 or sub == 18275) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,4,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,4,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,4,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/last_stand.lua =================================================================== --- scripts/globals/weaponskills/last_stand.lua (revision 3520) +++ scripts/globals/weaponskills/last_stand.lua (working copy) @@ -1,34 +1,26 @@ ------------------------------------ --- Skill Level: 357 --- Description: Attacks once or twice, depending on remaining ammunition. Damage dealt varies with TP. --- If the first shot of the weapon skill does enough damage to defeat the target, the second shot will not be used. --- To obtain Last Stand, the quest Martial Mastery must be completed. --- This Weapon Skill's first hit fTP is duplicated for all additional hits. --- Aligned with the Flame Gorget, Light Gorget & Aqua Gorget. --- Properties --- Element: N/A --- Skillchain Properties: Fusion/Reverberation --- Modifiers: AGI:100% --- Damage Multipliers by TP: --- 100%TP 200%TP 300%TP --- 2.0 2.125 2.25 - - ------------------------------------ - -require("scripts/globals/status"); -require("scripts/globals/settings"); -require("scripts/globals/weaponskills"); ------------------------------------ - -function OnUseWeaponSkill(player, target, wsID) - +----------------------------------- +-- Last Stand +-- Marksmanship weapon skill +-- Skill level: 357 +-- Delivers a twofold attack. Damage varies with TP. +-- Aligned with the Flame, Aqua & Light Gorgets. +-- Element: None +-- Modifiers: AGI: 100% +-- 100%TP 200%TP 300%TP +-- 2.00 2.125 2.25 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + local params = {}; - params.numHits = 1; + params.numHits = 2; params.ftp100 = 2; params.ftp200 = 2.125; params.ftp300 = 2.25; - params.str_wsc = 0.0; params.dex_wsc = 0.0; params.vit_wsc = 0.0; - params.agi_wsc = 1.0; params.int_wsc = 0.0; params.mnd_wsc = 0.0; - params.chr_wsc = 0.0; + params.str_wsc = 0.0; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 1.0; params.int_wsc = 0.0; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; params.canCrit = false; params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; @@ -37,7 +29,7 @@ -- needs ignore defense. param local damage, tpHits, extraHits = doRangedWeaponskill(player, target, params); - local crticalHit = false; + local crticalHit = false; return tpHits, extraHits, criticalHit, damage; Index: scripts/globals/weaponskills/leaden_salute.lua =================================================================== --- scripts/globals/weaponskills/leaden_salute.lua (revision 0) +++ scripts/globals/weaponskills/leaden_salute.lua (working copy) @@ -0,0 +1,112 @@ +----------------------------------- +-- Leaden Salute +-- Marksmanship weapon skill +-- Skill Level: NA +-- Deals darkness elemental damage. Damage varies with TP. +-- Death Penalty: Aftermath effect varies with TP. +-- Aligned with the Shadow, Soil, & Light Gorgets. +-- Aligned with the Shadow, Soil, & Light Belts. +-- Element: Darkness +-- Modifiers: AGI:30% +-- 100%TP 200%TP 300%TP +-- 4.00 4.25 4.75 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + params.numHits = 1; + params.ftp100 = 4; params.ftp200 = 4.25; params.ftp300 = 4.75; + params.str_wsc = 0.0; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.3; params.int_wsc = 0.0; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; + params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; + params.canCrit = false; + params.acc100 = 0.8; params.acc200= 0.9; params.acc300= 1; + params.atkmulti = 1; + local damage, tpHits, extraHits = doRangedWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_RANGED); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 19007) then + aftermath = 1; + elseif (main == 19076) then + aftermath = 1; + elseif (main == 19096) then + aftermath = 1; + elseif (main == 19628) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19726) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19835) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19964) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 120; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 19007) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (main == 19076 or main == 19096 or main == 19628) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (main == 19726 or main == 19835 or main == 19564) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,16,0,duration); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 19007) then + duration = 90; + subpower = math.floor(tp / 10); + elseif (main == 19076 or main == 19096 or main == 19628) then + duration = 120; + subpower = math.floor(tp / 10); + elseif (main == 19726 or main == 19835 or main == 19564) then + duration = 120; + subpower = math.floor(tp / 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,17,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 19007) then + duration = 60; + subpower = math.floor(tp / 10); + elseif (main == 19076 or main == 19096 or main == 19628) then + duration = 90; + subpower = math.floor(tp / 10); + elseif (main == 19726 or main == 19835 or main == 19564) then + duration = 90; + subpower = math.floor(tp / 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,16,0,duration,0,subpower); + end + end + end + end + + return tpHits, extraHits, damage; + +end Index: scripts/globals/weaponskills/mandalic_stab.lua =================================================================== --- scripts/globals/weaponskills/mandalic_stab.lua (revision 3520) +++ scripts/globals/weaponskills/mandalic_stab.lua (working copy) @@ -30,7 +30,86 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1.66; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + if (main == 18996 or sub == 18996) then + aftermath = 1; + elseif (main == 19065 or sub == 19065) then + aftermath = 1; + elseif (main == 19085 or sub == 19085) then + aftermath = 1; + elseif (main == 19617 or sub == 19617) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19715 or sub == 19715) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19824 or sub == 19824) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19953 or sub == 19953) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 18996 or sub == 18996) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif ((main == 19065 or sub == 19065) or (main == 19085 or sub == 19085) or (main == 19617 or sub == 19617)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif ((main == 19715 or sub == 19715) or (main == 19824 or sub == 19824) or (main == 19953 or sub == 19953)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 18996 or sub == 18996) then + duration = 90; + subpower = math.floor(2 * (tp / 5) - 60); + elseif ((main == 19065 or sub == 19065) or (main == 19085 or sub == 19085) or (main == 19617 or sub == 19617)) then + duration = 120; + subpower = math.floor(3 * (tp / 5) - 90); + elseif ((main == 19715 or sub == 19715) or (main == 19824 or sub == 19824) or (main == 19953 or sub == 19953)) then + duration = 120; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + duration = 180; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 18996 or sub == 18996) then + duration = 60; + subpower = math.floor(tp / 10); + elseif ((main == 19065 or sub == 19065) or (main == 19085 or sub == 19085) or (main == 19617 or sub == 19617)) then + duration = 90; + subpower = math.floor(3 * (tp / 20)); + elseif ((main == 19715 or sub == 19715) or (main == 19824 or sub == 19824) or (main == 19953 or sub == 19953)) then + duration = 90; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/mercy_stroke.lua =================================================================== --- scripts/globals/weaponskills/mercy_stroke.lua (revision 3520) +++ scripts/globals/weaponskills/mercy_stroke.lua (working copy) @@ -29,7 +29,58 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + if (main == 18270 or sub == 18270) then + aftermath = 1; + elseif (main == 18271 or sub == 18271) then + aftermath = 1; + elseif (main == 18638 or sub == 18638) then + aftermath = 1; + elseif (main == 18652 or sub == 18652) then + aftermath = 1; + elseif (main == 18666 or sub == 18666) then + aftermath = 1; + elseif (main == 19747 or sub == 19747) then + aftermath = 1; + elseif (main == 19840 or sub == 19840) then + aftermath = 1; + elseif ((main == 18269 or sub == 18269) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,3,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,3,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,3,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/metatron_torment.lua =================================================================== --- scripts/globals/weaponskills/metatron_torment.lua (revision 3520) +++ scripts/globals/weaponskills/metatron_torment.lua (working copy) @@ -38,7 +38,57 @@ if damage > 0 and (target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then target:addStatusEffect(EFFECT_DEFENSE_DOWN, 18.5, 0, 120); end + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + if (main == 18294) then + aftermath = 1; + elseif (main == 18295) then + aftermath = 1; + elseif (main == 18642) then + aftermath = 1; + elseif (main == 18656) then + aftermath = 1; + elseif (main == 18670) then + aftermath = 1; + elseif (main == 19751) then + aftermath = 1; + elseif (main == 19844) then + aftermath = 1; + elseif ((main == 18293) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,6,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,6,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,6,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/mordant_rime.lua =================================================================== --- scripts/globals/weaponskills/mordant_rime.lua (revision 3520) +++ scripts/globals/weaponskills/mordant_rime.lua (working copy) @@ -31,6 +31,85 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 19000 or sub == 19000) then + aftermath = 1; + elseif (main == 19069 or sub == 19069) then + aftermath = 1; + elseif (main == 19089 or sub == 19089) then + aftermath = 1; + elseif (main == 19621 or sub == 19621) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19719 or sub == 19719) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19828 or sub == 19828) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19957 or sub == 19957) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 19000 or sub == 19000) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif ((main == 19069 or sub == 19069) or (main == 19089 or sub == 19089) or (main == 19621 or sub == 19621)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif ((main == 19719 or sub == 19719) or (main == 19828 or sub == 19828) or (main == 19957 or sub == 19957)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 19000 or sub == 19000) then + duration = 90; + subpower = math.floor((tp / 10) - 10); + elseif ((main == 19069 or sub == 19069) or (main == 19089 or sub == 19089) or (main == 19621 or sub == 19621)) then + duration = 120; + subpower = math.floor(3 * (tp / 20) - 15); + elseif ((main == 19719 or sub == 19719) or (main == 19828 or sub == 19828) or (main == 19957 or sub == 19957)) then + duration = 120; + subpower = math.floor(3 * (tp / 20) - 15); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,15,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 19000 or sub == 19000) then + duration = 180; + subpower = math.floor(tp / 10); + elseif ((main == 19069 or sub == 19069) or (main == 19089 or sub == 19089) or (main == 19621 or sub == 19621)) then + duration = 270; + subpower = math.floor(tp / 10); + elseif ((main == 19719 or sub == 19719) or (main == 19828 or sub == 19828) or (main == 19957 or sub == 19957)) then + duration = 270; + subpower = math.floor(tp / 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,15,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end \ No newline at end of file Index: scripts/globals/weaponskills/myrkr.lua =================================================================== --- scripts/globals/weaponskills/myrkr.lua (revision 3520) +++ scripts/globals/weaponskills/myrkr.lua (working copy) @@ -7,5 +7,48 @@ function OnUseWeaponSkill(player, target, wsID) local ftpmp = fTP(player:getTP(),0.2,0.4,0.6); - return 1, 0, false, (ftpmp*player:getMaxMP()); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19467) then + aftermath = 1; + elseif (main == 19545) then + aftermath = 1; + elseif (main == 19643) then + aftermath = 1; + elseif (main == 19816) then + aftermath = 1; + elseif (main == 19864) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + + return 1, 0, (ftpmp*attacker:getMaxMP()); end Index: scripts/globals/weaponskills/mystic_boon.lua =================================================================== --- scripts/globals/weaponskills/mystic_boon.lua (revision 3520) +++ scripts/globals/weaponskills/mystic_boon.lua (working copy) @@ -28,7 +28,86 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + if (main == 18993 or sub == 18993) then + aftermath = 1; + elseif (main == 19062 or sub == 19062) then + aftermath = 1; + elseif (main == 19082 or sub == 19082) then + aftermath = 1; + elseif (main == 19614 or sub == 19614) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19712 or sub == 19712) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19821 or sub == 19821) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19950 or sub == 19950) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 18993 or sub == 18993) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif ((main == 19062 or sub == 19062) or (main == 19082 or sub == 19082) or (main == 19614 or sub == 19614)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif ((main == 19712 or sub == 19712) or (main == 19821 or sub == 19821) or (main == 19950 or sub == 19950)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 18993 or sub == 18993) then + duration = 90; + subpower = math.floor((tp / 10) - 10); + elseif ((main == 19062 or sub == 19062) or (main == 19082 or sub == 19082) or (main == 19614 or sub == 19614)) then + duration = 120; + subpower = math.floor(3 * (tp / 20) - 15); + elseif ((main == 19712 or sub == 19712) or (main == 19821 or sub == 19821) or (main == 19950 or sub == 19950)) then + duration = 120; + subpower = math.floor((tp / 10) + 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,15,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 18993 or sub == 18993) then + duration = 180; + subpower = math.floor(tp / 10); + elseif ((main == 19062 or sub == 19062) or (main == 19082 or sub == 19082) or (main == 19614 or sub == 19614)) then + duration = 270; + subpower = math.floor(tp / 10); + elseif ((main == 19712 or sub == 19712) or (main == 19821 or sub == 19821) or (main == 19950 or sub == 19950)) then + duration = 270; + subpower = math.floor(tp / 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,15,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/namas_arrow.lua =================================================================== --- scripts/globals/weaponskills/namas_arrow.lua (revision 3520) +++ scripts/globals/weaponskills/namas_arrow.lua (working copy) @@ -1,42 +1,87 @@ ------------------------------------ --- Skill Level: 357 --- Description: Attacks once or twice, depending on remaining ammunition. Damage dealt varies with TP. --- If the first shot of the weapon skill does enough damage to defeat the target, the second shot will not be used. --- To obtain Last Stand, the quest Martial Mastery must be completed. --- This Weapon Skill's first hit fTP is duplicated for all additional hits. --- Aligned with the Flame Gorget, Light Gorget & Aqua Gorget. --- Properties --- Element: N/A --- Skillchain Properties: Fusion/Reverberation --- Modifiers: AGI:100% --- Damage Multipliers by TP: --- 100%TP 200%TP 300%TP --- 2.0 2.125 2.25 - - ------------------------------------ - -require("scripts/globals/status"); -require("scripts/globals/settings"); -require("scripts/globals/weaponskills"); ------------------------------------ - -function OnUseWeaponSkill(player, target, wsID) - +----------------------------------- +-- Namas Arrow +-- Archery weapon skill +-- Skill level: NA +-- In order to obtain Namas Arrow, you must have Relic Weapons Futatokoroto or Yoichinoyumi equipped. +-- Delivers a single-hit attack. +-- Temporarily improves Ranged Accuracy. +-- Aligned with the Snow Gorget, Aqua Gorget, & Light Gorget. +-- Aligned with the Snow Belt, Aqua Belt, & Light Belt. +-- Element: None +-- Modifiers: STR:40% ; AGI:40% +-- 100%TP 200%TP 300%TP +-- 2.75 2.75 2.75 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + local params = {}; params.numHits = 1; - params.ftp100 = 2; params.ftp200 = 2.125; params.ftp300 = 2.25; - params.str_wsc = 0.0; params.dex_wsc = 0.0; params.vit_wsc = 0.0; - params.agi_wsc = 1.0; params.int_wsc = 0.0; params.mnd_wsc = 0.0; - params.chr_wsc = 0.0; + params.ftp100 = 2; params.ftp200 = 2.75; params.ftp300 = 3; + params.str_wsc = 0.40; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.40; params.int_wsc = 0.0; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; params.canCrit = false; params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 2; local damage, tpHits, extraHits = doRangedWeaponskill(player, target, params); - local crticalHit = false; + local crticalHit = false; + local main = player:getEquipID(SLOT_RANGED); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + + if (main == 18348) then + aftermath = 1; + elseif (main == 18349) then + aftermath = 1; + elseif (main == 18650) then + aftermath = 1; + elseif (main == 18664) then + aftermath = 1; + elseif (main == 18678) then + aftermath = 1; + elseif (main == 19759) then + aftermath = 1; + elseif (main == 19852) then + aftermath = 1; + elseif ((main == 18347) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,13,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,13,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,13,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end; Index: scripts/globals/weaponskills/omniscience.lua =================================================================== --- scripts/globals/weaponskills/omniscience.lua (revision 3520) +++ scripts/globals/weaponskills/omniscience.lua (working copy) @@ -36,8 +36,85 @@ if(target:hasStatusEffect(EFFECT_MAGIC_ATK_DOWN) == false) then target:addStatusEffect(EFFECT_MAGIC_ATK_DOWN, 10, 0, duration); end - end + end + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + if (main == 18990) then + aftermath = 1; + elseif (main == 19079) then + aftermath = 1; + elseif (main == 19099) then + aftermath = 1; + elseif (main == 19631) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19729) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19838) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19967) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 18990) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif (main == 19079 or main == 19099 or main == 19631) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif (main == 19729 or main == 19838 or main == 19967) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 18990) then + duration = 180; + subpower = math.floor((tp / 10) - 10); + elseif (main == 19079 or main == 19099 or main == 19631) then + duration = 270; + subpower = math.floor((tp / 5) - 20); + elseif (main == 19729 or main == 19838 or main == 19967) then + duration = 270; + subpower = math.floor((tp / 5) - 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,16,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 18990) then + duration = 180; + subpower = math.floor(tp / 10); + elseif (main == 19079 or main == 19099 or main == 19631) then + duration = 270; + subpower = math.floor(tp / 10); + elseif (main == 19729 or main == 19838 or main == 19967) then + duration = 270; + subpower = math.floor(tp / 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,15,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/onslaught.lua =================================================================== --- scripts/globals/weaponskills/onslaught.lua (revision 3520) +++ scripts/globals/weaponskills/onslaught.lua (working copy) @@ -38,8 +38,59 @@ if(target:hasStatusEffect(EFFECT_ACCURACY_DOWN) == false) then target:addStatusEffect(EFFECT_ACCURACY_DOWN, 20, 0, duration); end - end + end + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + + if (main == 18288 or sub == 18288) then + aftermath = 1; + elseif (main == 18289 or sub == 18289) then + aftermath = 1; + elseif (main == 18641 or sub == 18641) then + aftermath = 1; + elseif (main == 18655 or sub == 18655) then + aftermath = 1; + elseif (main == 18669 or sub == 18669) then + aftermath = 1; + elseif (main == 19750 or sub == 19750) then + aftermath = 1; + elseif (main == 19843 or sub == 19843) then + aftermath = 1; + elseif ((main == 18287 or sub == 18287) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,5,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,5,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,5,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/primal_rend.lua =================================================================== --- scripts/globals/weaponskills/primal_rend.lua (revision 3520) +++ scripts/globals/weaponskills/primal_rend.lua (working copy) @@ -29,6 +29,84 @@ params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 18999 or sub == 18999) then + aftermath = 1; + elseif (main == 19068 or sub == 19068) then + aftermath = 1; + elseif (main == 19088 or sub == 19088) then + aftermath = 1; + elseif (main == 19620 or sub == 19620) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19718 or sub == 19718) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19827 or sub == 19827) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19956 or sub == 19956) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 18999 or sub == 18999) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif ((main == 19068 or sub == 19068) or (main == 19088 or sub == 19088) or (main == 19620 or sub == 19620)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif ((main == 19718 or sub == 19718) or (main == 19827 or sub == 19827) or (main == 19956 or sub == 19956)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 18999 or sub == 18999) then + duration = 90; + subpower = math.floor(2 * (tp / 5) - 60); + elseif ((main == 19068 or sub == 19068) or (main == 19088 or sub == 19088) or (main == 19620 or sub == 19620)) then + duration = 120; + subpower = math.floor(3 * (tp / 5) - 90); + elseif ((main == 19718 or sub == 19718) or (main == 19827 or sub == 19827) or (main == 19956 or sub == 19956)) then + duration = 120; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 18999 or sub == 18999) then + duration = 60; + subpower = math.floor(tp / 10); + elseif ((main == 19068 or sub == 19068) or (main == 19088 or sub == 19088) or (main == 19620 or sub == 19620)) then + duration = 90; + subpower = math.floor(3 * (tp / 20)); + elseif ((main == 19718 or sub == 19718) or (main == 19827 or sub == 19827) or (main == 19956 or sub == 19956)) then + duration = 90; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/pyrrhic_kleos.lua =================================================================== --- scripts/globals/weaponskills/pyrrhic_kleos.lua (revision 3520) +++ scripts/globals/weaponskills/pyrrhic_kleos.lua (working copy) @@ -38,8 +38,86 @@ if(target:hasStatusEffect(EFFECT_EVASION_DOWN) == false) then target:addStatusEffect(EFFECT_EVASION_DOWN, 10, 0, duration); end - end + end + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + if (main == 18989 or sub == 18989) then + aftermath = 1; + elseif (main == 19078 or sub == 19078) then + aftermath = 1; + elseif (main == 19098 or sub == 19098) then + aftermath = 1; + elseif (main == 19630 or sub == 19630) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19728 or sub == 19728) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19837 or sub == 19837) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19966 or sub == 19966) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 18989 or sub == 18989) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif ((main == 19078 or sub == 19078) or (main == 19098 or sub == 19098) or (main == 19630 or sub == 19630)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif ((main == 19728 or sub == 19728) or (main == 19837 or sub == 19837) or (main == 19966 or sub == 19966)) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 18989 or sub == 18989) then + duration = 90; + subpower = math.floor(2 * (tp / 5) - 60); + elseif ((main == 19078 or sub == 19078) or (main == 19098 or sub == 19098) or (main == 19630 or sub == 19630)) then + duration = 120; + subpower = math.floor(3 * (tp / 5) - 90); + elseif ((main == 19728 or sub == 19728) or (main == 19837 or sub == 19837) or (main == 19966 or sub == 19966)) then + duration = 120; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 18989 or sub == 18989) then + duration = 60; + subpower = math.floor(tp / 10); + elseif ((main == 19078 or sub == 19078) or (main == 19098 or sub == 19098) or (main == 19630 or sub == 19630)) then + duration = 90; + subpower = math.floor(3 * (tp / 20)); + elseif ((main == 19728 or sub == 19728) or (main == 19837 or sub == 19837) or (main == 19966 or sub == 19966)) then + duration = 90; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end \ No newline at end of file Index: scripts/globals/weaponskills/quietus.lua =================================================================== --- scripts/globals/weaponskills/quietus.lua (revision 3520) +++ scripts/globals/weaponskills/quietus.lua (working copy) @@ -29,6 +29,48 @@ params.atkmulti = 3; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19462) then + aftermath = 1; + elseif (main == 19540) then + aftermath = 1; + elseif (main == 19638) then + aftermath = 1; + elseif (main == 19811) then + aftermath = 1; + elseif (main == 19859) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/randgrith.lua =================================================================== --- scripts/globals/weaponskills/randgrith.lua (revision 3520) +++ scripts/globals/weaponskills/randgrith.lua (working copy) @@ -36,7 +36,62 @@ if damage > 0 and (target:hasStatusEffect(EFFECT_WEIGHT) == false) then target:addStatusEffect(EFFECT_WEIGHT, 50, 0, 60); end + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + if (main == 18324 or sub == 18324) then + aftermath = 1; + elseif (main == 18325 or sub == 18325) then + aftermath = 1; + elseif (main == 18647 or sub == 18647) then + aftermath = 1; + elseif (main == 18661 or sub == 18661) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 18675 or sub == 18675) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 19756 or sub == 19756) then + damage = damage * 1.4; + aftermath = 1; + elseif (main == 19849 or sub == 19849) then + damage = damage * 1.4; + aftermath = 1; + elseif ((main == 18323 or sub == 18323) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,10,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,10,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,10,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/retribution.lua =================================================================== --- scripts/globals/weaponskills/retribution.lua (revision 3520) +++ scripts/globals/weaponskills/retribution.lua (working copy) @@ -31,7 +31,13 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local grip = player:getEquipID(SLOT_SUB); + local damageMod = damage; + if (grip == 18813) then -- Ultio Grip + damageMod = damage * 1.1; + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/rudras_storm.lua =================================================================== --- scripts/globals/weaponskills/rudras_storm.lua (revision 3520) +++ scripts/globals/weaponskills/rudras_storm.lua (working copy) @@ -26,6 +26,50 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local sub = player:getEquipID(SLOT_SUB); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19457 or sub == 19457) then + aftermath = 1; + elseif (main == 19535 or sub == 19535) then + aftermath = 1; + elseif (main == 19633 or sub == 19633) then + aftermath = 1; + elseif (main == 19806 or sub == 19806) then + aftermath = 1; + elseif (main == 19854 or sub == 19854) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end \ No newline at end of file Index: scripts/globals/weaponskills/sanguine_blade.lua =================================================================== --- scripts/globals/weaponskills/sanguine_blade.lua (revision 0) +++ scripts/globals/weaponskills/sanguine_blade.lua (working copy) @@ -0,0 +1,44 @@ +----------------------------------- +-- Sanguine Blade +-- Sword weapon skill +-- Skill Level: 300 +-- Drains a percentage of damage dealt to HP varies with TP. +-- Will not stack with Sneak Attack. +-- Not aligned with any "elemental gorgets" or "elemental belts" due to it's absence of Skillchain properties. +-- Element: Dark +-- Modifiers: STR:30% ; MND:50% +-- 100%TP 200%TP 300%TP +-- 2.75 2.75 2.75 +-- HP Drained by TP: +-- 100%TP 200%TP 300%TP +-- 50% 75% 100% +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + local tp = player:getTP(); + local drain = 0; + if(tp >= 100 and tp <=199) then + drain = 50; + elseif(tp >= 200 and tp <= 299) then + drain = 75; + elseif(tp == 300) then + drain = 100; + end + local params = {}; + params.numHits = 1; + params.ftp100 = 2.75; params.ftp200 = 2.75; params.ftp300 = 2.75; + params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.0; params.mnd_wsc = 0.5; params.chr_wsc = 0.0; + params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; + params.canCrit = false; + params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.atkmulti = 1; + local damage, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + player:addHP(damage/drain); + return tpHits, extraHits, damage; + +end Index: scripts/globals/weaponskills/scourge.lua =================================================================== --- scripts/globals/weaponskills/scourge.lua (revision 3520) +++ scripts/globals/weaponskills/scourge.lua (working copy) @@ -30,7 +30,61 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + if (main == 18282) then + aftermath = 1; + elseif (main == 18283) then + aftermath = 1; + elseif (main == 18640) then + aftermath = 1; + elseif (main == 18654) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 18668) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 19749) then + damage = damage * 1.4; + aftermath = 1; + elseif (main == 19842) then + damage = damage * 1.4; + aftermath = 1; + elseif ((main == 18281) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,3,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,3,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,3,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/shattersoul.lua =================================================================== --- scripts/globals/weaponskills/shattersoul.lua (revision 3520) +++ scripts/globals/weaponskills/shattersoul.lua (working copy) @@ -1,19 +1,14 @@ ----------------------------------- --- Skill Level: 357 --- Description: Delivers a threefold attack. Decreases target's magic defense. Duration of effect varies with TP. --- To obtain Shattersoul, the quest Martial Mastery must be completed and it must be purchased from the Merit Points menu. --- Target's magic defense is lowered by 10. --- Aligned with the Shadow Gorget, Soil Gorget & Snow Gorget. --- Aligned with the Shadow Belt, Soil Belt & Snow Belt. --- Element: N/A --- Skillchain Properties: Gravitation/Induration ---Shattersoul is only available to Warriors, Monks, White Mages, Black Mages, Paladins, Bards, Dragoons, Summoners and Scholars. --- While some jobs may obtain skill level 357 earlier than level 96, Shattersoul must be unlocked once skill reaches level 357 and job level 96 is reached. --- Staff skill level 357 is obtainable by the following jobs at these corresponding levels: --- Modifiers: INT:20~100%, depending on merit points ugrades. --- Damage Multipliers by TP: +-- Shattersoul +-- Staff weapon skill +-- Skill level: 357 +-- Decreases target's Magic Defense. Duration of effect varies with TP. +-- Aligned with the Shadow, Soil, and Snow Gorgets. +-- Aligned with the Shadow, Soil, and Snow Belts. +-- Element: None +-- Modifiers: INT:20%~100% Depending on Merit Point upgrades. -- 100%TP 200%TP 300%TP --- 1.375 1.375 1.375 +-- 1.375 1.375 1.375 ----------------------------------- require("scripts/globals/status"); @@ -24,14 +19,22 @@ function OnUseWeaponSkill(player, target, wsID) local params = {}; - params.numHits = 2; - params.ftp100 = 1.375; params.ftp200 = 1.375; params.ftp300 = 1.375; + params.numHits = 3; + params.ftp100 = 1; params.ftp200 = 1; params.ftp300 = 1; params.str_wsc = 0.0; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.2; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; params.canCrit = false; params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + if damage > 0 then + local tp = player:getTP(); + local duration = (tp/100 * 60); + if(target:hasStatusEffect(EFFECT_MAGIC_DEF_DOWN) == false) then + target:addStatusEffect(EFFECT_MAGIC_DEF_DOWN, 10, 0, duration); + end + end return tpHits, extraHits, criticalHit, damage; Index: scripts/globals/weaponskills/starlight.lua =================================================================== --- scripts/globals/weaponskills/starlight.lua (revision 3520) +++ scripts/globals/weaponskills/starlight.lua (working copy) @@ -9,5 +9,8 @@ local lvl = player:getSkillLevel(11); --get club skill local damage = (lvl-10)/9; local damagemod = damage * (player:getTP()/100); - return 1, 0, false, damagemod; + if (attacker:getEquipID(SLOT_MAIN) == 18887 or attacker:getEquipID(SLOT_SUB) == 18887) then + damagemod = damage * (attacker:getTP()/100) * 3; + end + return 1, 0, damagemod; end Index: scripts/globals/weaponskills/stringing_pummel.lua =================================================================== --- scripts/globals/weaponskills/stringing_pummel.lua (revision 0) +++ scripts/globals/weaponskills/stringing_pummel.lua (working copy) @@ -0,0 +1,113 @@ +----------------------------------- +-- Stringing Pummel +-- Hand-to-Hand weapon skill +-- Skill Level: NA +-- Delivers an sixfold attack. Chance of critical varies with TP. +-- Kenkonken:Aftermath effect varies with TP. +-- In order to obtain Stringing Pummel, the quest Unlocking a Myth must be completed. +-- Aligned with the Shadow Gorget, Soil Gorget & Flame Gorget. +-- Aligned with the Shadow Belt, Soil Belt & Flame Belt. +-- Element: None +-- Modifiers: STR:32% ; VIT:32% +-- 100%TP 200%TP 300%TP +-- 0.75 0.75 0.75 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + params.numHits = 6; + params.ftp100 = 0.75; params.ftp200 = 0.75; params.ftp300 = 0.75; + params.str_wsc = 0.32; params.dex_wsc = 0.0; params.vit_wsc = 0.32; params.agi_wsc = 0.0; params.int_wsc = 0.0; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; + params.crit100 = 0.2; params.crit200 = 0.3; params.crit300 = 0.45; + params.canCrit = false; + params.acc100 = 0.8; params.acc200= 0.9; params.acc300= 1; + params.atkmulti = 1; + + local damage, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 19008) then + aftermath = 1; + elseif (main == 19077) then + aftermath = 1; + elseif (main == 19097) then + aftermath = 1; + elseif (main == 19629) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19727) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19836) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19965) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 19008) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif (main == 19077 or main == 19097 or main == 19629) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif (main == 19727 or main == 19836 or main == 19965) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 19008) then + duration = 180; + subpower = math.floor(2 * (tp / 5) - 60); + elseif (main == 19077 or main == 19097 or main == 19629) then + duration = 270; + subpower = math.floor(3 * (tp / 5) - 90); + elseif (main == 19727 or main == 19836 or main == 19965) then + duration = 270; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 19008) then + duration = 180; + subpower = math.floor(tp / 10); + elseif (main == 19077 or main == 19097 or main == 19629) then + duration = 270; + subpower = math.floor(3 * (tp / 20)); + elseif (main == 19727 or main == 19836 or main == 19965) then + duration = 270; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + + return tpHits, extraHits, damage; + +end Index: scripts/globals/weaponskills/tachi_ageha.lua =================================================================== --- scripts/globals/weaponskills/tachi_ageha.lua (revision 3520) +++ scripts/globals/weaponskills/tachi_ageha.lua (working copy) @@ -1,15 +1,12 @@ ----------------------------------- --- Tachi Ageha +-- Tachi:Ageha -- Great Katana weapon skill --- Skill Level: 300 --- Lowers target's defense. Chance of lowering target's defense varies with TP. --- 30% Defense Down --- Duration of effect is exactly 3 minutes. --- Aligned with the Shadow Gorget, Soil Gorget. --- Aligned with the Shadow Belt, Soil Belt. --- Element: None --- Skillchain Properties: Compression/Scission --- Modifiers: CHR:50% +-- Skill level: 300 +-- Lowers targets defense. Chance of lowering target's defense varies with TP. +-- Aligned with the Shadow and Soil Gorgets. +-- Aligned with the Shadow and Soil Belts. +-- Element: None +-- Modifiers: CHR:50% -- 100%TP 200%TP 300%TP -- 2.80 2.80 2.80 ----------------------------------- @@ -23,18 +20,18 @@ local params = {}; params.numHits = 1; - params.ftp100 = 2.80; params.ftp200 = 2.80; params.ftp300 = 2.80; - params.str_wsc = 0.0; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.0; params.mnd_wsc = 0.0; params.chr_wsc = 0.50; + params.ftp100 = 2.8; params.ftp200 = 2.8; params.ftp300 = 2.8; + params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.0; params.mnd_wsc = 0.5; params.chr_wsc = 0.0; params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; params.canCrit = false; params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); - + if damage > 0 and (target:hasStatusEffect(EFFECT_DEFENSE_DOWN) == false) then target:addStatusEffect(EFFECT_DEFENSE_DOWN, 27, 0, 180); - end - + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/tachi_fudo.lua =================================================================== --- scripts/globals/weaponskills/tachi_fudo.lua (revision 3520) +++ scripts/globals/weaponskills/tachi_fudo.lua (working copy) @@ -29,6 +29,48 @@ params.atkmulti = 2; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19465) then + aftermath = 1; + elseif (main == 19543) then + aftermath = 1; + elseif (main == 19641) then + aftermath = 1; + elseif (main == 19814) then + aftermath = 1; + elseif (main == 19862) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/tachi_goten.lua =================================================================== --- scripts/globals/weaponskills/tachi_goten.lua (revision 0) +++ scripts/globals/weaponskills/tachi_goten.lua (working copy) @@ -0,0 +1,34 @@ +----------------------------------- +-- Tachi Goten +-- Great Katana weapon skill +-- Skill Level: 70 +-- Deals lightning elemental damage to enemy. Damage varies with TP. +-- Will stack with Sneak Attack. +-- Aligned with the Light Gorget / Thunder Gorget. +-- Aligned with the Light Belt / Thunder Belt. +-- Element: Thunder +-- Modifiers: STR:30% +-- 100%TP 200%TP 300%TP +-- 1.00 1.00 1.00 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + params.numHits = 1; + params.ftp100 = 1.0; params.ftp200 = 1.0; params.ftp300 = 1.0; + params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.0; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; + params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; + params.canCrit = false; + params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.atkmulti = 1; + local damage, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + return tpHits, extraHits, damage; + +end \ No newline at end of file Index: scripts/globals/weaponskills/tachi_kaiten.lua =================================================================== --- scripts/globals/weaponskills/tachi_kaiten.lua (revision 3520) +++ scripts/globals/weaponskills/tachi_kaiten.lua (working copy) @@ -33,7 +33,61 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local zone = player:getZone(); + if (main == 18318) then + aftermath = 1; + elseif (main == 18319) then + aftermath = 1; + elseif (main == 18646) then + aftermath = 1; + elseif (main == 18660) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 18674) then + damage = damage * 1.25; + aftermath = 1; + elseif (main == 19755) then + damage = damage * 1.4; + aftermath = 1; + elseif (main == 19848) then + damage = damage * 1.4; + aftermath = 1; + elseif ((main == 18317) and (zone == 39 or zone == 40 or zone == 41 or zone == 42 or zone == 134 or + zone ==135 or zone == 185 or zone == 186 or zone == 187 or zone == 188)) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 60; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,9,0,duration); + elseif (tp >= 200) then + duration = 40; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,9,0,duration); + end + else + duration = 20; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,9,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/tachi_rana.lua =================================================================== --- scripts/globals/weaponskills/tachi_rana.lua (revision 3520) +++ scripts/globals/weaponskills/tachi_rana.lua (working copy) @@ -29,7 +29,84 @@ params.acc100 = 0.8; params.acc200= 0.9; params.acc300= 1; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + if (main == 19002) then + aftermath = 1; + elseif (main == 19071) then + aftermath = 1; + elseif (main == 19091) then + aftermath = 1; + elseif (main == 19623) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19721) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19830) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19959) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 19002) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif (main == 19071 or main == 19091 or main == 19623) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif (main == 19721 or main == 19830 or main == 19959) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 19002) then + duration = 90; + subpower = math.floor(2 * (tp / 5) - 60); + elseif (main == 19071 or main == 19091 or main == 19623) then + duration = 120; + subpower = math.floor(3 * (tp / 5) - 90); + elseif (main == 19721 or main == 19830 or main == 19959) then + duration = 120; + subpower = math.floor((tp * .6) - 80); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,14,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 19002) then + duration = 60; + subpower = math.floor(tp / 10); + elseif (main == 19071 or main == 19091 or main == 19623) then + duration = 90; + subpower = math.floor(3 * (tp / 20)); + elseif (main == 19721 or main == 19830 or main == 19959) then + duration = 90; + subpower = math.floor((tp / 10) + 20); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,14,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/tartarus_torpor.lua =================================================================== --- scripts/globals/weaponskills/tartarus_torpor.lua (revision 0) +++ scripts/globals/weaponskills/tartarus_torpor.lua (working copy) @@ -0,0 +1,47 @@ +----------------------------------- +-- Tartarus Torpor +-- Staff weapon skill +-- Skill level: NA +-- Puts to sleep enemies within the area of effect and lowers their magical defense and magical evasion. +-- Duration of effect varies with TP. +-- Only avaliable during Campaign Battles while wielding Samudra +-- Element: None +-- Modifiers: INT:30% STR:30% +-- 100%TP 200%TP 300%TP +-- 2.75 4.00 5.00 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + params.numHits = 1; + params.ftp100 = 2.75; params.ftp200 = 4; params.ftp300 = 5; + params.str_wsc = 0.3; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.3; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; + params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; + params.canCrit = false; + params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.atkmulti = 1; + local damage, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + if damage > 0 then + local tp = player:getTP(); + local duration = (tp/100 * 60); + if(target:hasStatusEffect(EFFECT_MAGIC_DEF_DOWN) == false) then + target:addStatusEffect(EFFECT_MAGIC_DEF_DOWN, 10, 0, duration); + end + if(target:hasStatusEffect(EFFECT_MAGIC_EVASION_DOWN) == false) then + target:addStatusEffect(EFFECT_MAGIC_EVASION_DOWN, 10, 0, duration); + end + if(target:hasStatusEffect(EFFECT_SLEEP) == false) then + target:addStatusEffect(EFFECT_SLEEP, 100, 0, duration); + end + end + + return tpHits, extraHits, damage; + +end Index: scripts/globals/weaponskills/torcleaver.lua =================================================================== --- scripts/globals/weaponskills/torcleaver.lua (revision 3520) +++ scripts/globals/weaponskills/torcleaver.lua (working copy) @@ -28,7 +28,50 @@ params.canCrit = false; params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; - local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19459) then + aftermath = 1; + elseif (main == 19537) then + aftermath = 1; + elseif (main == 19635) then + aftermath = 1; + elseif (main == 19808) then + aftermath = 1; + elseif (main == 19856) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end \ No newline at end of file Index: scripts/globals/weaponskills/trueflight.lua =================================================================== --- scripts/globals/weaponskills/trueflight.lua (revision 3520) +++ scripts/globals/weaponskills/trueflight.lua (working copy) @@ -1,46 +1,115 @@ ------------------------------------ --- Skill Level: N/A --- Description: Deals light elemental damage. Damage varies with TP. Gastraphetes: Aftermath effect varies with TP. --- Available only after completing the Unlocking a Myth (Ranger) quest. --- Does not work with Flashy Shot. --- Does not work with Stealth Shot. --- Aligned with the Breeze Gorget, Thunder Gorget & Soil Gorget. --- Aligned with the Breeze Belt, Thunder Belt & Soil Belt. --- Properties --- Element: Light --- Skillchain Properties: Fragmentation/Scission --- Modifiers: AGI:30% --- Damage Multipliers by TP: --- 100%TP 200%TP 300%TP --- 4.0 4.25 4.75 - - - ------------------------------------ - -require("scripts/globals/status"); -require("scripts/globals/settings"); -require("scripts/globals/weaponskills"); ------------------------------------ - -function OnUseWeaponSkill(player, target, wsID) - +----------------------------------- +-- Trueflight +-- Marksmanship weapon skill +-- Skill Level: NA +-- Deals light elemental damage. Damage varies with TP. +-- Aftermath effect varies with TP. +-- Aligned with the Breeze, Soil, & Thunder Gorgets. +-- Aligned with the Breeze Belt, Soil, & Thunder Belts. +-- Element: Light +-- Modifiers: AGI:30% +-- 100%TP 200%TP 300%TP +-- 4.00 4.25 4.75 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + local params = {}; params.numHits = 1; params.ftp100 = 4; params.ftp200 = 4.25; params.ftp300 = 4.75; - params.str_wsc = 0.0; params.dex_wsc = 0.0; params.vit_wsc = 0.0; - params.agi_wsc = 0.3; params.int_wsc = 0.0; params.mnd_wsc = 0.0; - params.chr_wsc = 0.0; + params.str_wsc = 0.0; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.3; params.int_wsc = 0.0; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; params.canCrit = false; - params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.acc100 = 0.8; params.acc200= 0.9; params.acc300= 1; params.atkmulti = 1; -- needs ignore defense. param local damage, tpHits, extraHits = doRangedWeaponskill(player, target, params); - local criticalHit = false; + local criticalHit = false; + local main = player:getEquipID(SLOT_RANGED); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + + if (main == 19001) then + aftermath = 1; + elseif (main == 19070) then + aftermath = 1; + elseif (main == 19090) then + aftermath = 1; + elseif (main == 19622) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19720) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19829) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19958) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 19001) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (main == 19070 or main == 19090 or main == 19622) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (main == 19720 or main == 19829 or main == 19558) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,16,0,duration); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 19001) then + duration = 90; + subpower = math.floor(tp / 10); + elseif (main == 19070 or main == 19090 or main == 19622) then + duration = 120; + subpower = math.floor(tp / 10); + elseif (main == 19720 or main == 19829 or main == 19558) then + duration = 120; + subpower = math.floor(tp / 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,17,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 19001) then + duration = 60; + subpower = math.floor(tp / 10); + elseif (main == 19070 or main == 19090 or main == 19622) then + duration = 90; + subpower = math.floor(tp / 10); + elseif (main == 19720 or main == 19829 or main == 19558) then + duration = 90; + subpower = math.floor(tp / 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,16,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end; Index: scripts/globals/weaponskills/ukkos_fury.lua =================================================================== --- scripts/globals/weaponskills/ukkos_fury.lua (revision 3520) +++ scripts/globals/weaponskills/ukkos_fury.lua (working copy) @@ -36,7 +36,49 @@ if damage > 0 and (target:hasStatusEffect(EFFECT_SLOW) == false) then target:addStatusEffect(EFFECT_SLOW, 150, 0, 60); - end + end + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19461) then + aftermath = 1; + elseif (main == 19539) then + aftermath = 1; + elseif (main == 19637) then + aftermath = 1; + elseif (main == 19810) then + aftermath = 1; + elseif (main == 19858) then + aftermath = 1; + end + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end \ No newline at end of file Index: scripts/globals/weaponskills/uriel_blade.lua =================================================================== --- scripts/globals/weaponskills/uriel_blade.lua (revision 0) +++ scripts/globals/weaponskills/uriel_blade.lua (working copy) @@ -0,0 +1,38 @@ +----------------------------------- +-- Uriel Blade +-- Sword weapon skill +-- Skill Level: NA +-- Delivers and area attack that deals light elemental damage. Damage varies with TP. Additional effect Flash. +-- Only avaliable durring Campaign Battle while weilding a Griffinclaw +-- Aligned with the Thunder Gorget & Breeze Gorget. +-- Aligned with the Thunder Belt & Breeze Belt. +-- Element: Light +-- Modifiers: STR:32% MND:32% +-- 100%TP 200%TP 300%TP +-- 4.50 6.00 7.50 +----------------------------------- + +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + params.numHits = 1; + params.ftp100 = 4.5; params.ftp200 = 6.0; params.ftp300 = 7.5; + params.str_wsc = 0.32; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.0; params.int_wsc = 0.0; params.mnd_wsc = 0.32; params.chr_wsc = 0.0; + params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; + params.canCrit = false; + params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.atkmulti = 1; + local damage, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + if(target:hasStatusEffect(EFFECT_FLASH) == false) then + target:addStatusEffect(EFFECT_FLASH, 100, 0, 30); + end + + return tpHits, extraHits, damage; + +end Index: scripts/globals/weaponskills/victory_smite.lua =================================================================== --- scripts/globals/weaponskills/victory_smite.lua (revision 3520) +++ scripts/globals/weaponskills/victory_smite.lua (working copy) @@ -33,5 +33,48 @@ params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; params.atkmulti = 1; local damage, criticalHit, tpHits, extraHits = doPhysicalWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19456) then + aftermath = 1; + elseif (main == 19534) then + aftermath = 1; + elseif (main == 19632) then + aftermath = 1; + elseif (main == 19805) then + aftermath = 1; + elseif (main == 19853) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end \ No newline at end of file Index: scripts/globals/weaponskills/vidohunir.lua =================================================================== --- scripts/globals/weaponskills/vidohunir.lua (revision 3520) +++ scripts/globals/weaponskills/vidohunir.lua (working copy) @@ -36,8 +36,85 @@ if(target:hasStatusEffect(EFFECT_MAGIC_DEF_DOWN) == false) then target:addStatusEffect(EFFECT_MAGIC_DEF_DOWN, 10, 0, duration); end - end + end + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + local subpower = 0; + if (main == 18994) then + aftermath = 1; + elseif (main == 19063) then + aftermath = 1; + elseif (main == 19083) then + aftermath = 1; + elseif (main == 19615) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19713) then + aftermath = 1; + damage = damage * 1.15; + elseif (main == 19822) then + aftermath = 1; + damage = damage * 1.3; + elseif (main == 19951) then + aftermath = 1; + damage = damage * 1.3; + end + + if (aftermath == 1) then + if (tp == 300) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + if (main == 18994) then + duration = 120; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,40); + elseif (main == 19063 or main == 19083 or main == 19615) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,14,0,duration,0,60); + elseif (main == 19713 or main == 19822 or main == 19951) then + duration = 180; + player:addStatusEffect(EFFECT_AFTERMATH_LV3,15,0,duration,0,20); + end + elseif (tp >= 200) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + if (main == 18994) then + duration = 180; + subpower = math.floor((tp / 10) - 10); + elseif (main == 19063 or main == 19083 or main == 19615) then + duration = 270; + subpower = math.floor((tp / 5) - 20); + elseif (main == 19713 or main == 19822 or main == 19951) then + duration = 270; + subpower = math.floor((tp / 5) - 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV2,16,0,duration,0,subpower); + end + else + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + if (main == 18994) then + duration = 180; + subpower = math.floor(tp / 10); + elseif (main == 19063 or main == 19083 or main == 19615) then + duration = 270; + subpower = math.floor(tp / 10); + elseif (main == 19713 or main == 19822 or main == 19951) then + duration = 270; + subpower = math.floor(tp / 10); + end + player:addStatusEffect(EFFECT_AFTERMATH_LV1,15,0,duration,0,subpower); + end + end + end + end + return tpHits, extraHits, criticalHit, damage; end Index: scripts/globals/weaponskills/wildfire.lua =================================================================== --- scripts/globals/weaponskills/wildfire.lua (revision 0) +++ scripts/globals/weaponskills/wildfire.lua (working copy) @@ -0,0 +1,75 @@ +----------------------------------- +-- Wildfire +-- Marksmanship weapon skill +-- Skill level: 357 +-- Empyrean Weapon Skill +-- COR Main Job Required +-- Aligned with the Light Gorget & Flame Gorget. +-- Aligned with the Light Belt & Flame Belt. +-- Element: +-- Modifiers: AGI:60% +-- 100%TP 200%TP 300%TP +-- 5.5 5.5 5.5 +----------------------------------- +require("scripts/globals/status"); +require("scripts/globals/settings"); +require("scripts/globals/weaponskills"); +----------------------------------- + +function OnUseWeaponSkill(player, target, wsID) + + local params = {}; + params.numHits = 1; + params.ftp100 = 5.5; params.ftp200 = 5.5; params.ftp300 = 5.5; + params.str_wsc = 0.16; params.dex_wsc = 0.0; params.vit_wsc = 0.0; params.agi_wsc = 0.6; params.int_wsc = 0.0; params.mnd_wsc = 0.0; params.chr_wsc = 0.0; + params.crit100 = 0.0; params.crit200 = 0.0; params.crit300 = 0.0; + params.canCrit = false; + params.acc100 = 0.0; params.acc200= 0.0; params.acc300= 0.0; + params.atkmulti = 1; + damage, tpHits, extraHits = doRangedWeaponskill(player, target, params); + + local main = player:getEquipID(SLOT_MAIN); + local aftermath = 0; + local tp = player:getTP(); + local duration = 0; + + if (main == 19469) then + aftermath = 1; + elseif (main == 19547) then + aftermath = 1; + elseif (main == 19645) then + aftermath = 1; + elseif (main == 19818) then + aftermath = 1; + elseif (main == 19866) then + aftermath = 1; + end + + if (aftermath == 1) then + if (tp == 300) then + duration = 90; + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:delStatusEffect(EFFECT_AFTERMATH_LV3); + player:addStatusEffect(EFFECT_AFTERMATH_LV3,1,0,duration); + elseif (tp >= 200) then + duration = 60; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:delStatusEffect(EFFECT_AFTERMATH_LV2); + player:addStatusEffect(EFFECT_AFTERMATH_LV2,1,0,duration); + end + else + duration = 30; + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV3) == false) then + if (player:hasStatusEffect(EFFECT_AFTERMATH_LV2) == false) then + player:delStatusEffect(EFFECT_AFTERMATH_LV1); + player:addStatusEffect(EFFECT_AFTERMATH_LV1,1,0,duration); + end + end + end + end + + return tpHits, extraHits, damage; + +end \ No newline at end of file Index: scripts/globals/weather.lua =================================================================== --- scripts/globals/weather.lua (revision 3520) +++ scripts/globals/weather.lua (working copy) @@ -2,33 +2,33 @@ -- Weather Conditions ----------------------------------- -WEATHER_NONE = 0; -WEATHER_SUNSHINE = 1; -WEATHER_CLOUDS = 2; -WEATHER_FOG = 3; -WEATHER_HOT_SPELL = 4; -WEATHER_HEAT_WAVE = 5; -WEATHER_RAIN = 6; -WEATHER_SQUALL = 7; -WEATHER_DUST_STORM = 8; -WEATHER_SAND_STORM = 9; -WEATHER_WIND = 10; -WEATHER_GALES = 11; -WEATHER_SNOW = 12; -WEATHER_BLIZZARDS = 13; -WEATHER_THUNDER = 14; -WEATHER_THUNDERSTORMS= 15; -WEATHER_AURORAS = 16; -WEATHER_STELLAR_GLARE= 17; -WEATHER_GLOOM = 18; -WEATHER_DARKNESS = 19; +WEATHER_NONE = 0; +WEATHER_SUNSHINE = 1; +WEATHER_CLOUDS = 2; +WEATHER_FOG = 3; +WEATHER_HOT_SPELL = 4; +WEATHER_HEAT_WAVE = 5; +WEATHER_RAIN = 6; +WEATHER_SQUALL = 7; +WEATHER_DUST_STORM = 8; +WEATHER_SAND_STORM = 9; +WEATHER_WIND = 10; +WEATHER_GALES = 11; +WEATHER_SNOW = 12; +WEATHER_BLIZZARDS = 13; +WEATHER_THUNDER = 14; +WEATHER_THUNDERSTORMS = 15; +WEATHER_AURORAS = 16; +WEATHER_STELLAR_GLARE = 17; +WEATHER_GLOOM = 18; +WEATHER_DARKNESS = 19; -TIME_NONE = 0; -TIME_MIDNIGHT = 1; -TIME_FOG = 2; -TIME_NEW_DAY = 3; -TIME_DAWN = 4; -TIME_DAY = 5; -TIME_DUSK = 6; -TIME_EVENING = 7; -TIME_NIGHT = 8; \ No newline at end of file +TIME_NONE = 0; +TIME_MIDNIGHT = 1; +TIME_FOG = 2; +TIME_NEW_DAY = 3; +TIME_DAWN = 4; +TIME_DAY = 5; +TIME_DUSK = 6; +TIME_EVENING = 7; +TIME_NIGHT = 8; \ No newline at end of file