diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
index 29f7a4af..5ff268f7 100644
--- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
+++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
@@ -264,6 +264,7 @@
+
@@ -271,6 +272,12 @@
+
+
+
+
+
+
diff --git a/FFXIVClassic Map Server/packets/send/search/ItemSearchClosePacket.cs b/FFXIVClassic Map Server/packets/send/search/ItemSearchClosePacket.cs
index 794d1e65..759efea7 100644
--- a/FFXIVClassic Map Server/packets/send/search/ItemSearchClosePacket.cs
+++ b/FFXIVClassic Map Server/packets/send/search/ItemSearchClosePacket.cs
@@ -3,7 +3,7 @@ using System.Text;
using FFXIVClassic.Common;
-namespace FFXIVClassic_Map_Server.packets.send.social
+namespace FFXIVClassic_Map_Server.packets.send.search
{
class ItemSearchClosePacket
{
diff --git a/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsBeginPacket.cs b/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsBeginPacket.cs
index cb1f59b4..42fc4f51 100644
--- a/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsBeginPacket.cs
+++ b/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsBeginPacket.cs
@@ -3,7 +3,7 @@ using System.Text;
using FFXIVClassic.Common;
-namespace FFXIVClassic_Map_Server.packets.send.social
+namespace FFXIVClassic_Map_Server.packets.send.search
{
class ItemSearchResultsBeginPacket
{
diff --git a/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsBodyPacket.cs b/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsBodyPacket.cs
index e8e895bd..54df84a8 100644
--- a/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsBodyPacket.cs
+++ b/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsBodyPacket.cs
@@ -2,10 +2,9 @@
using System.Text;
using System;
using FFXIVClassic.Common;
-using FFXIVClassic_Map_Server.packets.send.search;
using System.Collections.Generic;
-namespace FFXIVClassic_Map_Server.packets.send.social
+namespace FFXIVClassic_Map_Server.packets.send.search
{
class ItemSearchResultsBodyPacket
{
diff --git a/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsEndPacket.cs b/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsEndPacket.cs
index cc867306..8eedcb3f 100644
--- a/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsEndPacket.cs
+++ b/FFXIVClassic Map Server/packets/send/search/ItemSearchResultsEndPacket.cs
@@ -3,7 +3,7 @@ using System.Text;
using FFXIVClassic.Common;
-namespace FFXIVClassic_Map_Server.packets.send.social
+namespace FFXIVClassic_Map_Server.packets.send.search
{
class ItemSearchResultsEndPacket
{
diff --git a/FFXIVClassic Map Server/packets/send/search/PlayerSearchCommentResultPacket.cs b/FFXIVClassic Map Server/packets/send/search/PlayerSearchCommentResultPacket.cs
index 5edd045c..d6588878 100644
--- a/FFXIVClassic Map Server/packets/send/search/PlayerSearchCommentResultPacket.cs
+++ b/FFXIVClassic Map Server/packets/send/search/PlayerSearchCommentResultPacket.cs
@@ -3,9 +3,8 @@ using System.Text;
using FFXIVClassic.Common;
using System;
-using FFXIVClassic_Map_Server.packets.send.search;
-namespace FFXIVClassic_Map_Server.packets.send.social
+namespace FFXIVClassic_Map_Server.packets.send.search
{
class PlayerSearchCommentResultPacket
{
diff --git a/FFXIVClassic Map Server/packets/send/search/PlayerSearchInfoResultPacket.cs b/FFXIVClassic Map Server/packets/send/search/PlayerSearchInfoResultPacket.cs
index 55e54ed8..137cc0d3 100644
--- a/FFXIVClassic Map Server/packets/send/search/PlayerSearchInfoResultPacket.cs
+++ b/FFXIVClassic Map Server/packets/send/search/PlayerSearchInfoResultPacket.cs
@@ -3,9 +3,8 @@ using System.Text;
using FFXIVClassic.Common;
using System;
-using FFXIVClassic_Map_Server.packets.send.search;
-namespace FFXIVClassic_Map_Server.packets.send.social
+namespace FFXIVClassic_Map_Server.packets.send.search
{
class PlayerSearchInfoResultPacket
{
diff --git a/FFXIVClassic Map Server/packets/send/search/RetainerResultBodyPacket.cs b/FFXIVClassic Map Server/packets/send/search/RetainerResultBodyPacket.cs
index 4f8fca23..eb472a7d 100644
--- a/FFXIVClassic Map Server/packets/send/search/RetainerResultBodyPacket.cs
+++ b/FFXIVClassic Map Server/packets/send/search/RetainerResultBodyPacket.cs
@@ -3,7 +3,7 @@ using System.Text;
using FFXIVClassic.Common;
-namespace FFXIVClassic_Map_Server.packets.send.social
+namespace FFXIVClassic_Map_Server.packets.send.search
{
class RetainerResultBodyPacket
{
@@ -12,7 +12,15 @@ namespace FFXIVClassic_Map_Server.packets.send.social
public static SubPacket BuildPacket(uint sourceActorId, bool isSuccess, string nameToAdd)
{
- byte[] data = new byte[PACKET_SIZE - 0x20];
+ byte[] data = new byte[PACKET_SIZE - 0x20];
+ using (MemoryStream mem = new MemoryStream(data))
+ {
+ using (BinaryWriter binWriter = new BinaryWriter(mem))
+ {
+ binWriter.Write(Encoding.ASCII.GetBytes(sender), 0, Encoding.ASCII.GetByteCount(sender) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(sender));
+
+ }
+ }
return new SubPacket(OPCODE, sourceActorId, data);
}
}
diff --git a/FFXIVClassic Map Server/packets/send/search/RetainerResultEndPacket.cs b/FFXIVClassic Map Server/packets/send/search/RetainerResultEndPacket.cs
index d8dabd24..4e3707fa 100644
--- a/FFXIVClassic Map Server/packets/send/search/RetainerResultEndPacket.cs
+++ b/FFXIVClassic Map Server/packets/send/search/RetainerResultEndPacket.cs
@@ -3,7 +3,7 @@ using System.Text;
using FFXIVClassic.Common;
-namespace FFXIVClassic_Map_Server.packets.send.social
+namespace FFXIVClassic_Map_Server.packets.send.search
{
class RetainerResultEndPacket
{
diff --git a/FFXIVClassic Map Server/packets/send/search/RetainerResultUpdatePacket.cs b/FFXIVClassic Map Server/packets/send/search/RetainerResultUpdatePacket.cs
index aa7f510a..2a8a0619 100644
--- a/FFXIVClassic Map Server/packets/send/search/RetainerResultUpdatePacket.cs
+++ b/FFXIVClassic Map Server/packets/send/search/RetainerResultUpdatePacket.cs
@@ -2,10 +2,9 @@
using System.Text;
using System;
using FFXIVClassic.Common;
-using FFXIVClassic_Map_Server.packets.send.search;
using System.Collections.Generic;
-namespace FFXIVClassic_Map_Server.packets.send.social
+namespace FFXIVClassic_Map_Server.packets.send.search
{
class RetainerResultUpdatePacket
{
diff --git a/FFXIVClassic Map Server/packets/send/search/RetainerSearchHistoryPacket.cs b/FFXIVClassic Map Server/packets/send/search/RetainerSearchHistoryPacket.cs
new file mode 100644
index 00000000..85d79d9c
--- /dev/null
+++ b/FFXIVClassic Map Server/packets/send/search/RetainerSearchHistoryPacket.cs
@@ -0,0 +1,42 @@
+using FFXIVClassic.Common;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FFXIVClassic_Map_Server.packets.send.search
+{
+ class RetainerSearchHistoryPacket
+ {
+ public const ushort OPCODE = 0x01DD;
+ public const uint PACKET_SIZE = 0x120;
+
+ public static SubPacket BuildPacket(uint sourceActorId, byte count, bool hasEnded)
+ {
+ byte[] data = new byte[PACKET_SIZE - 0x20];
+ using (MemoryStream mem = new MemoryStream(data))
+ {
+ using (BinaryWriter binWriter = new BinaryWriter(mem))
+ {
+ binWriter.Seek(0x12, SeekOrigin.Begin);
+ binWriter.Write((UInt16)count);
+ binWriter.Write((Byte)(hasEnded ? 2 : 0));
+
+ for (int i = 0; i < count; i++)
+ {
+ binWriter.Seek(0x10 + (0x80 * i), SeekOrigin.Begin);
+ RetainerSearchHistoryResult result = null;
+ binWriter.Write((UInt32)result.timestamp);
+ binWriter.Write((UInt16)0);
+ binWriter.Write((UInt16)result.quanitiy);
+ binWriter.Write((UInt32)result.gilCostPerItem);
+ binWriter.Write((Byte)result.numStack);
+ }
+ }
+ }
+ return new SubPacket(OPCODE, sourceActorId, data);
+ }
+ }
+}
diff --git a/FFXIVClassic Map Server/packets/send/search/RetainerSearchHistoryResult.cs b/FFXIVClassic Map Server/packets/send/search/RetainerSearchHistoryResult.cs
new file mode 100644
index 00000000..df801164
--- /dev/null
+++ b/FFXIVClassic Map Server/packets/send/search/RetainerSearchHistoryResult.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FFXIVClassic_Map_Server.packets.send.search
+{
+ class RetainerSearchHistoryResult
+ {
+ public uint timestamp;
+ public ushort quanitiy;
+ public uint gilCostPerItem;
+ public byte numStack;
+ }
+}
diff --git a/FFXIVClassic Map Server/packets/send/search/RetainerSearchResult.cs b/FFXIVClassic Map Server/packets/send/search/RetainerSearchResult.cs
new file mode 100644
index 00000000..7747d90c
--- /dev/null
+++ b/FFXIVClassic Map Server/packets/send/search/RetainerSearchResult.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FFXIVClassic_Map_Server.packets.send.search
+{
+ class RetainerSearchResult
+ {
+ public uint itemId;
+ public uint marketWard;
+ public uint gilCostPerItem;
+ public uint quantity;
+ public byte numStack;
+ public byte quality;
+ public string sellerRetainerName;
+ public byte[] materiaType = new byte[5];
+ public byte[] materiaGrade = new byte[5];
+ }
+}