Browse Source

Trade Updates, Fixes #13

Added Trade command for Right Click.
Resolved quantity length for both traders in a trade, your_item_quantity, their_item_quantity (was int16, now int32)
Image 4 years ago
parent
commit
dbb0daacd7
3 changed files with 83 additions and 0 deletions
  1. 3 0
      EQ2/source/WorldServer/client.cpp
  2. 40 0
      EQ2/structs/WorldStructs.xml
  3. 40 0
      server/WorldStructs.xml

+ 3 - 0
EQ2/source/WorldServer/client.cpp

@@ -3373,7 +3373,10 @@ void Client::HandleVerbRequest(EQApplicationPacket* app){
 				if(player->IsIgnored(spawn->GetName()))
 					delete_commands.push_back(player->CreateEntityCommand("remove from ignore list", 10000, "ignore_remove", "", 0, 0));
 				else
+				{
 					delete_commands.push_back(player->CreateEntityCommand("add to ignore list", 10000, "ignore_add", "", 0, 0));
+					delete_commands.push_back(player->CreateEntityCommand("Trade", 10, "start_trade", "", 0, 0));
+				}
 				if(((Player*)spawn)->GetGroupMemberInfo()) {
 					if(player->IsGroupMember((Player*)spawn) && player->GetGroupMemberInfo()->leader) { //group leader
 						delete_commands.push_back(player->CreateEntityCommand("kick from group", 10000, "kickfromgroup", "", 0, 0));

+ 40 - 0
EQ2/structs/WorldStructs.xml

@@ -31975,6 +31975,46 @@ to zero and treated like placeholders." />
 <Data ElementName="their_gold" Type="int32" />
 <Data ElementName="their_plat" Type="int32" />
 </Struct>
+<Struct Name="WS_PlayerTrade" ClientVersion="60114" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqUpdateStoreCmd"> <!-- Figured out in a 1208 client -->
+<Data ElementName="spawn_id" Type="int32" />
+<Data ElementName="type" Type="int16" />
+<!-- top half -->
+<Data ElementName="your_item_count" Type="int8" />
+<Data ElementName="your_item_array" Type="Array" ArraySizeVariable="your_item_count">
+  <Data ElementName="your_item_unknown1" Type="int8" /> <!-- needs to be set to 1 -->
+  <Data ElementName="your_item_unknown2" Type="int8" /> <!-- needs to be set to 1 -->
+  <Data ElementName="your_item_slot" Type="int8" />
+  <Data ElementName="your_item_unknown3" Type ="int8" Size="3" />
+  <Data ElementName="your_item_id" Type="int32" />
+  <Data ElementName="your_item_quantity" Type="int32" />
+  <Data ElementName="your_item_icon" Type="int16" />
+  <Data ElementName="your_item_unknown4" Type="int8" />
+  <Data ElementName="your_item_background" Type="int8" />
+  <Data ElementName="your_item_unknown5" Type="int8" Size="8" />      
+</Data>
+<Data ElementName="your_copper" Type="int32" />
+<Data ElementName="your_silver" Type="int32" />
+<Data ElementName="your_gold" Type="int32" />
+<Data ElementName="your_plat" Type="int32" />
+<!-- lower half -->
+<Data ElementName="their_item_count" Type="int8" />
+<Data ElementName="their_item_array" Type="Array" ArraySizeVariable="their_item_count">
+  <Data ElementName="their_item_unknown1" Type="int8" /> <!-- needs to be set to 1 -->
+  <Data ElementName="their_item_unknown2" Type="int8" /> <!-- needs to be set to 1 -->
+  <Data ElementName="their_item_slot" Type="int8" />
+  <Data ElementName="their_item_unknown3" Type ="int8" Size="3" />
+  <Data ElementName="their_item_id" Type="int32" />
+  <Data ElementName="their_item_quantity" Type="int32" />
+  <Data ElementName="their_item_icon" Type="int16" />
+  <Data ElementName="their_item_unknown4" Type="int8" />
+  <Data ElementName="their_item_background" Type="int8" />
+  <Data ElementName="their_item_unknown5" Type="int8" Size="8" />      
+</Data>
+<Data ElementName="their_copper" Type="int32" />
+<Data ElementName="their_silver" Type="int32" />
+<Data ElementName="their_gold" Type="int32" />
+<Data ElementName="their_plat" Type="int32" />
+</Struct>
 <Struct Name="WS_PlayerTrade" ClientVersion="63225" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqUpdateStoreCmd" >
 	<Data ElementName="spawn_id" Type="int32" />
 	<Data ElementName="type" Type="int16" />

+ 40 - 0
server/WorldStructs.xml

@@ -31975,6 +31975,46 @@ to zero and treated like placeholders." />
 <Data ElementName="their_gold" Type="int32" />
 <Data ElementName="their_plat" Type="int32" />
 </Struct>
+<Struct Name="WS_PlayerTrade" ClientVersion="60114" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqUpdateStoreCmd"> <!-- Figured out in a 1208 client -->
+<Data ElementName="spawn_id" Type="int32" />
+<Data ElementName="type" Type="int16" />
+<!-- top half -->
+<Data ElementName="your_item_count" Type="int8" />
+<Data ElementName="your_item_array" Type="Array" ArraySizeVariable="your_item_count">
+  <Data ElementName="your_item_unknown1" Type="int8" /> <!-- needs to be set to 1 -->
+  <Data ElementName="your_item_unknown2" Type="int8" /> <!-- needs to be set to 1 -->
+  <Data ElementName="your_item_slot" Type="int8" />
+  <Data ElementName="your_item_unknown3" Type ="int8" Size="3" />
+  <Data ElementName="your_item_id" Type="int32" />
+  <Data ElementName="your_item_quantity" Type="int32" />
+  <Data ElementName="your_item_icon" Type="int16" />
+  <Data ElementName="your_item_unknown4" Type="int8" />
+  <Data ElementName="your_item_background" Type="int8" />
+  <Data ElementName="your_item_unknown5" Type="int8" Size="8" />      
+</Data>
+<Data ElementName="your_copper" Type="int32" />
+<Data ElementName="your_silver" Type="int32" />
+<Data ElementName="your_gold" Type="int32" />
+<Data ElementName="your_plat" Type="int32" />
+<!-- lower half -->
+<Data ElementName="their_item_count" Type="int8" />
+<Data ElementName="their_item_array" Type="Array" ArraySizeVariable="their_item_count">
+  <Data ElementName="their_item_unknown1" Type="int8" /> <!-- needs to be set to 1 -->
+  <Data ElementName="their_item_unknown2" Type="int8" /> <!-- needs to be set to 1 -->
+  <Data ElementName="their_item_slot" Type="int8" />
+  <Data ElementName="their_item_unknown3" Type ="int8" Size="3" />
+  <Data ElementName="their_item_id" Type="int32" />
+  <Data ElementName="their_item_quantity" Type="int32" />
+  <Data ElementName="their_item_icon" Type="int16" />
+  <Data ElementName="their_item_unknown4" Type="int8" />
+  <Data ElementName="their_item_background" Type="int8" />
+  <Data ElementName="their_item_unknown5" Type="int8" Size="8" />      
+</Data>
+<Data ElementName="their_copper" Type="int32" />
+<Data ElementName="their_silver" Type="int32" />
+<Data ElementName="their_gold" Type="int32" />
+<Data ElementName="their_plat" Type="int32" />
+</Struct>
 <Struct Name="WS_PlayerTrade" ClientVersion="63225" OpcodeName="OP_ClientCmdMsg" OpcodeType="OP_EqUpdateStoreCmd" >
 	<Data ElementName="spawn_id" Type="int32" />
 	<Data ElementName="type" Type="int16" />