1
Fork 0
mirror of https://bitbucket.org/Ioncannon/project-meteor-server.git synced 2025-04-24 05:37:46 +00:00

Combat fixes

Add actor update flag for hotbar to send hotbar changes all at once.
Add script for equipping all actions for a class/job.

Fix multiple script errors.
Fix multiple status flag errors
Fix battle command db errors
Fix error in spawnnpc and yolo.
This commit is contained in:
Yogurt 2019-06-01 21:21:21 -07:00
parent a92ece58c1
commit 3104478263
20 changed files with 149 additions and 48 deletions

View file

@ -31,6 +31,7 @@ namespace FFXIVClassic_Map_Server.Actors
Stats = 0x100, Stats = 0x100,
Status = 0x200, Status = 0x200,
StatusTime = 0x400, StatusTime = 0x400,
Hotbar = 0x800,
AllNpc = 0xDF, AllNpc = 0xDF,
AllPlayer = 0x13F AllPlayer = 0x13F

View file

@ -26,13 +26,9 @@ namespace FFXIVClassic_Map_Server.actors.chara.ai.state
this.spell = Server.GetWorldManager().GetBattleCommand(spellId); this.spell = Server.GetWorldManager().GetBattleCommand(spellId);
var returnCode = spell.CallLuaFunction(owner, "onMagicPrepare", owner, target, spell); var returnCode = spell.CallLuaFunction(owner, "onMagicPrepare", owner, target, spell);
//Modify spell based on status effects. Need to do it here because they can modify cast times
List<StatusEffect> effects = owner.statusEffects.GetStatusEffectsByFlag((uint)(StatusEffectFlags.ActivateOnCastStart));
//modify skill based on status effects //modify skill based on status effects
//Do this here to allow buffs like Resonance to increase range before checking CanCast() //Do this here to allow buffs like Resonance to increase range before checking CanCast()
foreach (var effect in effects) owner.statusEffects.CallLuaFunctionByFlag((uint)StatusEffectFlags.ActivateOnCastStart, "onMagicCast", owner, spell);
lua.LuaEngine.CallLuaStatusEffectFunction(owner, effect, "onMagicCast", owner, effect, spell);
this.target = (spell.mainTarget & ValidTarget.SelfOnly) != 0 ? owner : target; this.target = (spell.mainTarget & ValidTarget.SelfOnly) != 0 ? owner : target;

View file

@ -123,6 +123,8 @@ namespace FFXIVClassic_Map_Server.Actors
private List<Director> ownedDirectors = new List<Director>(); private List<Director> ownedDirectors = new List<Director>();
private Director loginInitDirector = null; private Director loginInitDirector = null;
List<ushort> hotbarSlotsToUpdate = new List<ushort>();
public PlayerWork playerWork = new PlayerWork(); public PlayerWork playerWork = new PlayerWork();
public Session playerSession; public Session playerSession;
@ -1841,7 +1843,14 @@ namespace FFXIVClassic_Map_Server.Actors
} }
QueuePackets(propPacketUtil.Done()); QueuePackets(propPacketUtil.Done());
}
if ((updateFlags & ActorUpdateFlags.Hotbar) != 0)
{
UpdateHotbar(hotbarSlotsToUpdate);
hotbarSlotsToUpdate.Clear();
updateFlags ^= ActorUpdateFlags.Hotbar;
} }
@ -1857,12 +1866,11 @@ namespace FFXIVClassic_Map_Server.Actors
//Update commands and recast timers for the entire hotbar //Update commands and recast timers for the entire hotbar
public void UpdateHotbar() public void UpdateHotbar()
{ {
List<ushort> slotsToUpdate = new List<ushort>();
for (ushort i = charaWork.commandBorder; i < charaWork.commandBorder + 30; i++) for (ushort i = charaWork.commandBorder; i < charaWork.commandBorder + 30; i++)
{ {
slotsToUpdate.Add(i); hotbarSlotsToUpdate.Add(i);
} }
UpdateHotbar(slotsToUpdate); updateFlags |= ActorUpdateFlags.Hotbar;
} }
//Updates the hotbar and recast timers for only certain hotbar slots //Updates the hotbar and recast timers for only certain hotbar slots
@ -1934,7 +1942,6 @@ namespace FFXIVClassic_Map_Server.Actors
ushort lowHotbarSlot = (ushort)(hotbarSlot - charaWork.commandBorder); ushort lowHotbarSlot = (ushort)(hotbarSlot - charaWork.commandBorder);
ushort maxRecastTime = (ushort)(ability != null ? ability.maxRecastTimeSeconds : 5); ushort maxRecastTime = (ushort)(ability != null ? ability.maxRecastTimeSeconds : 5);
uint recastEnd = Utils.UnixTimeStampUTC() + maxRecastTime; uint recastEnd = Utils.UnixTimeStampUTC() + maxRecastTime;
List<ushort> slotsToUpdate = new List<ushort>();
Database.EquipAbility(this, classId, (ushort) (hotbarSlot - charaWork.commandBorder), commandId, recastEnd); Database.EquipAbility(this, classId, (ushort) (hotbarSlot - charaWork.commandBorder), commandId, recastEnd);
//If the class we're equipping for is the current class (need to find out if state_mainSkill is supposed to change when you're a job) //If the class we're equipping for is the current class (need to find out if state_mainSkill is supposed to change when you're a job)
@ -1946,8 +1953,8 @@ namespace FFXIVClassic_Map_Server.Actors
charaWork.parameterTemp.maxCommandRecastTime[lowHotbarSlot] = maxRecastTime; charaWork.parameterTemp.maxCommandRecastTime[lowHotbarSlot] = maxRecastTime;
charaWork.parameterSave.commandSlot_recastTime[lowHotbarSlot] = recastEnd; charaWork.parameterSave.commandSlot_recastTime[lowHotbarSlot] = recastEnd;
slotsToUpdate.Add(hotbarSlot); hotbarSlotsToUpdate.Add(hotbarSlot);
UpdateHotbar(slotsToUpdate); updateFlags |= ActorUpdateFlags.Hotbar;
} }
@ -1983,25 +1990,23 @@ namespace FFXIVClassic_Map_Server.Actors
Database.EquipAbility(this, GetCurrentClassOrJob(), (ushort)(lowHotbarSlot2), 0xA0F00000 ^ charaWork.command[hotbarSlot2], charaWork.parameterSave.commandSlot_recastTime[lowHotbarSlot2]); Database.EquipAbility(this, GetCurrentClassOrJob(), (ushort)(lowHotbarSlot2), 0xA0F00000 ^ charaWork.command[hotbarSlot2], charaWork.parameterSave.commandSlot_recastTime[lowHotbarSlot2]);
//Update slots on client //Update slots on client
List<ushort> slotsToUpdate = new List<ushort>(); hotbarSlotsToUpdate.Add(hotbarSlot1);
slotsToUpdate.Add(hotbarSlot1); hotbarSlotsToUpdate.Add(hotbarSlot2);
slotsToUpdate.Add(hotbarSlot2); updateFlags |= ActorUpdateFlags.Hotbar;
UpdateHotbar(slotsToUpdate);
} }
public void UnequipAbility(ushort hotbarSlot, bool printMessage = true) public void UnequipAbility(ushort hotbarSlot, bool printMessage = true)
{ {
List<ushort> slotsToUpdate = new List<ushort>(); ushort trueHotbarSlot = (ushort)(hotbarSlot + charaWork.commandBorder);
ushort trueHotbarSlot = (ushort)(hotbarSlot + charaWork.commandBorder - 1);
uint commandId = charaWork.command[trueHotbarSlot]; uint commandId = charaWork.command[trueHotbarSlot];
Database.UnequipAbility(this, (ushort)(trueHotbarSlot - charaWork.commandBorder)); Database.UnequipAbility(this, hotbarSlot);
charaWork.command[trueHotbarSlot] = 0; charaWork.command[trueHotbarSlot] = 0;
slotsToUpdate.Add(trueHotbarSlot); hotbarSlotsToUpdate.Add(trueHotbarSlot);
if(printMessage) if (printMessage && commandId != 0)
SendGameMessage(Server.GetWorldManager().GetActor(), 30604, 0x20, 0, 0xA0F00000 ^ commandId); SendGameMessage(Server.GetWorldManager().GetActor(), 30604, 0x20, 0, 0xA0F00000 ^ commandId);
UpdateHotbar(slotsToUpdate); updateFlags |= ActorUpdateFlags.Hotbar;
} }
//Finds the first hotbar slot with a given commandId. //Finds the first hotbar slot with a given commandId.

View file

@ -62,3 +62,46 @@ TargetFindAOEType =
Cone = 2, Cone = 2,
Box = 3 Box = 3
} }
StatusEffectFlags =
{
None = 0,
--Loss flags - Do we need loseonattacking/caststart? Could just be done with activate flags
LoseOnDeath = bit32.lshift(1, 0), -- effects removed on death
LoseOnZoning = bit32.lshift(1, 1), -- effects removed on zoning
LoseOnEsuna = bit32.lshift(1, 2), -- effects which can be removed with esuna (debuffs)
LoseOnDispel = bit32.lshift(1, 3), -- some buffs which player might be able to dispel from mob
LoseOnLogout = bit32.lshift(1, 4), -- effects removed on logging out
LoseOnAttacking = bit32.lshift(1, 5), -- effects removed when owner attacks another entity
LoseOnCastStart = bit32.lshift(1, 6), -- effects removed when owner starts casting
LoseOnAggro = bit32.lshift(1, 7), -- effects removed when owner gains enmity (swiftsong)
LoseOnClassChange = bit32.lshift(1, 8), --Effect falls off whhen changing class
--Activate flags
ActivateOnCastStart = bit32.lshift(1, 9), --Activates when a cast starts.
ActivateOnCommandStart = bit32.lshift(1, 10), --Activates when a command is used, before iterating over targets. Used for things like power surge, excruciate.
ActivateOnCommandFinish = bit32.lshift(1, 11), --Activates when the command is finished, after all targets have been iterated over. Used for things like Excruciate and Resonance falling off.
ActivateOnPreactionTarget = bit32.lshift(1, 12), --Activates after initial rates are calculated for an action against owner
ActivateOnPreactionCaster = bit32.lshift(1, 13), --Activates after initial rates are calculated for an action by owner
ActivateOnDamageTaken = bit32.lshift(1, 14),
ActivateOnHealed = bit32.lshift(1, 15),
--Should these be rolled into DamageTaken?
ActivateOnMiss = bit32.lshift(1, 16), --Activates when owner misses
ActivateOnEvade = bit32.lshift(1, 17), --Activates when owner evades
ActivateOnParry = bit32.lshift(1, 18), --Activates when owner parries
ActivateOnBlock = bit32.lshift(1, 19), --Activates when owner evades
ActivateOnHit = bit32.lshift(1, 20), --Activates when owner hits
ActivateOnCrit = bit32.lshift(1, 21), --Activates when owner crits
--Prevent flags. Sleep/stun/petrify/etc combine these
PreventSpell = bit32.lshift(1, 22), -- effects which prevent using spells, such as silence
PreventWeaponSkill = bit32.lshift(1, 23), -- effects which prevent using weaponskills, such as pacification
PreventAbility = bit32.lshift(1, 24), -- effects which prevent using abilities, such as amnesia
PreventAttack = bit32.lshift(1, 25), -- effects which prevent basic attacks
PreventMovement = bit32.lshift(1, 26), -- effects which prevent movement such as bind, still allows turning in place
PreventTurn = bit32.lshift(1, 27), -- effects which prevent turning, such as stun
PreventUntarget = bit32.lshift(1, 28), -- effects which prevent changing targets, such as fixation
Stance = bit32.lshift(1, 29) -- effects that do not have a timer
}

View file

@ -16,4 +16,5 @@ end;
function onSkillFinish(caster, target, skill, action, actionContainer) function onSkillFinish(caster, target, skill, action, actionContainer)
--Need a way to get all targets with hate for player --Need a way to get all targets with hate for player
--target.hateContainer.UpdateHate(caster, -840); --target.hateContainer.UpdateHate(caster, -840);
action.DoAction(caster, target, skill, actionContainer);
end; end;

View file

@ -20,8 +20,7 @@ function onSkillFinish(caster, target, skill, action, actionContainer)
if buff ~= nil then if buff ~= nil then
--30329: Your Raging Strike removes your Raging Strike effect. --30329: Your Raging Strike removes your Raging Strike effect.
local remAction = caster.statusEffects.RemoveStatusEffect(buff, actionContainer, 30329); caster.statusEffects.RemoveStatusEffect(buff, actionContainer, 30329);
actionContainer.AddAction(remAction);
else else
--DoAction handles rates, buffs, dealing damage --DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer); action.DoAction(caster, target, skill, actionContainer);

View file

@ -1,5 +1,5 @@
require("global"); require("global");
require("weaponskill"); require("ability");
function onSkillPrepare(caster, target, skill) function onSkillPrepare(caster, target, skill)
return 0; return 0;

View file

@ -0,0 +1,42 @@
require("global");
require("modifiers");
properties = {
permissions = 0,
parameters = "s",
description =
[[
equips all your class and job actions
]],
}
classToActions = {
[2] = { Start = 27100, End = 27119},
[3] = { Start = 27140, End = 27159},
[4] = { Start = 27180, End = 27199},
[7] = { Start = 27220, End = 27239},
[8] = { Start = 27260, End = 27279},
[22] = { Start = 27300, End = 27319},
[23] = { Start = 27340, End = 27359}
}
function onTrigger(player, argc)
local messageId = MESSAGE_TYPE_SYSTEM_ERROR;
local sender = "equipactions";
classId = player.GetClass()
if classToActions[classId] then
s = classToActions[classId].Start
e = classToActions[classId].End
print('h')
for i = 0, 30 do
player.UnequipAbility(i, false)
end
for commandid = s, e do
if GetWorldManager():GetBattleCommand(commandid) then
player:EquipAbilityInFirstOpenSlot(player:GetCurrentClassOrJob(), commandid);
end
end
end
end

View file

@ -95,7 +95,6 @@ function onTrigger(player, argc, name, width, height, blockCount)
local sender = "spawnnpc"; local sender = "spawnnpc";
if player and (modelIds[name] != nil) then if player and (modelIds[name] != nil) then
print("t")
local pos = player:GetPos(); local pos = player:GetPos();
local x = tonumber(pos[0]); local x = tonumber(pos[0]);
local y = tonumber(pos[1]); local y = tonumber(pos[1]);
@ -113,11 +112,12 @@ function onTrigger(player, argc, name, width, height, blockCount)
actor.ChangeNpcAppearance(modelIds[name]); actor.ChangeNpcAppearance(modelIds[name]);
actor.SetMaxHP(5000); actor.SetMaxHP(5000);
actor.SetHP(5000); actor.SetHP(5000);
actor.SetMod(modifiersGlobal.HasShield, 1); actor.SetMod(modifiersGlobal.CanBlock, 1);
actor.SetMod(modifiersGlobal.AttackRange, 3); actor.SetMod(modifiersGlobal.AttackRange, 3);
actor.SetMod(modifiersGlobal.Speed, 5); actor.SetMod(modifiersGlobal.MovementSpeed, 5);
actor.SetMobMod(mobModifiersGlobal.Roams, 1); actor.SetMobMod(mobModifiersGlobal.Roams, 1);
actor.SetMobMod(mobModifiersGlobal.RoamDelay, 3); actor.SetMobMod(mobModifiersGlobal.RoamDelay, 10);
actor.charaWork.parameterSave.state_mainSkillLevel = 52;
actor.moveState = 3; actor.moveState = 3;
end; end;
end; end;

View file

@ -163,11 +163,12 @@ function onTrigger(player, argc, width, height, blockCount)
actor.ChangeNpcAppearance(2200905); actor.ChangeNpcAppearance(2200905);
actor.SetMaxHP(5000); actor.SetMaxHP(5000);
actor.SetHP(5000); actor.SetHP(5000);
actor.SetMod(modifiersGlobal.HasShield, 1); actor.SetMod(modifiersGlobal.CanBlock, 1);
actor.SetMod(modifiersGlobal.AttackRange, 3); actor.SetMod(modifiersGlobal.AttackRange, 3);
actor.SetMod(modifiersGlobal.Speed, 5); actor.SetMod(modifiersGlobal.MovementSpeed, 5);
actor.SetMobMod(mobModifiersGlobal.Roams, 1); actor.SetMobMod(mobModifiersGlobal.Roams, 1);
actor.SetMobMod(mobModifiersGlobal.RoamDelay, 3); actor.SetMobMod(mobModifiersGlobal.RoamDelay, 10);
actor.charaWork.parameterSave.state_mainSkillLevel = 52;
actor.moveState = 3; actor.moveState = 3;
end end
end end

View file

@ -5,6 +5,7 @@ require("battleutils")
--There isn't really any information on this, but due to the fact it falls off BEFORE the target is hit, --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 --I'm assuming it increases a spell's accuracy modifier instead of giving actual magic accuracy
function onCommandStart(effect, owner, skill, actionContainer) function onCommandStart(effect, owner, skill, actionContainer)
print('dark seal')
if skill.GetActionType() == ActionType.Magic then if skill.GetActionType() == ActionType.Magic then
--50 is random guess. --50 is random guess.
skill.accuracyModifier = skill.accuracyModifier + 50; skill.accuracyModifier = skill.accuracyModifier + 50;

View file

@ -11,7 +11,7 @@ function onPreAction(effect, caster, target, skill, action, actionContainer)
action.hitRate = 0.0; action.hitRate = 0.0;
action.resistRate = 750; action.resistRate = 750;
--Remove status and add message --Remove status and add message
caster.statusEffects.RemoveStatusEffect(effect, actionContainer, 30331, false); defender.statusEffects.RemoveStatusEffect(effect, actionContainer, 30331, false);
end end
end; end;

View file

@ -10,7 +10,7 @@ function onPreAction(effect, caster, target, skill, action, actionContainer)
action.hitRate = 0.0; action.hitRate = 0.0;
action.resistRate = 400; action.resistRate = 400;
--Remove status and add message --Remove status and add message
caster.statusEffects.RemoveStatusEffect(effect, actionContainer, 30331, false); defender.statusEffects.RemoveStatusEffect(effect, actionContainer, 30331, false);
end end
end; end;

View file

@ -3,8 +3,8 @@ require("modifiers")
--Battle Voice grants HP_Boost and it sets max hp to 125% normal amount and heals for the difference between current --Battle Voice grants HP_Boost and it sets max hp to 125% normal amount and heals for the difference between current
--This doesn't seem like the correct way to do this. If max HP changes between gainign and losing wont this break? --This doesn't seem like the correct way to do this. If max HP changes between gainign and losing wont this break?
function onGain(owner, effect, actionContainer) function onGain(owner, effect, actionContainer)
local newMaxHP = target.GetMaxHP() * 1.25; local newMaxHP = owner.GetMaxHP() * 1.25;
local healAmount = newMaxHP - target.GetMaxHP(); local healAmount = newMaxHP - owner.GetMaxHP();
owner.SetMaxHP(newMaxHP); owner.SetMaxHP(newMaxHP);
owner.AddHP(healAmount); owner.AddHP(healAmount);

View file

@ -11,5 +11,6 @@ function onCommandStart(effect, owner, skill, actionContainer)
end end
skill.recastTimeMs = skill.recastTimeMs - (reduction * skill.recastTimeMs); skill.recastTimeMs = skill.recastTimeMs - (reduction * skill.recastTimeMs);
owner.statusEffects.RemoveStatusEffect(effect, actionContainer, 30331, false);
end end
end; end;

View file

@ -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 onMagicCast(caster, effect, skill) function onMagicCast(effect, caster, skill)
skill.mpCost = skill.mpCost / 2; skill.mpCost = skill.mpCost / 2;
end; end;

View file

@ -4,7 +4,7 @@ require("battleutils")
--Increases range of a single spell, no clue by how much, 25% is a random guess --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. --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.
--It also increased height of skills --It also increased height of skills
function onMagicCast(caster, effect, skill) function onMagicCast(effect, caster, skill)
skill.range = skill.range * 1.25; skill.range = skill.range * 1.25;
skill.rangeHeight = skill.rangeHeight * 1.25; skill.rangeHeight = skill.rangeHeight * 1.25;
end; end;

View file

@ -1,8 +1,18 @@
require("modifiers") require("modifiers")
require("battleutils") require("battleutils")
function onMagicCast(caster, effect, skill) --Cure, Cura, Regen, Esuna, Enhancing spells (Hardcoded as Stoneskin and Sanguine since we dont have a good way to check what's an enhancing spell)
skill.aoeType = TargetFindAOEType.Circle; supportedSpells = [27346, 27347, 27358, 27357, 27350, 27307]
skill.aoeRange = 15;
skill.validTarget = 31 function onMagicCast(effect, caster, skill)
if supportedSpells[skill.id] then
skill.aoeType = TargetFindAOEType.Circle;
skill.aoeRange = 15;
end
end end
function onCommandFinish(effect, owner, skill, actionContainer)
if supportedSpells[skill.id] then
owner.statusEffects.RemoveStatusEffect(effect, actionContainer, 30331, false);
end
end;

View file

@ -151,7 +151,7 @@ INSERT INTO `server_battle_commands` VALUES (27199,'overpower',4,30,1,768,17152,
INSERT INTO `server_battle_commands` VALUES (27220,'hawks_eye',7,6,3,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,223106,15,1,0,0,90,0,0,14,516,2,3,234889732,0,0,0,0,0,30328,3,4,0,0); INSERT INTO `server_battle_commands` VALUES (27220,'hawks_eye',7,6,3,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,223106,15,1,0,0,90,0,0,14,516,2,3,234889732,0,0,0,0,0,30328,3,4,0,0);
INSERT INTO `server_battle_commands` VALUES (27221,'quelling_strike',7,22,3,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,223104,30,1,0,0,60,0,0,14,614,2,3,234889830,0,0,0,0,0,30328,3,4,0,0); INSERT INTO `server_battle_commands` VALUES (27221,'quelling_strike',7,22,3,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,223104,30,1,0,0,60,0,0,14,614,2,3,234889830,0,0,0,0,0,30328,3,4,0,0);
INSERT INTO `server_battle_commands` VALUES (27222,'decoy',7,2,3,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,223108,60,1,0,0,90,100,0,14,565,2,3,234889781,0,0,0,0,0,30328,3,4,0,0); INSERT INTO `server_battle_commands` VALUES (27222,'decoy',7,2,3,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,223108,60,1,0,0,90,100,0,14,565,2,3,234889781,0,0,0,0,0,30328,3,4,0,0);
INSERT INTO `server_battle_commands` VALUES (27223,'chameleon',7,42,3,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,0,0,0,0,0,180,0,0,14,504,2,3,234889720,0,0,0,0,0,30328,3,4,0,0); INSERT INTO `server_battle_commands` VALUES (27223,'chameleon',7,42,3,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,0,0,0,0,0,180,0,0,14,504,2,3,234889720,0,0,0,0,0,30101,3,0,0,0);
INSERT INTO `server_battle_commands` VALUES (27224,'barrage',7,34,64,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,223220,60,1,0,0,90,0,0,14,683,2,3,234889899,0,0,0,0,0,30328,3,4,0,0); INSERT INTO `server_battle_commands` VALUES (27224,'barrage',7,34,64,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,223220,60,1,0,0,90,0,0,14,683,2,3,234889899,0,0,0,0,0,30328,3,4,0,0);
INSERT INTO `server_battle_commands` VALUES (27225,'raging_strike',7,14,64,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,223221,4294967295,1,0,0,10,0,0,14,632,2,3,234889848,0,0,0,0,0,30328,3,4,0,0); INSERT INTO `server_battle_commands` VALUES (27225,'raging_strike',7,14,64,31,16415,0,0,0,0,0,0,100,1,0,0,0,0,0,10,2,223221,4294967295,1,0,0,10,0,0,14,632,2,3,234889848,0,0,0,0,0,30328,3,4,0,0);
INSERT INTO `server_battle_commands` VALUES (27226,'swiftsong',7,26,64,31,16445,1,20,0,0,0,1,100,1,0,0,0,0,0,10,2,223224,180,1,0,0,10,100,0,1,150,1,3,16781462,0,0,0,0,0,30328,4,4,0,0); INSERT INTO `server_battle_commands` VALUES (27226,'swiftsong',7,26,64,31,16445,1,20,0,0,0,1,100,1,0,0,0,0,0,10,2,223224,180,1,0,0,10,100,0,1,150,1,3,16781462,0,0,0,0,0,30328,4,4,0,0);
@ -243,4 +243,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 2019-06-01 0:52:09 -- Dump completed on 2019-06-01 21:15:51

View file

@ -68,7 +68,7 @@ INSERT INTO `server_statuseffects` VALUES (223075,'featherfoot',131097,2,0,0,0,0
INSERT INTO `server_statuseffects` VALUES (223078,'enduring_march',9,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223078,'enduring_march',9,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223081,'bloodbath',1048601,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223081,'bloodbath',1048601,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223083,'foresight',262169,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223083,'foresight',262169,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223091,'keen_flurry',9,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223091,'keen_flurry',1033,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223094,'invigorate',9,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223094,'invigorate',9,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223097,'collusion',1048601,1,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223097,'collusion',1048601,1,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223104,'quelling_strike',1041,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223104,'quelling_strike',1041,2,0,0,0,0);
@ -77,7 +77,7 @@ INSERT INTO `server_statuseffects` VALUES (223108,'decoy',4113,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223127,'bloodletter',21,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223127,'bloodletter',21,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223129,'protect',9,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223129,'protect',9,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223133,'stoneskin',16393,1,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223133,'stoneskin',16393,1,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223173,'covered',21,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223173,'covered',4105,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223180,'regen',9,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223180,'regen',9,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223181,'refresh',9,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223181,'refresh',9,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223182,'regain',9,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223182,'regain',9,2,0,0,0,0);
@ -99,9 +99,10 @@ INSERT INTO `server_statuseffects` VALUES (223218,'dread_spike',16649,2,0,0,0,0)
INSERT INTO `server_statuseffects` VALUES (223219,'blood_for_blood',8209,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223219,'blood_for_blood',8209,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223220,'barrage',3081,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223220,'barrage',3081,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223221,'raging_strike2',537985297,1,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223221,'raging_strike2',537985297,1,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223224,'swiftsong',137,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223227,'cleric_stance',8209,1,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223227,'cleric_stance',8209,1,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223228,'blissful_mind',536871185,1,1000,0,0,0); INSERT INTO `server_statuseffects` VALUES (223228,'blissful_mind',536871185,1,1000,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223229,'dark_seal2',409,2,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223229,'dark_seal2',1033,2,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223230,'resonance2',2569,1,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223230,'resonance2',2569,1,0,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223231,'excruciate',2098185,2,3000,0,0,0); INSERT INTO `server_statuseffects` VALUES (223231,'excruciate',2098185,2,3000,0,0,0);
INSERT INTO `server_statuseffects` VALUES (223232,'necrogenesis',1048585,1,0,0,0,0); INSERT INTO `server_statuseffects` VALUES (223232,'necrogenesis',1048585,1,0,0,0,0);
@ -147,4 +148,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 2019-05-29 23:06:54 -- Dump completed on 2019-06-01 21:15:54