1
Fork 0
mirror of https://bitbucket.org/Ioncannon/project-meteor-server.git synced 2025-04-21 04:07:48 +00:00

Merged in xdemolish/ffxiv-classic-server/derp (pull request #15)

fixed derps causing client/server crashes
This commit is contained in:
Filip Maj 2016-06-16 14:20:40 -04:00
commit f4060e16bf
16 changed files with 60 additions and 60 deletions

View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="NLog" version="4.3.5" tarGetFramework="net45" /> <package id="NLog" version="4.3.5" targetFramework="net45" />
</packages> </packages>

View file

@ -622,7 +622,7 @@ namespace FFXIVClassic_Map_Server
client.GetActor().SendInstanceUpdate(); client.GetActor().SendInstanceUpdate();
client.QueuePacket(BasePacket.CreatePacket(SendMessagePacket.BuildPacket(client.actorID, client.actorID, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", String.Format("Reseting zone {0}...", client.GetActor().zoneId)), true, false)); client.QueuePacket(BasePacket.CreatePacket(SendMessagePacket.BuildPacket(client.actorID, client.actorID, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", String.Format("Reseting zone {0}...", client.GetActor().zoneId)), true, false));
} }
Server.GetWorldManager().reloadZone(client.GetActor().zoneId); Server.GetWorldManager().ReloadZone(client.GetActor().zoneId);
return true; return true;
} }
#endregion #endregion

View file

@ -464,7 +464,7 @@ namespace FFXIVClassic_Map_Server
LuaEngine.OnZoneIn(player); LuaEngine.OnZoneIn(player);
} }
public void reloadZone(uint zoneId) public void ReloadZone(uint zoneId)
{ {
if (!zoneList.ContainsKey(zoneId)) if (!zoneList.ContainsKey(zoneId))
return; return;

View file

@ -302,7 +302,7 @@ namespace FFXIVClassic_Map_Server.Actors
zone.BroadcastPacketAroundActor(this, ChangeSpeedPacket); zone.BroadcastPacketAroundActor(this, ChangeSpeedPacket);
} }
public void generateActorName(int actorNumber) public void GenerateActorName(int actorNumber)
{ {
//Format Class Name //Format Class Name
string className = this.className.Replace("Populace", "Ppl") string className = this.className.Replace("Populace", "Ppl")

View file

@ -347,7 +347,7 @@ namespace FFXIVClassic_Map_Server.Actors
return; return;
Npc npc = new Npc(mActorList.Count + 1, actorClass.actorClassId, location.uniqueId, actorId, location.x, location.y, location.z, location.rot, location.state, location.animId, actorClass.displayNameId, null, actorClass.classPath); Npc npc = new Npc(mActorList.Count + 1, actorClass.actorClassId, location.uniqueId, actorId, location.x, location.y, location.z, location.rot, location.state, location.animId, actorClass.displayNameId, null, actorClass.classPath);
npc.loadEventConditions(actorClass.eventConditions); npc.LoadEventConditions(actorClass.eventConditions);
AddActorToZone(npc); AddActorToZone(npc);
} }

View file

@ -45,7 +45,7 @@ namespace FFXIVClassic_Map_Server.Actors
this.actorClassId = classId; this.actorClassId = classId;
loadNpcAppearance(classId); LoadNpcAppearance(classId);
this.classPath = classPath; this.classPath = classPath;
className = classPath.Substring(classPath.LastIndexOf("/")+1); className = classPath.Substring(classPath.LastIndexOf("/")+1);
@ -73,7 +73,7 @@ namespace FFXIVClassic_Map_Server.Actors
npcWork.pushCommand = 0x271D; npcWork.pushCommand = 0x271D;
npcWork.pushCommandPriority = 1; npcWork.pushCommandPriority = 1;
generateActorName((int)actorNumber); GenerateActorName((int)actorNumber);
} }
public SubPacket CreateAddActorPacket(uint playerActorId) public SubPacket CreateAddActorPacket(uint playerActorId)
@ -186,7 +186,7 @@ namespace FFXIVClassic_Map_Server.Actors
return actorClassId; return actorClassId;
} }
public void loadNpcAppearance(uint id) public void LoadNpcAppearance(uint id)
{ {
using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD)))
{ {
@ -288,7 +288,7 @@ namespace FFXIVClassic_Map_Server.Actors
} }
} }
public void loadEventConditions(string eventConditions) public void LoadEventConditions(string eventConditions)
{ {
EventList conditions = JsonConvert.DeserializeObject<EventList>(eventConditions); EventList conditions = JsonConvert.DeserializeObject<EventList>(eventConditions);
this.eventConditions = conditions; this.eventConditions = conditions;

View file

@ -241,7 +241,7 @@ namespace FFXIVClassic_Map_Server.Actors
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x4, "commandContent")); packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x4, "commandContent"));
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x6, "commandJudgeMode")); packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x6, "commandJudgeMode"));
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "commandRequest")); packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "commandRequest"));
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "widGetCreate")); packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "widgetCreate"));
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "macroRequest")); packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "macroRequest"));
return packets; return packets;
} }
@ -386,7 +386,7 @@ namespace FFXIVClassic_Map_Server.Actors
for (int i = 0; i < charaWork.additionalCommandAcquired.Length; i++) for (int i = 0; i < charaWork.additionalCommandAcquired.Length; i++)
{ {
if (charaWork.additionalCommandAcquired[i] != false) if (charaWork.additionalCommandAcquired[i] != false)
propPacketUtil.AddProperty(String.Format("charaWork.AdditionalCommandAcquired[{0}]", i)); propPacketUtil.AddProperty(String.Format("charaWork.additionalCommandAcquired[{0}]", i));
} }
for (int i = 0; i < charaWork.parameterSave.commandSlot_compatibility.Length; i++) for (int i = 0; i < charaWork.parameterSave.commandSlot_compatibility.Length; i++)

View file

@ -13,9 +13,9 @@ function onEventUpdate(player, npc, eventStep, menuOptionSelected)
player:EndEvent(); player:EndEvent();
return; return;
elseif (menuOptionSelected == 2) then elseif (menuOptionSelected == 2) then
player:quitGame(); player:QuitGame();
elseif (menuOptionSelected == 3) then elseif (menuOptionSelected == 3) then
player:logout(); player:Logout();
elseif (menuOptionSelected == 4) then elseif (menuOptionSelected == 4) then
player:SendMessage(33, "", "Heck the bed"); player:SendMessage(33, "", "Heck the bed");
end end

View file

@ -9,15 +9,15 @@ Switches between active and passive mode states
function onEventStarted(player, command, triggerName) function onEventStarted(player, command, triggerName)
if (player:GetState() == 0) then if (player:GetState() == 0) then
player:changeState(2); player:ChangeState(2);
elseif (player:GetState() == 2) then elseif (player:GetState() == 2) then
player:changeState(0); player:ChangeState(0);
end end
player:EndCommand(); player:EndCommand();
--For Opening Tutorial --For Opening Tutorial
if (player:hasQuest("Man0l0") or player:hasQuest("Man0g0") or player:hasQuest("Man0u0")) then if (player:HasQuest("Man0l0") or player:HasQuest("Man0g0") or player:HasQuest("Man0u0")) then
player:GetDirector():OnCommand(command); player:GetDirector():OnCommand(command);
end end

View file

@ -13,21 +13,21 @@ function onEventStarted(player, actor, triggerName, isGoobbue)
worldMaster = GetWorldMaster(); worldMaster = GetWorldMaster();
if (isGoobbue ~= true) then if (isGoobbue ~= true) then
player:changeMusic(83); player:ChangeMusic(83);
player:SendChocoboAppearance(); player:SendChocoboAppearance();
player:SendGameMessage(player, worldMaster, 26001, 0x20); player:SendGameMessage(player, worldMaster, 26001, 0x20);
player:SetMountState(1); player:SetMountState(1);
else else
player:changeMusic(98); player:ChangeMusic(98);
player:SendGoobbueAppearance(); player:SendGoobbueAppearance();
player:SendGameMessage(player, worldMaster, 26019, 0x20); player:SendGameMessage(player, worldMaster, 26019, 0x20);
player:SetMountState(2); player:SetMountState(2);
end end
player:changeSpeed(0.0, 5.0, 10.0); player:ChangeSpeed(0.0, 5.0, 10.0);
player:changeState(15); player:ChangeState(15);
else else
player:changeMusic(player:GetZone().bgmDay); player:ChangeMusic(player:GetZone().bgmDay);
worldMaster = GetWorldMaster(); worldMaster = GetWorldMaster();
@ -38,8 +38,8 @@ function onEventStarted(player, actor, triggerName, isGoobbue)
end end
player:SetMountState(0); player:SetMountState(0);
player:changeSpeed(0.0, 2.0, 5.0) player:ChangeSpeed(0.0, 2.0, 5.0)
player:changeState(0); player:ChangeState(0);
end end
player:EndCommand(); player:EndCommand();

View file

@ -8,12 +8,12 @@ function onEventStarted(player, actor, triggerName, emoteId)
if (player:GetState() == 0) then if (player:GetState() == 0) then
if (emoteId == 0x2712) then if (emoteId == 0x2712) then
player:changeState(11); player:ChangeState(11);
else else
player:changeState(13); player:ChangeState(13);
end end
else else
player:changeState(0); player:ChangeState(0);
end end
player:EndCommand(); player:EndCommand();

View file

@ -12,7 +12,7 @@ emoteTable = {
function onEventStarted(player, actor, triggerName, emoteId) function onEventStarted(player, actor, triggerName, emoteId)
if (player:GetState() == 0) then if (player:GetState() == 0) then
player:doEmote(emoteId); player:DoEmote(emoteId);
end end
player:EndCommand(); player:EndCommand();

View file

@ -137,7 +137,7 @@ function equipItem(player, equipSlot, item)
if (classId ~= nil) then if (classId ~= nil) then
player:SendGameMessage(player, worldMaster, 30103, 0x20, 0, 0, player, classId); player:SendGameMessage(player, worldMaster, 30103, 0x20, 0, 0, player, classId);
player:prepareClassChange(classId); player:PrepareClassChange(classId);
end end
end end
@ -161,23 +161,23 @@ function equipItem(player, equipSlot, item)
--Graphic Slot was set, otherwise it's a special case --Graphic Slot was set, otherwise it's a special case
if (graphicSlot ~= nil) then if (graphicSlot ~= nil) then
player:graphicChange(graphicSlot, item); player:GraphicChange(graphicSlot, item);
if (graphicSlot == GRAPHICSLOT_MAINHAND) then player:graphicChange(GRAPHICSLOT_OFFHAND, nil); end if (graphicSlot == GRAPHICSLOT_MAINHAND) then player:GraphicChange(GRAPHICSLOT_OFFHAND, nil); end
elseif (gItem:IsNailWeapon()) then elseif (gItem:IsNailWeapon()) then
player:graphicChange(GRAPHICSLOT_MAINHAND, item); player:GraphicChange(GRAPHICSLOT_MAINHAND, item);
player:graphicChange(GRAPHICSLOT_OFFHAND, item); player:GraphicChange(GRAPHICSLOT_OFFHAND, item);
elseif (gItem:IsBowWeapon()) then elseif (gItem:IsBowWeapon()) then
player:graphicChange(GRAPHICSLOT_MAINHAND, item); player:GraphicChange(GRAPHICSLOT_MAINHAND, item);
--player:graphicChange(GRAPHICSLOT_OFFHAND, item); --player:GraphicChange(GRAPHICSLOT_OFFHAND, item);
elseif (equipSlot == EQUIPSLOT_EARS) then elseif (equipSlot == EQUIPSLOT_EARS) then
player:graphicChange(GRAPHICSLOT_R_EAR, item); player:GraphicChange(GRAPHICSLOT_R_EAR, item);
player:graphicChange(GRAPHICSLOT_L_EAR, item); player:GraphicChange(GRAPHICSLOT_L_EAR, item);
end end
--Load gearset for new class and begin class change --Load gearset for new class and begin class change
if (classId ~= nil) then if (classId ~= nil) then
loadGearset(player, classId); loadGearset(player, classId);
player:doClassChange(classId); player:DoClassChange(classId);
end end
end end
@ -194,20 +194,20 @@ function unequipItem(player, equipSlot, item)
if (equipSlot == EQUIPSLOT_BODY) then --Show Undershirt if (equipSlot == EQUIPSLOT_BODY) then --Show Undershirt
item = player:GetEquipment():GetItemAtSlot(EQUIPSLOT_UNDERSHIRT); item = player:GetEquipment():GetItemAtSlot(EQUIPSLOT_UNDERSHIRT);
player:graphicChange(GRAPHICSLOT_BODY, item); player:GraphicChange(GRAPHICSLOT_BODY, item);
elseif (equipSlot == EQUIPSLOT_LEGS) then --Show Undergarment elseif (equipSlot == EQUIPSLOT_LEGS) then --Show Undergarment
item = player:GetEquipment():GetItemAtSlot(EQUIPSLOT_UNDERGARMENT); item = player:GetEquipment():GetItemAtSlot(EQUIPSLOT_UNDERGARMENT);
player:graphicChange(GRAPHICSLOT_LEGS, item); player:GraphicChange(GRAPHICSLOT_LEGS, item);
elseif (equipSlot == EQUIPSLOT_HANDS) then player:graphicChange(15, 0, 1, 0, 0); elseif (equipSlot == EQUIPSLOT_HANDS) then player:GraphicChange(15, 0, 1, 0, 0);
elseif (equipSlot == EQUIPSLOT_FEET) then player:graphicChange(16, 0, 1, 0, 0); elseif (equipSlot == EQUIPSLOT_FEET) then player:GraphicChange(16, 0, 1, 0, 0);
else else
if (equipSlot == EQUIPSLOT_MAINHAND) then player:graphicChange(GRAPHICSLOT_MAINHAND, nil); if (equipSlot == EQUIPSLOT_MAINHAND) then player:GraphicChange(GRAPHICSLOT_MAINHAND, nil);
elseif (equipSlot == EQUIPSLOT_OFFHAND) then player:graphicChange(GRAPHICSLOT_OFFHAND, nil); elseif (equipSlot == EQUIPSLOT_OFFHAND) then player:GraphicChange(GRAPHICSLOT_OFFHAND, nil);
elseif (equipSlot == EQUIPSLOT_HEAD) then player:graphicChange(GRAPHICSLOT_HEAD, nil); elseif (equipSlot == EQUIPSLOT_HEAD) then player:GraphicChange(GRAPHICSLOT_HEAD, nil);
elseif (equipSlot == EQUIPSLOT_WAIST) then player:graphicChange(GRAPHICSLOT_WAIST, nil); elseif (equipSlot == EQUIPSLOT_WAIST) then player:GraphicChange(GRAPHICSLOT_WAIST, nil);
elseif (equipSlot == EQUIPSLOT_EARS) then player:graphicChange(GRAPHICSLOT_L_EAR, nil); player:graphicChange(GRAPHICSLOT_R_EAR, nil); elseif (equipSlot == EQUIPSLOT_EARS) then player:GraphicChange(GRAPHICSLOT_L_EAR, nil); player:GraphicChange(GRAPHICSLOT_R_EAR, nil);
elseif (equipSlot == EQUIPSLOT_RFINGER) then player:graphicChange(GRAPHICSLOT_RFINGER, nil); elseif (equipSlot == EQUIPSLOT_RFINGER) then player:GraphicChange(GRAPHICSLOT_RFINGER, nil);
elseif (equipSlot == EQUIPSLOT_LFINGER) then player:graphicChange(GRAPHICSLOT_LFINGER, nil); elseif (equipSlot == EQUIPSLOT_LFINGER) then player:GraphicChange(GRAPHICSLOT_LFINGER, nil);
end end
end end
return true; return true;

View file

@ -10,6 +10,6 @@ The param "itemDBIds" has the vars: item1 and item2.
--]] --]]
function onEventStarted(player, actor, triggerName, invActionInfo, param1, param2, param3, param4, param5, param6, param7, param8, itemDBIds) function onEventStarted(player, actor, triggerName, invActionInfo, param1, param2, param3, param4, param5, param6, param7, param8, itemDBIds)
player:GetInventory(0x00):removeItem(invActionInfo.slot); player:GetInventory(0x00):RemoveItem(invActionInfo.slot);
player:EndCommand(); player:EndCommand();
end end

View file

@ -18,7 +18,7 @@ Countdown: 1
function onEventStarted(player, command) function onEventStarted(player, command)
--player:SetCurrentMenuId(0); --player:SetCurrentMenuId(0);
--player:RunEventFunction("delegateCommand", command, "eventConfirm"); --player:RunEventFunction("delegateCommand", command, "eventConfirm");
player:logout(); player:Logout();
end end
function onEventUpdate(player, command, triggerName, step, arg1, arg2) function onEventUpdate(player, command, triggerName, step, arg1, arg2)
@ -28,10 +28,10 @@ function onEventUpdate(player, command, triggerName, step, arg1, arg2)
--Menu Dialog --Menu Dialog
if (currentMenuId == 0) then if (currentMenuId == 0) then
if (arg1 == 1) then --Exit if (arg1 == 1) then --Exit
player:quitGame(); player:QuitGame();
player:EndCommand(); player:EndCommand();
elseif (arg1 == 2) then --Character Screen elseif (arg1 == 2) then --Character Screen
player:logout(); player:Logout();
player:EndCommand(); player:EndCommand();
--player:SetCurrentMenuId(1); --player:SetCurrentMenuId(1);
--player:RunEventFunction("delegateCommand", command, "eventCountDown"); --player:RunEventFunction("delegateCommand", command, "eventCountDown");
@ -42,7 +42,7 @@ function onEventUpdate(player, command, triggerName, step, arg1, arg2)
elseif (currentMenuId == 1) then elseif (currentMenuId == 1) then
if (arg2 == 1) then --Logout Complete if (arg2 == 1) then --Logout Complete
player:logout(); player:Logout();
player:EndCommand(); player:EndCommand();
elseif (arg2 == 2) then --Cancel Pressed elseif (arg2 == 2) then --Cancel Pressed
player:EndCommand(); player:EndCommand();

View file

@ -6,18 +6,18 @@ function onBeginLogin(player)
if (player:GetPlayTime(false) == 0) then if (player:GetPlayTime(false) == 0) then
initialTown = player:GetInitialTown(); initialTown = player:GetInitialTown();
if (initialTown == 1 and player:hasQuest(110001) == false) then if (initialTown == 1 and player:HasQuest(110001) == false) then
player:AddQuest(110001); player:AddQuest(110001);
elseif (initialTown == 2 and player:hasQuest(110005) == false) then elseif (initialTown == 2 and player:HasQuest(110005) == false) then
player:AddQuest(110005); player:AddQuest(110005);
elseif (initialTown == 3 and player:hasQuest(110009) == false) then elseif (initialTown == 3 and player:HasQuest(110009) == false) then
player:AddQuest(110009); player:AddQuest(110009);
end end
end end
--For Opening. Set Director and reset position incase d/c --For Opening. Set Director and reset position incase d/c
if (player:hasQuest(110001) == true) then if (player:HasQuest(110001) == true) then
--player:SetDirector("openingDirector", false); --player:SetDirector("openingDirector", false);
player.positionX = 0.016; player.positionX = 0.016;
player.positionY = 10.35; player.positionY = 10.35;
@ -26,7 +26,7 @@ function onBeginLogin(player)
player.rotation = 0.025; player.rotation = 0.025;
player:GetQuest(110001):ClearQuestData(); player:GetQuest(110001):ClearQuestData();
player:GetQuest(110001):ClearQuestFlags(); player:GetQuest(110001):ClearQuestFlags();
elseif (player:hasQuest(110005) == true) then elseif (player:HasQuest(110005) == true) then
player:SetDirector("openingDirector", false); player:SetDirector("openingDirector", false);
player.positionX = 369.5434; player.positionX = 369.5434;
player.positionY = 4.21; player.positionY = 4.21;
@ -34,7 +34,7 @@ function onBeginLogin(player)
player.rotation = -1.26721; player.rotation = -1.26721;
player:GetQuest(110005):ClearQuestData(); player:GetQuest(110005):ClearQuestData();
player:GetQuest(110005):ClearQuestFlags(); player:GetQuest(110005):ClearQuestFlags();
elseif (player:hasQuest(110009) == true) then elseif (player:HasQuest(110009) == true) then
player:SetDirector("openingDirector", false); player:SetDirector("openingDirector", false);
player.positionX = 5.364327; player.positionX = 5.364327;
player.positionY = 196.0; player.positionY = 196.0;