mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-02 19:42:05 -04:00
Merge branch 'packet_actortarget_rewrite' into guildleve
This commit is contained in:
commit
fc0c504c28
@ -72,9 +72,9 @@ namespace FFXIVClassic.Common
|
|||||||
offset += header.subpacketSize;
|
offset += header.subpacketSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket(ushort opcode, uint sourceId, uint targetId, byte[] data) : this(true, opcode, sourceId, targetId, data) { }
|
public SubPacket(ushort opcode, uint sourceId, byte[] data) : this(true, opcode, sourceId, data) { }
|
||||||
|
|
||||||
public SubPacket(bool isGameMessage, ushort opcode, uint sourceId, uint targetId, byte[] data)
|
public SubPacket(bool isGameMessage, ushort opcode, uint sourceId, byte[] data)
|
||||||
{
|
{
|
||||||
header = new SubPacketHeader();
|
header = new SubPacketHeader();
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ namespace FFXIVClassic.Common
|
|||||||
}
|
}
|
||||||
|
|
||||||
header.sourceId = sourceId;
|
header.sourceId = sourceId;
|
||||||
header.targetId = targetId;
|
header.targetId = 0;
|
||||||
|
|
||||||
if (isGameMessage)
|
if (isGameMessage)
|
||||||
header.type = 0x03;
|
header.type = 0x03;
|
||||||
@ -117,6 +117,11 @@ namespace FFXIVClassic.Common
|
|||||||
data = original.data;
|
data = original.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetTargetId(uint target)
|
||||||
|
{
|
||||||
|
this.header.targetId = target;
|
||||||
|
}
|
||||||
|
|
||||||
public byte[] GetHeaderBytes()
|
public byte[] GetHeaderBytes()
|
||||||
{
|
{
|
||||||
var size = Marshal.SizeOf(header);
|
var size = Marshal.SizeOf(header);
|
||||||
|
@ -90,14 +90,15 @@ namespace FFXIVClassic_Lobby_Server
|
|||||||
|
|
||||||
if (userId == 0)
|
if (userId == 0)
|
||||||
{
|
{
|
||||||
ErrorPacket errorPacket = new ErrorPacket(sessionPacket.sequence, 0, 0, 13001, "Your session has expired, please login again.");
|
ErrorPacket errorPacket = new ErrorPacket(sessionPacket.sequence, 0, 0, 13001, "Your session has expired, please login again.");
|
||||||
SubPacket subpacket = errorPacket.BuildPacket();
|
SubPacket subpacket = errorPacket.BuildPacket();
|
||||||
BasePacket errorBasePacket = BasePacket.CreatePacket(subpacket, true, false);
|
subpacket.SetTargetId(0xe0006868);
|
||||||
BasePacket.EncryptPacket(client.blowfish, errorBasePacket);
|
BasePacket errorBasePacket = BasePacket.CreatePacket(subpacket, true, false);
|
||||||
client.QueuePacket(errorBasePacket);
|
BasePacket.EncryptPacket(client.blowfish, errorBasePacket);
|
||||||
|
client.QueuePacket(errorBasePacket);
|
||||||
|
|
||||||
Program.Log.Info("Invalid session, kicking...");
|
Program.Log.Info("Invalid session, kicking...");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Program.Log.Info("USER ID: {0}", userId);
|
Program.Log.Info("USER ID: {0}", userId);
|
||||||
|
@ -61,7 +61,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
accountCount = 0;
|
accountCount = 0;
|
||||||
}
|
}
|
||||||
@ -88,7 +89,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
|
|
||||||
return new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
return new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
characterCount = 0;
|
characterCount = 0;
|
||||||
}
|
}
|
||||||
@ -133,7 +134,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
characterCount = 0;
|
characterCount = 0;
|
||||||
}
|
}
|
||||||
@ -145,7 +147,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
return subpacket;
|
return subpacket;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
namesCount = 0;
|
namesCount = 0;
|
||||||
}
|
}
|
||||||
@ -91,7 +92,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +65,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
retainerCount = 0;
|
retainerCount = 0;
|
||||||
}
|
}
|
||||||
@ -92,7 +93,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
data = memStream.GetBuffer();
|
data = memStream.GetBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
|
|
||||||
return subPackets;
|
return subPackets;
|
||||||
|
@ -63,7 +63,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
serverCount = 0;
|
serverCount = 0;
|
||||||
}
|
}
|
||||||
@ -90,7 +91,8 @@ namespace FFXIVClassic_Lobby_Server.packets
|
|||||||
byte[] data = memStream.GetBuffer();
|
byte[] data = memStream.GetBuffer();
|
||||||
binWriter.Dispose();
|
binWriter.Dispose();
|
||||||
memStream.Dispose();
|
memStream.Dispose();
|
||||||
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data);
|
SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data);
|
||||||
|
subpacket.SetTargetId(0xe0006868);
|
||||||
subPackets.Add(subpacket);
|
subPackets.Add(subpacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server
|
|||||||
private void SendMessage(Session session, String message)
|
private void SendMessage(Session session, String message)
|
||||||
{
|
{
|
||||||
if (session != null)
|
if (session != null)
|
||||||
session.GetActor().QueuePacket(SendMessagePacket.BuildPacket(session.id, session.id, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", message));
|
session.GetActor().QueuePacket(SendMessagePacket.BuildPacket(session.id, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", message));
|
||||||
}
|
}
|
||||||
|
|
||||||
internal bool DoCommand(string input, Session session)
|
internal bool DoCommand(string input, Session session)
|
||||||
|
@ -159,7 +159,6 @@
|
|||||||
<Compile Include="packets\send\actor\ActorDoEmotePacket.cs" />
|
<Compile Include="packets\send\actor\ActorDoEmotePacket.cs" />
|
||||||
<Compile Include="packets\send\actor\ActorInstantiatePacket.cs" />
|
<Compile Include="packets\send\actor\ActorInstantiatePacket.cs" />
|
||||||
<Compile Include="packets\send\actor\ActorSpecialGraphicPacket.cs" />
|
<Compile Include="packets\send\actor\ActorSpecialGraphicPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\BattleAction1Packet.cs" />
|
|
||||||
<Compile Include="packets\send\actor\battle\BattleAction.cs" />
|
<Compile Include="packets\send\actor\battle\BattleAction.cs" />
|
||||||
<Compile Include="packets\send\actor\battle\BattleActionX00Packet.cs" />
|
<Compile Include="packets\send\actor\battle\BattleActionX00Packet.cs" />
|
||||||
<Compile Include="packets\send\actor\battle\BattleActionX18Packet.cs" />
|
<Compile Include="packets\send\actor\battle\BattleActionX18Packet.cs" />
|
||||||
@ -202,8 +201,7 @@
|
|||||||
<Compile Include="packets\send\actor\SetActorIconPacket.cs" />
|
<Compile Include="packets\send\actor\SetActorIconPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\SetActorSubStatPacket.cs" />
|
<Compile Include="packets\send\actor\SetActorSubStatPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\SetActorStatusPacket.cs" />
|
<Compile Include="packets\send\actor\SetActorStatusPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\_0xD9Packet.cs" />
|
<Compile Include="packets\send\actor\SetActorBGPropertiesPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\_0xD8Packet.cs" />
|
|
||||||
<Compile Include="packets\send\actor\_0xFPacket.cs" />
|
<Compile Include="packets\send\actor\_0xFPacket.cs" />
|
||||||
<Compile Include="packets\send\groups\CreateNamedGroup.cs" />
|
<Compile Include="packets\send\groups\CreateNamedGroup.cs" />
|
||||||
<Compile Include="packets\send\groups\CreateNamedGroupMultiple.cs" />
|
<Compile Include="packets\send\groups\CreateNamedGroupMultiple.cs" />
|
||||||
@ -243,7 +241,6 @@
|
|||||||
<Compile Include="packets\send\actor\MoveActorToPositionPacket.cs" />
|
<Compile Include="packets\send\actor\MoveActorToPositionPacket.cs" />
|
||||||
<Compile Include="packets\send\actor\SetActorAppearancePacket.cs" />
|
<Compile Include="packets\send\actor\SetActorAppearancePacket.cs" />
|
||||||
<Compile Include="packets\send\actor\SetActorPositionPacket.cs" />
|
<Compile Include="packets\send\actor\SetActorPositionPacket.cs" />
|
||||||
<Compile Include="packets\send\login\0x7ResponsePacket.cs" />
|
|
||||||
<Compile Include="packets\send\LogoutPacket.cs" />
|
<Compile Include="packets\send\LogoutPacket.cs" />
|
||||||
<Compile Include="packets\send\player\SetCompletedAchievementsPacket.cs" />
|
<Compile Include="packets\send\player\SetCompletedAchievementsPacket.cs" />
|
||||||
<Compile Include="packets\send\player\AchievementEarnedPacket.cs" />
|
<Compile Include="packets\send\player\AchievementEarnedPacket.cs" />
|
||||||
@ -338,8 +335,8 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>xcopy "$(SolutionDir)data\map_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /d
|
<PostBuildEvent>
|
||||||
xcopy "$(SolutionDir)data\scripts" "$(SolutionDir)$(ProjectName)\$(OutDir)scripts\" /e /d /y /s</PostBuildEvent>
|
</PostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
|
@ -35,7 +35,7 @@ namespace FFXIVClassic_Map_Server
|
|||||||
|
|
||||||
public void ProcessPacket(ZoneConnection client, SubPacket subpacket)
|
public void ProcessPacket(ZoneConnection client, SubPacket subpacket)
|
||||||
{
|
{
|
||||||
Session session = mServer.GetSession(subpacket.header.targetId);
|
Session session = mServer.GetSession(subpacket.header.sourceId);
|
||||||
|
|
||||||
if (session == null && subpacket.gameMessage.opcode != 0x1000)
|
if (session == null && subpacket.gameMessage.opcode != 0x1000)
|
||||||
return;
|
return;
|
||||||
@ -59,7 +59,7 @@ namespace FFXIVClassic_Map_Server
|
|||||||
|
|
||||||
SessionBeginPacket beginSessionPacket = new SessionBeginPacket(subpacket.data);
|
SessionBeginPacket beginSessionPacket = new SessionBeginPacket(subpacket.data);
|
||||||
|
|
||||||
session = mServer.AddSession(subpacket.header.targetId);
|
session = mServer.AddSession(subpacket.header.sourceId);
|
||||||
|
|
||||||
if (!beginSessionPacket.isLogin)
|
if (!beginSessionPacket.isLogin)
|
||||||
Server.GetWorldManager().DoZoneIn(session.GetActor(), false, session.GetActor().destinationSpawnType);
|
Server.GetWorldManager().DoZoneIn(session.GetActor(), false, session.GetActor().destinationSpawnType);
|
||||||
@ -80,7 +80,7 @@ namespace FFXIVClassic_Map_Server
|
|||||||
Server.GetServer().RemoveSession(session.id);
|
Server.GetServer().RemoveSession(session.id);
|
||||||
Program.Log.Info("{0} has been removed from the session list.", session.GetActor().customDisplayName);
|
Program.Log.Info("{0} has been removed from the session list.", session.GetActor().customDisplayName);
|
||||||
|
|
||||||
client.QueuePacket(SessionEndConfirmPacket.BuildPacket(session, endSessionPacket.destinationZoneId), true, false);
|
session.QueuePacket(SessionEndConfirmPacket.BuildPacket(session, endSessionPacket.destinationZoneId));
|
||||||
client.FlushQueuedSendPackets();
|
client.FlushQueuedSendPackets();
|
||||||
break;
|
break;
|
||||||
//World Server - Party Synch
|
//World Server - Party Synch
|
||||||
@ -92,14 +92,14 @@ namespace FFXIVClassic_Map_Server
|
|||||||
case 0x0001:
|
case 0x0001:
|
||||||
//subpacket.DebugPrintSubPacket();
|
//subpacket.DebugPrintSubPacket();
|
||||||
PingPacket pingPacket = new PingPacket(subpacket.data);
|
PingPacket pingPacket = new PingPacket(subpacket.data);
|
||||||
client.QueuePacket(BasePacket.CreatePacket(PongPacket.BuildPacket(session.id, pingPacket.time), true, false));
|
session.QueuePacket(PongPacket.BuildPacket(session.id, pingPacket.time));
|
||||||
session.Ping();
|
session.Ping();
|
||||||
break;
|
break;
|
||||||
//Unknown
|
//Unknown
|
||||||
case 0x0002:
|
case 0x0002:
|
||||||
|
|
||||||
subpacket.DebugPrintSubPacket();
|
subpacket.DebugPrintSubPacket();
|
||||||
client.QueuePacket(_0x2Packet.BuildPacket(session.id), true, false);
|
session.QueuePacket(_0x2Packet.BuildPacket(session.id));
|
||||||
client.FlushQueuedSendPackets();
|
client.FlushQueuedSendPackets();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -115,14 +115,12 @@ namespace FFXIVClassic_Map_Server
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SAY || chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SHOUT)
|
if (chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SAY || chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SHOUT)
|
||||||
session.GetActor().BroadcastPacket(SendMessagePacket.BuildPacket(session.id, session.id, chatMessage.logType, session.GetActor().customDisplayName, chatMessage.message), false);
|
session.GetActor().BroadcastPacket(SendMessagePacket.BuildPacket(session.id, chatMessage.logType, session.GetActor().customDisplayName, chatMessage.message), false);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
//Langauge Code (Client safe to send packets to now)
|
//Langauge Code (Client safe to send packets to now)
|
||||||
case 0x0006:
|
case 0x0006:
|
||||||
LangaugeCodePacket langCode = new LangaugeCodePacket(subpacket.data);
|
LangaugeCodePacket langCode = new LangaugeCodePacket(subpacket.data);
|
||||||
session = mServer.GetSession(subpacket.header.targetId);
|
|
||||||
|
|
||||||
LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onBeginLogin", true);
|
LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onBeginLogin", true);
|
||||||
Server.GetWorldManager().DoZoneIn(session.GetActor(), true, 0x1);
|
Server.GetWorldManager().DoZoneIn(session.GetActor(), true, 0x1);
|
||||||
LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onLogin", true);
|
LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onLogin", true);
|
||||||
@ -150,7 +148,7 @@ namespace FFXIVClassic_Map_Server
|
|||||||
|
|
||||||
SetTargetPacket setTarget = new SetTargetPacket(subpacket.data);
|
SetTargetPacket setTarget = new SetTargetPacket(subpacket.data);
|
||||||
session.GetActor().currentTarget = setTarget.actorID;
|
session.GetActor().currentTarget = setTarget.actorID;
|
||||||
session.GetActor().BroadcastPacket(SetActorTargetAnimatedPacket.BuildPacket(session.id, session.id, setTarget.actorID), true);
|
session.GetActor().BroadcastPacket(SetActorTargetAnimatedPacket.BuildPacket(session.id, setTarget.actorID), true);
|
||||||
break;
|
break;
|
||||||
//Lock Target
|
//Lock Target
|
||||||
case 0x00CC:
|
case 0x00CC:
|
||||||
@ -247,15 +245,15 @@ namespace FFXIVClassic_Map_Server
|
|||||||
//Start Recruiting
|
//Start Recruiting
|
||||||
case 0x01C3:
|
case 0x01C3:
|
||||||
StartRecruitingRequestPacket recruitRequestPacket = new StartRecruitingRequestPacket(subpacket.data);
|
StartRecruitingRequestPacket recruitRequestPacket = new StartRecruitingRequestPacket(subpacket.data);
|
||||||
client.QueuePacket(BasePacket.CreatePacket(StartRecruitingResponse.BuildPacket(session.id, true), true, false));
|
session.QueuePacket(StartRecruitingResponse.BuildPacket(session.id, true));
|
||||||
break;
|
break;
|
||||||
//End Recruiting
|
//End Recruiting
|
||||||
case 0x01C4:
|
case 0x01C4:
|
||||||
client.QueuePacket(BasePacket.CreatePacket(EndRecruitmentPacket.BuildPacket(session.id), true, false));
|
session.QueuePacket(EndRecruitmentPacket.BuildPacket(session.id));
|
||||||
break;
|
break;
|
||||||
//Party Window Opened, Request State
|
//Party Window Opened, Request State
|
||||||
case 0x01C5:
|
case 0x01C5:
|
||||||
client.QueuePacket(BasePacket.CreatePacket(RecruiterStatePacket.BuildPacket(session.id, false, false, 0), true, false));
|
session.QueuePacket(RecruiterStatePacket.BuildPacket(session.id, false, false, 0));
|
||||||
break;
|
break;
|
||||||
//Search Recruiting
|
//Search Recruiting
|
||||||
case 0x01C7:
|
case 0x01C7:
|
||||||
@ -271,7 +269,7 @@ namespace FFXIVClassic_Map_Server
|
|||||||
details.subTaskId = 1;
|
details.subTaskId = 1;
|
||||||
details.comment = "This is a test details packet sent by the server. No implementation has been Created yet...";
|
details.comment = "This is a test details packet sent by the server. No implementation has been Created yet...";
|
||||||
details.num[0] = 1;
|
details.num[0] = 1;
|
||||||
client.QueuePacket(BasePacket.CreatePacket(CurrentRecruitmentDetailsPacket.BuildPacket(session.id, details), true, false));
|
session.QueuePacket(CurrentRecruitmentDetailsPacket.BuildPacket(session.id, details));
|
||||||
break;
|
break;
|
||||||
//Accepted Recruiting
|
//Accepted Recruiting
|
||||||
case 0x01C6:
|
case 0x01C6:
|
||||||
@ -280,64 +278,64 @@ namespace FFXIVClassic_Map_Server
|
|||||||
/* SOCIAL STUFF */
|
/* SOCIAL STUFF */
|
||||||
case 0x01C9:
|
case 0x01C9:
|
||||||
AddRemoveSocialPacket addBlackList = new AddRemoveSocialPacket(subpacket.data);
|
AddRemoveSocialPacket addBlackList = new AddRemoveSocialPacket(subpacket.data);
|
||||||
client.QueuePacket(BasePacket.CreatePacket(BlacklistAddedPacket.BuildPacket(session.id, true, addBlackList.name), true, false));
|
session.QueuePacket(BlacklistAddedPacket.BuildPacket(session.id, true, addBlackList.name));
|
||||||
break;
|
break;
|
||||||
case 0x01CA:
|
case 0x01CA:
|
||||||
AddRemoveSocialPacket RemoveBlackList = new AddRemoveSocialPacket(subpacket.data);
|
AddRemoveSocialPacket RemoveBlackList = new AddRemoveSocialPacket(subpacket.data);
|
||||||
client.QueuePacket(BasePacket.CreatePacket(BlacklistRemovedPacket.BuildPacket(session.id, true, RemoveBlackList.name), true, false));
|
session.QueuePacket(BlacklistRemovedPacket.BuildPacket(session.id, true, RemoveBlackList.name));
|
||||||
break;
|
break;
|
||||||
case 0x01CB:
|
case 0x01CB:
|
||||||
int offset1 = 0;
|
int offset1 = 0;
|
||||||
client.QueuePacket(BasePacket.CreatePacket(SendBlacklistPacket.BuildPacket(session.id, new String[] { "Test" }, ref offset1), true, false));
|
session.QueuePacket(SendBlacklistPacket.BuildPacket(session.id, new String[] { "Test" }, ref offset1));
|
||||||
break;
|
break;
|
||||||
case 0x01CC:
|
case 0x01CC:
|
||||||
AddRemoveSocialPacket addFriendList = new AddRemoveSocialPacket(subpacket.data);
|
AddRemoveSocialPacket addFriendList = new AddRemoveSocialPacket(subpacket.data);
|
||||||
client.QueuePacket(BasePacket.CreatePacket(FriendlistAddedPacket.BuildPacket(session.id, true, (uint)addFriendList.name.GetHashCode(), true, addFriendList.name), true, false));
|
session.QueuePacket(FriendlistAddedPacket.BuildPacket(session.id, true, (uint)addFriendList.name.GetHashCode(), true, addFriendList.name));
|
||||||
break;
|
break;
|
||||||
case 0x01CD:
|
case 0x01CD:
|
||||||
AddRemoveSocialPacket RemoveFriendList = new AddRemoveSocialPacket(subpacket.data);
|
AddRemoveSocialPacket RemoveFriendList = new AddRemoveSocialPacket(subpacket.data);
|
||||||
client.QueuePacket(BasePacket.CreatePacket(FriendlistRemovedPacket.BuildPacket(session.id, true, RemoveFriendList.name), true, false));
|
session.QueuePacket(FriendlistRemovedPacket.BuildPacket(session.id, true, RemoveFriendList.name));
|
||||||
break;
|
break;
|
||||||
case 0x01CE:
|
case 0x01CE:
|
||||||
int offset2 = 0;
|
int offset2 = 0;
|
||||||
client.QueuePacket(BasePacket.CreatePacket(SendFriendlistPacket.BuildPacket(session.id, new Tuple<long, string>[] { new Tuple<long, string>(01, "Test2") }, ref offset2), true, false));
|
session.QueuePacket(SendFriendlistPacket.BuildPacket(session.id, new Tuple<long, string>[] { new Tuple<long, string>(01, "Test2") }, ref offset2));
|
||||||
break;
|
break;
|
||||||
case 0x01CF:
|
case 0x01CF:
|
||||||
client.QueuePacket(BasePacket.CreatePacket(FriendStatusPacket.BuildPacket(session.id, null), true, false));
|
session.QueuePacket(FriendStatusPacket.BuildPacket(session.id, null));
|
||||||
break;
|
break;
|
||||||
/* SUPPORT DESK STUFF */
|
/* SUPPORT DESK STUFF */
|
||||||
//Request for FAQ/Info List
|
//Request for FAQ/Info List
|
||||||
case 0x01D0:
|
case 0x01D0:
|
||||||
FaqListRequestPacket faqRequest = new FaqListRequestPacket(subpacket.data);
|
FaqListRequestPacket faqRequest = new FaqListRequestPacket(subpacket.data);
|
||||||
client.QueuePacket(BasePacket.CreatePacket(FaqListResponsePacket.BuildPacket(session.id, new string[] { "Testing FAQ1", "Coded style!" }), true, false));
|
session.QueuePacket(FaqListResponsePacket.BuildPacket(session.id, new string[] { "Testing FAQ1", "Coded style!" }));
|
||||||
break;
|
break;
|
||||||
//Request for body of a faq/info selection
|
//Request for body of a faq/info selection
|
||||||
case 0x01D1:
|
case 0x01D1:
|
||||||
FaqBodyRequestPacket faqBodyRequest = new FaqBodyRequestPacket(subpacket.data);
|
FaqBodyRequestPacket faqBodyRequest = new FaqBodyRequestPacket(subpacket.data);
|
||||||
client.QueuePacket(BasePacket.CreatePacket(FaqBodyResponsePacket.BuildPacket(session.id, "HERE IS A GIANT BODY. Nothing else to say!"), true, false));
|
session.QueuePacket(FaqBodyResponsePacket.BuildPacket(session.id, "HERE IS A GIANT BODY. Nothing else to say!"));
|
||||||
break;
|
break;
|
||||||
//Request issue list
|
//Request issue list
|
||||||
case 0x01D2:
|
case 0x01D2:
|
||||||
GMTicketIssuesRequestPacket issuesRequest = new GMTicketIssuesRequestPacket(subpacket.data);
|
GMTicketIssuesRequestPacket issuesRequest = new GMTicketIssuesRequestPacket(subpacket.data);
|
||||||
client.QueuePacket(BasePacket.CreatePacket(IssueListResponsePacket.BuildPacket(session.id, new string[] { "Test1", "Test2", "Test3", "Test4", "Test5" }), true, false));
|
session.QueuePacket(IssueListResponsePacket.BuildPacket(session.id, new string[] { "Test1", "Test2", "Test3", "Test4", "Test5" }));
|
||||||
break;
|
break;
|
||||||
//Request if GM ticket exists
|
//Request if GM ticket exists
|
||||||
case 0x01D3:
|
case 0x01D3:
|
||||||
client.QueuePacket(BasePacket.CreatePacket(StartGMTicketPacket.BuildPacket(session.id, false), true, false));
|
session.QueuePacket(StartGMTicketPacket.BuildPacket(session.id, false));
|
||||||
break;
|
break;
|
||||||
//Request for GM response message
|
//Request for GM response message
|
||||||
case 0x01D4:
|
case 0x01D4:
|
||||||
client.QueuePacket(BasePacket.CreatePacket(GMTicketPacket.BuildPacket(session.id, "This is a GM Ticket Title", "This is a GM Ticket Body."), true, false));
|
session.QueuePacket(GMTicketPacket.BuildPacket(session.id, "This is a GM Ticket Title", "This is a GM Ticket Body."));
|
||||||
break;
|
break;
|
||||||
//GM Ticket Sent
|
//GM Ticket Sent
|
||||||
case 0x01D5:
|
case 0x01D5:
|
||||||
GMSupportTicketPacket gmTicket = new GMSupportTicketPacket(subpacket.data);
|
GMSupportTicketPacket gmTicket = new GMSupportTicketPacket(subpacket.data);
|
||||||
Program.Log.Info("Got GM Ticket: \n" + gmTicket.ticketTitle + "\n" + gmTicket.ticketBody);
|
Program.Log.Info("Got GM Ticket: \n" + gmTicket.ticketTitle + "\n" + gmTicket.ticketBody);
|
||||||
client.QueuePacket(BasePacket.CreatePacket(GMTicketSentResponsePacket.BuildPacket(session.id, true), true, false));
|
session.QueuePacket(GMTicketSentResponsePacket.BuildPacket(session.id, true));
|
||||||
break;
|
break;
|
||||||
//Request to end ticket
|
//Request to end ticket
|
||||||
case 0x01D6:
|
case 0x01D6:
|
||||||
client.QueuePacket(BasePacket.CreatePacket(EndGMTicketPacket.BuildPacket(session.id), true, false));
|
session.QueuePacket(EndGMTicketPacket.BuildPacket(session.id));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Program.Log.Debug("Unknown command 0x{0:X} received.", subpacket.gameMessage.opcode);
|
Program.Log.Debug("Unknown command 0x{0:X} received.", subpacket.gameMessage.opcode);
|
||||||
|
@ -612,8 +612,8 @@ namespace FFXIVClassic_Map_Server
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Send packets
|
//Send packets
|
||||||
player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId), true, false);
|
player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId));
|
||||||
player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x10), true, false);
|
player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x10));
|
||||||
player.SendZoneInPackets(this, spawnType);
|
player.SendZoneInPackets(this, spawnType);
|
||||||
player.playerSession.ClearInstance();
|
player.playerSession.ClearInstance();
|
||||||
player.SendInstanceUpdate();
|
player.SendInstanceUpdate();
|
||||||
@ -661,8 +661,8 @@ namespace FFXIVClassic_Map_Server
|
|||||||
player.rotation = spawnRotation;
|
player.rotation = spawnRotation;
|
||||||
|
|
||||||
//Send packets
|
//Send packets
|
||||||
player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x10), true, false);
|
player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x10));
|
||||||
player.playerSession.QueuePacket(player.CreateSpawnTeleportPacket(player.actorId, spawnType), true, false);
|
player.playerSession.QueuePacket(player.CreateSpawnTeleportPacket(spawnType));
|
||||||
|
|
||||||
player.playerSession.LockUpdates(false);
|
player.playerSession.LockUpdates(false);
|
||||||
player.SendInstanceUpdate();
|
player.SendInstanceUpdate();
|
||||||
@ -705,8 +705,8 @@ namespace FFXIVClassic_Map_Server
|
|||||||
player.SendGameMessage(GetActor(), 34108, 0x20);
|
player.SendGameMessage(GetActor(), 34108, 0x20);
|
||||||
|
|
||||||
//Send packets
|
//Send packets
|
||||||
player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId), true, false);
|
player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId));
|
||||||
player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x10), true, false);
|
player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x10));
|
||||||
player.SendZoneInPackets(this, spawnType);
|
player.SendZoneInPackets(this, spawnType);
|
||||||
player.playerSession.ClearInstance();
|
player.playerSession.ClearInstance();
|
||||||
player.SendInstanceUpdate();
|
player.SendInstanceUpdate();
|
||||||
@ -740,8 +740,8 @@ namespace FFXIVClassic_Map_Server
|
|||||||
//Send packets
|
//Send packets
|
||||||
if (!isLogin)
|
if (!isLogin)
|
||||||
{
|
{
|
||||||
player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId), true, false);
|
player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId));
|
||||||
player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x2), true, false);
|
player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x2));
|
||||||
//player.SendZoneInPackets(this, spawnType);
|
//player.SendZoneInPackets(this, spawnType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -876,55 +876,55 @@ namespace FFXIVClassic_Map_Server
|
|||||||
public void RequestWorldLinkshellCreate(Player player, string name, ushort crest)
|
public void RequestWorldLinkshellCreate(Player player, string name, ushort crest)
|
||||||
{
|
{
|
||||||
SubPacket packet = CreateLinkshellPacket.BuildPacket(player.playerSession, name, crest, player.actorId);
|
SubPacket packet = CreateLinkshellPacket.BuildPacket(player.playerSession, name, crest, player.actorId);
|
||||||
Server.GetWorldConnection().QueuePacket(packet, true, false);
|
player.QueuePacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RequestWorldLinkshellCrestModify(Player player, string name, ushort crest)
|
public void RequestWorldLinkshellCrestModify(Player player, string name, ushort crest)
|
||||||
{
|
{
|
||||||
SubPacket packet = ModifyLinkshellPacket.BuildPacket(player.playerSession, 1, name, null, crest, 0);
|
SubPacket packet = ModifyLinkshellPacket.BuildPacket(player.playerSession, 1, name, null, crest, 0);
|
||||||
Server.GetWorldConnection().QueuePacket(packet, true, false);
|
player.QueuePacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RequestWorldLinkshellDelete(Player player, string name)
|
public void RequestWorldLinkshellDelete(Player player, string name)
|
||||||
{
|
{
|
||||||
SubPacket packet = DeleteLinkshellPacket.BuildPacket(player.playerSession, name);
|
SubPacket packet = DeleteLinkshellPacket.BuildPacket(player.playerSession, name);
|
||||||
Server.GetWorldConnection().QueuePacket(packet, true, false);
|
player.QueuePacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RequestWorldLinkshellRankChange(Player player, string lsname, string memberName, byte newRank)
|
public void RequestWorldLinkshellRankChange(Player player, string lsname, string memberName, byte newRank)
|
||||||
{
|
{
|
||||||
SubPacket packet = LinkshellRankChangePacket.BuildPacket(player.playerSession, memberName, lsname, newRank);
|
SubPacket packet = LinkshellRankChangePacket.BuildPacket(player.playerSession, memberName, lsname, newRank);
|
||||||
Server.GetWorldConnection().QueuePacket(packet, true, false);
|
player.QueuePacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RequestWorldLinkshellInviteMember(Player player, string lsname, uint invitedActorId)
|
public void RequestWorldLinkshellInviteMember(Player player, string lsname, uint invitedActorId)
|
||||||
{
|
{
|
||||||
SubPacket packet = LinkshellInvitePacket.BuildPacket(player.playerSession, invitedActorId, lsname);
|
SubPacket packet = LinkshellInvitePacket.BuildPacket(player.playerSession, invitedActorId, lsname);
|
||||||
Server.GetWorldConnection().QueuePacket(packet, true, false);
|
player.QueuePacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RequestWorldLinkshellCancelInvite(Player player)
|
public void RequestWorldLinkshellCancelInvite(Player player)
|
||||||
{
|
{
|
||||||
SubPacket packet = LinkshellInviteCancelPacket.BuildPacket(player.playerSession);
|
SubPacket packet = LinkshellInviteCancelPacket.BuildPacket(player.playerSession);
|
||||||
Server.GetWorldConnection().QueuePacket(packet, true, false);
|
player.QueuePacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RequestWorldLinkshellLeave(Player player, string lsname)
|
public void RequestWorldLinkshellLeave(Player player, string lsname)
|
||||||
{
|
{
|
||||||
SubPacket packet = LinkshellLeavePacket.BuildPacket(player.playerSession, lsname, null, false);
|
SubPacket packet = LinkshellLeavePacket.BuildPacket(player.playerSession, lsname, null, false);
|
||||||
Server.GetWorldConnection().QueuePacket(packet, true, false);
|
player.QueuePacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RequestWorldLinkshellKick(Player player, string lsname, string kickedName)
|
public void RequestWorldLinkshellKick(Player player, string lsname, string kickedName)
|
||||||
{
|
{
|
||||||
SubPacket packet = LinkshellLeavePacket.BuildPacket(player.playerSession, lsname, kickedName, true);
|
SubPacket packet = LinkshellLeavePacket.BuildPacket(player.playerSession, lsname, kickedName, true);
|
||||||
Server.GetWorldConnection().QueuePacket(packet, true, false);
|
player.QueuePacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RequestWorldLinkshellChangeActive(Player player, string lsname)
|
public void RequestWorldLinkshellChangeActive(Player player, string lsname)
|
||||||
{
|
{
|
||||||
SubPacket packet = LinkshellChangePacket.BuildPacket(player.playerSession, lsname);
|
SubPacket packet = LinkshellChangePacket.BuildPacket(player.playerSession, lsname);
|
||||||
Server.GetWorldConnection().QueuePacket(packet, true, false);
|
player.QueuePacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RequestWorldServerZoneChange(Player player, uint destinationZoneId, byte spawnType, float spawnX, float spawnY, float spawnZ, float spawnRotation)
|
private void RequestWorldServerZoneChange(Player player, uint destinationZoneId, byte spawnType, float spawnX, float spawnY, float spawnZ, float spawnRotation)
|
||||||
|
@ -9,6 +9,7 @@ using System.Collections.Generic;
|
|||||||
using FFXIVClassic_Map_Server.actors.area;
|
using FFXIVClassic_Map_Server.actors.area;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
|
using FFXIVClassic_Map_Server.packets.send.actor.battle;
|
||||||
|
|
||||||
namespace FFXIVClassic_Map_Server.Actors
|
namespace FFXIVClassic_Map_Server.Actors
|
||||||
{
|
{
|
||||||
@ -75,66 +76,73 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateAddActorPacket(uint playerActorId, byte val)
|
public SubPacket CreateAddActorPacket(byte val)
|
||||||
{
|
{
|
||||||
return AddActorPacket.BuildPacket(actorId, playerActorId, val);
|
return AddActorPacket.BuildPacket(actorId, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateNamePacket(uint playerActorId)
|
public SubPacket CreateNamePacket()
|
||||||
{
|
{
|
||||||
return SetActorNamePacket.BuildPacket(actorId, playerActorId, displayNameId, displayNameId == 0xFFFFFFFF | displayNameId == 0x0 ? customDisplayName : "");
|
return SetActorNamePacket.BuildPacket(actorId, displayNameId, displayNameId == 0xFFFFFFFF | displayNameId == 0x0 ? customDisplayName : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateSpeedPacket(uint playerActorId)
|
public SubPacket CreateSpeedPacket()
|
||||||
{
|
{
|
||||||
return SetActorSpeedPacket.BuildPacket(actorId, playerActorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]);
|
return SetActorSpeedPacket.BuildPacket(actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateSpawnPositonPacket(uint playerActorId, ushort spawnType)
|
public SubPacket CreateSpawnPositonPacket(ushort spawnType)
|
||||||
{
|
{
|
||||||
|
return CreateSpawnPositonPacket(null, spawnType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SubPacket CreateSpawnPositonPacket(Player player, ushort spawnType)
|
||||||
|
{
|
||||||
|
//TODO: FIX THIS IF
|
||||||
|
uint playerActorId = player == null ? 0 : player.actorId; //Get Rid
|
||||||
SubPacket spawnPacket;
|
SubPacket spawnPacket;
|
||||||
if (!spawnedFirstTime && playerActorId == actorId)
|
if (!spawnedFirstTime && playerActorId == actorId)
|
||||||
spawnPacket = SetActorPositionPacket.BuildPacket(actorId, playerActorId, 0, positionX, positionY, positionZ, rotation, 0x1, false);
|
spawnPacket = SetActorPositionPacket.BuildPacket(actorId, 0, positionX, positionY, positionZ, rotation, 0x1, false);
|
||||||
else if (playerActorId == actorId)
|
else if (playerActorId == actorId)
|
||||||
spawnPacket = SetActorPositionPacket.BuildPacket(actorId, playerActorId, 0xFFFFFFFF, positionX, positionY, positionZ, rotation, spawnType, true);
|
spawnPacket = SetActorPositionPacket.BuildPacket(actorId, 0xFFFFFFFF, positionX, positionY, positionZ, rotation, spawnType, true);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (this is Player)
|
if (this is Player)
|
||||||
spawnPacket = SetActorPositionPacket.BuildPacket(actorId, playerActorId, 0, positionX, positionY, positionZ, rotation, spawnType, false);
|
spawnPacket = SetActorPositionPacket.BuildPacket(actorId, 0, positionX, positionY, positionZ, rotation, spawnType, false);
|
||||||
else
|
else
|
||||||
spawnPacket = SetActorPositionPacket.BuildPacket(actorId, playerActorId, actorId, positionX, positionY, positionZ, rotation, spawnType, false);
|
spawnPacket = SetActorPositionPacket.BuildPacket(actorId, actorId, positionX, positionY, positionZ, rotation, spawnType, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//return SetActorPositionPacket.BuildPacket(actorId, playerActorId, -211.895477f, 190.000000f, 29.651011f, 2.674819f, SetActorPositionPacket.SPAWNTYPE_PLAYERWAKE);
|
//return SetActorPositionPacket.BuildPacket(actorId, -211.895477f, 190.000000f, 29.651011f, 2.674819f, SetActorPositionPacket.SPAWNTYPE_PLAYERWAKE);
|
||||||
spawnedFirstTime = true;
|
spawnedFirstTime = true;
|
||||||
|
|
||||||
return spawnPacket;
|
return spawnPacket;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateSpawnTeleportPacket(uint playerActorId, ushort spawnType)
|
public SubPacket CreateSpawnTeleportPacket(ushort spawnType)
|
||||||
{
|
{
|
||||||
SubPacket spawnPacket;
|
SubPacket spawnPacket;
|
||||||
|
|
||||||
spawnPacket = SetActorPositionPacket.BuildPacket(actorId, playerActorId, 0xFFFFFFFF, positionX, positionY, positionZ, rotation, spawnType, false);
|
spawnPacket = SetActorPositionPacket.BuildPacket(actorId, 0xFFFFFFFF, positionX, positionY, positionZ, rotation, spawnType, false);
|
||||||
|
|
||||||
//return SetActorPositionPacket.BuildPacket(actorId, playerActorId, -211.895477f, 190.000000f, 29.651011f, 2.674819f, SetActorPositionPacket.SPAWNTYPE_PLAYERWAKE);
|
//return SetActorPositionPacket.BuildPacket(actorId, -211.895477f, 190.000000f, 29.651011f, 2.674819f, SetActorPositionPacket.SPAWNTYPE_PLAYERWAKE);
|
||||||
|
|
||||||
//spawnPacket.DebugPrintSubPacket();
|
//spawnPacket.DebugPrintSubPacket();
|
||||||
|
|
||||||
return spawnPacket;
|
return spawnPacket;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreatePositionUpdatePacket(uint playerActorId)
|
public SubPacket CreatePositionUpdatePacket()
|
||||||
{
|
{
|
||||||
return MoveActorToPositionPacket.BuildPacket(actorId, playerActorId, positionX, positionY, positionZ, rotation, moveState);
|
return MoveActorToPositionPacket.BuildPacket(actorId, positionX, positionY, positionZ, rotation, moveState);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateStatePacket(uint playerActorID)
|
public SubPacket CreateStatePacket()
|
||||||
{
|
{
|
||||||
return SetActorStatePacket.BuildPacket(actorId, playerActorID, currentMainState, currentSubState);
|
return SetActorStatePacket.BuildPacket(actorId, currentMainState, currentSubState);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SubPacket> GetEventConditionPackets(uint playerActorId)
|
public List<SubPacket> GetEventConditionPackets()
|
||||||
{
|
{
|
||||||
List<SubPacket> subpackets = new List<SubPacket>();
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
|
|
||||||
@ -145,126 +153,147 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
if (eventConditions.talkEventConditions != null)
|
if (eventConditions.talkEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.TalkEventCondition condition in eventConditions.talkEventConditions)
|
foreach (EventList.TalkEventCondition condition in eventConditions.talkEventConditions)
|
||||||
subpackets.Add(SetTalkEventCondition.BuildPacket(playerActorId, actorId, condition));
|
subpackets.Add(SetTalkEventCondition.BuildPacket(actorId, condition));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventConditions.noticeEventConditions != null)
|
if (eventConditions.noticeEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.NoticeEventCondition condition in eventConditions.noticeEventConditions)
|
foreach (EventList.NoticeEventCondition condition in eventConditions.noticeEventConditions)
|
||||||
subpackets.Add(SetNoticeEventCondition.BuildPacket(playerActorId, actorId, condition));
|
subpackets.Add(SetNoticeEventCondition.BuildPacket(actorId, condition));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventConditions.emoteEventConditions != null)
|
if (eventConditions.emoteEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.EmoteEventCondition condition in eventConditions.emoteEventConditions)
|
foreach (EventList.EmoteEventCondition condition in eventConditions.emoteEventConditions)
|
||||||
subpackets.Add(SetEmoteEventCondition.BuildPacket(playerActorId, actorId, condition));
|
subpackets.Add(SetEmoteEventCondition.BuildPacket(actorId, condition));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventConditions.pushWithCircleEventConditions != null)
|
if (eventConditions.pushWithCircleEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.PushCircleEventCondition condition in eventConditions.pushWithCircleEventConditions)
|
foreach (EventList.PushCircleEventCondition condition in eventConditions.pushWithCircleEventConditions)
|
||||||
subpackets.Add(SetPushEventConditionWithCircle.BuildPacket(playerActorId, actorId, condition));
|
subpackets.Add(SetPushEventConditionWithCircle.BuildPacket(actorId, condition));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventConditions.pushWithFanEventConditions != null)
|
if (eventConditions.pushWithFanEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.PushFanEventCondition condition in eventConditions.pushWithFanEventConditions)
|
foreach (EventList.PushFanEventCondition condition in eventConditions.pushWithFanEventConditions)
|
||||||
subpackets.Add(SetPushEventConditionWithFan.BuildPacket(playerActorId, actorId, condition));
|
subpackets.Add(SetPushEventConditionWithFan.BuildPacket(actorId, condition));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventConditions.pushWithBoxEventConditions != null)
|
if (eventConditions.pushWithBoxEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.PushBoxEventCondition condition in eventConditions.pushWithBoxEventConditions)
|
foreach (EventList.PushBoxEventCondition condition in eventConditions.pushWithBoxEventConditions)
|
||||||
subpackets.Add(SetPushEventConditionWithTriggerBox.BuildPacket(playerActorId, actorId, condition));
|
subpackets.Add(SetPushEventConditionWithTriggerBox.BuildPacket(actorId, condition));
|
||||||
}
|
}
|
||||||
|
|
||||||
return subpackets;
|
return subpackets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BasePacket GetSetEventStatusPackets(uint playerActorId)
|
public List<SubPacket> GetSetEventStatusPackets()
|
||||||
{
|
{
|
||||||
List<SubPacket> subpackets = new List<SubPacket>();
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
|
|
||||||
//Return empty list
|
//Return empty list
|
||||||
if (eventConditions == null)
|
if (eventConditions == null)
|
||||||
return BasePacket.CreatePacket(subpackets, true, false);
|
return subpackets;
|
||||||
|
|
||||||
if (eventConditions.talkEventConditions != null)
|
if (eventConditions.talkEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.TalkEventCondition condition in eventConditions.talkEventConditions)
|
foreach (EventList.TalkEventCondition condition in eventConditions.talkEventConditions)
|
||||||
subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 1, condition.conditionName));
|
subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 1, condition.conditionName));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventConditions.noticeEventConditions != null)
|
if (eventConditions.noticeEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.NoticeEventCondition condition in eventConditions.noticeEventConditions)
|
foreach (EventList.NoticeEventCondition condition in eventConditions.noticeEventConditions)
|
||||||
subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 1, condition.conditionName));
|
subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 1, condition.conditionName));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventConditions.emoteEventConditions != null)
|
if (eventConditions.emoteEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.EmoteEventCondition condition in eventConditions.emoteEventConditions)
|
foreach (EventList.EmoteEventCondition condition in eventConditions.emoteEventConditions)
|
||||||
subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 3, condition.conditionName));
|
subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 3, condition.conditionName));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventConditions.pushWithCircleEventConditions != null)
|
if (eventConditions.pushWithCircleEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.PushCircleEventCondition condition in eventConditions.pushWithCircleEventConditions)
|
foreach (EventList.PushCircleEventCondition condition in eventConditions.pushWithCircleEventConditions)
|
||||||
subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 2, condition.conditionName));
|
subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 2, condition.conditionName));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventConditions.pushWithFanEventConditions != null)
|
if (eventConditions.pushWithFanEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.PushFanEventCondition condition in eventConditions.pushWithFanEventConditions)
|
foreach (EventList.PushFanEventCondition condition in eventConditions.pushWithFanEventConditions)
|
||||||
subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 2, condition.conditionName));
|
subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 2, condition.conditionName));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventConditions.pushWithBoxEventConditions != null)
|
if (eventConditions.pushWithBoxEventConditions != null)
|
||||||
{
|
{
|
||||||
foreach (EventList.PushBoxEventCondition condition in eventConditions.pushWithBoxEventConditions)
|
foreach (EventList.PushBoxEventCondition condition in eventConditions.pushWithBoxEventConditions)
|
||||||
subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 2, condition.conditionName));
|
subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 2, condition.conditionName));
|
||||||
}
|
}
|
||||||
|
|
||||||
return BasePacket.CreatePacket(subpackets, true, false);
|
return subpackets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateIsZoneingPacket(uint playerActorId)
|
public SubPacket CreateIsZoneingPacket()
|
||||||
{
|
{
|
||||||
return SetActorIsZoningPacket.BuildPacket(actorId, playerActorId, false);
|
return SetActorIsZoningPacket.BuildPacket(actorId, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual SubPacket CreateScriptBindPacket(uint playerActorId)
|
public virtual SubPacket CreateScriptBindPacket(Player player)
|
||||||
{
|
{
|
||||||
return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, classParams);
|
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, classParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual BasePacket GetSpawnPackets(uint playerActorId)
|
public virtual SubPacket CreateScriptBindPacket()
|
||||||
{
|
{
|
||||||
return GetSpawnPackets(playerActorId, 0x1);
|
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, classParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual BasePacket GetSpawnPackets(uint playerActorId, ushort spawnType)
|
public virtual List<SubPacket> GetSpawnPackets(Player player, ushort spawnType)
|
||||||
{
|
{
|
||||||
List<SubPacket> subpackets = new List<SubPacket>();
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
subpackets.Add(CreateAddActorPacket(playerActorId, 8));
|
subpackets.Add(CreateAddActorPacket(8));
|
||||||
subpackets.AddRange(GetEventConditionPackets(playerActorId));
|
subpackets.AddRange(GetEventConditionPackets());
|
||||||
subpackets.Add(CreateSpeedPacket(playerActorId));
|
subpackets.Add(CreateSpeedPacket());
|
||||||
subpackets.Add(CreateSpawnPositonPacket(playerActorId, spawnType));
|
subpackets.Add(CreateSpawnPositonPacket(player, spawnType));
|
||||||
subpackets.Add(CreateNamePacket(playerActorId));
|
subpackets.Add(CreateNamePacket());
|
||||||
subpackets.Add(CreateStatePacket(playerActorId));
|
subpackets.Add(CreateStatePacket());
|
||||||
subpackets.Add(CreateIsZoneingPacket(playerActorId));
|
subpackets.Add(CreateIsZoneingPacket());
|
||||||
subpackets.Add(CreateScriptBindPacket(playerActorId));
|
subpackets.Add(CreateScriptBindPacket(player));
|
||||||
return BasePacket.CreatePacket(subpackets, true, false);
|
return subpackets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual BasePacket GetInitPackets(uint playerActorId)
|
public virtual List<SubPacket> GetSpawnPackets()
|
||||||
{
|
{
|
||||||
|
return GetSpawnPackets(0x1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual List<SubPacket> GetSpawnPackets(ushort spawnType)
|
||||||
|
{
|
||||||
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
|
subpackets.Add(CreateAddActorPacket(8));
|
||||||
|
subpackets.AddRange(GetEventConditionPackets());
|
||||||
|
subpackets.Add(CreateSpeedPacket());
|
||||||
|
subpackets.Add(CreateSpawnPositonPacket(null, spawnType));
|
||||||
|
subpackets.Add(CreateNamePacket());
|
||||||
|
subpackets.Add(CreateStatePacket());
|
||||||
|
subpackets.Add(CreateIsZoneingPacket());
|
||||||
|
subpackets.Add(CreateScriptBindPacket());
|
||||||
|
return subpackets;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual List<SubPacket> GetInitPackets()
|
||||||
|
{
|
||||||
|
List<SubPacket> packets = new List<SubPacket>();
|
||||||
SetActorPropetyPacket initProperties = new SetActorPropetyPacket("/_init");
|
SetActorPropetyPacket initProperties = new SetActorPropetyPacket("/_init");
|
||||||
initProperties.AddByte(0xE14B0CA8, 1);
|
initProperties.AddByte(0xE14B0CA8, 1);
|
||||||
initProperties.AddByte(0x2138FD71, 1);
|
initProperties.AddByte(0x2138FD71, 1);
|
||||||
initProperties.AddByte(0xFBFBCFB1, 1);
|
initProperties.AddByte(0xFBFBCFB1, 1);
|
||||||
initProperties.AddTarget();
|
initProperties.AddTarget();
|
||||||
return BasePacket.CreatePacket(initProperties.BuildPacket(playerActorId, actorId), true, false);
|
packets.Add(initProperties.BuildPacket(actorId));
|
||||||
|
return packets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool Equals(Object obj)
|
public override bool Equals(Object obj)
|
||||||
@ -299,8 +328,8 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
public void ChangeState(ushort newState)
|
public void ChangeState(ushort newState)
|
||||||
{
|
{
|
||||||
currentMainState = newState;
|
currentMainState = newState;
|
||||||
SubPacket ChangeStatePacket = SetActorStatePacket.BuildPacket(actorId, actorId, newState, currentSubState);
|
SubPacket ChangeStatePacket = SetActorStatePacket.BuildPacket(actorId, newState, currentSubState);
|
||||||
SubPacket battleActionPacket = BattleAction1Packet.BuildPacket(actorId, actorId);
|
SubPacket battleActionPacket = BattleActionX01Packet.BuildPacket(actorId, actorId, actorId, 0x72000062, 1, 0, 0x05209, 0, 0);
|
||||||
zone.BroadcastPacketAroundActor(this, ChangeStatePacket);
|
zone.BroadcastPacketAroundActor(this, ChangeStatePacket);
|
||||||
zone.BroadcastPacketAroundActor(this, battleActionPacket);
|
zone.BroadcastPacketAroundActor(this, battleActionPacket);
|
||||||
}
|
}
|
||||||
@ -308,7 +337,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
public void ChangeSpeed(int type, float value)
|
public void ChangeSpeed(int type, float value)
|
||||||
{
|
{
|
||||||
moveSpeeds[type] = value;
|
moveSpeeds[type] = value;
|
||||||
SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]);
|
SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]);
|
||||||
zone.BroadcastPacketAroundActor(this, ChangeSpeedPacket);
|
zone.BroadcastPacketAroundActor(this, ChangeSpeedPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -318,7 +347,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
moveSpeeds[1] = speedWalk;
|
moveSpeeds[1] = speedWalk;
|
||||||
moveSpeeds[2] = speedRun;
|
moveSpeeds[2] = speedRun;
|
||||||
moveSpeeds[3] = speedActive;
|
moveSpeeds[3] = speedActive;
|
||||||
SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]);
|
SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]);
|
||||||
zone.BroadcastPacketAroundActor(this, ChangeSpeedPacket);
|
zone.BroadcastPacketAroundActor(this, ChangeSpeedPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -426,8 +455,8 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
SetActorPropetyPacket changeProperty = new SetActorPropetyPacket(uiFunc);
|
SetActorPropetyPacket changeProperty = new SetActorPropetyPacket(uiFunc);
|
||||||
changeProperty.AddProperty(this, name);
|
changeProperty.AddProperty(this, name);
|
||||||
changeProperty.AddTarget();
|
changeProperty.AddTarget();
|
||||||
SubPacket subpacket = changeProperty.BuildPacket(player.actorId, player.actorId);
|
SubPacket subpacket = changeProperty.BuildPacket(player.actorId);
|
||||||
player.playerSession.QueuePacket(subpacket, true, false);
|
player.playerSession.QueuePacket(subpacket);
|
||||||
subpacket.DebugPrintSubPacket();
|
subpacket.DebugPrintSubPacket();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -444,8 +473,8 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
SetActorPropetyPacket changeProperty = new SetActorPropetyPacket(uiFunc);
|
SetActorPropetyPacket changeProperty = new SetActorPropetyPacket(uiFunc);
|
||||||
changeProperty.AddProperty(this, name);
|
changeProperty.AddProperty(this, name);
|
||||||
changeProperty.AddTarget();
|
changeProperty.AddTarget();
|
||||||
SubPacket subpacket = changeProperty.BuildPacket(player.actorId, player.actorId);
|
SubPacket subpacket = changeProperty.BuildPacket(player.actorId);
|
||||||
player.playerSession.QueuePacket(subpacket, true, false);
|
player.playerSession.QueuePacket(subpacket);
|
||||||
subpacket.DebugPrintSubPacket();
|
subpacket.DebugPrintSubPacket();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -480,7 +509,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
rotation = rot;
|
rotation = rot;
|
||||||
|
|
||||||
// todo: handle zone?
|
// todo: handle zone?
|
||||||
zone.BroadcastPacketAroundActor(this, MoveActorToPositionPacket.BuildPacket(this.actorId, this.actorId, x, y, z, rot, moveState));
|
zone.BroadcastPacketAroundActor(this, MoveActorToPositionPacket.BuildPacket(actorId, x, y, z, rot, moveState));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Area GetZone()
|
public Area GetZone()
|
||||||
|
@ -84,24 +84,24 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SubPacket CreateScriptBindPacket(uint playerActorId)
|
public override SubPacket CreateScriptBindPacket()
|
||||||
{
|
{
|
||||||
List<LuaParam> lParams;
|
List<LuaParam> lParams;
|
||||||
lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, "/Area/Zone/ZoneDefault", -1, (byte)1, true, false, false, false, false, false, false, false);
|
lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, "/Area/Zone/ZoneDefault", -1, (byte)1, true, false, false, false, false, false, false, false);
|
||||||
return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, "ZoneDefault", lParams);
|
return ActorInstantiatePacket.BuildPacket(actorId, actorName, "ZoneDefault", lParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override BasePacket GetSpawnPackets(uint playerActorId)
|
public override List<SubPacket> GetSpawnPackets()
|
||||||
{
|
{
|
||||||
List<SubPacket> subpackets = new List<SubPacket>();
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
subpackets.Add(CreateAddActorPacket(playerActorId, 0));
|
subpackets.Add(CreateAddActorPacket(0));
|
||||||
subpackets.Add(CreateSpeedPacket(playerActorId));
|
subpackets.Add(CreateSpeedPacket());
|
||||||
subpackets.Add(CreateSpawnPositonPacket(playerActorId, 0x1));
|
subpackets.Add(CreateSpawnPositonPacket(0x1));
|
||||||
subpackets.Add(CreateNamePacket(playerActorId));
|
subpackets.Add(CreateNamePacket());
|
||||||
subpackets.Add(CreateStatePacket(playerActorId));
|
subpackets.Add(CreateStatePacket());
|
||||||
subpackets.Add(CreateIsZoneingPacket(playerActorId));
|
subpackets.Add(CreateIsZoneingPacket());
|
||||||
subpackets.Add(CreateScriptBindPacket(playerActorId));
|
subpackets.Add(CreateScriptBindPacket());
|
||||||
return BasePacket.CreatePacket(subpackets, true, false);
|
return subpackets;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Actor Management
|
#region Actor Management
|
||||||
@ -483,7 +483,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
if (player != null && !zoneWide)
|
if (player != null && !zoneWide)
|
||||||
{
|
{
|
||||||
player.QueuePacket(BasePacket.CreatePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime), true, false));
|
player.QueuePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime));
|
||||||
}
|
}
|
||||||
if (zoneWide)
|
if (zoneWide)
|
||||||
{
|
{
|
||||||
@ -494,7 +494,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
if (actor.Value is Player)
|
if (actor.Value is Player)
|
||||||
{
|
{
|
||||||
player = ((Player)actor.Value);
|
player = ((Player)actor.Value);
|
||||||
player.QueuePacket(BasePacket.CreatePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime), true, false));
|
player.QueuePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ namespace FFXIVClassic_Map_Server.actors.area
|
|||||||
return parentZone;
|
return parentZone;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SubPacket CreateScriptBindPacket(uint playerActorId)
|
public override SubPacket CreateScriptBindPacket()
|
||||||
{
|
{
|
||||||
List<LuaParam> lParams;
|
List<LuaParam> lParams;
|
||||||
|
|
||||||
@ -50,8 +50,8 @@ namespace FFXIVClassic_Map_Server.actors.area
|
|||||||
string realClassName = className.Substring(className.LastIndexOf("/") + 1);
|
string realClassName = className.Substring(className.LastIndexOf("/") + 1);
|
||||||
|
|
||||||
lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, privateAreaName, privateAreaType, canRideChocobo ? (byte)1 : (byte)0, canStealth, isInn, false, false, false, false, false, false);
|
lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, privateAreaName, privateAreaType, canRideChocobo ? (byte)1 : (byte)0, canStealth, isInn, false, false, false, false, false, false);
|
||||||
ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, realClassName, lParams).DebugPrintSubPacket();
|
ActorInstantiatePacket.BuildPacket(actorId, actorName, realClassName, lParams).DebugPrintSubPacket();
|
||||||
return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, realClassName, lParams);
|
return ActorInstantiatePacket.BuildPacket(actorId, actorName, realClassName, lParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -51,13 +51,13 @@ namespace FFXIVClassic_Map_Server.actors.area
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SubPacket CreateScriptBindPacket(uint playerActorId)
|
public override SubPacket CreateScriptBindPacket()
|
||||||
{
|
{
|
||||||
bool isEntranceDesion = false;
|
bool isEntranceDesion = false;
|
||||||
|
|
||||||
List<LuaParam> lParams;
|
List<LuaParam> lParams;
|
||||||
lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, "", -1, canRideChocobo ? (byte)1 : (byte)0, canStealth, isInn, false, false, false, true, isInstanceRaid, isEntranceDesion);
|
lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, "", -1, canRideChocobo ? (byte)1 : (byte)0, canStealth, isInn, false, false, false, true, isInstanceRaid, isEntranceDesion);
|
||||||
return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams);
|
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddSpawnLocation(SpawnLocation spawn)
|
public void AddSpawnLocation(SpawnLocation spawn)
|
||||||
|
@ -63,30 +63,30 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
charaWork.statusShownTime[i] = 0xFFFFFFFF;
|
charaWork.statusShownTime[i] = 0xFFFFFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateAppearancePacket(uint playerActorId)
|
public SubPacket CreateAppearancePacket()
|
||||||
{
|
{
|
||||||
SetActorAppearancePacket setappearance = new SetActorAppearancePacket(modelId, appearanceIds);
|
SetActorAppearancePacket setappearance = new SetActorAppearancePacket(modelId, appearanceIds);
|
||||||
return setappearance.BuildPacket(actorId, playerActorId);
|
return setappearance.BuildPacket(actorId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateInitStatusPacket(uint playerActorId)
|
public SubPacket CreateInitStatusPacket()
|
||||||
{
|
{
|
||||||
return (SetActorStatusAllPacket.BuildPacket(actorId, playerActorId, charaWork.status));
|
return (SetActorStatusAllPacket.BuildPacket(actorId, charaWork.status));
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateSetActorIconPacket(uint playerActorId)
|
public SubPacket CreateSetActorIconPacket()
|
||||||
{
|
{
|
||||||
return SetActorIconPacket.BuildPacket(actorId, playerActorId, currentActorIcon);
|
return SetActorIconPacket.BuildPacket(actorId, currentActorIcon);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateIdleAnimationPacket(uint playerActorId)
|
public SubPacket CreateIdleAnimationPacket()
|
||||||
{
|
{
|
||||||
return SetActorSubStatPacket.BuildPacket(actorId, playerActorId, 0, 0, 0, 0, 0, 0, animationId);
|
return SetActorSubStatPacket.BuildPacket(actorId, 0, 0, 0, 0, 0, 0, animationId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetQuestGraphic(Player player, int graphicNum)
|
public void SetQuestGraphic(Player player, int graphicNum)
|
||||||
{
|
{
|
||||||
player.QueuePacket(SetActorQuestGraphicPacket.BuildPacket(player.actorId, actorId, graphicNum));
|
player.QueuePacket(SetActorQuestGraphicPacket.BuildPacket(actorId, graphicNum));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetCurrentContentGroup(ContentGroup group)
|
public void SetCurrentContentGroup(ContentGroup group)
|
||||||
@ -98,7 +98,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
currentContentGroup = group;
|
currentContentGroup = group;
|
||||||
|
|
||||||
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("charaWork/currentContentGroup", this, actorId);
|
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("charaWork/currentContentGroup", this);
|
||||||
propPacketUtil.AddProperty("charaWork.currentContentGroup");
|
propPacketUtil.AddProperty("charaWork.currentContentGroup");
|
||||||
zone.BroadcastPacketsAroundActor(this, propPacketUtil.Done());
|
zone.BroadcastPacketsAroundActor(this, propPacketUtil.Done());
|
||||||
|
|
||||||
@ -109,10 +109,10 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
if (onlySelf)
|
if (onlySelf)
|
||||||
{
|
{
|
||||||
if (this is Player)
|
if (this is Player)
|
||||||
((Player)this).QueuePacket(PlayAnimationOnActorPacket.BuildPacket(actorId, actorId, animId));
|
((Player)this).QueuePacket(PlayAnimationOnActorPacket.BuildPacket(actorId, animId));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
zone.BroadcastPacketAroundActor(this, PlayAnimationOnActorPacket.BuildPacket(actorId, actorId, animId));
|
zone.BroadcastPacketAroundActor(this, PlayAnimationOnActorPacket.BuildPacket(actorId, animId));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -126,18 +126,17 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
GenerateActorName((int)actorNumber);
|
GenerateActorName((int)actorNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket CreateAddActorPacket(uint playerActorId)
|
public SubPacket CreateAddActorPacket()
|
||||||
{
|
{
|
||||||
return AddActorPacket.BuildPacket(actorId, playerActorId, 8);
|
return AddActorPacket.BuildPacket(actorId, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
int val = 0x0b00;
|
int val = 0x0b00;
|
||||||
// actorClassId, [], [], numBattleCommon, [battleCommon], numEventCommon, [eventCommon], args for either initForBattle/initForEvent
|
// actorClassId, [], [], numBattleCommon, [battleCommon], numEventCommon, [eventCommon], args for either initForBattle/initForEvent
|
||||||
public override SubPacket CreateScriptBindPacket(uint playerActorId)
|
public override SubPacket CreateScriptBindPacket(Player player)
|
||||||
{
|
{
|
||||||
List<LuaParam> lParams;
|
List<LuaParam> lParams;
|
||||||
|
|
||||||
Player player = Server.GetWorldManager().GetPCInWorld(playerActorId);
|
|
||||||
lParams = LuaEngine.GetInstance().CallLuaFunctionForReturn(player, this, "init", false);
|
lParams = LuaEngine.GetInstance().CallLuaFunctionForReturn(player, this, "init", false);
|
||||||
|
|
||||||
if (uniqueIdentifier.Equals("1"))
|
if (uniqueIdentifier.Equals("1"))
|
||||||
@ -161,8 +160,8 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
string classNameFake = "PopulaceStandard";
|
string classNameFake = "PopulaceStandard";
|
||||||
lParams = LuaUtils.CreateLuaParamList(classPathFake, false, false, false, false, false, 0xF47F6, false, false, 0, 0);
|
lParams = LuaUtils.CreateLuaParamList(classPathFake, false, false, false, false, false, 0xF47F6, false, false, 0, 0);
|
||||||
isStatic = true;
|
isStatic = true;
|
||||||
//ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, classNameFake, lParams).DebugPrintSubPacket();
|
//ActorInstantiatePacket.BuildPacket(actorId, actorName, classNameFake, lParams).DebugPrintSubPacket();
|
||||||
return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, classNameFake, lParams);
|
return ActorInstantiatePacket.BuildPacket(actorId, actorName, classNameFake, lParams);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -175,37 +174,37 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
lParams.Insert(6, new LuaParam(0, (int)actorClassId));
|
lParams.Insert(6, new LuaParam(0, (int)actorClassId));
|
||||||
}
|
}
|
||||||
|
|
||||||
//ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams).DebugPrintSubPacket();
|
//ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams).DebugPrintSubPacket();
|
||||||
return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams);
|
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override BasePacket GetSpawnPackets(uint playerActorId, ushort spawnType)
|
public override List<SubPacket> GetSpawnPackets(Player player, ushort spawnType)
|
||||||
{
|
{
|
||||||
List<SubPacket> subpackets = new List<SubPacket>();
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
subpackets.Add(CreateAddActorPacket(playerActorId));
|
subpackets.Add(CreateAddActorPacket());
|
||||||
subpackets.AddRange(GetEventConditionPackets(playerActorId));
|
subpackets.AddRange(GetEventConditionPackets());
|
||||||
subpackets.Add(CreateSpeedPacket(playerActorId));
|
subpackets.Add(CreateSpeedPacket());
|
||||||
subpackets.Add(CreateSpawnPositonPacket(playerActorId, 0x0));
|
subpackets.Add(CreateSpawnPositonPacket(0x0));
|
||||||
|
|
||||||
if (isMapObj)
|
if (isMapObj)
|
||||||
subpackets.Add(_0xD8Packet.BuildPacket(actorId, playerActorId, instance, layout));
|
subpackets.Add(SetActorBGPropertiesPacket.BuildPacket(actorId, instance, layout));
|
||||||
else
|
else
|
||||||
subpackets.Add(CreateAppearancePacket(playerActorId));
|
subpackets.Add(CreateAppearancePacket());
|
||||||
|
|
||||||
subpackets.Add(CreateNamePacket(playerActorId));
|
subpackets.Add(CreateNamePacket());
|
||||||
subpackets.Add(CreateStatePacket(playerActorId));
|
subpackets.Add(CreateStatePacket());
|
||||||
subpackets.Add(CreateIdleAnimationPacket(playerActorId));
|
subpackets.Add(CreateIdleAnimationPacket());
|
||||||
subpackets.Add(CreateInitStatusPacket(playerActorId));
|
subpackets.Add(CreateInitStatusPacket());
|
||||||
subpackets.Add(CreateSetActorIconPacket(playerActorId));
|
subpackets.Add(CreateSetActorIconPacket());
|
||||||
subpackets.Add(CreateIsZoneingPacket(playerActorId));
|
subpackets.Add(CreateIsZoneingPacket());
|
||||||
subpackets.Add(CreateScriptBindPacket(playerActorId));
|
subpackets.Add(CreateScriptBindPacket(player));
|
||||||
|
|
||||||
return BasePacket.CreatePacket(subpackets, true, false);
|
return subpackets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override BasePacket GetInitPackets(uint playerActorId)
|
public override List<SubPacket> GetInitPackets()
|
||||||
{
|
{
|
||||||
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this, playerActorId);
|
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this);
|
||||||
|
|
||||||
//Potential
|
//Potential
|
||||||
propPacketUtil.AddProperty("charaWork.battleSave.potencial");
|
propPacketUtil.AddProperty("charaWork.battleSave.potencial");
|
||||||
@ -259,7 +258,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
propPacketUtil.AddProperty("npcWork.pushCommandPriority");
|
propPacketUtil.AddProperty("npcWork.pushCommandPriority");
|
||||||
}
|
}
|
||||||
|
|
||||||
return BasePacket.CreatePacket(propPacketUtil.Done(), true, false);
|
return propPacketUtil.Done();
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetUniqueId()
|
public string GetUniqueId()
|
||||||
@ -275,7 +274,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
public void ChangeNpcAppearance(uint id)
|
public void ChangeNpcAppearance(uint id)
|
||||||
{
|
{
|
||||||
LoadNpcAppearance(id);
|
LoadNpcAppearance(id);
|
||||||
zone.BroadcastPacketAroundActor(this, CreateAppearancePacket(actorId));
|
zone.BroadcastPacketAroundActor(this, CreateAppearancePacket());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadNpcAppearance(uint id)
|
public void LoadNpcAppearance(uint id)
|
||||||
@ -393,7 +392,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
public void PlayMapObjAnimation(Player player, string animationName)
|
public void PlayMapObjAnimation(Player player, string animationName)
|
||||||
{
|
{
|
||||||
player.QueuePacket(PlayBGAnimation.BuildPacket(actorId, player.actorId, animationName));
|
player.QueuePacket(PlayBGAnimation.BuildPacket(actorId, animationName));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Despawn()
|
public void Despawn()
|
||||||
|
@ -63,24 +63,24 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
toPlayer.QueuePacket(InventorySetBeginPacket.BuildPacket(owner.actorId, toPlayer.actorId, 0x23, Inventory.EQUIPMENT_OTHERPLAYER));
|
toPlayer.QueuePacket(InventorySetBeginPacket.BuildPacket(owner.actorId, 0x23, Inventory.EQUIPMENT_OTHERPLAYER));
|
||||||
int currentIndex = 0;
|
int currentIndex = 0;
|
||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
if (items.Count - currentIndex >= 16)
|
if (items.Count - currentIndex >= 16)
|
||||||
toPlayer.QueuePacket(InventoryListX16Packet.BuildPacket(owner.actorId, toPlayer.actorId, items, ref currentIndex));
|
toPlayer.QueuePacket(InventoryListX16Packet.BuildPacket(owner.actorId, items, ref currentIndex));
|
||||||
else if (items.Count - currentIndex > 1)
|
else if (items.Count - currentIndex > 1)
|
||||||
toPlayer.QueuePacket(InventoryListX08Packet.BuildPacket(owner.actorId, toPlayer.actorId, items, ref currentIndex));
|
toPlayer.QueuePacket(InventoryListX08Packet.BuildPacket(owner.actorId, items, ref currentIndex));
|
||||||
else if (items.Count - currentIndex == 1)
|
else if (items.Count - currentIndex == 1)
|
||||||
{
|
{
|
||||||
toPlayer.QueuePacket(InventoryListX01Packet.BuildPacket(owner.actorId, toPlayer.actorId, items[currentIndex]));
|
toPlayer.QueuePacket(InventoryListX01Packet.BuildPacket(owner.actorId, items[currentIndex]));
|
||||||
currentIndex++;
|
currentIndex++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
toPlayer.QueuePacket(InventorySetEndPacket.BuildPacket(owner.actorId, toPlayer.actorId));
|
toPlayer.QueuePacket(InventorySetEndPacket.BuildPacket(owner.actorId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendFullEquipment(bool DoClear)
|
public void SendFullEquipment(bool DoClear)
|
||||||
|
@ -249,17 +249,17 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
lastPlayTimeUpdate = Utils.UnixTimeStampUTC();
|
lastPlayTimeUpdate = Utils.UnixTimeStampUTC();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SubPacket> Create0x132Packets(uint playerActorId)
|
public List<SubPacket> Create0x132Packets()
|
||||||
{
|
{
|
||||||
List<SubPacket> packets = new List<SubPacket>();
|
List<SubPacket> packets = new List<SubPacket>();
|
||||||
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0xB, "commandForced"));
|
packets.Add(_0x132Packet.BuildPacket(actorId, 0xB, "commandForced"));
|
||||||
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0xA, "commandDefault"));
|
packets.Add(_0x132Packet.BuildPacket(actorId, 0xA, "commandDefault"));
|
||||||
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x6, "commandWeak"));
|
packets.Add(_0x132Packet.BuildPacket(actorId, 0x6, "commandWeak"));
|
||||||
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x4, "commandContent"));
|
packets.Add(_0x132Packet.BuildPacket(actorId, 0x4, "commandContent"));
|
||||||
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x6, "commandJudgeMode"));
|
packets.Add(_0x132Packet.BuildPacket(actorId, 0x6, "commandJudgeMode"));
|
||||||
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "commandRequest"));
|
packets.Add(_0x132Packet.BuildPacket(actorId, 0x100, "commandRequest"));
|
||||||
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "widgetCreate"));
|
packets.Add(_0x132Packet.BuildPacket(actorId, 0x100, "widgetCreate"));
|
||||||
packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "macroRequest"));
|
packets.Add(_0x132Packet.BuildPacket(actorId, 0x100, "macroRequest"));
|
||||||
return packets;
|
return packets;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -274,10 +274,10 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
* Timer Array - 20 Number
|
* Timer Array - 20 Number
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public override SubPacket CreateScriptBindPacket(uint playerActorId)
|
public override SubPacket CreateScriptBindPacket(Player requestPlayer)
|
||||||
{
|
{
|
||||||
List<LuaParam> lParams;
|
List<LuaParam> lParams;
|
||||||
if (IsMyPlayer(playerActorId))
|
if (IsMyPlayer(requestPlayer.actorId))
|
||||||
{
|
{
|
||||||
if (loginInitDirector != null)
|
if (loginInitDirector != null)
|
||||||
lParams = LuaUtils.CreateLuaParamList("/Chara/Player/Player_work", false, false, true, loginInitDirector, true, 0, false, timers, true);
|
lParams = LuaUtils.CreateLuaParamList("/Chara/Player/Player_work", false, false, true, loginInitDirector, true, 0, false, timers, true);
|
||||||
@ -287,59 +287,59 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
else
|
else
|
||||||
lParams = LuaUtils.CreateLuaParamList("/Chara/Player/Player_work", false, false, false, false, false, true);
|
lParams = LuaUtils.CreateLuaParamList("/Chara/Player/Player_work", false, false, false, false, false, true);
|
||||||
|
|
||||||
ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams).DebugPrintSubPacket();
|
ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams).DebugPrintSubPacket();
|
||||||
|
|
||||||
return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams);
|
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override BasePacket GetSpawnPackets(uint playerActorId, ushort spawnType)
|
public override List<SubPacket> GetSpawnPackets(Player requestPlayer, ushort spawnType)
|
||||||
{
|
{
|
||||||
List<SubPacket> subpackets = new List<SubPacket>();
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
subpackets.Add(CreateAddActorPacket(playerActorId, 8));
|
subpackets.Add(CreateAddActorPacket(8));
|
||||||
if (IsMyPlayer(playerActorId))
|
if (IsMyPlayer(requestPlayer.actorId))
|
||||||
subpackets.AddRange(Create0x132Packets(playerActorId));
|
subpackets.AddRange(Create0x132Packets());
|
||||||
subpackets.Add(CreateSpeedPacket(playerActorId));
|
subpackets.Add(CreateSpeedPacket());
|
||||||
subpackets.Add(CreateSpawnPositonPacket(playerActorId, spawnType));
|
subpackets.Add(CreateSpawnPositonPacket(this, spawnType));
|
||||||
subpackets.Add(CreateAppearancePacket(playerActorId));
|
subpackets.Add(CreateAppearancePacket());
|
||||||
subpackets.Add(CreateNamePacket(playerActorId));
|
subpackets.Add(CreateNamePacket());
|
||||||
subpackets.Add(_0xFPacket.BuildPacket(playerActorId, playerActorId));
|
subpackets.Add(_0xFPacket.BuildPacket(actorId));
|
||||||
subpackets.Add(CreateStatePacket(playerActorId));
|
subpackets.Add(CreateStatePacket());
|
||||||
subpackets.Add(CreateIdleAnimationPacket(playerActorId));
|
subpackets.Add(CreateIdleAnimationPacket());
|
||||||
subpackets.Add(CreateInitStatusPacket(playerActorId));
|
subpackets.Add(CreateInitStatusPacket());
|
||||||
subpackets.Add(CreateSetActorIconPacket(playerActorId));
|
subpackets.Add(CreateSetActorIconPacket());
|
||||||
subpackets.Add(CreateIsZoneingPacket(playerActorId));
|
subpackets.Add(CreateIsZoneingPacket());
|
||||||
subpackets.AddRange(CreatePlayerRelatedPackets(playerActorId));
|
subpackets.AddRange(CreatePlayerRelatedPackets(requestPlayer.actorId));
|
||||||
subpackets.Add(CreateScriptBindPacket(playerActorId));
|
subpackets.Add(CreateScriptBindPacket(requestPlayer));
|
||||||
return BasePacket.CreatePacket(subpackets, true, false);
|
return subpackets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SubPacket> CreatePlayerRelatedPackets(uint playerActorId)
|
public List<SubPacket> CreatePlayerRelatedPackets(uint requestingPlayerActorId)
|
||||||
{
|
{
|
||||||
List<SubPacket> subpackets = new List<SubPacket>();
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
|
|
||||||
if (gcCurrent != 0)
|
if (gcCurrent != 0)
|
||||||
subpackets.Add(SetGrandCompanyPacket.BuildPacket(actorId, playerActorId, gcCurrent, gcRankLimsa, gcRankGridania, gcRankUldah));
|
subpackets.Add(SetGrandCompanyPacket.BuildPacket(actorId, gcCurrent, gcRankLimsa, gcRankGridania, gcRankUldah));
|
||||||
|
|
||||||
if (currentTitle != 0)
|
if (currentTitle != 0)
|
||||||
subpackets.Add(SetPlayerTitlePacket.BuildPacket(actorId, playerActorId, currentTitle));
|
subpackets.Add(SetPlayerTitlePacket.BuildPacket(actorId, currentTitle));
|
||||||
|
|
||||||
if (currentJob != 0)
|
if (currentJob != 0)
|
||||||
subpackets.Add(SetCurrentJobPacket.BuildPacket(actorId, playerActorId, currentJob));
|
subpackets.Add(SetCurrentJobPacket.BuildPacket(actorId, currentJob));
|
||||||
|
|
||||||
if (IsMyPlayer(playerActorId))
|
if (IsMyPlayer(requestingPlayerActorId))
|
||||||
{
|
{
|
||||||
subpackets.Add(SetSpecialEventWorkPacket.BuildPacket(playerActorId, playerActorId));
|
subpackets.Add(SetSpecialEventWorkPacket.BuildPacket(actorId));
|
||||||
|
|
||||||
if (hasChocobo && chocoboName != null && !chocoboName.Equals(""))
|
if (hasChocobo && chocoboName != null && !chocoboName.Equals(""))
|
||||||
{
|
{
|
||||||
subpackets.Add(SetChocoboNamePacket.BuildPacket(actorId, playerActorId, chocoboName));
|
subpackets.Add(SetChocoboNamePacket.BuildPacket(actorId, chocoboName));
|
||||||
subpackets.Add(SetHasChocoboPacket.BuildPacket(playerActorId, hasChocobo));
|
subpackets.Add(SetHasChocoboPacket.BuildPacket(actorId, hasChocobo));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasGoobbue)
|
if (hasGoobbue)
|
||||||
subpackets.Add(SetHasGoobbuePacket.BuildPacket(playerActorId, hasGoobbue));
|
subpackets.Add(SetHasGoobbuePacket.BuildPacket(actorId, hasGoobbue));
|
||||||
|
|
||||||
subpackets.Add(SetAchievementPointsPacket.BuildPacket(playerActorId, achievementPoints));
|
subpackets.Add(SetAchievementPointsPacket.BuildPacket(actorId, achievementPoints));
|
||||||
subpackets.Add(Database.GetLatestAchievements(this));
|
subpackets.Add(Database.GetLatestAchievements(this));
|
||||||
subpackets.Add(Database.GetAchievementsPacket(this));
|
subpackets.Add(Database.GetAchievementsPacket(this));
|
||||||
}
|
}
|
||||||
@ -347,9 +347,9 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
return subpackets;
|
return subpackets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override BasePacket GetInitPackets(uint playerActorId)
|
public override List<SubPacket> GetInitPackets()
|
||||||
{
|
{
|
||||||
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this, playerActorId);
|
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this);
|
||||||
|
|
||||||
propPacketUtil.AddProperty("charaWork.eventSave.bazaarTax");
|
propPacketUtil.AddProperty("charaWork.eventSave.bazaarTax");
|
||||||
propPacketUtil.AddProperty("charaWork.battleSave.potencial");
|
propPacketUtil.AddProperty("charaWork.battleSave.potencial");
|
||||||
@ -494,7 +494,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
propPacketUtil.AddProperty("playerWork.birthdayDay");
|
propPacketUtil.AddProperty("playerWork.birthdayDay");
|
||||||
propPacketUtil.AddProperty("playerWork.initialTown");
|
propPacketUtil.AddProperty("playerWork.initialTown");
|
||||||
|
|
||||||
return BasePacket.CreatePacket(propPacketUtil.Done(), true, false);
|
return propPacketUtil.Done();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendSeamlessZoneInPackets()
|
public void SendSeamlessZoneInPackets()
|
||||||
@ -505,14 +505,14 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
public void SendZoneInPackets(WorldManager world, ushort spawnType)
|
public void SendZoneInPackets(WorldManager world, ushort spawnType)
|
||||||
{
|
{
|
||||||
QueuePacket(SetActorIsZoningPacket.BuildPacket(actorId, actorId, false));
|
QueuePacket(SetActorIsZoningPacket.BuildPacket(actorId, false));
|
||||||
QueuePacket(_0x10Packet.BuildPacket(actorId, 0xFF));
|
QueuePacket(_0x10Packet.BuildPacket(actorId, 0xFF));
|
||||||
QueuePacket(SetMusicPacket.BuildPacket(actorId, zone.bgmDay, 0x01));
|
QueuePacket(SetMusicPacket.BuildPacket(actorId, zone.bgmDay, 0x01));
|
||||||
QueuePacket(SetWeatherPacket.BuildPacket(actorId, SetWeatherPacket.WEATHER_CLEAR, 1));
|
QueuePacket(SetWeatherPacket.BuildPacket(actorId, SetWeatherPacket.WEATHER_CLEAR, 1));
|
||||||
|
|
||||||
QueuePacket(SetMapPacket.BuildPacket(actorId, zone.regionId, zone.actorId));
|
QueuePacket(SetMapPacket.BuildPacket(actorId, zone.regionId, zone.actorId));
|
||||||
|
|
||||||
QueuePacket(GetSpawnPackets(actorId, spawnType));
|
QueuePackets(GetSpawnPackets(this, spawnType));
|
||||||
//GetSpawnPackets(actorId, spawnType).DebugPrintPacket();
|
//GetSpawnPackets(actorId, spawnType).DebugPrintPacket();
|
||||||
|
|
||||||
#region Inventory & Equipment
|
#region Inventory & Equipment
|
||||||
@ -524,14 +524,14 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
inventories[Inventory.MELDREQUEST].SendFullInventory();
|
inventories[Inventory.MELDREQUEST].SendFullInventory();
|
||||||
inventories[Inventory.LOOT].SendFullInventory();
|
inventories[Inventory.LOOT].SendFullInventory();
|
||||||
equipment.SendFullEquipment(false);
|
equipment.SendFullEquipment(false);
|
||||||
playerSession.QueuePacket(InventoryEndChangePacket.BuildPacket(actorId), true, false);
|
playerSession.QueuePacket(InventoryEndChangePacket.BuildPacket(actorId));
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
playerSession.QueuePacket(GetInitPackets(actorId));
|
playerSession.QueuePacket(GetInitPackets());
|
||||||
|
|
||||||
BasePacket areaMasterSpawn = zone.GetSpawnPackets(actorId);
|
List<SubPacket> areaMasterSpawn = zone.GetSpawnPackets();
|
||||||
BasePacket debugSpawn = world.GetDebugActor().GetSpawnPackets(actorId);
|
List<SubPacket> debugSpawn = world.GetDebugActor().GetSpawnPackets();
|
||||||
BasePacket worldMasterSpawn = world.GetActor().GetSpawnPackets(actorId);
|
List<SubPacket> worldMasterSpawn = world.GetActor().GetSpawnPackets();
|
||||||
|
|
||||||
playerSession.QueuePacket(areaMasterSpawn);
|
playerSession.QueuePacket(areaMasterSpawn);
|
||||||
playerSession.QueuePacket(debugSpawn);
|
playerSession.QueuePacket(debugSpawn);
|
||||||
@ -552,16 +552,14 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
if (zone.GetWeatherDirector() != null)
|
if (zone.GetWeatherDirector() != null)
|
||||||
{
|
{
|
||||||
BasePacket weatherDirectorSpawn = zone.GetWeatherDirector().GetSpawnPackets(actorId);
|
playerSession.QueuePacket(zone.GetWeatherDirector().GetSpawnPackets());
|
||||||
playerSession.QueuePacket(weatherDirectorSpawn);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
foreach (Director director in ownedDirectors)
|
foreach (Director director in ownedDirectors)
|
||||||
{
|
{
|
||||||
director.GetSpawnPackets(actorId).DebugPrintPacket();
|
QueuePackets(director.GetSpawnPackets());
|
||||||
QueuePacket(director.GetSpawnPackets(actorId));
|
QueuePackets(director.GetInitPackets());
|
||||||
QueuePacket(director.GetInitPackets(actorId));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentContentGroup != null)
|
if (currentContentGroup != null)
|
||||||
@ -596,30 +594,24 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
return actorId == otherActorId;
|
return actorId == otherActorId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void QueuePacket(BasePacket packet)
|
public void QueuePacket(SubPacket packet)
|
||||||
{
|
{
|
||||||
playerSession.QueuePacket(packet);
|
playerSession.QueuePacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void QueuePacket(SubPacket packet)
|
|
||||||
{
|
|
||||||
playerSession.QueuePacket(packet, true, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void QueuePackets(List<SubPacket> packets)
|
public void QueuePackets(List<SubPacket> packets)
|
||||||
{
|
{
|
||||||
foreach (SubPacket subpacket in packets)
|
playerSession.QueuePacket(packets);
|
||||||
playerSession.QueuePacket(subpacket, true, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendPacket(string path)
|
public void SendPacket(string path)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BasePacket packet = new BasePacket(path);
|
// BasePacket packet = new BasePacket(path);
|
||||||
|
|
||||||
packet.ReplaceActorID(actorId);
|
//packet.ReplaceActorID(actorId);
|
||||||
QueuePacket(packet);
|
//QueuePacket(packet);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@ -655,14 +647,14 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
{
|
{
|
||||||
if (flag)
|
if (flag)
|
||||||
{
|
{
|
||||||
BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, actorId, SetActorIconPacket.DISCONNECTING), true);
|
BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, SetActorIconPacket.DISCONNECTING), true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (isGM)
|
if (isGM)
|
||||||
BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, actorId, SetActorIconPacket.ISGM), true);
|
BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, SetActorIconPacket.ISGM), true);
|
||||||
else
|
else
|
||||||
BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, actorId, 0), true);
|
BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, 0), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -715,7 +707,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
public void SendMessage(uint logType, string sender, string message)
|
public void SendMessage(uint logType, string sender, string message)
|
||||||
{
|
{
|
||||||
QueuePacket(SendMessagePacket.BuildPacket(actorId, actorId, logType, sender, message));
|
QueuePacket(SendMessagePacket.BuildPacket(actorId, logType, sender, message));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Logout()
|
public void Logout()
|
||||||
@ -774,41 +766,41 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
public void DoEmote(uint targettedActor, uint animId, uint descId)
|
public void DoEmote(uint targettedActor, uint animId, uint descId)
|
||||||
{
|
{
|
||||||
BroadcastPacket(ActorDoEmotePacket.BuildPacket(actorId, actorId, targettedActor, animId, descId), true);
|
BroadcastPacket(ActorDoEmotePacket.BuildPacket(actorId, targettedActor, animId, descId), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendGameMessage(Actor sourceActor, Actor textIdOwner, ushort textId, byte log, params object[] msgParams)
|
public void SendGameMessage(Actor sourceActor, Actor textIdOwner, ushort textId, byte log, params object[] msgParams)
|
||||||
{
|
{
|
||||||
if (msgParams == null || msgParams.Length == 0)
|
if (msgParams == null || msgParams.Length == 0)
|
||||||
{
|
{
|
||||||
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, sourceActor.actorId, textIdOwner.actorId, textId, log));
|
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, sourceActor.actorId, textIdOwner.actorId, textId, log));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, sourceActor.actorId, textIdOwner.actorId, textId, log, LuaUtils.CreateLuaParamList(msgParams)));
|
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, sourceActor.actorId, textIdOwner.actorId, textId, log, LuaUtils.CreateLuaParamList(msgParams)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendGameMessage(Actor textIdOwner, ushort textId, byte log, params object[] msgParams)
|
public void SendGameMessage(Actor textIdOwner, ushort textId, byte log, params object[] msgParams)
|
||||||
{
|
{
|
||||||
if (msgParams == null || msgParams.Length == 0)
|
if (msgParams == null || msgParams.Length == 0)
|
||||||
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, log));
|
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, log));
|
||||||
else
|
else
|
||||||
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, log, LuaUtils.CreateLuaParamList(msgParams)));
|
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, log, LuaUtils.CreateLuaParamList(msgParams)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendGameMessageCustomSender(Actor textIdOwner, ushort textId, byte log, string customSender, params object[] msgParams)
|
public void SendGameMessageCustomSender(Actor textIdOwner, ushort textId, byte log, string customSender, params object[] msgParams)
|
||||||
{
|
{
|
||||||
if (msgParams == null || msgParams.Length == 0)
|
if (msgParams == null || msgParams.Length == 0)
|
||||||
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, customSender, log));
|
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, customSender, log));
|
||||||
else
|
else
|
||||||
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, customSender, log, LuaUtils.CreateLuaParamList(msgParams)));
|
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, customSender, log, LuaUtils.CreateLuaParamList(msgParams)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendGameMessageDisplayIDSender(Actor textIdOwner, ushort textId, byte log, uint displayId, params object[] msgParams)
|
public void SendGameMessageDisplayIDSender(Actor textIdOwner, ushort textId, byte log, uint displayId, params object[] msgParams)
|
||||||
{
|
{
|
||||||
if (msgParams == null || msgParams.Length == 0)
|
if (msgParams == null || msgParams.Length == 0)
|
||||||
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, displayId, log));
|
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, displayId, log));
|
||||||
else
|
else
|
||||||
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, displayId, log, LuaUtils.CreateLuaParamList(msgParams)));
|
QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, displayId, log, LuaUtils.CreateLuaParamList(msgParams)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BroadcastWorldMessage(ushort worldMasterId, params object[] msgParams)
|
public void BroadcastWorldMessage(ushort worldMasterId, params object[] msgParams)
|
||||||
@ -843,7 +835,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
public void SendAppearance()
|
public void SendAppearance()
|
||||||
{
|
{
|
||||||
BroadcastPacket(CreateAppearancePacket(actorId), true);
|
BroadcastPacket(CreateAppearancePacket(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendCharaExpInfo()
|
public void SendCharaExpInfo()
|
||||||
@ -875,7 +867,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
charaInfo1.AddTarget();
|
charaInfo1.AddTarget();
|
||||||
|
|
||||||
QueuePacket(charaInfo1.BuildPacket(actorId, actorId));
|
QueuePacket(charaInfo1.BuildPacket(actorId));
|
||||||
}
|
}
|
||||||
else if (lastStep == 1)
|
else if (lastStep == 1)
|
||||||
{
|
{
|
||||||
@ -906,7 +898,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
charaInfo1.AddTarget();
|
charaInfo1.AddTarget();
|
||||||
|
|
||||||
QueuePacket(charaInfo1.BuildPacket(actorId, actorId));
|
QueuePacket(charaInfo1.BuildPacket(actorId));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -963,7 +955,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
playerWork.restBonusExpRate = 0.0f;
|
playerWork.restBonusExpRate = 0.0f;
|
||||||
|
|
||||||
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("charaWork/stateForAll", this, actorId);
|
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("charaWork/stateForAll", this);
|
||||||
|
|
||||||
propertyBuilder.AddProperty("charaWork.parameterSave.state_mainSkill[0]");
|
propertyBuilder.AddProperty("charaWork.parameterSave.state_mainSkill[0]");
|
||||||
propertyBuilder.AddProperty("charaWork.parameterSave.state_mainSkillLevel");
|
propertyBuilder.AddProperty("charaWork.parameterSave.state_mainSkillLevel");
|
||||||
@ -1007,7 +999,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
Database.SavePlayerAppearance(this);
|
Database.SavePlayerAppearance(this);
|
||||||
|
|
||||||
BroadcastPacket(CreateAppearancePacket(actorId), true);
|
BroadcastPacket(CreateAppearancePacket(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Inventory GetInventory(ushort type)
|
public Inventory GetInventory(ushort type)
|
||||||
@ -1404,7 +1396,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
Database.SaveNpcLS(this, npcLSId, isCalling, isExtra);
|
Database.SaveNpcLS(this, npcLSId, isCalling, isExtra);
|
||||||
|
|
||||||
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("playerWork/npcLinkshellChat", this, actorId);
|
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("playerWork/npcLinkshellChat", this);
|
||||||
propPacketUtil.AddProperty(String.Format("playerWork.npcLinkshellChatExtra[{0}]", npcLSId));
|
propPacketUtil.AddProperty(String.Format("playerWork.npcLinkshellChatExtra[{0}]", npcLSId));
|
||||||
propPacketUtil.AddProperty(String.Format("playerWork.npcLinkshellChatCalling[{0}]", npcLSId));
|
propPacketUtil.AddProperty(String.Format("playerWork.npcLinkshellChatCalling[{0}]", npcLSId));
|
||||||
QueuePackets(propPacketUtil.Done());
|
QueuePackets(propPacketUtil.Done());
|
||||||
@ -1412,21 +1404,21 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
private void SendQuestClientUpdate(int slot)
|
private void SendQuestClientUpdate(int slot)
|
||||||
{
|
{
|
||||||
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("playerWork/journal", this, actorId);
|
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("playerWork/journal", this);
|
||||||
propPacketUtil.AddProperty(String.Format("playerWork.questScenario[{0}]", slot));
|
propPacketUtil.AddProperty(String.Format("playerWork.questScenario[{0}]", slot));
|
||||||
QueuePackets(propPacketUtil.Done());
|
QueuePackets(propPacketUtil.Done());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SendGuildleveClientUpdate(int slot)
|
private void SendGuildleveClientUpdate(int slot)
|
||||||
{
|
{
|
||||||
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("work/guildleve", this, actorId);
|
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("work/guildleve", this);
|
||||||
propPacketUtil.AddProperty(String.Format("work.guildleveId[{0}]", slot));
|
propPacketUtil.AddProperty(String.Format("work.guildleveId[{0}]", slot));
|
||||||
QueuePackets(propPacketUtil.Done());
|
QueuePackets(propPacketUtil.Done());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SendGuildleveMarkClientUpdate(int slot)
|
private void SendGuildleveMarkClientUpdate(int slot)
|
||||||
{
|
{
|
||||||
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("work/guildleve", this, actorId);
|
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("work/guildleve", this);
|
||||||
propPacketUtil.AddProperty(String.Format("work.guildleveDone[{0}]", slot));
|
propPacketUtil.AddProperty(String.Format("work.guildleveDone[{0}]", slot));
|
||||||
propPacketUtil.AddProperty(String.Format("work.guildleveChecked[{0}]", slot));
|
propPacketUtil.AddProperty(String.Format("work.guildleveChecked[{0}]", slot));
|
||||||
QueuePackets(propPacketUtil.Done());
|
QueuePackets(propPacketUtil.Done());
|
||||||
@ -1449,16 +1441,15 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
public void SendDirectorPackets(Director director)
|
public void SendDirectorPackets(Director director)
|
||||||
{
|
{
|
||||||
director.GetSpawnPackets(actorId).DebugPrintPacket();
|
QueuePackets(director.GetSpawnPackets());
|
||||||
QueuePacket(director.GetSpawnPackets(actorId));
|
QueuePackets(director.GetInitPackets());
|
||||||
QueuePacket(director.GetInitPackets(actorId));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveDirector(Director director)
|
public void RemoveDirector(Director director)
|
||||||
{
|
{
|
||||||
if (ownedDirectors.Contains(director))
|
if (ownedDirectors.Contains(director))
|
||||||
{
|
{
|
||||||
QueuePacket(RemoveActorPacket.BuildPacket(actorId, director.actorId));
|
QueuePacket(RemoveActorPacket.BuildPacket(director.actorId));
|
||||||
ownedDirectors.Remove(director);
|
ownedDirectors.Remove(director);
|
||||||
director.RemoveMember(this);
|
director.RemoveMember(this);
|
||||||
}
|
}
|
||||||
@ -1505,15 +1496,15 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QueuePacket(InventoryBeginChangePacket.BuildPacket(toBeExamined.actorId, actorId));
|
QueuePacket(InventoryBeginChangePacket.BuildPacket(toBeExamined.actorId));
|
||||||
toBeExamined.GetEquipment().SendCheckEquipmentToPlayer(this);
|
toBeExamined.GetEquipment().SendCheckEquipmentToPlayer(this);
|
||||||
QueuePacket(InventoryEndChangePacket.BuildPacket(toBeExamined.actorId, actorId));
|
QueuePacket(InventoryEndChangePacket.BuildPacket(toBeExamined.actorId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendDataPacket(params object[] parameters)
|
public void SendDataPacket(params object[] parameters)
|
||||||
{
|
{
|
||||||
List<LuaParam> lParams = LuaUtils.CreateLuaParamList(parameters);
|
List<LuaParam> lParams = LuaUtils.CreateLuaParamList(parameters);
|
||||||
SubPacket spacket = InfoRequestResponsePacket.BuildPacket(actorId, actorId, lParams);
|
SubPacket spacket = InfoRequestResponsePacket.BuildPacket(actorId, lParams);
|
||||||
spacket.DebugPrintSubPacket();
|
spacket.DebugPrintSubPacket();
|
||||||
QueuePacket(spacket);
|
QueuePacket(spacket);
|
||||||
}
|
}
|
||||||
@ -1541,7 +1532,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
|
|
||||||
public void SetEventStatus(Actor actor, string conditionName, bool enabled, byte unknown)
|
public void SetEventStatus(Actor actor, string conditionName, bool enabled, byte unknown)
|
||||||
{
|
{
|
||||||
QueuePacket(packets.send.actor.events.SetEventStatus.BuildPacket(actorId, actor.actorId, enabled, unknown, conditionName));
|
QueuePacket(packets.send.actor.events.SetEventStatus.BuildPacket(actor.actorId, enabled, unknown, conditionName));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RunEventFunction(string functionName, params object[] parameters)
|
public void RunEventFunction(string functionName, params object[] parameters)
|
||||||
|
@ -18,24 +18,24 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
this.className = "Debug";
|
this.className = "Debug";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SubPacket CreateScriptBindPacket(uint playerActorId)
|
public override SubPacket CreateScriptBindPacket()
|
||||||
{
|
{
|
||||||
List<LuaParam> lParams;
|
List<LuaParam> lParams;
|
||||||
lParams = LuaUtils.CreateLuaParamList("/System/Debug.prog", false, false, false, false, true, 0xC51F, true, true);
|
lParams = LuaUtils.CreateLuaParamList("/System/Debug.prog", false, false, false, false, true, 0xC51F, true, true);
|
||||||
return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams);
|
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override BasePacket GetSpawnPackets(uint playerActorId)
|
public override List<SubPacket> GetSpawnPackets()
|
||||||
{
|
{
|
||||||
List<SubPacket> subpackets = new List<SubPacket>();
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
subpackets.Add(CreateAddActorPacket(playerActorId, 0));
|
subpackets.Add(CreateAddActorPacket(0));
|
||||||
subpackets.Add(CreateSpeedPacket(playerActorId));
|
subpackets.Add(CreateSpeedPacket());
|
||||||
subpackets.Add(CreateSpawnPositonPacket(playerActorId, 0x1));
|
subpackets.Add(CreateSpawnPositonPacket(0x1));
|
||||||
subpackets.Add(CreateNamePacket(playerActorId));
|
subpackets.Add(CreateNamePacket());
|
||||||
subpackets.Add(CreateStatePacket(playerActorId));
|
subpackets.Add(CreateStatePacket());
|
||||||
subpackets.Add(CreateIsZoneingPacket(playerActorId));
|
subpackets.Add(CreateIsZoneingPacket());
|
||||||
subpackets.Add(CreateScriptBindPacket(playerActorId));
|
subpackets.Add(CreateScriptBindPacket());
|
||||||
return BasePacket.CreatePacket(subpackets, true, false);
|
return subpackets;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
|||||||
eventConditions.noticeEventConditions.Add(new EventList.NoticeEventCondition("reqForChild", 0x0, 0x1));
|
eventConditions.noticeEventConditions.Add(new EventList.NoticeEventCondition("reqForChild", 0x0, 0x1));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SubPacket CreateScriptBindPacket(uint playerActorId)
|
public override SubPacket CreateScriptBindPacket()
|
||||||
{
|
{
|
||||||
List<LuaParam> actualLParams = new List<LuaParam>();
|
List<LuaParam> actualLParams = new List<LuaParam>();
|
||||||
actualLParams.Insert(0, new LuaParam(2, classPath));
|
actualLParams.Insert(0, new LuaParam(2, classPath));
|
||||||
@ -54,28 +54,30 @@ namespace FFXIVClassic_Map_Server.actors.director
|
|||||||
for (int i = 1; i < lparams.Count; i++)
|
for (int i = 1; i < lparams.Count; i++)
|
||||||
actualLParams.Add(lparams[i]);
|
actualLParams.Add(lparams[i]);
|
||||||
|
|
||||||
return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, actualLParams);
|
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, actualLParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override BasePacket GetSpawnPackets(uint playerActorId, ushort spawnType)
|
public override List<SubPacket> GetSpawnPackets(ushort spawnType = 1)
|
||||||
{
|
{
|
||||||
List<SubPacket> subpackets = new List<SubPacket>();
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
subpackets.Add(CreateAddActorPacket(playerActorId, 0));
|
subpackets.Add(CreateAddActorPacket(0));
|
||||||
subpackets.AddRange(GetEventConditionPackets(playerActorId));
|
subpackets.AddRange(GetEventConditionPackets());
|
||||||
subpackets.Add(CreateSpeedPacket(playerActorId));
|
subpackets.Add(CreateSpeedPacket());
|
||||||
subpackets.Add(CreateSpawnPositonPacket(playerActorId, 0));
|
subpackets.Add(CreateSpawnPositonPacket(0));
|
||||||
subpackets.Add(CreateNamePacket(playerActorId));
|
subpackets.Add(CreateNamePacket());
|
||||||
subpackets.Add(CreateStatePacket(playerActorId));
|
subpackets.Add(CreateStatePacket());
|
||||||
subpackets.Add(CreateIsZoneingPacket(playerActorId));
|
subpackets.Add(CreateIsZoneingPacket());
|
||||||
subpackets.Add(CreateScriptBindPacket(playerActorId));
|
subpackets.Add(CreateScriptBindPacket());
|
||||||
return BasePacket.CreatePacket(subpackets, true, false);
|
return subpackets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override BasePacket GetInitPackets(uint playerActorId)
|
public override List<SubPacket> GetInitPackets()
|
||||||
{
|
{
|
||||||
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
SetActorPropetyPacket initProperties = new SetActorPropetyPacket("/_init");
|
SetActorPropetyPacket initProperties = new SetActorPropetyPacket("/_init");
|
||||||
initProperties.AddTarget();
|
initProperties.AddTarget();
|
||||||
return BasePacket.CreatePacket(initProperties.BuildPacket(playerActorId, actorId), true, false);
|
subpackets.Add(initProperties.BuildPacket(actorId));
|
||||||
|
return subpackets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnTalkEvent(Player player, Npc npc)
|
public void OnTalkEvent(Player player, Npc npc)
|
||||||
@ -108,9 +110,8 @@ namespace FFXIVClassic_Map_Server.actors.director
|
|||||||
{
|
{
|
||||||
foreach (Player p in GetPlayerMembers())
|
foreach (Player p in GetPlayerMembers())
|
||||||
{
|
{
|
||||||
GetSpawnPackets(p.actorId).DebugPrintPacket();
|
p.QueuePackets(GetSpawnPackets());
|
||||||
p.QueuePacket(GetSpawnPackets(p.actorId));
|
p.QueuePackets(GetInitPackets());
|
||||||
p.QueuePacket(GetInitPackets(p.actorId));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
|||||||
}
|
}
|
||||||
|
|
||||||
guildleveWork.startTime = Utils.UnixTimeStampUTC();
|
guildleveWork.startTime = Utils.UnixTimeStampUTC();
|
||||||
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/start", this, actorId);
|
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/start", this);
|
||||||
propertyBuilder.AddProperty("guildleveWork.startTime");
|
propertyBuilder.AddProperty("guildleveWork.startTime");
|
||||||
SendPacketsToPlayers(propertyBuilder.Done());
|
SendPacketsToPlayers(propertyBuilder.Done());
|
||||||
}
|
}
|
||||||
@ -114,7 +114,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
|||||||
|
|
||||||
guildleveWork.startTime = 0;
|
guildleveWork.startTime = 0;
|
||||||
guildleveWork.signal = -1;
|
guildleveWork.signal = -1;
|
||||||
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/signal", this, actorId);
|
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/signal", this);
|
||||||
propertyBuilder.AddProperty("guildleveWork.signal");
|
propertyBuilder.AddProperty("guildleveWork.signal");
|
||||||
propertyBuilder.NewTarget("guildleveWork/start");
|
propertyBuilder.NewTarget("guildleveWork/start");
|
||||||
propertyBuilder.AddProperty("guildleveWork.startTime");
|
propertyBuilder.AddProperty("guildleveWork.startTime");
|
||||||
@ -160,7 +160,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
|||||||
|
|
||||||
public void SyncAllInfo()
|
public void SyncAllInfo()
|
||||||
{
|
{
|
||||||
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId);
|
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this);
|
||||||
|
|
||||||
if (guildleveWork.aimNum[0] != 0)
|
if (guildleveWork.aimNum[0] != 0)
|
||||||
propertyBuilder.AddProperty("guildleveWork.aimNum[0]");
|
propertyBuilder.AddProperty("guildleveWork.aimNum[0]");
|
||||||
@ -195,7 +195,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
|||||||
public void UpdateAimNumNow(int index, sbyte value)
|
public void UpdateAimNumNow(int index, sbyte value)
|
||||||
{
|
{
|
||||||
guildleveWork.aimNumNow[index] = value;
|
guildleveWork.aimNumNow[index] = value;
|
||||||
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId);
|
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this);
|
||||||
propertyBuilder.AddProperty(String.Format("guildleveWork.aimNumNow[{0}]", index));
|
propertyBuilder.AddProperty(String.Format("guildleveWork.aimNumNow[{0}]", index));
|
||||||
SendPacketsToPlayers(propertyBuilder.Done());
|
SendPacketsToPlayers(propertyBuilder.Done());
|
||||||
}
|
}
|
||||||
@ -203,7 +203,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
|||||||
public void UpdateUiState(int index, sbyte value)
|
public void UpdateUiState(int index, sbyte value)
|
||||||
{
|
{
|
||||||
guildleveWork.uiState[index] = value;
|
guildleveWork.uiState[index] = value;
|
||||||
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId);
|
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this);
|
||||||
propertyBuilder.AddProperty(String.Format("guildleveWork.uiState[{0}]", index));
|
propertyBuilder.AddProperty(String.Format("guildleveWork.uiState[{0}]", index));
|
||||||
SendPacketsToPlayers(propertyBuilder.Done());
|
SendPacketsToPlayers(propertyBuilder.Done());
|
||||||
}
|
}
|
||||||
@ -213,7 +213,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
|||||||
guildleveWork.markerX[markerIndex] = x;
|
guildleveWork.markerX[markerIndex] = x;
|
||||||
guildleveWork.markerY[markerIndex] = y;
|
guildleveWork.markerY[markerIndex] = y;
|
||||||
guildleveWork.markerZ[markerIndex] = z;
|
guildleveWork.markerZ[markerIndex] = z;
|
||||||
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/marker", this, actorId);
|
ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/marker", this);
|
||||||
propertyBuilder.AddProperty(String.Format("guildleveWork.markerX[{0}]", markerIndex));
|
propertyBuilder.AddProperty(String.Format("guildleveWork.markerX[{0}]", markerIndex));
|
||||||
propertyBuilder.AddProperty(String.Format("guildleveWork.markerY[{0}]", markerIndex));
|
propertyBuilder.AddProperty(String.Format("guildleveWork.markerY[{0}]", markerIndex));
|
||||||
propertyBuilder.AddProperty(String.Format("guildleveWork.markerZ[{0}]", markerIndex));
|
propertyBuilder.AddProperty(String.Format("guildleveWork.markerZ[{0}]", markerIndex));
|
||||||
|
@ -84,7 +84,7 @@ namespace FFXIVClassic_Map_Server.actors.group
|
|||||||
|
|
||||||
SubPacket test = groupWork.buildPacket(session.id, session.id);
|
SubPacket test = groupWork.buildPacket(session.id, session.id);
|
||||||
test.DebugPrintSubPacket();
|
test.DebugPrintSubPacket();
|
||||||
session.QueuePacket(test, true, false);
|
session.QueuePacket(test);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SendGroupPackets(Session session)
|
public override void SendGroupPackets(Session session)
|
||||||
@ -92,26 +92,26 @@ namespace FFXIVClassic_Map_Server.actors.group
|
|||||||
ulong time = Utils.MilisUnixTimeStampUTC();
|
ulong time = Utils.MilisUnixTimeStampUTC();
|
||||||
List<GroupMember> members = BuildMemberList(session.id);
|
List<GroupMember> members = BuildMemberList(session.id);
|
||||||
|
|
||||||
session.QueuePacket(GroupHeaderPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false);
|
session.QueuePacket(GroupHeaderPacket.buildPacket(session.id, session.GetActor().zoneId, time, this));
|
||||||
session.QueuePacket(GroupMembersBeginPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false);
|
session.QueuePacket(GroupMembersBeginPacket.buildPacket(session.id, session.GetActor().zoneId, time, this));
|
||||||
|
|
||||||
int currentIndex = 0;
|
int currentIndex = 0;
|
||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
if (GetMemberCount() - currentIndex >= 64)
|
if (GetMemberCount() - currentIndex >= 64)
|
||||||
session.QueuePacket(ContentMembersX64Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false);
|
session.QueuePacket(ContentMembersX64Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex));
|
||||||
else if (GetMemberCount() - currentIndex >= 32)
|
else if (GetMemberCount() - currentIndex >= 32)
|
||||||
session.QueuePacket(ContentMembersX32Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false);
|
session.QueuePacket(ContentMembersX32Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex));
|
||||||
else if (GetMemberCount() - currentIndex >= 16)
|
else if (GetMemberCount() - currentIndex >= 16)
|
||||||
session.QueuePacket(ContentMembersX16Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false);
|
session.QueuePacket(ContentMembersX16Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex));
|
||||||
else if (GetMemberCount() - currentIndex > 0)
|
else if (GetMemberCount() - currentIndex > 0)
|
||||||
session.QueuePacket(ContentMembersX08Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false);
|
session.QueuePacket(ContentMembersX08Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex));
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
session.QueuePacket(GroupMembersEndPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false);
|
session.QueuePacket(GroupMembersEndPacket.buildPacket(session.id, session.GetActor().zoneId, time, this));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,33 +120,33 @@ namespace FFXIVClassic_Map_Server.actors.group
|
|||||||
ulong time = Utils.MilisUnixTimeStampUTC();
|
ulong time = Utils.MilisUnixTimeStampUTC();
|
||||||
List<GroupMember> members = BuildMemberList(session.id);
|
List<GroupMember> members = BuildMemberList(session.id);
|
||||||
|
|
||||||
session.QueuePacket(GroupHeaderPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false);
|
session.QueuePacket(GroupHeaderPacket.buildPacket(session.id, session.GetActor().zoneId, time, this));
|
||||||
session.QueuePacket(GroupMembersBeginPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false);
|
session.QueuePacket(GroupMembersBeginPacket.buildPacket(session.id, session.GetActor().zoneId, time, this));
|
||||||
|
|
||||||
int currentIndex = 0;
|
int currentIndex = 0;
|
||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
if (GetMemberCount() - currentIndex >= 64)
|
if (GetMemberCount() - currentIndex >= 64)
|
||||||
session.QueuePacket(GroupMembersX64Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false);
|
session.QueuePacket(GroupMembersX64Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex));
|
||||||
else if (GetMemberCount() - currentIndex >= 32)
|
else if (GetMemberCount() - currentIndex >= 32)
|
||||||
session.QueuePacket(GroupMembersX32Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false);
|
session.QueuePacket(GroupMembersX32Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex));
|
||||||
else if (GetMemberCount() - currentIndex >= 16)
|
else if (GetMemberCount() - currentIndex >= 16)
|
||||||
session.QueuePacket(GroupMembersX16Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false);
|
session.QueuePacket(GroupMembersX16Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex));
|
||||||
else if (GetMemberCount() - currentIndex > 0)
|
else if (GetMemberCount() - currentIndex > 0)
|
||||||
session.QueuePacket(GroupMembersX08Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false);
|
session.QueuePacket(GroupMembersX08Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex));
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
session.QueuePacket(GroupMembersEndPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false);
|
session.QueuePacket(GroupMembersEndPacket.buildPacket(session.id, session.GetActor().zoneId, time, this));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendDeletePacket(Session session)
|
public void SendDeletePacket(Session session)
|
||||||
{
|
{
|
||||||
if (session != null)
|
if (session != null)
|
||||||
session.QueuePacket(DeleteGroupPacket.buildPacket(session.id, this), true, false);
|
session.QueuePacket(DeleteGroupPacket.buildPacket(session.id, this));
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SendInitWorkValues(Session session)
|
public virtual void SendInitWorkValues(Session session)
|
||||||
|
@ -51,7 +51,7 @@ namespace FFXIVClassic_Map_Server.actors.group
|
|||||||
groupWork.setTarget("/_init");
|
groupWork.setTarget("/_init");
|
||||||
|
|
||||||
SubPacket test = groupWork.buildPacket(session.id, session.id);
|
SubPacket test = groupWork.buildPacket(session.id, session.id);
|
||||||
session.QueuePacket(test, true, false);
|
session.QueuePacket(test);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override uint GetTypeId()
|
public override uint GetTypeId()
|
||||||
|
@ -70,7 +70,7 @@ namespace FFXIVClassic_Map_Server.actors.group
|
|||||||
|
|
||||||
SubPacket test = groupWork.buildPacket(session.id, session.id);
|
SubPacket test = groupWork.buildPacket(session.id, session.id);
|
||||||
test.DebugPrintSubPacket();
|
test.DebugPrintSubPacket();
|
||||||
session.QueuePacket(test, true, false);
|
session.QueuePacket(test);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,24 +17,24 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||||||
this.className = "WorldMaster";
|
this.className = "WorldMaster";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SubPacket CreateScriptBindPacket(uint playerActorId)
|
public override SubPacket CreateScriptBindPacket()
|
||||||
{
|
{
|
||||||
List<LuaParam> lParams;
|
List<LuaParam> lParams;
|
||||||
lParams = LuaUtils.CreateLuaParamList("/World/WorldMaster_event", false, false, false, false, false, null);
|
lParams = LuaUtils.CreateLuaParamList("/World/WorldMaster_event", false, false, false, false, false, null);
|
||||||
return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams);
|
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override BasePacket GetSpawnPackets(uint playerActorId)
|
public override List<SubPacket> GetSpawnPackets()
|
||||||
{
|
{
|
||||||
List<SubPacket> subpackets = new List<SubPacket>();
|
List<SubPacket> subpackets = new List<SubPacket>();
|
||||||
subpackets.Add(CreateAddActorPacket(playerActorId, 0));
|
subpackets.Add(CreateAddActorPacket(0));
|
||||||
subpackets.Add(CreateSpeedPacket(playerActorId));
|
subpackets.Add(CreateSpeedPacket());
|
||||||
subpackets.Add(CreateSpawnPositonPacket(playerActorId, 0x1));
|
subpackets.Add(CreateSpawnPositonPacket(0x1));
|
||||||
subpackets.Add(CreateNamePacket(playerActorId));
|
subpackets.Add(CreateNamePacket());
|
||||||
subpackets.Add(CreateStatePacket(playerActorId));
|
subpackets.Add(CreateStatePacket());
|
||||||
subpackets.Add(CreateIsZoneingPacket(playerActorId));
|
subpackets.Add(CreateIsZoneingPacket());
|
||||||
subpackets.Add(CreateScriptBindPacket(playerActorId));
|
subpackets.Add(CreateScriptBindPacket());
|
||||||
return BasePacket.CreatePacket(subpackets, true, false);
|
return subpackets;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,15 +31,16 @@ namespace FFXIVClassic_Map_Server.dataobjects
|
|||||||
actorInstanceList.Add(playerActor);
|
actorInstanceList.Add(playerActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void QueuePacket(BasePacket basePacket)
|
public void QueuePacket(List<SubPacket> packets)
|
||||||
{
|
{
|
||||||
Server.GetWorldConnection().QueuePacket(basePacket);
|
foreach (SubPacket s in packets)
|
||||||
|
QueuePacket(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void QueuePacket(SubPacket subPacket, bool isAuthed, bool isEncrypted)
|
public void QueuePacket(SubPacket subPacket)
|
||||||
{
|
{
|
||||||
subPacket.header.targetId = id;
|
subPacket.SetTargetId(id);
|
||||||
Server.GetWorldConnection().QueuePacket(subPacket, isAuthed, isEncrypted);
|
Server.GetWorldConnection().QueuePacket(subPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player GetActor()
|
public Player GetActor()
|
||||||
@ -80,7 +81,7 @@ namespace FFXIVClassic_Map_Server.dataobjects
|
|||||||
playerActor.rotation = rot;
|
playerActor.rotation = rot;
|
||||||
playerActor.moveState = moveState;
|
playerActor.moveState = moveState;
|
||||||
|
|
||||||
GetActor().zone.UpdateActorPosition(GetActor());
|
GetActor().GetZone().UpdateActorPosition(GetActor());
|
||||||
|
|
||||||
}
|
}
|
||||||
long lastMilis = 0;
|
long lastMilis = 0;
|
||||||
@ -107,7 +108,7 @@ namespace FFXIVClassic_Map_Server.dataobjects
|
|||||||
if (npc.GetUniqueId().Equals("1") && milliseconds - lastMilis > 1000)
|
if (npc.GetUniqueId().Equals("1") && milliseconds - lastMilis > 1000)
|
||||||
{
|
{
|
||||||
lastMilis = milliseconds;
|
lastMilis = milliseconds;
|
||||||
GetActor().QueuePacket(RemoveActorPacket.BuildPacket(playerActor.actorId, actorInstanceList[i].actorId));
|
QueuePacket(RemoveActorPacket.BuildPacket(actorInstanceList[i].actorId));
|
||||||
actorInstanceList.RemoveAt(i);
|
actorInstanceList.RemoveAt(i);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -115,7 +116,7 @@ namespace FFXIVClassic_Map_Server.dataobjects
|
|||||||
|
|
||||||
if (!list.Contains(actorInstanceList[i]))
|
if (!list.Contains(actorInstanceList[i]))
|
||||||
{
|
{
|
||||||
GetActor().QueuePacket(RemoveActorPacket.BuildPacket(playerActor.actorId, actorInstanceList[i].actorId));
|
QueuePacket(RemoveActorPacket.BuildPacket(actorInstanceList[i].actorId));
|
||||||
actorInstanceList.RemoveAt(i);
|
actorInstanceList.RemoveAt(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,13 +136,14 @@ namespace FFXIVClassic_Map_Server.dataobjects
|
|||||||
if (actor is Character && ((Character)actor).isStatic)
|
if (actor is Character && ((Character)actor).isStatic)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
GetActor().QueuePacket(actor.CreatePositionUpdatePacket(playerActor.actorId));
|
QueuePacket(actor.CreatePositionUpdatePacket());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GetActor().QueuePacket(actor.GetSpawnPackets(playerActor.actorId, 1));
|
QueuePacket(actor.GetSpawnPackets(playerActor, 1));
|
||||||
GetActor().QueuePacket(actor.GetInitPackets(playerActor.actorId));
|
|
||||||
GetActor().QueuePacket(actor.GetSetEventStatusPackets(playerActor.actorId));
|
QueuePacket(actor.GetInitPackets());
|
||||||
|
QueuePacket(actor.GetSetEventStatusPackets());
|
||||||
actorInstanceList.Add(actor);
|
actorInstanceList.Add(actor);
|
||||||
|
|
||||||
if (actor is Npc)
|
if (actor is Npc)
|
||||||
|
@ -17,14 +17,7 @@ namespace FFXIVClassic_Map_Server.dataobjects
|
|||||||
private BlockingCollection<SubPacket> SendPacketQueue = new BlockingCollection<SubPacket>(1000);
|
private BlockingCollection<SubPacket> SendPacketQueue = new BlockingCollection<SubPacket>(1000);
|
||||||
public int lastPartialSize = 0;
|
public int lastPartialSize = 0;
|
||||||
|
|
||||||
public void QueuePacket(BasePacket packet)
|
public void QueuePacket(SubPacket subpacket)
|
||||||
{
|
|
||||||
List<SubPacket> subPackets = packet.GetSubpackets();
|
|
||||||
foreach (SubPacket s in subPackets)
|
|
||||||
SendPacketQueue.Add(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void QueuePacket(SubPacket subpacket, bool isAuthed, bool isEncrypted)
|
|
||||||
{
|
{
|
||||||
SendPacketQueue.Add(subpacket);
|
SendPacketQueue.Add(subpacket);
|
||||||
}
|
}
|
||||||
@ -68,7 +61,7 @@ namespace FFXIVClassic_Map_Server.dataobjects
|
|||||||
public void RequestZoneChange(uint sessionId, uint destinationZoneId, byte spawnType, float spawnX, float spawnY, float spawnZ, float spawnRotation)
|
public void RequestZoneChange(uint sessionId, uint destinationZoneId, byte spawnType, float spawnX, float spawnY, float spawnZ, float spawnRotation)
|
||||||
{
|
{
|
||||||
WorldRequestZoneChangePacket.BuildPacket(sessionId, destinationZoneId, spawnType, spawnX, spawnY, spawnZ, spawnRotation).DebugPrintSubPacket();
|
WorldRequestZoneChangePacket.BuildPacket(sessionId, destinationZoneId, spawnType, spawnX, spawnY, spawnZ, spawnRotation).DebugPrintSubPacket();
|
||||||
QueuePacket(WorldRequestZoneChangePacket.BuildPacket(sessionId, destinationZoneId, spawnType, spawnX, spawnY, spawnZ, spawnRotation), true, false);
|
QueuePacket(WorldRequestZoneChangePacket.BuildPacket(sessionId, destinationZoneId, spawnType, spawnX, spawnY, spawnZ, spawnRotation));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -605,9 +605,8 @@ namespace FFXIVClassic_Map_Server.lua
|
|||||||
if (player == null)
|
if (player == null)
|
||||||
return;
|
return;
|
||||||
List<SubPacket> SendError = new List<SubPacket>();
|
List<SubPacket> SendError = new List<SubPacket>();
|
||||||
SendError.Add(EndEventPacket.BuildPacket(player.actorId, player.currentEventOwner, player.currentEventName));
|
|
||||||
player.SendMessage(SendMessagePacket.MESSAGE_TYPE_SYSTEM_ERROR, "", message);
|
player.SendMessage(SendMessagePacket.MESSAGE_TYPE_SYSTEM_ERROR, "", message);
|
||||||
player.playerSession.QueuePacket(BasePacket.CreatePacket(SendError, true, false));
|
player.QueuePacket(EndEventPacket.BuildPacket(player.actorId, player.currentEventOwner, player.currentEventName));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write((UInt32)master);
|
binWriter.Write((UInt32)master);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, 0, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write(Encoding.ASCII.GetBytes(name), 0, Encoding.ASCII.GetByteCount(name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(name));
|
binWriter.Write(Encoding.ASCII.GetBytes(name), 0, Encoding.ASCII.GetByteCount(name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, 0, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write((UInt32)result);
|
binWriter.Write((UInt32)result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, session.id, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write(Encoding.ASCII.GetBytes(lsName), 0, Encoding.ASCII.GetByteCount(lsName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(lsName));
|
binWriter.Write(Encoding.ASCII.GetBytes(lsName), 0, Encoding.ASCII.GetByteCount(lsName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(lsName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, session.id, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
public static SubPacket BuildPacket(Session session)
|
public static SubPacket BuildPacket(Session session)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
return new SubPacket(true, OPCODE, session.id, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write(Encoding.ASCII.GetBytes(linkshellName), 0, Encoding.ASCII.GetByteCount(linkshellName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(linkshellName));
|
binWriter.Write(Encoding.ASCII.GetBytes(linkshellName), 0, Encoding.ASCII.GetByteCount(linkshellName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(linkshellName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, session.id, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write(Encoding.ASCII.GetBytes(lsName), 0, Encoding.ASCII.GetByteCount(lsName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(lsName));
|
binWriter.Write(Encoding.ASCII.GetBytes(lsName), 0, Encoding.ASCII.GetByteCount(lsName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(lsName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, session.id, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write((Byte)rank);
|
binWriter.Write((Byte)rank);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, session.id, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, 0, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write(Encoding.ASCII.GetBytes(name), 0, Encoding.ASCII.GetByteCount(name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(name));
|
binWriter.Write(Encoding.ASCII.GetBytes(name), 0, Encoding.ASCII.GetByteCount(name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, session.id, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SubPacket BuildPacket(Session session, uint actorId)
|
public static SubPacket BuildPacket(Session session, uint actorId)
|
||||||
@ -39,7 +39,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write((UInt32)actorId);
|
binWriter.Write((UInt32)actorId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, session.id, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write((UInt16)(isDisband ? 1 : 0));
|
binWriter.Write((UInt16)(isDisband ? 1 : 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, session.id, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write(Encoding.ASCII.GetBytes(name), 0, Encoding.ASCII.GetByteCount(name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(name));
|
binWriter.Write(Encoding.ASCII.GetBytes(name), 0, Encoding.ASCII.GetByteCount(name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, session.id, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SubPacket BuildPacket(Session session, ushort command, uint actorId)
|
public static SubPacket BuildPacket(Session session, ushort command, uint actorId)
|
||||||
@ -38,7 +38,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
|
|||||||
binWriter.Write((UInt32)actorId);
|
binWriter.Write((UInt32)actorId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, session.id, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send
|
|||||||
binWriter.Write((UInt16)errorCode);
|
binWriter.Write((UInt16)errorCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, 0, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send
|
|||||||
binWriter.Write((UInt32)destinationZone);
|
binWriter.Write((UInt32)destinationZone);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new SubPacket(true, OPCODE, 0, session.id, data);
|
return new SubPacket(true, OPCODE, session.id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sessionId, sessionId, data);
|
return new SubPacket(OPCODE, sessionId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x00E1;
|
public const ushort OPCODE = 0x00E1;
|
||||||
public const uint PACKET_SIZE = 0x30;
|
public const uint PACKET_SIZE = 0x30;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId, uint targettedActorId, uint animationId, uint descriptionId)
|
public static SubPacket BuildPacket(uint sourceActorId, uint targettedActorId, uint animationId, uint descriptionId)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SubPacket packet = new SubPacket(OPCODE, sourceActorId, targetActorId, data);
|
SubPacket packet = new SubPacket(OPCODE, sourceActorId, data);
|
||||||
packet.DebugPrintSubPacket();
|
packet.DebugPrintSubPacket();
|
||||||
return packet;
|
return packet;
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x00CC;
|
public const ushort OPCODE = 0x00CC;
|
||||||
public const uint PACKET_SIZE = 0x128;
|
public const uint PACKET_SIZE = 0x128;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint sourceActorID, uint targetActorID, string objectName, string className, List<LuaParam> initParams)
|
public static SubPacket BuildPacket(uint sourceActorId, string objectName, string className, List<LuaParam> initParams)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorID, targetActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x00E3;
|
public const ushort OPCODE = 0x00E3;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, int iconCode)
|
public static SubPacket BuildPacket(uint sourceActorId, int iconCode)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, targetActorID, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,12 +9,12 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x00CA;
|
public const ushort OPCODE = 0x00CA;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint actorID, byte val)
|
public static SubPacket BuildPacket(uint sourceActorId, byte val)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE-0x20];
|
byte[] data = new byte[PACKET_SIZE-0x20];
|
||||||
data[0] = val; //Why?
|
data[0] = val; //Why?
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, actorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
using FFXIVClassic.Common;
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
using FFXIVClassic.Common;
|
|
||||||
|
|
||||||
namespace FFXIVClassic_Map_Server.packets.send.actor
|
|
||||||
{
|
|
||||||
class BattleAction1Packet
|
|
||||||
{
|
|
||||||
public const ushort OPCODE = 0x0139;
|
|
||||||
public const uint PACKET_SIZE = 0x58;
|
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint sourceId, uint targetId)
|
|
||||||
{
|
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
|
||||||
|
|
||||||
using (MemoryStream mem = new MemoryStream(data))
|
|
||||||
{
|
|
||||||
using (BinaryWriter binWriter = new BinaryWriter(mem))
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceId, targetId, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -9,9 +9,9 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x0007;
|
public const ushort OPCODE = 0x0007;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID)
|
public static SubPacket BuildPacket(uint sourceActorId)
|
||||||
{
|
{
|
||||||
return new SubPacket(OPCODE, playerActorID, playerActorID, new byte[8]);
|
return new SubPacket(OPCODE, sourceActorId, new byte[8]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x00CF;
|
public const ushort OPCODE = 0x00CF;
|
||||||
public const uint PACKET_SIZE = 0x50;
|
public const uint PACKET_SIZE = 0x50;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, float x, float y, float z, float rot, ushort moveState)
|
public static SubPacket BuildPacket(uint sourceActorId, float x, float y, float z, float rot, ushort moveState)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SubPacket packet = new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
SubPacket packet = new SubPacket(OPCODE, sourceActorId, data);
|
||||||
return packet;
|
return packet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,9 +12,9 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x00DA;
|
public const ushort OPCODE = 0x00DA;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint animationID)
|
public static SubPacket BuildPacket(uint sourceActorId, uint animationID)
|
||||||
{
|
{
|
||||||
return new SubPacket(OPCODE, playerActorID, targetActorID, BitConverter.GetBytes((ulong)animationID));
|
return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes((ulong)animationID));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x00D9;
|
public const ushort OPCODE = 0x00D9;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, string animName)
|
public static SubPacket BuildPacket(uint sourceActorId, string animName)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x00CB;
|
public const ushort OPCODE = 0x00CB;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint actorId)
|
public static SubPacket BuildPacket(uint sourceActorId)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -18,11 +18,11 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
{
|
{
|
||||||
using (BinaryWriter binWriter = new BinaryWriter(mem))
|
using (BinaryWriter binWriter = new BinaryWriter(mem))
|
||||||
{
|
{
|
||||||
binWriter.Write((UInt32)actorId);
|
binWriter.Write((UInt32)sourceActorId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, actorId, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
appearanceIDs = appearanceTable;
|
appearanceIDs = appearanceTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket BuildPacket(uint playerActorID, uint actorID)
|
public SubPacket BuildPacket(uint sourceActorId)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SubPacket packet = new SubPacket(OPCODE, playerActorID, actorID, data);
|
SubPacket packet = new SubPacket(OPCODE, sourceActorId, data);
|
||||||
return packet;
|
return packet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,12 +5,12 @@ using System;
|
|||||||
|
|
||||||
namespace FFXIVClassic_Map_Server.packets.send.actor
|
namespace FFXIVClassic_Map_Server.packets.send.actor
|
||||||
{
|
{
|
||||||
class _0xD8Packet
|
class SetActorBGPropertiesPacket
|
||||||
{
|
{
|
||||||
public const ushort OPCODE = 0x00D8;
|
public const ushort OPCODE = 0x00D8;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint val1, uint val2)
|
public static SubPacket BuildPacket(uint sourceActorId, uint val1, uint val2)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -14,7 +14,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x0145;
|
public const ushort OPCODE = 0x0145;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint iconCode)
|
public static SubPacket BuildPacket(uint sourceActorId, uint iconCode)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,11 +7,11 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x017B;
|
public const ushort OPCODE = 0x017B;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, bool isDimmed)
|
public static SubPacket BuildPacket(uint sourceActorId, bool isDimmed)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
data[0] = (byte)(isDimmed ? 1 : 0);
|
data[0] = (byte)(isDimmed ? 1 : 0);
|
||||||
return new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x013D;
|
public const ushort OPCODE = 0x013D;
|
||||||
public const uint PACKET_SIZE = 0x48;
|
public const uint PACKET_SIZE = 0x48;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint displayNameID, string customName)
|
public static SubPacket BuildPacket(uint sourceActorId, uint displayNameID, string customName)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SubPacket packet = new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
SubPacket packet = new SubPacket(OPCODE, sourceActorId, data);
|
||||||
return packet;
|
return packet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort SPAWNTYPE_WARP_DUTY2 = 6;
|
public const ushort SPAWNTYPE_WARP_DUTY2 = 6;
|
||||||
public const ushort SPAWNTYPE_WARP_LIGHT = 7;
|
public const ushort SPAWNTYPE_WARP_LIGHT = 7;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint sourceActorID, uint targetActorID, uint actorId, float x, float y, float z, float rotation, ushort spawnType, bool isZoningPlayer)
|
public static SubPacket BuildPacket(uint sourceActorId, uint actorId, float x, float y, float z, float rotation, ushort spawnType, bool isZoningPlayer)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE-0x20];
|
byte[] data = new byte[PACKET_SIZE-0x20];
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorID, targetActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -209,14 +209,14 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
currentTarget = newTarget;
|
currentTarget = newTarget;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SubPacket BuildPacket(uint playerActorID, uint actorID)
|
public SubPacket BuildPacket(uint sourceActorId)
|
||||||
{
|
{
|
||||||
binWriter.Seek(0, SeekOrigin.Begin);
|
binWriter.Seek(0, SeekOrigin.Begin);
|
||||||
binWriter.Write((byte)runningByteTotal);
|
binWriter.Write((byte)runningByteTotal);
|
||||||
|
|
||||||
CloseStreams();
|
CloseStreams();
|
||||||
|
|
||||||
SubPacket packet = new SubPacket(OPCODE, actorID, playerActorID, data);
|
SubPacket packet = new SubPacket(OPCODE, sourceActorId, data);
|
||||||
return packet;
|
return packet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const float DEFAULT_RUN = 5.0f;
|
public const float DEFAULT_RUN = 5.0f;
|
||||||
public const float DEFAULT_ACTIVE = 5.0f;
|
public const float DEFAULT_ACTIVE = 5.0f;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID)
|
public static SubPacket BuildPacket(uint sourceActorId)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -40,10 +40,10 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, float stopSpeed, float walkSpeed, float runSpeed, float activeSpeed)
|
public static SubPacket BuildPacket(uint sourceActorId, float stopSpeed, float walkSpeed, float runSpeed, float activeSpeed)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,10 +30,10 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x134;
|
public const ushort OPCODE = 0x134;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetID, uint mainState, uint subState)
|
public static SubPacket BuildPacket(uint sourceActorId, uint mainState, uint subState)
|
||||||
{
|
{
|
||||||
ulong combined = (mainState & 0xFF) | ((subState & 0xFF) << 8);
|
ulong combined = (mainState & 0xFF) | ((subState & 0xFF) << 8);
|
||||||
return new SubPacket(OPCODE, playerActorID, targetID, BitConverter.GetBytes(combined));
|
return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes(combined));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x0179;
|
public const ushort OPCODE = 0x0179;
|
||||||
public const uint PACKET_SIZE = 0x48;
|
public const uint PACKET_SIZE = 0x48;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, ushort[] statusIds)
|
public static SubPacket BuildPacket(uint sourceActorId, ushort[] statusIds)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SubPacket packet = new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
SubPacket packet = new SubPacket(OPCODE, sourceActorId, data);
|
||||||
return packet;
|
return packet;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x0177;
|
public const ushort OPCODE = 0x0177;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, ushort index, ushort statusCode)
|
public static SubPacket BuildPacket(uint sourceActorId, ushort index, ushort statusCode)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x144;
|
public const ushort OPCODE = 0x144;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetID, byte breakage, int leftChant, int rightChant, int guard, int wasteStat, int statMode, uint idleAnimationId)
|
public static SubPacket BuildPacket(uint sourceActorId, byte breakage, int leftChant, int rightChant, int guard, int wasteStat, int statMode, uint idleAnimationId)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, targetID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,9 +9,9 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x00D3;
|
public const ushort OPCODE = 0x00D3;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint targetID)
|
public static SubPacket BuildPacket(uint sourceActorId, uint targetID)
|
||||||
{
|
{
|
||||||
return new SubPacket(OPCODE, playerActorID, targetID, BitConverter.GetBytes((ulong)targetID));
|
return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes((ulong)targetID));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,9 +8,9 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x00DB;
|
public const ushort OPCODE = 0x00DB;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint targetID)
|
public static SubPacket BuildPacket(uint sourceActorId, uint targetID)
|
||||||
{
|
{
|
||||||
return new SubPacket(OPCODE, playerActorID, targetID, BitConverter.GetBytes((ulong)targetID));
|
return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes((ulong)targetID));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x132;
|
public const ushort OPCODE = 0x132;
|
||||||
public const uint PACKET_SIZE = 0x48;
|
public const uint PACKET_SIZE = 0x48;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, ushort number, string function)
|
public static SubPacket BuildPacket(uint sourceActorId, ushort number, string function)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
using System.IO;
|
|
||||||
|
|
||||||
using FFXIVClassic.Common;
|
|
||||||
using System;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace FFXIVClassic_Map_Server.packets.send.actor
|
|
||||||
{
|
|
||||||
class _0xD9Packet
|
|
||||||
{
|
|
||||||
public const ushort OPCODE = 0x00D9;
|
|
||||||
public const uint PACKET_SIZE = 0x28;
|
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, string anim)
|
|
||||||
{
|
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
|
||||||
|
|
||||||
using (MemoryStream mem = new MemoryStream(data))
|
|
||||||
{
|
|
||||||
using (BinaryWriter binWriter = new BinaryWriter(mem))
|
|
||||||
{
|
|
||||||
binWriter.Write(Encoding.ASCII.GetBytes(anim), 0, Encoding.ASCII.GetByteCount(anim) >= 4 ? 4 : Encoding.ASCII.GetByteCount(anim));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -9,7 +9,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
public const ushort OPCODE = 0x000F;
|
public const ushort OPCODE = 0x000F;
|
||||||
public const uint PACKET_SIZE = 0x38;
|
public const uint PACKET_SIZE = 0x38;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint targetActorID)
|
public static SubPacket BuildPacket(uint sourceActor)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, targetActorID, data);
|
return new SubPacket(OPCODE, sourceActor, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.battle
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorId, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
|
||||||
using FFXIVClassic.Common;
|
|
||||||
|
|
||||||
namespace FFXIVClassic_Map_Server.packets.send.actor.battle
|
namespace FFXIVClassic_Map_Server.packets.send.actor.battle
|
||||||
{
|
{
|
||||||
class BattleActionX01Packet
|
class BattleActionX01Packet
|
||||||
@ -41,7 +39,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.battle
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorId, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.battle
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorId, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.battle
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorId, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
public const ushort OPCODE = 0x016C;
|
public const ushort OPCODE = 0x016C;
|
||||||
public const uint PACKET_SIZE = 0x48;
|
public const uint PACKET_SIZE = 0x48;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.EmoteEventCondition condition)
|
public static SubPacket BuildPacket(uint sourceActorId, EventList.EmoteEventCondition condition)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorID, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
public const ushort OPCODE = 0x0136;
|
public const ushort OPCODE = 0x0136;
|
||||||
public const uint PACKET_SIZE = 0x48;
|
public const uint PACKET_SIZE = 0x48;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, bool enabled, byte unknown2, string conditionName)
|
public static SubPacket BuildPacket(uint sourceActorId, bool enabled, byte unknown2, string conditionName)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorID, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
public const ushort OPCODE = 0x016B;
|
public const ushort OPCODE = 0x016B;
|
||||||
public const uint PACKET_SIZE = 0x48;
|
public const uint PACKET_SIZE = 0x48;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.NoticeEventCondition condition)
|
public static SubPacket BuildPacket(uint sourceActorId, EventList.NoticeEventCondition condition)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorID, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
public const ushort OPCODE = 0x016F;
|
public const ushort OPCODE = 0x016F;
|
||||||
public const uint PACKET_SIZE = 0x58;
|
public const uint PACKET_SIZE = 0x58;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.PushCircleEventCondition condition)
|
public static SubPacket BuildPacket(uint sourceActorId, EventList.PushCircleEventCondition condition)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorID, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
public const ushort OPCODE = 0x0170;
|
public const ushort OPCODE = 0x0170;
|
||||||
public const uint PACKET_SIZE = 0x60;
|
public const uint PACKET_SIZE = 0x60;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.PushFanEventCondition condition)
|
public static SubPacket BuildPacket(uint sourceActorId, EventList.PushFanEventCondition condition)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
binWriter.Write((Single)condition.radius);
|
binWriter.Write((Single)condition.radius);
|
||||||
binWriter.Write((UInt32)0xbfc90fdb);
|
binWriter.Write((UInt32)0xbfc90fdb);
|
||||||
binWriter.Write((UInt32)0x3f860a92);
|
binWriter.Write((UInt32)0x3f860a92);
|
||||||
binWriter.Write((UInt32)sourceActorID); //Actor Id
|
binWriter.Write((UInt32)sourceActorId); //Actor Id
|
||||||
binWriter.Write((Single)10.0f);
|
binWriter.Write((Single)10.0f);
|
||||||
binWriter.Seek(4, SeekOrigin.Current);
|
binWriter.Seek(4, SeekOrigin.Current);
|
||||||
binWriter.Write((Byte)(condition.outwards ? 0x11 : 0x1)); //If == 0x10, Inverted Bounding Box
|
binWriter.Write((Byte)(condition.outwards ? 0x11 : 0x1)); //If == 0x10, Inverted Bounding Box
|
||||||
@ -32,8 +32,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
binWriter.Write(Encoding.ASCII.GetBytes(condition.conditionName), 0, Encoding.ASCII.GetByteCount(condition.conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(condition.conditionName));
|
binWriter.Write(Encoding.ASCII.GetBytes(condition.conditionName), 0, Encoding.ASCII.GetByteCount(condition.conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(condition.conditionName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
new SubPacket(OPCODE, sourceActorID, playerActorID, data).DebugPrintSubPacket();
|
new SubPacket(OPCODE, sourceActorId, data).DebugPrintSubPacket();
|
||||||
return new SubPacket(OPCODE, sourceActorID, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
public const ushort OPCODE = 0x0175;
|
public const ushort OPCODE = 0x0175;
|
||||||
public const uint PACKET_SIZE = 0x60;
|
public const uint PACKET_SIZE = 0x60;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.PushBoxEventCondition condition)
|
public static SubPacket BuildPacket(uint sourceActorId, EventList.PushBoxEventCondition condition)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorID, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
public const ushort OPCODE = 0x012E;
|
public const ushort OPCODE = 0x012E;
|
||||||
public const uint PACKET_SIZE = 0x48;
|
public const uint PACKET_SIZE = 0x48;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.TalkEventCondition condition)
|
public static SubPacket BuildPacket(uint sourceActorId, EventList.TalkEventCondition condition)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorID, playerActorID, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, playerActorID, data);
|
return new SubPacket(OPCODE, playerActorID, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorId, playerActorId, data);
|
return new SubPacket(OPCODE, playerActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorId, playerActorId, data);
|
return new SubPacket(OPCODE, playerActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorId, playerActorId, data);
|
return new SubPacket(OPCODE, playerActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorId, playerActorId, data);
|
return new SubPacket(OPCODE, playerActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,13 +11,13 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
{
|
{
|
||||||
byte[] data = new byte[8];
|
byte[] data = new byte[8];
|
||||||
data[0] = 2;
|
data[0] = 2;
|
||||||
return new SubPacket(OPCODE, sourceActorId, targetActorId, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID)
|
public static SubPacket BuildPacket(uint playerActorID)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[8];
|
byte[] data = new byte[8];
|
||||||
return new SubPacket(OPCODE, playerActorID, playerActorID, data);
|
return new SubPacket(OPCODE, playerActorID, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,14 +7,10 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
public const ushort OPCODE = 0x016E;
|
public const ushort OPCODE = 0x016E;
|
||||||
public const uint PACKET_SIZE = 0x28;
|
public const uint PACKET_SIZE = 0x28;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId)
|
public static SubPacket BuildPacket(uint sourceActorId)
|
||||||
{
|
{
|
||||||
return new SubPacket(OPCODE, sourceActorId, targetActorId, new byte[8]);
|
return new SubPacket(OPCODE, sourceActorId, new byte[8]);
|
||||||
}
|
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID)
|
|
||||||
{
|
|
||||||
return new SubPacket(OPCODE, playerActorID, playerActorID, new byte[8]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
data = mem.GetBuffer();
|
data = mem.GetBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, playerActorID, data);
|
return new SubPacket(OPCODE, playerActorID, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
data = mem.GetBuffer();
|
data = mem.GetBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, playerActorID, data);
|
return new SubPacket(OPCODE, playerActorID, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,13 +9,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
{
|
{
|
||||||
public const ushort OPCODE = 0x0148;
|
public const ushort OPCODE = 0x0148;
|
||||||
public const uint PACKET_SIZE = 0x90;
|
public const uint PACKET_SIZE = 0x90;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorId, InventoryItem item)
|
public static SubPacket BuildPacket(uint sourceActorId, InventoryItem item)
|
||||||
{
|
|
||||||
return BuildPacket(playerActorId, playerActorId, item);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId, InventoryItem item)
|
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -27,7 +22,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorId, targetActorId, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,13 +11,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
{
|
{
|
||||||
public const ushort OPCODE = 0x0149;
|
public const ushort OPCODE = 0x0149;
|
||||||
public const uint PACKET_SIZE = 0x3A8;
|
public const uint PACKET_SIZE = 0x3A8;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorId, List<InventoryItem> items, ref int listOffset)
|
public static SubPacket BuildPacket(uint sourceActorId, List<InventoryItem> items, ref int listOffset)
|
||||||
{
|
|
||||||
return BuildPacket(playerActorId, playerActorId, items, ref listOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId, List<InventoryItem> items, ref int listOffset)
|
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -42,7 +37,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorId, targetActorId, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,12 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
public const ushort OPCODE = 0x014A;
|
public const ushort OPCODE = 0x014A;
|
||||||
public const uint PACKET_SIZE = 0x720;
|
public const uint PACKET_SIZE = 0x720;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorId, List<InventoryItem> items, ref int listOffset)
|
public static SubPacket BuildPacket(uint sourceActorId, List<InventoryItem> items, ref int listOffset)
|
||||||
{
|
|
||||||
return BuildPacket(playerActorId, playerActorId, items, ref listOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId, List<InventoryItem> items, ref int listOffset)
|
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
|
|
||||||
@ -38,7 +33,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, sourceActorId, targetActorId, data);
|
return new SubPacket(OPCODE, sourceActorId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
{
|
{
|
||||||
public const ushort OPCODE = 0x014B;
|
public const ushort OPCODE = 0x014B;
|
||||||
public const uint PACKET_SIZE = 0xE20;
|
public const uint PACKET_SIZE = 0xE20;
|
||||||
|
|
||||||
public static SubPacket BuildPacket(uint playerActorID, List<InventoryItem> items, ref int listOffset)
|
public static SubPacket BuildPacket(uint playerActorID, List<InventoryItem> items, ref int listOffset)
|
||||||
{
|
{
|
||||||
byte[] data = new byte[PACKET_SIZE - 0x20];
|
byte[] data = new byte[PACKET_SIZE - 0x20];
|
||||||
@ -33,7 +33,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, playerActorID, data);
|
return new SubPacket(OPCODE, playerActorID, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new SubPacket(OPCODE, playerActorID, playerActorID, data);
|
return new SubPacket(OPCODE, playerActorID, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user