mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-02 19:42:05 -04:00
Script fixes and new effects.
Cleaned up unneeded requires in some scripts Fixed Second Wind Added new effect scripts Added bard song scripts that mostly work
This commit is contained in:
parent
ace4dfe58f
commit
c442dc9ecd
5
data/scripts/commands/RaiseMagic.lua
Normal file
5
data/scripts/commands/RaiseMagic.lua
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
function onEventStarted(player, command, triggerName, arg1, arg2, arg3, arg4, targetActor, arg5, arg6, arg7, arg8)
|
||||||
|
player.Cast(command.actorId, targetActor);
|
||||||
|
|
||||||
|
player:endEvent();
|
||||||
|
end
|
19
data/scripts/commands/ability/battle_voice.lua
Normal file
19
data/scripts/commands/ability/battle_voice.lua
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
require("global");
|
||||||
|
require("ability");
|
||||||
|
|
||||||
|
function onAbilityPrepare(caster, target, ability)
|
||||||
|
return 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onAbilityStart(caster, target, ability)
|
||||||
|
return 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||||
|
--Only the bard gets the Battle Voice effect
|
||||||
|
if caster == target then
|
||||||
|
actionContainer.AddAction(caster.statusEffects.AddStatusForBattleAction(223253, 1, 0, 30));
|
||||||
|
end
|
||||||
|
|
||||||
|
action.DoAction(caster, target, skill, actionContainer);
|
||||||
|
end;
|
@ -26,7 +26,7 @@ function onSkillFinish(caster, target, skill, action, actionContainer)
|
|||||||
|
|
||||||
caster.AddMP(amount);
|
caster.AddMP(amount);
|
||||||
|
|
||||||
actionContainer.AddMPAction(caster.actorId, 30321, amount);
|
actionContainer.AddMPAction(caster.actorId, 33007, amount);
|
||||||
actionContainer.AddAction(remAction);
|
actionContainer.AddAction(remAction);
|
||||||
else
|
else
|
||||||
--Blissful mind takes 25% of CURRENT HP and begins storing MP up to that point, at which point the buff changes to indicate its full
|
--Blissful mind takes 25% of CURRENT HP and begins storing MP up to that point, at which point the buff changes to indicate its full
|
||||||
|
@ -17,7 +17,8 @@ function onSkillFinish(caster, target, skill, action, actionContainer)
|
|||||||
coverTier = 2;
|
coverTier = 2;
|
||||||
end
|
end
|
||||||
|
|
||||||
actionContainer.AddAction(caster.statusEffects.AddStatusForBattleAction(223063, coverTier));
|
actionContainer.AddAction(caster.statusEffects.AddStatusForBattleAction(223063, coverTier, skill.statusDuration));
|
||||||
|
|
||||||
|
--Apply Covered to target
|
||||||
action.DoAction(caster, target, skill, actionContainer);
|
action.DoAction(caster, target, skill, actionContainer);
|
||||||
end;
|
end;
|
17
data/scripts/commands/ability/hundred_fists.lua
Normal file
17
data/scripts/commands/ability/hundred_fists.lua
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
require("global");
|
||||||
|
require("ability");
|
||||||
|
require("modifiers");
|
||||||
|
|
||||||
|
function onAbilityPrepare(caster, target, ability)
|
||||||
|
return 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onAbilityStart(caster, target, ability)
|
||||||
|
return 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||||
|
--Take off 1/3 of attack delay. Not sure if this is the exact amount HF reduces by
|
||||||
|
action.statusMagnitude = 0.33 * caster.GetMod(modifiersGlobal.AttackDelay);
|
||||||
|
action.DoAction(caster, target, skill, actionContainer);
|
||||||
|
end;
|
15
data/scripts/commands/ability/resonance.lua
Normal file
15
data/scripts/commands/ability/resonance.lua
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
require("global");
|
||||||
|
require("ability");
|
||||||
|
|
||||||
|
function onAbilityPrepare(caster, target, ability)
|
||||||
|
return 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onAbilityStart(caster, target, ability)
|
||||||
|
return 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||||
|
--DoAction handles rates, buffs, dealing damage
|
||||||
|
action.DoAction(caster, target, skill, actionContainer);
|
||||||
|
end;
|
@ -1,5 +1,6 @@
|
|||||||
require("global");
|
require("global");
|
||||||
require("modifiers");
|
require("modifiers");
|
||||||
|
require("utils")
|
||||||
--require("ability");
|
--require("ability");
|
||||||
|
|
||||||
function onAbilityPrepare(caster, target, ability)
|
function onAbilityPrepare(caster, target, ability)
|
||||||
@ -20,9 +21,11 @@ end;
|
|||||||
-- An additional random integer (580 at level 50. +/- 3%)
|
-- An additional random integer (580 at level 50. +/- 3%)
|
||||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||||
--Base amount seems to be 0.215x^2 - 0.35x + 60
|
--Base amount seems to be 0.215x^2 - 0.35x + 60
|
||||||
|
--^ this isn't totally correct
|
||||||
local amount = (0.215 * math.pow(caster.GetLevel(), 2)) - (0.35 * caster.GetLevel()) + 60;
|
local amount = (0.215 * math.pow(caster.GetLevel(), 2)) - (0.35 * caster.GetLevel()) + 60;
|
||||||
--Heals can vary by up to 3%
|
|
||||||
amount = math.Clamp(amount * (0.97 + (math.rand() * 3.0)), 0, 9999);
|
--Heals can vary by up to 3.5%
|
||||||
|
amount = math.Clamp(amount * (0.965 + (math.random() * 0.07)), 0, 9999);
|
||||||
|
|
||||||
--PGL gets an INT bonus for Second Wind
|
--PGL gets an INT bonus for Second Wind
|
||||||
if caster.GetClass() == 2 then
|
if caster.GetClass() == 2 then
|
||||||
@ -34,6 +37,7 @@ function onSkillFinish(caster, target, skill, action, actionContainer)
|
|||||||
amount = amount * 1.25;
|
amount = amount * 1.25;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
action.amount = amount;
|
||||||
--DoAction handles rates, buffs, dealing damage
|
--DoAction handles rates, buffs, dealing damage
|
||||||
action.DoAction(caster, target, skill, actionContainer);
|
action.DoAction(caster, target, skill, actionContainer);
|
||||||
end;
|
end;
|
@ -1,15 +1,58 @@
|
|||||||
require("global");
|
require("global");
|
||||||
require("magic");
|
require("magic");
|
||||||
|
|
||||||
function onMagicPrepare(caster, target, spell)
|
function onMagicPrepare(caster, target, skill)
|
||||||
return 0;
|
return 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function onMagicStart(caster, target, spell)
|
function onMagicStart(caster, target, skill)
|
||||||
return 0;
|
--Ballad gives 20 MP a tick at 50
|
||||||
|
--BV gives 40 MP per tick
|
||||||
|
--Formula seems to be 0.8 * level - 20, not sure why BV gives 71 at 50 then
|
||||||
|
local mpPerTick = (0.8 * caster.GetLevel()) - 20;
|
||||||
|
|
||||||
|
--8032705: Choral Shirt: Enhances Ballad of Magi
|
||||||
|
--With Choral Shirt, Ballad gives 26 mp a tick. It could be a flat 6 or multiply by 1.3
|
||||||
|
--Because minuet seemed like a normal addition I'm assuming this is too
|
||||||
|
local shirt = caster.GetEquipment().GetItemAtSlot(10);
|
||||||
|
if shirt and shirt.itemId == 8032705 then
|
||||||
|
mpPerTick = mpPerTick + 6;
|
||||||
|
end
|
||||||
|
|
||||||
|
--223253: Battle Voice
|
||||||
|
--Battle Voice doubles effect of songs
|
||||||
|
if caster.statusEffects.HasStatusEffect(223253) then
|
||||||
|
mpPerTick = mpPerTick * 2;
|
||||||
|
--Set status tier so we can check it later when BV falls off
|
||||||
|
skill.statusTier = 2;
|
||||||
|
end
|
||||||
|
|
||||||
|
skill.statusMagnitude = mpPerTick;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||||
|
--223224: Swiftsong
|
||||||
|
--223255: Paeon of War
|
||||||
|
--223256: Minuet of Rigor
|
||||||
|
--
|
||||||
|
local oldSong;
|
||||||
|
local swiftSong = target.statusEffects.GetStatusEffectById(223224);
|
||||||
|
local paeon = target.statusEffects.GetStatusEffectById(223255);
|
||||||
|
local minuet = target.statusEffects.GetStatusEffectById(223256);
|
||||||
|
if swiftSong and swiftSong.GetSource() == caster then
|
||||||
|
oldSong = swiftSong;
|
||||||
|
elseif paeon and paeon.GetSource() == caster then
|
||||||
|
oldSong = paeon;
|
||||||
|
elseif minuet and minuet.GetSource() == caster then
|
||||||
|
oldSong = minuet;
|
||||||
|
elseif ballad and ballad.GetSource() == caster then
|
||||||
|
oldSong = ballad;
|
||||||
|
end
|
||||||
|
|
||||||
|
if oldSong then
|
||||||
|
target.statusEffects.RemoveStatusEffect(oldSong);
|
||||||
|
end
|
||||||
|
|
||||||
--DoAction handles rates, buffs, dealing damage
|
--DoAction handles rates, buffs, dealing damage
|
||||||
action.DoAction(caster, target, skill, actionContainer);
|
action.DoAction(caster, target, skill, actionContainer);
|
||||||
end;
|
end;
|
@ -1,15 +1,56 @@
|
|||||||
require("global");
|
require("global");
|
||||||
require("magic");
|
require("magic");
|
||||||
|
|
||||||
function onMagicPrepare(caster, target, spell)
|
function onMagicPrepare(caster, target, skill)
|
||||||
return 0;
|
return 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function onMagicStart(caster, target, spell)
|
function onMagicStart(caster, target, skill)
|
||||||
return 0;
|
--Miuet gives 35 ACC/MACC by default at level 50. Minuet does scale with level
|
||||||
|
--BV apparetnly gives 71 ACc/MACC
|
||||||
|
--Formula seems to be level - 15, not sure why BV gives 71 at 50 then
|
||||||
|
local acc = caster.GetLevel() - 15;
|
||||||
|
|
||||||
|
--8071405: Choral Ringbands: Enhances Minuet of Rigor
|
||||||
|
--With Choral Tights, Minuet gives 60 ACC/MACC at 50. Unsure what it is at lower levels (ie if it's a flat added 25 MP or a multiplier)
|
||||||
|
--Assuming it's a flat 25 because that makes more sense than multiplying by 1.714
|
||||||
|
local gloves = caster.GetEquipment().GetItemAtSlot(13);
|
||||||
|
if gloves and gloves.itemId == 8071405 then
|
||||||
|
acc = acc + 25;
|
||||||
|
end
|
||||||
|
|
||||||
|
--223253: Battle Voice
|
||||||
|
--Battle Voice doubles effect of songs
|
||||||
|
if caster.statusEffects.HasStatusEffect(223253) then
|
||||||
|
acc = acc * 2;
|
||||||
|
--Set status tier so we can check it later when BV falls off
|
||||||
|
skill.statusTier = 2;
|
||||||
|
end
|
||||||
|
|
||||||
|
skill.statusMagnitude = acc;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||||
|
--223224: Swiftsong
|
||||||
|
--223254: Ballad Of Magi
|
||||||
|
--223255: Paeon of War
|
||||||
|
--If target has one of these effects that was from this caster, remove it
|
||||||
|
local oldSong;
|
||||||
|
local swiftSong = target.statusEffects.GetStatusEffectById(223224);
|
||||||
|
local ballad = target.statusEffects.GetStatusEffectById(223254);
|
||||||
|
local paeon = target.statusEffects.GetStatusEffectById(223255);
|
||||||
|
if swiftSong and swiftSong.GetSource() == caster then
|
||||||
|
oldSong = swiftSong;
|
||||||
|
elseif ballad and ballad.GetSource() == caster then
|
||||||
|
oldSong = ballad;
|
||||||
|
elseif paeon and paeon.GetSource() == caster then
|
||||||
|
oldSong = paeon;
|
||||||
|
end
|
||||||
|
|
||||||
|
if oldSong then
|
||||||
|
target.statusEffects.RemoveStatusEffect(oldSong);
|
||||||
|
end
|
||||||
|
|
||||||
--DoAction handles rates, buffs, dealing damage
|
--DoAction handles rates, buffs, dealing damage
|
||||||
action.DoAction(caster, target, skill, actionContainer);
|
action.DoAction(caster, target, skill, actionContainer);
|
||||||
end;
|
end;
|
@ -1,15 +1,54 @@
|
|||||||
require("global");
|
require("global");
|
||||||
require("magic");
|
require("magic");
|
||||||
|
|
||||||
function onMagicPrepare(caster, target, spell)
|
function onMagicPrepare(caster, target, skill)
|
||||||
return 0;
|
return 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function onMagicStart(caster, target, spell)
|
function onMagicStart(caster, target, skill)
|
||||||
return 0;
|
--Restores 50 TP/tick normally. With Choral Tights it's 60 TP. With Battle voice it's 100, 120 with Coral Tights.
|
||||||
|
--Battle voice is handled in the Battle Voice script
|
||||||
|
--Paeon does not scale with level
|
||||||
|
local tpPerTick = 50;
|
||||||
|
|
||||||
|
--8051405: Choral Tights: Enhances Paeon Of War
|
||||||
|
local pants = caster.GetEquipment().GetItemAtSlot(12);
|
||||||
|
if pants and pants.itemId == 8051405 then
|
||||||
|
tpPerTick = 60;
|
||||||
|
end
|
||||||
|
|
||||||
|
--223253: Battle Voice
|
||||||
|
--Battle Voice doubles effect of songs
|
||||||
|
if caster.statusEffects.HasStatusEffect(223253) then
|
||||||
|
tpPerTick = tpPerTick * 2;
|
||||||
|
--Set status tier so we can check it later when BV falls off
|
||||||
|
skill.statusTier = 2;
|
||||||
|
end
|
||||||
|
|
||||||
|
skill.statusMagnitude = tpPerTick;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||||
|
--223224: Swiftsong
|
||||||
|
--223254: Ballad Of Magi
|
||||||
|
--223256: Minuet of Rigor
|
||||||
|
--If target has one of these effects that was from this caster, remove it
|
||||||
|
local oldSong;
|
||||||
|
local swiftSong = target.statusEffects.GetStatusEffectById(223224);
|
||||||
|
local ballad = target.statusEffects.GetStatusEffectById(223254);
|
||||||
|
local minuet = target.statusEffects.GetStatusEffectById(223256);
|
||||||
|
if swiftSong and swiftSong.GetSource() == caster then
|
||||||
|
oldSong = swiftSong;
|
||||||
|
elseif ballad and ballad.GetSource() == caster then
|
||||||
|
oldSong = ballad;
|
||||||
|
elseif minuet and minuet.GetSource() == caster then
|
||||||
|
oldSong = minuet;
|
||||||
|
end
|
||||||
|
|
||||||
|
if oldSong then
|
||||||
|
target.statusEffects.RemoveStatusEffect(oldSong);
|
||||||
|
end
|
||||||
|
|
||||||
--DoAction handles rates, buffs, dealing damage
|
--DoAction handles rates, buffs, dealing damage
|
||||||
action.DoAction(caster, target, skill, actionContainer);
|
action.DoAction(caster, target, skill, actionContainer);
|
||||||
end;
|
end;
|
@ -8,11 +8,11 @@ end;
|
|||||||
function onMagicStart(caster, target, spell)
|
function onMagicStart(caster, target, spell)
|
||||||
--27363: Enhanced Raise: No longer inflicts weakness.
|
--27363: Enhanced Raise: No longer inflicts weakness.
|
||||||
if caster.HasTrait(27363) then
|
if caster.HasTrait(27363) then
|
||||||
ability.statusTier = 2;
|
ability.statusId = 0;
|
||||||
end
|
end
|
||||||
return 0;
|
return 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
--Not sure how raise works yet.
|
||||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||||
--DoAction handles rates, buffs, dealing damage
|
|
||||||
action.DoAction(caster, target, skill, actionContainer);
|
|
||||||
end;
|
end;
|
@ -1,10 +1,8 @@
|
|||||||
require("global")
|
|
||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
|
||||||
require("utils")
|
require("utils")
|
||||||
|
|
||||||
--Forces a full block (0 damage taken)
|
--Forces a full block (0 damage taken)
|
||||||
function onPreAction(caster, target, effect, skill, action, actionContainer)
|
function onPreAction(effect, caster, target, skill, action, actionContainer)
|
||||||
--If action hit from the rear and is a weaponskill ation
|
--If action hit from the rear and is a weaponskill ation
|
||||||
action.blockRate = 100.0;
|
action.blockRate = 100.0;
|
||||||
end;
|
end;
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
|
require("modifiers")
|
||||||
|
|
||||||
--Doesn't do flat damage. 20 on Lv 50 Truffle Hog, 11 on Coincounter, 7 on nael hard, 19 on 52 fachan
|
--Doesn't do flat damage. 20 on Lv 50 Truffle Hog, 11 on Coincounter, 7 on nael hard, 19 on 52 fachan
|
||||||
function onGain(target, effect)
|
function onGain(owner, effect)
|
||||||
owner.AddMod(modifiersGlobal.RegenDown, effect.GetMagnitude());
|
owner.AddMod(modifiersGlobal.RegenDown, effect.GetMagnitude());
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function onLose(target, effect)
|
function onLose(owner, effect)
|
||||||
owner.AddMod(modifiersGlobal.RegenDown, effect.GetMagnitude());
|
owner.AddMod(modifiersGlobal.RegenDown, effect.GetMagnitude());
|
||||||
end;
|
end;
|
10
data/scripts/effects/ballad_of_magi.lua
Normal file
10
data/scripts/effects/ballad_of_magi.lua
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
require("modifiers")
|
||||||
|
|
||||||
|
function onGain(owner, effect)
|
||||||
|
--Only one song per bard can be active, need to figure out a good way to do this
|
||||||
|
owner.AddMod(modifiersGlobal.Refresh, effect.GetMagnitude());
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onLose(owner, effect)
|
||||||
|
owner.SubtractMod(modifiersGlobal.Refresh, effect.GetMagnitude());
|
||||||
|
end;
|
@ -1,9 +1,3 @@
|
|||||||
require("modifiers")
|
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
|
||||||
|
|
||||||
--Untraited reduces cooldown by 50%
|
|
||||||
--Traited reduces cooldown by 100%
|
|
||||||
function onCommandStart(effect, owner, skill, actionContainer)
|
function onCommandStart(effect, owner, skill, actionContainer)
|
||||||
--27259: Light Shot
|
--27259: Light Shot
|
||||||
if skill.id == 27259 then
|
if skill.id == 27259 then
|
||||||
|
3
data/scripts/effects/battle_voice.lua
Normal file
3
data/scripts/effects/battle_voice.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
require("modifiers")
|
||||||
|
|
||||||
|
--BV doesn't really do anything i think
|
@ -1,5 +1,4 @@
|
|||||||
require("modifiers");
|
require("modifiers");
|
||||||
require("battleutils");
|
|
||||||
|
|
||||||
function onGain(owner, effect)
|
function onGain(owner, effect)
|
||||||
owner.statusEffects.RemoveStatusEffect(223208);
|
owner.statusEffects.RemoveStatusEffect(223208);
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
require("modifiers");
|
require("modifiers");
|
||||||
|
|
||||||
function onGain(target, effect)
|
function onGain(target, effect)
|
||||||
local currEvade = target.GetMod(modifierGlobals.Evasion);
|
|
||||||
target.SetMod(modifierGlobals.Evasion, currEvade + 15);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function onLose(target, effect)
|
function onLose(target, effect)
|
||||||
local currEvade = target.GetMod(modifierGlobals.Evasion);
|
|
||||||
target.SetMod(modifierGlobals.Evasion, currEvade - 15);
|
|
||||||
end;
|
end;
|
9
data/scripts/effects/blind.lua
Normal file
9
data/scripts/effects/blind.lua
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
require("modifiers")
|
||||||
|
|
||||||
|
function onGain(owner, effect)
|
||||||
|
owner.AddMod(modifiersGlobal.Accuracy, effect.GetMagnitude());
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onLose(owner, effect)
|
||||||
|
owner.AddMod(modifiersGlobal.Accuracy, effect.GetMagnitude());
|
||||||
|
end;
|
@ -2,7 +2,7 @@ require("modifiers")
|
|||||||
require("battleutils")
|
require("battleutils")
|
||||||
|
|
||||||
--Forces crit of a single WS action from rear.
|
--Forces crit of a single WS action from rear.
|
||||||
function onPreAction(caster, target, effect, skill, action, actionContainer)
|
function onPreAction(effect, caster, target, skill, action, actionContainer)
|
||||||
--If action hit from the rear and is a weaponskill ation
|
--If action hit from the rear and is a weaponskill ation
|
||||||
if (action.param == HitDirection.Rear and action.commandType == CommandType.WeaponSkill) then
|
if (action.param == HitDirection.Rear and action.commandType == CommandType.WeaponSkill) then
|
||||||
--Set action's crit rate to 100%
|
--Set action's crit rate to 100%
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
require("modifiers")
|
require("battleUtils")
|
||||||
require("hiteffect")
|
|
||||||
|
|
||||||
--Takes 10% of hp rounded down
|
--Takes 10% of hp rounded down when using a weaponskill
|
||||||
--Random guess, but increases damage by 10% (12.5% traited)?
|
--Random guess, but increases damage by 10% (12.5% traited)?
|
||||||
function onPreAction(caster, target, effect, skill, action, actionContainer)
|
function onPreAction(effect, caster, target, skill, action, actionContainer)
|
||||||
local hpToRemove = math.floor(caster.GetHP() * 0.10);
|
if skill.commandType == CommandType.Weaponskill then
|
||||||
local modifier = 1.10;
|
local hpToRemove = math.floor(caster.GetHP() * 0.10);
|
||||||
|
local modifier = 1.10;
|
||||||
|
|
||||||
if (effect.GetTier() == 2) then
|
if effect.GetTier() == 2 then
|
||||||
modifier = 1.25;
|
modifier = 1.125;
|
||||||
|
end
|
||||||
|
|
||||||
|
action.amount = action.amount * modifier;
|
||||||
|
caster.DelHP(hpToRemove);
|
||||||
|
|
||||||
|
--Remove status and add message
|
||||||
|
actionContainer.AddAction(target.statusEffects.RemoveForBattleAction(effect));
|
||||||
end
|
end
|
||||||
|
|
||||||
action.amount = action.amount * modifier;
|
|
||||||
caster.DelHP(hpToRemove);
|
|
||||||
|
|
||||||
--Remove status and add message
|
|
||||||
actionContainer.AddAction(target.statusEffects.RemoveForBattleAction(effect));
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
require("modifiers");
|
require("modifiers");
|
||||||
require("battleutils");
|
|
||||||
|
|
||||||
--Absorb HP on next WS or ability
|
--Absorb HP on next WS or ability
|
||||||
function onHit(effect, attacker, defender, action, actionContainer)
|
function onHit(effect, attacker, defender, action, actionContainer)
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
require("modifiers")
|
||||||
|
|
||||||
--This is the comboed version of bloodletter.
|
--This is the comboed version of bloodletter.
|
||||||
--All videos I can find have it dealing 15 damage.
|
--All videos I can find have it dealing 15 damage.
|
||||||
--Damage type is projectile.
|
--Damage type is projectile.
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
require("modifiers")
|
||||||
|
|
||||||
--Bloodletter2 is the uncomboed version of Bloodletter. It doesn't deal any additional damage when it falls off but has the same tick damage
|
--Bloodletter2 is the uncomboed version of Bloodletter. It doesn't deal any additional damage when it falls off but has the same tick damage
|
||||||
function onGain(owner, effect)
|
function onGain(owner, effect)
|
||||||
owner.AddMod(modifiersGlobal.RegenDown, 15);
|
owner.AddMod(modifiersGlobal.RegenDown, 15);
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("battleutils")
|
|
||||||
|
|
||||||
function onPreAction(caster, target, effect, skill, action, actionContainer)
|
function onGain(target, effect)
|
||||||
if skill.commandType == CommandType.Spell then
|
--Multiples Attack Magic Potency by 1.2 and Healing Magic Potency by 0.8
|
||||||
if action.actionType == ActionType.Heal then
|
target.SetMod(modifiersGlobal.MagicAttack, target.GetMod(modifiersGlobal.MagicAttack) * 1.2);
|
||||||
action.amount = action.amount * 0.80;
|
target.SetMod(modifiersGlobal.MagicHeal, target.GetMod(modifiersGlobal.MagicHeal) * 0.8);
|
||||||
elseif action.actionType == ActionType.Magic then
|
|
||||||
action.amount = action.amount * 1.20;
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function onLose(target, effect)
|
||||||
|
target.SetMod(modifiersGlobal.MagicAttack, target.GetMod(modifiersGlobal.MagicAttack) / 1.2);
|
||||||
|
target.SetMod(modifiersGlobal.MagicHeal, target.GetMod(modifiersGlobal.MagicHeal) / 0.8);
|
||||||
|
end;
|
@ -1,7 +1,4 @@
|
|||||||
require("global")
|
|
||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
|
||||||
require("utils")
|
|
||||||
|
|
||||||
function onHit(effect, attacker, defender, action, actionContainer)
|
function onHit(effect, attacker, defender, action, actionContainer)
|
||||||
local enmity = action.enmity;
|
local enmity = action.enmity;
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
require("global")
|
|
||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
|
||||||
require("utils")
|
|
||||||
|
|
||||||
--Restores 25% of damage taken as MP. Does not send a message
|
--Enahnced Cover: Restores 25% of damage taken as MP. Does not send a message
|
||||||
function onDamageTaken(effect, attacker, defender, action, actionContainer)
|
function onDamageTaken(effect, attacker, defender, action, actionContainer)
|
||||||
defender.AddMP(0.25 * action.amount);
|
if effect.GetTier() == 2 then
|
||||||
|
defender.AddMP(0.25 * action.amount);
|
||||||
|
end
|
||||||
end;
|
end;
|
15
data/scripts/effects/covered.lua
Normal file
15
data/scripts/effects/covered.lua
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
require("battleUtils")
|
||||||
|
|
||||||
|
--If person who cast cover is within 8y, change the action's target to them
|
||||||
|
--Not sure what attacks are valid. It only says "melee attacks", unsure if that includes weaponskills and abilities or just auto attacks
|
||||||
|
--Right now this will probably be really buggy, since Covered is not necessarily the first effect that will activate on the target
|
||||||
|
|
||||||
|
--Really need to do more research on this, figure out how it interacts with multi-hit attacks, aoe attacks (if those count as melee ever?), etc.
|
||||||
|
--If it redirects the whole attack instead of a single hit, we might need a new that activates while iterating over targets.
|
||||||
|
function onPreAction(effect, caster, target, skill, action, actionContainer)
|
||||||
|
if not skill.isRanged then
|
||||||
|
if effect.GetSource().IsAlive() and getDistanceBetweenActors(effect.GetSource(), target) <= 8 then
|
||||||
|
target = effect.GetSource();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end;
|
13
data/scripts/effects/dark_seal2.lua
Normal file
13
data/scripts/effects/dark_seal2.lua
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
require("modifiers")
|
||||||
|
require("battleutils")
|
||||||
|
|
||||||
|
--Increases accuracy of next cast.
|
||||||
|
--There isn't really any information on this, but due to the fact it falls off BEFORE the target is hit,
|
||||||
|
--I'm assuming it increases a spell's accuracy modifier instead of giving actual magic accuracy
|
||||||
|
function onCommandStart(effect, owner, skill, actionContainer)
|
||||||
|
if skill.actionType == ActionType.Magic then
|
||||||
|
--50 is random guess.
|
||||||
|
skill.accuracyModifier = skill.accuracyModifier + 50;
|
||||||
|
actionContainer.AddAction(owner.RemoveStatusEffectForBattleAction(effect));
|
||||||
|
end
|
||||||
|
end
|
@ -2,15 +2,15 @@ require("modifiers")
|
|||||||
require("battleutils")
|
require("battleutils")
|
||||||
|
|
||||||
--This is the untraited version of decoy.
|
--This is the untraited version of decoy.
|
||||||
|
function onPreAction(effect, caster, target, skill, action, actionContainer)
|
||||||
function onPreAction(caster, target, effect, skill, action, actionContainer)
|
|
||||||
--Evade single ranged or magic attack
|
--Evade single ranged or magic attack
|
||||||
--Traited allows for physical attacks
|
--Traited allows for physical attacks
|
||||||
if skill.isRanged or action.actionType == ActionType.Magic then
|
if target.allegiance != caster.allegiance and (skill.isRanged or action.actionType == ActionType.Magic) then
|
||||||
--Set action's hit rate to 0
|
--Set action's hit rate to 0
|
||||||
action.hirRate = 0.0;
|
action.hirRate = 0.0;
|
||||||
|
|
||||||
|
--Remove status and add message
|
||||||
|
actionContainer.AddAction(target.statusEffects.RemoveStatusEffectForBattleAction(effect));
|
||||||
end
|
end
|
||||||
|
|
||||||
--Remove status and add message
|
|
||||||
actionsList.AddAction(target.statusEffects.RemoveForBattleAction(effect));
|
|
||||||
end;
|
end;
|
@ -2,15 +2,14 @@ require("modifiers")
|
|||||||
require("battleutils")
|
require("battleutils")
|
||||||
|
|
||||||
--This is the traited version of Decoy. It can also evade physical attacks.
|
--This is the traited version of Decoy. It can also evade physical attacks.
|
||||||
|
function onPreAction(effect, caster, target, skill, action, actionContainer)
|
||||||
function onPreAction(caster, target, effect, skill, action, actionContainer)
|
|
||||||
--Evade single ranged or magic attack
|
--Evade single ranged or magic attack
|
||||||
--Traited allows for physical attacks
|
--Traited allows for physical attacks
|
||||||
if skill.isRanged or action.actionType == ActionType.Magic or action.actionType == ActionType.Physical then
|
if target.allegiance != caster.allegiance and (skill.isRanged or action.actionType == ActionType.Magic or action.actionType == ActionType.Physical) then
|
||||||
--Set action's hit rate to 0
|
--Set action's hit rate to 0
|
||||||
action.hirRate = 0.0;
|
action.hirRate = 0.0;
|
||||||
|
--Remove status and add message
|
||||||
|
actionContainer.AddAction(target.statusEffects.RemoveStatusEffectForBattleAction(effect));
|
||||||
end
|
end
|
||||||
|
|
||||||
--Remove status and add message
|
|
||||||
actionsList.AddAction(target.statusEffects.RemoveForBattleAction(effect));
|
|
||||||
end;
|
end;
|
@ -1,2 +1,5 @@
|
|||||||
|
function onGain(target, effect)
|
||||||
|
end;
|
||||||
|
|
||||||
function onLose(target, effect)
|
function onLose(target, effect)
|
||||||
end;
|
end;
|
@ -1,3 +1,5 @@
|
|||||||
|
require("modifiers")
|
||||||
|
|
||||||
function onGain(owner, effect)
|
function onGain(owner, effect)
|
||||||
owner.SubtractMod(modifiersGlobal.Defense, effect.GetMagnitude());
|
owner.SubtractMod(modifiersGlobal.Defense, effect.GetMagnitude());
|
||||||
end
|
end
|
||||||
|
@ -1,13 +1,6 @@
|
|||||||
--Consistent 85HP/tick normal; 113HP/tick with AF pants
|
require("modifiers")
|
||||||
|
|
||||||
function onGain(owner, effect)
|
function onGain(owner, effect)
|
||||||
local magnitude = 85
|
|
||||||
|
|
||||||
--Need a better way to set magnitude when adding effects
|
|
||||||
if effect.GetTier() == 2 then
|
|
||||||
magnitude = 113;
|
|
||||||
end
|
|
||||||
effect.SetMagnitude(magnitude);
|
|
||||||
|
|
||||||
owner.AddMod(modifiersGlobal.Regen, effect.GetMagnitude());
|
owner.AddMod(modifiersGlobal.Regen, effect.GetMagnitude());
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
|
||||||
|
|
||||||
--Increases block rate by 100%
|
--Increases block rate by 100%
|
||||||
function onGain(owner, effect)
|
function onGain(owner, effect)
|
||||||
@ -11,12 +10,21 @@ function onLose(owner, effect)
|
|||||||
end
|
end
|
||||||
|
|
||||||
--Applys Divine Regen to party in range when healed by cure or cura
|
--Applys Divine Regen to party in range when healed by cure or cura
|
||||||
function onBlock(caster, target, effect, skill, action, actionContainer)
|
function onHealed(caster, target, effect, skill, action, actionContainer)
|
||||||
-- cure cura
|
-- cure cura
|
||||||
if (skill.id == 27346 or skill.id == 27347) and (caster != owner) then
|
if (skill.id == 27346 or skill.id == 27347) and (caster != owner) then
|
||||||
|
local regenDuration = 30;
|
||||||
|
--Apparently heals for 85 without AF, 113 with. Unsure if these can be improved with stats
|
||||||
|
local magnitude = 85
|
||||||
|
|
||||||
|
--Need a better way to set magnitude when adding effects
|
||||||
|
if effect.GetTier() == 2 then
|
||||||
|
magnitude = 113;
|
||||||
|
end
|
||||||
|
|
||||||
--For each party member in range, add divine regen
|
--For each party member in range, add divine regen
|
||||||
for chara in owner.GetPartyMembersInRange(8) do
|
for chara in owner.GetPartyMembersInRange(8) do
|
||||||
local addAction = chara.statusEffects.AddStatusForBattleAction(223264, 2);
|
local addAction = chara.statusEffects.AddStatusForBattleAction(223264, effect.GetTier(), magnitude, regenDuration);
|
||||||
actionContainer.AddAction(addAction);
|
actionContainer.AddAction(addAction);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -3,17 +3,24 @@ require("battleutils")
|
|||||||
|
|
||||||
--Dread spike completely nullifies a physical action and absorbs how much damage it would have done (when it's powered up)
|
--Dread spike completely nullifies a physical action and absorbs how much damage it would have done (when it's powered up)
|
||||||
--I'm going to assume it only absorbs half damage without LS/PS up
|
--I'm going to assume it only absorbs half damage without LS/PS up
|
||||||
--When I say it nullifies an attack, it even gets rid of the message. It's as if the attack didn't happen
|
--When I say it nullifies an attack, it even gets rid of the message. It's as if the damage action didn't happen.
|
||||||
|
--It still shows the enemy's "Enemy used [command]." message but there is no 0 damage dealt message.
|
||||||
--Don't know how this works with multi-hit attacks or even how it works with stoneskin or other buffs that respond to damage
|
--Don't know how this works with multi-hit attacks or even how it works with stoneskin or other buffs that respond to damage
|
||||||
-- I dont really know how this should work...
|
-- I dont really know how this should work...
|
||||||
function onDamageTaken(effect, attacker, defender, action, actionContainer)
|
function onDamageTaken(effect, attacker, defender, action, actionContainer)
|
||||||
if action.actionType == ActionType.Physical then
|
if action.actionType == ActionType.Physical then
|
||||||
--maybe this works?
|
--maybe this works?
|
||||||
local absorbAmount = action.amount;
|
local absorbPercent = 0.5;
|
||||||
|
|
||||||
|
if effect.GetTier() == 2 then
|
||||||
|
absorbPercent = 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
local absorbAmount = action.amount * absorbPercent;
|
||||||
action.amount = 0;
|
action.amount = 0;
|
||||||
action.worldMasterTextId = 0;
|
action.worldMasterTextId = 0;
|
||||||
|
|
||||||
attacker.AddHP(absorbAmount);
|
defender.AddHP(absorbAmount);
|
||||||
--30451: You recover [absorbAmount] HP.
|
--30451: You recover [absorbAmount] HP.
|
||||||
actionContainer.AddHPAction(defender.actorId, 30451, absorbAmount)
|
actionContainer.AddHPAction(defender.actorId, 30451, absorbAmount)
|
||||||
--Dread Spike is lost after absorbing hp
|
--Dread Spike is lost after absorbing hp
|
||||||
|
30
data/scripts/effects/excruciate.lua
Normal file
30
data/scripts/effects/excruciate.lua
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
require("modifiers")
|
||||||
|
require("battleutils")
|
||||||
|
|
||||||
|
--Gradually increases critical rate of spells
|
||||||
|
function onTick(owner, effect)
|
||||||
|
--No clue how fast the crit rate increases or how often it ticks
|
||||||
|
--Only clue I have to go on is that the strategy seemed to be to use it
|
||||||
|
--before or after fire/thunder and you'd usually get a crit at firaga/thundaga
|
||||||
|
--Random guess, going to assume it's 25 crit rating every 3s, 50 crit rating traited
|
||||||
|
--That's 4% and 8% every 3 seconds of actual crit
|
||||||
|
local ratePerTick = 25;
|
||||||
|
|
||||||
|
if effect.GetTier() == 2 then
|
||||||
|
ratePerTick = 50;
|
||||||
|
end
|
||||||
|
|
||||||
|
effect.SetMagnitude(effect.GetMagnitude() + ratePerTick);
|
||||||
|
end
|
||||||
|
|
||||||
|
--Excruciate seems to have an effect on all hits of aoe spells, so it's changing the crit bonus of the skill itself
|
||||||
|
--rather than on a hit by hit basis
|
||||||
|
function onCommandStart(effect, owner, skill, actionContainer)
|
||||||
|
skill.bonusCritRate = skill.bonusCritRate + effect.GetMagnitude();
|
||||||
|
end
|
||||||
|
|
||||||
|
function onCrit(effect, attacker, defender, action, actionContainer)
|
||||||
|
if action.commandType == CommandType.Spell then
|
||||||
|
actionContainer.AddAction(attacker.statusEffects.RemoveStatusEffectForBattleAction(effect));
|
||||||
|
end
|
||||||
|
end
|
@ -3,9 +3,5 @@ function onGain(owner, effect)
|
|||||||
effect.SetExtra(effect.GetMagnitude());
|
effect.SetExtra(effect.GetMagnitude());
|
||||||
end
|
end
|
||||||
|
|
||||||
function onTick(owner, effect)
|
|
||||||
print("hi")
|
|
||||||
end
|
|
||||||
|
|
||||||
function onLose(owner, effect)
|
function onLose(owner, effect)
|
||||||
end
|
end
|
||||||
|
10
data/scripts/effects/haste.lua
Normal file
10
data/scripts/effects/haste.lua
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
require("modifiers")
|
||||||
|
|
||||||
|
--Set magnitude to milliseconds that HF will reduce delay by
|
||||||
|
function onGain(target, effect)
|
||||||
|
target.SubtractMod(modifiersGlobal.AttackDelay, effect.GetMagnitude());
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onLose(target, effect)
|
||||||
|
target.AddMod(modifiersGlobal.AttackDelay, effect.GetMagnitude());
|
||||||
|
end;
|
@ -4,6 +4,8 @@ require("modifiers");
|
|||||||
--The player in this capture was a Dragoon, so this is untraited.
|
--The player in this capture was a Dragoon, so this is untraited.
|
||||||
--Traited Hawk's Eye says it increases Accuracy by 50%.
|
--Traited Hawk's Eye says it increases Accuracy by 50%.
|
||||||
--This could mean traited hawk's eye gives 28.125% (18.75% * 1.5) or it could mean it gives 68.75% (18.75% + 50%)
|
--This could mean traited hawk's eye gives 28.125% (18.75% * 1.5) or it could mean it gives 68.75% (18.75% + 50%)
|
||||||
|
--It's also possible that Hawk's Eye gives 15 + 15% accuracy untraited, which would give 450.85, which would be rounded down.
|
||||||
|
--In that case, traited hawks eye could be 15 + 22.5% or 22.5 + 22.5% or (15 + 15%) * 1.5
|
||||||
function onGain(target, effect)
|
function onGain(target, effect)
|
||||||
local accuracyMod = 0.1875;
|
local accuracyMod = 0.1875;
|
||||||
|
|
||||||
|
@ -11,5 +11,5 @@ function onGain(target, effect)
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function onLose(target, effect)
|
function onLose(target, effect)
|
||||||
target.SetMaxHP(target.GetMaxHP() * 0.75);
|
target.SetMaxHP(target.GetMaxHP() / 1.25);
|
||||||
end;
|
end;
|
@ -1,13 +1,10 @@
|
|||||||
require("modifiers")
|
require("modifiers")
|
||||||
|
|
||||||
--will this break with things like slow?
|
--Set magnitude to milliseconds that HF will reduce delay by
|
||||||
function onGain(target, effect)
|
function onGain(target, effect)
|
||||||
local currDelay = target.GetMod(modifiersGlobal.AttackDelay);
|
target.SubtractMod(modifiersGlobal.AttackDelay), effect.GetMagnitude());
|
||||||
target.SetMod(modifiersGlobal.AttackDelay), 0.66 * currDelay);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function onLose(target, effect)
|
function onLose(target, effect)
|
||||||
local currDelay = target.GetMod(modifiersGlobal.AttackDelay);
|
target.AddMod(modifiersGlobal.AttackDelay), effect.GetMagnitude());
|
||||||
target.SetMod(modifiersGlobal.AttackDelay), 1.50 * currDelay);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
require("modifiers")
|
||||||
|
|
||||||
--100 TP per tick without AF. 133 TP per tick with AF
|
--100 TP per tick without AF. 133 TP per tick with AF
|
||||||
function onGain(owner, effect)
|
function onGain(owner, effect)
|
||||||
owner.AddMod(modifiersGlobal.Regain, effect.GetMagnitude());
|
owner.AddMod(modifiersGlobal.Regain, effect.GetMagnitude());
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
require("modifiers")
|
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
require("battleutils")
|
||||||
|
|
||||||
--Untraited reduces cooldown by 50%
|
--Untraited reduces cooldown by 50%
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
require("modifiers")
|
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
require("battleutils")
|
||||||
|
|
||||||
--Heals for 30%? of damage dealt on auto attacks.
|
--Heals for 30%? of damage dealt on auto attacks.
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
require("modifiers")
|
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
require("battleutils")
|
||||||
|
|
||||||
function onHit(effect, attacker, defender, action, actionContainer)
|
function onHit(effect, attacker, defender, action, actionContainer)
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
require("modifiers")
|
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
require("battleutils")
|
||||||
|
|
||||||
--Heals for 30%? of damage dealt on auto attacks.
|
--Heals for 30%? of damage dealt on auto attacks.
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
--Bloodletter2 is the uncomboed version of Bloodletter. It doesn't deal any additional damage when it falls off but has the same tick damage
|
require("modifiers")
|
||||||
|
|
||||||
function onGain(owner, effect)
|
function onGain(owner, effect)
|
||||||
owner.SubtractMod(modifiersGlobal.MagicEvasion, effect.GetMagnitude());
|
owner.SubtractMod(modifiersGlobal.MagicEvasion, effect.GetMagnitude());
|
||||||
end
|
end
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
require("modifiers")
|
|
||||||
require("battleutils")
|
|
||||||
|
|
||||||
--Forces crit on attacks made with axes
|
--Forces crit on attacks made with axes
|
||||||
function onPreAction(caster, target, effect, skill, action, actionContainer)
|
function onPreAction(effect, caster, target, skill, action, actionContainer)
|
||||||
--Assuming "attacks made with axes" means skills specific to MRD/WAR
|
--Assuming "attacks made with axes" means skills specific to MRD/WAR
|
||||||
if (skill.job == 3 or skill.job == 17) then
|
if (skill.job == 3 or skill.job == 17) then
|
||||||
--Set action's crit rate to 100%
|
--Set action's crit rate to 100%
|
||||||
|
12
data/scripts/effects/minuet_of_rigor.lua
Normal file
12
data/scripts/effects/minuet_of_rigor.lua
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
require("modifiers")
|
||||||
|
|
||||||
|
function onGain(owner, effect)
|
||||||
|
--Only one song per bard can be active, need to figure out a good way to do this
|
||||||
|
owner.AddMod(modifiersGlobal.Accuracy, effect.GetMagnitude());
|
||||||
|
owner.AddMod(modifiersGlobal.MagicAccuracy, effect.GetMagnitude());
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onLose(owner, effect)
|
||||||
|
owner.SubtractMod(modifiersGlobal.Accuracy, effect.GetMagnitude());
|
||||||
|
owner.SubtractMod(modifiersGlobal.MagicAccuracy, effect.GetMagnitude());
|
||||||
|
end;
|
12
data/scripts/effects/necrogenesis.lua
Normal file
12
data/scripts/effects/necrogenesis.lua
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
require("modifiers")
|
||||||
|
require("battleutils")
|
||||||
|
|
||||||
|
function onHit(effect, attacker, defender, action, actionContainer)
|
||||||
|
if action.commandType == CommandType.Spell then
|
||||||
|
--Necrogenesis returns 75% of damage done rounded up(?) as MP.
|
||||||
|
local hpToReturn = math.ceil(0.75 * action.amount);
|
||||||
|
attacker.AddMp(hpToReturn);
|
||||||
|
actionContainer.AddHPAction(attacker.actorId, 33012, mpToReturn);
|
||||||
|
actionContainer.AddAction(attacker.statusEffects.RemoveStatusEffectForBattleAction(effect));
|
||||||
|
end
|
||||||
|
end
|
@ -1,6 +1,4 @@
|
|||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
|
||||||
|
|
||||||
--Add 30 raw block rate. No idea how much block it actually gives.
|
--Add 30 raw block rate. No idea how much block it actually gives.
|
||||||
function onGain(owner, effect)
|
function onGain(owner, effect)
|
||||||
|
10
data/scripts/effects/paeon_of_war.lua
Normal file
10
data/scripts/effects/paeon_of_war.lua
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
require("modifiers")
|
||||||
|
|
||||||
|
function onGain(owner, effect)
|
||||||
|
--Only one song per bard can be active, need to figure out a good way to do this
|
||||||
|
owner.AddMod(modifiersGlobal.Regain, effect.GetMagnitude());
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onLose(owner, effect)
|
||||||
|
owner.SubtractMod(modifiersGlobal.Regain, effect.GetMagnitude());
|
||||||
|
end;
|
17
data/scripts/effects/parsimony.lua
Normal file
17
data/scripts/effects/parsimony.lua
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
require("modifiers")
|
||||||
|
require("battleutils")
|
||||||
|
|
||||||
|
--Forces crit of a single WS action from rear.
|
||||||
|
function onMagicCast(caster, effect, skill)
|
||||||
|
skill.mpCost = skill.mpCost / 2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function onHit(effect, attacker, defender, action, actionContainer)
|
||||||
|
if action.commandType == CommandType.Spell then
|
||||||
|
--Parsimony returns 35% of damage done rounded up as MP.
|
||||||
|
local mpToReturn = math.ceil(0.35 * action.amount);
|
||||||
|
attacker.AddMp(mpToReturn);
|
||||||
|
actionContainer.AddMPAction(attacker.actorId, 33007, mpToReturn);
|
||||||
|
actionContainer.AddAction(attacker.statusEffects.RemoveStatusEffectForBattleAction(effect));
|
||||||
|
end
|
||||||
|
end
|
7
data/scripts/effects/poison.lua
Normal file
7
data/scripts/effects/poison.lua
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
function onGain(owner, effect)
|
||||||
|
owner.AddMod(modifiersGlobal.RegenDown, effect.GetMagnitude());
|
||||||
|
end
|
||||||
|
|
||||||
|
function onLose(owner, effect)
|
||||||
|
owner.SubtractMod(modifiersGlobal.RegenDown, effect.GetMagnitude());
|
||||||
|
end
|
@ -1,5 +1,4 @@
|
|||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
require("battleutils")
|
||||||
|
|
||||||
--https://www.bluegartr.com/threads/107403-Stats-and-how-they-work/page22
|
--https://www.bluegartr.com/threads/107403-Stats-and-how-they-work/page22
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
require("battleutils")
|
||||||
|
|
||||||
--https://www.bluegartr.com/threads/107403-Stats-and-how-they-work/page22
|
--https://www.bluegartr.com/threads/107403-Stats-and-how-they-work/page22
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
require("battleutils")
|
||||||
|
|
||||||
--https://www.bluegartr.com/threads/107403-Stats-and-how-they-work/page22
|
--https://www.bluegartr.com/threads/107403-Stats-and-how-they-work/page22
|
||||||
|
@ -5,21 +5,18 @@ function onGain(target, effect)
|
|||||||
--http://forum.square-enix.com/ffxiv/threads/41900-White-Mage-A-Guide
|
--http://forum.square-enix.com/ffxiv/threads/41900-White-Mage-A-Guide
|
||||||
--5-4-5-4-5-4-5-4-5 repeating points of Enhancing for 1 defense
|
--5-4-5-4-5-4-5-4-5 repeating points of Enhancing for 1 defense
|
||||||
--4.56 * Enhancing Potency
|
--4.56 * Enhancing Potency
|
||||||
local defenseBuff = 5-- 4.56 * effect.GetMagnitude();
|
local defenseBuff = 4.56 * effect.GetMagnitude();
|
||||||
local magicDefenseBuff = 0;
|
local magicDefenseBuff = 0;
|
||||||
|
|
||||||
target.AddMod(modifiersGlobal.Defense, defenseBuff);
|
target.AddMod(modifiersGlobal.Defense, defenseBuff);
|
||||||
|
|
||||||
--27365: Enhanced Protect: Increases magic defense gained from Protect.
|
--27365: Enhanced Protect: Increases magic defense gained from Protect.
|
||||||
--There is no "magic defense" stat, instead it gives stats to each resist stat.
|
--There is no "magic defense" stat, instead it gives stats to each resist stat.
|
||||||
--if effect.GetTier() >= 2 then
|
magicDefenseBuff = 6.67 * effect.GetMagnitude();
|
||||||
--7-6-7 repeating
|
for i = modifiersGlobal.ResistFire, modifiersGlobal.ResistWater do
|
||||||
--6.67 * Enhancing Potency
|
target.AddMod(i, magicDefenseBuff);
|
||||||
magicDefenseBuff = 5--6.67 * effect.GetMagnitude();
|
end
|
||||||
for i = modifiersGlobal.ResistFire, modifiersGlobal.ResistWater do
|
|
||||||
target.AddMod(i, magicDefenseBuff);
|
|
||||||
end
|
|
||||||
--end
|
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -31,13 +28,9 @@ function onLose(target, effect)
|
|||||||
|
|
||||||
--27365: Enhanced Protect: Increases magic defense gained from Protect.
|
--27365: Enhanced Protect: Increases magic defense gained from Protect.
|
||||||
--There is no "magic defense" stat, instead it gives stats to each resist stat.
|
--There is no "magic defense" stat, instead it gives stats to each resist stat.
|
||||||
--if effect.GetTier() >= 2 then
|
magicDefenseBuff = 6.67 * effect.GetMagnitude();
|
||||||
--7-6-7 repeating
|
for i = modifiersGlobal.ResistFire, modifiersGlobal.ResistWater do
|
||||||
--6.67 * Enhancing Potency
|
target.SubtractMod(i, magicDefenseBuff);
|
||||||
magicDefenseBuff = 6.67 * effect.GetMagnitude();
|
end
|
||||||
for i = modifiersGlobal.ResistFire, modifiersGlobal.ResistWater do
|
|
||||||
target.SubtractMod(i, magicDefenseBuff);
|
|
||||||
end
|
|
||||||
--end
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
require("battleutils")
|
||||||
|
|
||||||
--Untraited reduces cooldown by 50%
|
--Untraited reduces cooldown by 50%
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
require("global")
|
|
||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
|
||||||
require("utils")
|
require("utils")
|
||||||
|
|
||||||
parryPerDT = 20;
|
parryPerDT = 20;
|
||||||
|
7
data/scripts/effects/refresh.lua
Normal file
7
data/scripts/effects/refresh.lua
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
function onGain(owner, effect)
|
||||||
|
owner.AddMod(modifiersGlobal.Refresh, effect.GetMagnitude());
|
||||||
|
end
|
||||||
|
|
||||||
|
function onLose(owner, effect)
|
||||||
|
owner.SubtractMod(modifiersGlobal.Refresh, effect.GetMagnitude());
|
||||||
|
end
|
7
data/scripts/effects/regain.lua
Normal file
7
data/scripts/effects/regain.lua
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
function onGain(owner, effect)
|
||||||
|
owner.AddMod(modifiersGlobal.Regain, effect.GetMagnitude());
|
||||||
|
end
|
||||||
|
|
||||||
|
function onLose(owner, effect)
|
||||||
|
owner.SubtractMod(modifiersGlobal.Regain, effect.GetMagnitude());
|
||||||
|
end
|
@ -1,8 +1,8 @@
|
|||||||
--Regen is modified by Enhancing Magic Potency. Formula here: http://forum.square-enix.com/ffxiv/threads/41900-White-Mage-A-Guide
|
--Regen is modified by Enhancing Magic Potency. Formula here: http://forum.square-enix.com/ffxiv/threads/41900-White-Mage-A-Guide
|
||||||
function onGain(owner, effect)
|
function onGain(owner, effect)
|
||||||
owner.AddMod(modifiersGlobal.Regen, effect.magnitude);
|
owner.AddMod(modifiersGlobal.Regen, effect.GetMagnitude());
|
||||||
end
|
end
|
||||||
|
|
||||||
function onLose(owner, effect)
|
function onLose(owner, effect)
|
||||||
owner.SubtractMod(modifiersGlobal.Regen, effect.magnitude);
|
owner.SubtractMod(modifiersGlobal.Regen, effect.GetMagnitude());
|
||||||
end
|
end
|
||||||
|
15
data/scripts/effects/resonance2.lua
Normal file
15
data/scripts/effects/resonance2.lua
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
require("modifiers")
|
||||||
|
require("battleutils")
|
||||||
|
|
||||||
|
--Increases range of a single spell, no clue by how much, 25% is a random guess
|
||||||
|
--It isn't clear if it has an effect on the aoe portion of skills or just the normal range, i've seen people on the OF say both.
|
||||||
|
function onMagicStart(caster, effect, skill)
|
||||||
|
skill.range = skill.range * 1.25;
|
||||||
|
end;
|
||||||
|
|
||||||
|
--The effect falls off after the skill is finished, meaning if you start a cast and cancel, it shouldn't fall off.
|
||||||
|
function onCommandFinish(effect, owner, skill, actionContainer)
|
||||||
|
if action.commandType == CommandType.Spell then
|
||||||
|
actionContainer.AddAction(owner.statusEffects.RemoveStatusEffectForBattleAction(effect));
|
||||||
|
end
|
||||||
|
end
|
@ -1,4 +1,5 @@
|
|||||||
require("modifiers")
|
require("modifiers")
|
||||||
|
require("battleutils")
|
||||||
|
|
||||||
function onGain(target, effect)
|
function onGain(target, effect)
|
||||||
--Untraited Sentinel is 30% damage taken down, traited is 50%
|
--Untraited Sentinel is 30% damage taken down, traited is 50%
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
require("global")
|
|
||||||
require("utils")
|
|
||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
|
||||||
require("battleutils")
|
|
||||||
|
|
||||||
function onGain(owner, effect)
|
function onGain(owner, effect)
|
||||||
|
|
||||||
@ -10,7 +6,7 @@ function onGain(owner, effect)
|
|||||||
end
|
end
|
||||||
|
|
||||||
--Using extra for how much mitigation stoneskin has
|
--Using extra for how much mitigation stoneskin has
|
||||||
function onPostAction(owner, effect, caster, skill, action, actionContainer)
|
function onPostAction(caster, target, effect, skill, action, actionContainer)
|
||||||
if (owner.GetMod(modifiersGlobal.Stoneskin) <= 0) then
|
if (owner.GetMod(modifiersGlobal.Stoneskin) <= 0) then
|
||||||
actionContainer.AddAction(owner.statusEffects.RemoveStatusEffectForBattleAction(effect));
|
actionContainer.AddAction(owner.statusEffects.RemoveStatusEffectForBattleAction(effect));
|
||||||
end
|
end
|
||||||
|
7
data/scripts/effects/tempered_will.lua
Normal file
7
data/scripts/effects/tempered_will.lua
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
function onGain(owner, effect)
|
||||||
|
owner.AddMod(modifiersGlobal.KnockbackImmune, 1);
|
||||||
|
end
|
||||||
|
|
||||||
|
function onLose(owner, effect)
|
||||||
|
owner.SubtractMod(modifiersGlobal.KnockbackImmune, 1);
|
||||||
|
end
|
7
data/scripts/effects/tp_bleed.lua
Normal file
7
data/scripts/effects/tp_bleed.lua
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
function onGain(owner, effect)
|
||||||
|
owner.SubtractMod(modifiersGlobal.Regain, effect.GetMagnitude());
|
||||||
|
end
|
||||||
|
|
||||||
|
function onLose(owner, effect)
|
||||||
|
owner.AddMod(modifiersGlobal.Regain, effect.GetMagnitude());
|
||||||
|
end
|
@ -1,7 +1,5 @@
|
|||||||
require("global")
|
|
||||||
require("modifiers")
|
require("modifiers")
|
||||||
require("hiteffect")
|
require("battleutils")
|
||||||
require("utils")
|
|
||||||
|
|
||||||
--Unclear what the exact damage is but it seems like it's the total amount of damage the attack would have done before parrying
|
--Unclear what the exact damage is but it seems like it's the total amount of damage the attack would have done before parrying
|
||||||
function onDamageTaken(effect, attacker, defender, action, actionContainer)
|
function onDamageTaken(effect, attacker, defender, action, actionContainer)
|
||||||
|
@ -46,30 +46,30 @@ INSERT INTO `server_battle_traits` VALUES (27241,'enhanced_quelling_strike',7,32
|
|||||||
INSERT INTO `server_battle_traits` VALUES (27243,'enhanced_raging_strike',7,36,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27243,'enhanced_raging_strike',7,36,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27244,'enhanced_decoy',7,16,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27244,'enhanced_decoy',7,16,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27245,'swift_chameleon',7,48,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27245,'swift_chameleon',7,48,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27246,'enhanced_physical_crit_accuracy',7,40,65,10);
|
INSERT INTO `server_battle_traits` VALUES (27246,'enhanced_physical_crit_accuracy',7,40,64,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27247,'enhanced_physical_crit_evasion',7,20,66,10);
|
INSERT INTO `server_battle_traits` VALUES (27247,'enhanced_physical_crit_evasion',7,20,65,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27248,'enhanced_physical_evasion',7,12,16,8);
|
INSERT INTO `server_battle_traits` VALUES (27248,'enhanced_physical_evasion',7,12,16,8);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27249,'enhanced_physical_accuracy',7,8,16,8);
|
INSERT INTO `server_battle_traits` VALUES (27249,'enhanced_physical_accuracy',7,8,15,8);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27250,'enhanced_physical_accuracy_ii',7,24,16,10);
|
INSERT INTO `server_battle_traits` VALUES (27250,'enhanced_physical_accuracy_ii',7,24,15,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27120,'enhanced_second_wind',2,20,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27120,'enhanced_second_wind',2,20,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27121,'enhanced_blindside',2,24,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27121,'enhanced_blindside',2,24,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27122,'swift_taunt',2,48,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27122,'swift_taunt',2,48,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27123,'enhanced_featherfoot',2,28,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27123,'enhanced_featherfoot',2,28,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27124,'enhanced_fists_of_fire',2,44,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27124,'enhanced_fists_of_fire',2,44,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27125,'enhanced_fists_of_earth',2,36,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27125,'enhanced_fists_of_earth',2,36,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27126,'enhanced_physical_accuracy',2,16,16,8);
|
INSERT INTO `server_battle_traits` VALUES (27126,'enhanced_physical_accuracy',2,16,15,8);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27127,'enhanced_physical_attack',2,8,17,8);
|
INSERT INTO `server_battle_traits` VALUES (27127,'enhanced_physical_attack',2,8,17,8);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27128,'enhanced_physical_attack_ii',2,40,17,10);
|
INSERT INTO `server_battle_traits` VALUES (27128,'enhanced_physical_attack_ii',2,40,17,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27129,'enhanced_evasion',2,12,16,8);
|
INSERT INTO `server_battle_traits` VALUES (27129,'enhanced_evasion',2,12,16,8);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27130,'enhanced_physical_crit_damage',2,32,67,10);
|
INSERT INTO `server_battle_traits` VALUES (27130,'enhanced_physical_crit_damage',2,32,66,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27160,'enhanced_sentinel',3,36,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27160,'enhanced_sentinel',3,36,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27161,'enhanced_flash',3,28,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27161,'enhanced_flash',3,28,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27162,'enhanced_flash_ii',3,48,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27162,'enhanced_flash_ii',3,48,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27163,'enhanced_rampart',3,12,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27163,'enhanced_rampart',3,12,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27164,'swift_aegis_boon',3,20,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27164,'swift_aegis_boon',3,20,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27165,'enhanced_outmaneuver',3,44,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27165,'enhanced_outmaneuver',3,44,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27167,'enhanced_block_rate',3,16,52,10);
|
INSERT INTO `server_battle_traits` VALUES (27167,'enhanced_block_rate',3,16,51,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27166,'enhanced_physical_crit_resilience',3,32,68,10);
|
INSERT INTO `server_battle_traits` VALUES (27166,'enhanced_physical_crit_resilience',3,32,67,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27168,'enhanced_physical_defense',3,8,18,10);
|
INSERT INTO `server_battle_traits` VALUES (27168,'enhanced_physical_defense',3,8,18,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27169,'enhanced_physical_defense_ii',3,24,18,10);
|
INSERT INTO `server_battle_traits` VALUES (27169,'enhanced_physical_defense_ii',3,24,18,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27170,'enhanced_physical_defense_iii',3,40,18,12);
|
INSERT INTO `server_battle_traits` VALUES (27170,'enhanced_physical_defense_iii',3,40,18,12);
|
||||||
@ -79,8 +79,8 @@ INSERT INTO `server_battle_traits` VALUES (27202,'swift_bloodbath',4,16,0,0);
|
|||||||
INSERT INTO `server_battle_traits` VALUES (27203,'enhanced_enduring_march',4,48,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27203,'enhanced_enduring_march',4,48,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27204,'enhanced_rampage',4,44,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27204,'enhanced_rampage',4,44,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27205,'enhanced_berserk',4,36,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27205,'enhanced_berserk',4,36,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27206,'enhanced_physical_crit_evasion',4,32,66,10);
|
INSERT INTO `server_battle_traits` VALUES (27206,'enhanced_physical_crit_evasion',4,32,65,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27207,'enhanced_parry',4,24,69,8);
|
INSERT INTO `server_battle_traits` VALUES (27207,'enhanced_parry',4,24,68,8);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27208,'enhanced_physical_defense',4,12,18,8);
|
INSERT INTO `server_battle_traits` VALUES (27208,'enhanced_physical_defense',4,12,18,8);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27209,'enhanced_physical_defense_ii',4,40,18,10);
|
INSERT INTO `server_battle_traits` VALUES (27209,'enhanced_physical_defense_ii',4,40,18,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27210,'enhanced_physical_attack_power',4,8,17,8);
|
INSERT INTO `server_battle_traits` VALUES (27210,'enhanced_physical_attack_power',4,8,17,8);
|
||||||
@ -90,8 +90,8 @@ INSERT INTO `server_battle_traits` VALUES (27282,'enhanced_life_surge',8,32,0,0)
|
|||||||
INSERT INTO `server_battle_traits` VALUES (27283,'enhanced_blood_for_blood',8,48,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27283,'enhanced_blood_for_blood',8,48,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27284,'swift_blood_for_blood',8,16,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27284,'swift_blood_for_blood',8,16,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27285,'enhanced_keen_flurry',8,36,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27285,'enhanced_keen_flurry',8,36,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27286,'store_tp',8,12,64,50);
|
INSERT INTO `server_battle_traits` VALUES (27286,'store_tp',8,12,63,50);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27287,'enhanced_physical_crit_accuracy',8,24,65,10);
|
INSERT INTO `server_battle_traits` VALUES (27287,'enhanced_physical_crit_accuracy',8,24,64,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27288,'enhanced_physical_attack_power',8,8,17,8);
|
INSERT INTO `server_battle_traits` VALUES (27288,'enhanced_physical_attack_power',8,8,17,8);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27289,'enhanced_physical_attack_power_ii',8,20,17,10);
|
INSERT INTO `server_battle_traits` VALUES (27289,'enhanced_physical_attack_power_ii',8,20,17,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27290,'enhanced_physical_attack_power_iii',8,40,17,10);
|
INSERT INTO `server_battle_traits` VALUES (27290,'enhanced_physical_attack_power_iii',8,40,17,10);
|
||||||
@ -104,8 +104,8 @@ INSERT INTO `server_battle_traits` VALUES (27325,'enhanced_enfeebling_magic',22,
|
|||||||
INSERT INTO `server_battle_traits` VALUES (27326,'enhanced_enfeebling_magic_ii',22,28,26,10);
|
INSERT INTO `server_battle_traits` VALUES (27326,'enhanced_enfeebling_magic_ii',22,28,26,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27327,'enhanced_magic_potency',22,8,23,8);
|
INSERT INTO `server_battle_traits` VALUES (27327,'enhanced_magic_potency',22,8,23,8);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27328,'enhanced_magic_potency_ii',22,28,23,10);
|
INSERT INTO `server_battle_traits` VALUES (27328,'enhanced_magic_potency_ii',22,28,23,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27329,'enhanced_magic_crit_potency',22,40,70,10);
|
INSERT INTO `server_battle_traits` VALUES (27329,'enhanced_magic_crit_potency',22,40,69,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27330,'auto-refresh',22,20,45,3);
|
INSERT INTO `server_battle_traits` VALUES (27330,'auto-refresh',22,20,44,3);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27360,'swift_sacred_prism',23,40,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27360,'swift_sacred_prism',23,40,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27361,'swift_shroud_of_saints',23,44,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27361,'swift_shroud_of_saints',23,44,0,0);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27362,'enhanced_blissful_mind',23,32,0,0);
|
INSERT INTO `server_battle_traits` VALUES (27362,'enhanced_blissful_mind',23,32,0,0);
|
||||||
@ -116,7 +116,7 @@ INSERT INTO `server_battle_traits` VALUES (27366,'greater_enhancing_magic',23,12
|
|||||||
INSERT INTO `server_battle_traits` VALUES (27367,'greater_healing',23,8,24,8);
|
INSERT INTO `server_battle_traits` VALUES (27367,'greater_healing',23,8,24,8);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27368,'greater_healing_ii',23,18,24,10);
|
INSERT INTO `server_battle_traits` VALUES (27368,'greater_healing_ii',23,18,24,10);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27369,'enhanced_magic_accuracy',23,16,27,8);
|
INSERT INTO `server_battle_traits` VALUES (27369,'enhanced_magic_accuracy',23,16,27,8);
|
||||||
INSERT INTO `server_battle_traits` VALUES (27370,'auto-refresh',23,20,45,3);
|
INSERT INTO `server_battle_traits` VALUES (27370,'auto-refresh',23,20,44,3);
|
||||||
/*!40000 ALTER TABLE `server_battle_traits` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `server_battle_traits` ENABLE KEYS */;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
commit;
|
commit;
|
||||||
@ -130,4 +130,4 @@ commit;
|
|||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
-- Dump completed on 2018-04-18 14:44:11
|
-- Dump completed on 2018-06-25 23:30:47
|
||||||
|
@ -76,9 +76,12 @@ INSERT INTO `server_statuseffects` VALUES (223129,'protect',18,2,0);
|
|||||||
INSERT INTO `server_statuseffects` VALUES (223133,'stoneskin',16402,1,0);
|
INSERT INTO `server_statuseffects` VALUES (223133,'stoneskin',16402,1,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223173,'covered',42,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223173,'covered',42,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223180,'regen',18,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223180,'regen',18,2,0);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223181,'refresh',18,2,0);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223182,'regain',18,2,0);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223183,'tp_bleed',42,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223205,'combo',42,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223205,'combo',42,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223206,'goring_blade',42,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223206,'goring_blade',42,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223207,'berserk2',1074806818,1,3000);
|
INSERT INTO `server_statuseffects` VALUES (223207,'berserk2',1074806818,1,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223208,'rampage2',1075855394,1,5000);
|
INSERT INTO `server_statuseffects` VALUES (223208,'rampage2',1075855394,1,5000);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223209,'fists_of_fire',1073742882,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223209,'fists_of_fire',1073742882,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223210,'fists_of_earth',1073742882,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223210,'fists_of_earth',1073742882,2,0);
|
||||||
@ -90,10 +93,16 @@ INSERT INTO `server_statuseffects` VALUES (223215,'life_surge_I',1048626,2,0);
|
|||||||
INSERT INTO `server_statuseffects` VALUES (223216,'life_surge_II',1048626,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223216,'life_surge_II',1048626,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223217,'life_surge_III',1048626,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223217,'life_surge_III',1048626,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223218,'dread_spike',16418,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223218,'dread_spike',16418,2,0);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223219,'blood_for_blood',8210,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223220,'barrage',3090,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223220,'barrage',3090,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223221,'raging_strike2',1074855970,1,0);
|
INSERT INTO `server_statuseffects` VALUES (223221,'raging_strike2',1074855970,1,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223227,'cleric_stance',8226,1,0);
|
INSERT INTO `server_statuseffects` VALUES (223227,'cleric_stance',8226,1,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223228,'blissful_mind',1073741858,1,1000);
|
INSERT INTO `server_statuseffects` VALUES (223228,'blissful_mind',1073741858,1,1000);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223229,'dark_seal2',1042,2,0);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223230,'resonance2',2578,1,0);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223231,'excruciate',2098194,2,3000);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223232,'necrogenesis',1048594,1,0);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223233,'parsimony',1049106,1,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223234,'sanguine_rite2',16402,1,0);
|
INSERT INTO `server_statuseffects` VALUES (223234,'sanguine_rite2',16402,1,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223236,'outmaneuver2',524338,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223236,'outmaneuver2',524338,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223237,'blindside2',8226,1,0);
|
INSERT INTO `server_statuseffects` VALUES (223237,'blindside2',8226,1,0);
|
||||||
@ -107,6 +116,10 @@ INSERT INTO `server_statuseffects` VALUES (223245,'spinning_heel',18,1,0);
|
|||||||
INSERT INTO `server_statuseffects` VALUES (223248,'divine_veil',36914,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223248,'divine_veil',36914,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223250,'vengeance',16418,1,5000);
|
INSERT INTO `server_statuseffects` VALUES (223250,'vengeance',16418,1,5000);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223251,'antagonize',1048626,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223251,'antagonize',1048626,2,0);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223253,'battle_voice',18,2,0);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223254,'ballad_of_magi',18,2,0);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223255,'paeon_of_war',18,2,0);
|
||||||
|
INSERT INTO `server_statuseffects` VALUES (223256,'minuet_of_rigor',18,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (223264,'divine_regen',18,2,0);
|
INSERT INTO `server_statuseffects` VALUES (223264,'divine_regen',18,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (228021,'heavy',42,2,0);
|
INSERT INTO `server_statuseffects` VALUES (228021,'heavy',42,2,0);
|
||||||
INSERT INTO `server_statuseffects` VALUES (253003,'evade_proc',34,1,0);
|
INSERT INTO `server_statuseffects` VALUES (253003,'evade_proc',34,1,0);
|
||||||
@ -127,4 +140,4 @@ commit;
|
|||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
-- Dump completed on 2018-05-27 17:59:13
|
-- Dump completed on 2018-06-25 23:30:50
|
||||||
|
Loading…
Reference in New Issue
Block a user