diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index 0491049f..5934570c 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -249,6 +249,7 @@ + diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index f9c28e99..c6ebafd6 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -537,16 +537,17 @@ namespace FFXIVClassic_Map_Server.Actors playerSession.QueuePacket(debugSpawn); playerSession.QueuePacket(worldMasterSpawn); + //Inn Packets (Dream, Cutscenes, Armoire) if (zone.isInn) { SetCutsceneBookPacket cutsceneBookPacket = new SetCutsceneBookPacket(); for (int i = 0; i < 2048; i++) cutsceneBookPacket.cutsceneFlags[i] = true; - SubPacket packet = cutsceneBookPacket.BuildPacket(actorId, "", 11, 1, 1); packet.DebugPrintSubPacket(); QueuePacket(packet); + QueuePacket(SetPlayerItemStoragePacket.BuildPacket(actorId)); } if (zone.GetWeatherDirector() != null) diff --git a/FFXIVClassic Map Server/packets/send/player/SetPlayerItemStoragePacket.cs b/FFXIVClassic Map Server/packets/send/player/SetPlayerItemStoragePacket.cs new file mode 100644 index 00000000..675bf50d --- /dev/null +++ b/FFXIVClassic Map Server/packets/send/player/SetPlayerItemStoragePacket.cs @@ -0,0 +1,29 @@ +using FFXIVClassic.Common; +using System; + +using FFXIVClassic.Common; +using System.IO; + +namespace FFXIVClassic_Map_Server.packets.send.player +{ + class SetPlayerItemStoragePacket + { + public const ushort OPCODE = 0x01A5; + public const uint PACKET_SIZE = 0x50; + + public static SubPacket BuildPacket(uint playerActorID) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write(new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F}); //All items enabled + } + } + + return new SubPacket(OPCODE, playerActorID, playerActorID, data); + } + } +}