From dbb0daacd75d58c751866769f55dcf1b13e6a224 Mon Sep 17 00:00:00 2001 From: Image <> Date: Sat, 29 Feb 2020 00:07:43 -0500 Subject: [PATCH] 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) --- EQ2/source/WorldServer/client.cpp | 3 +++ EQ2/structs/WorldStructs.xml | 40 +++++++++++++++++++++++++++++++ server/WorldStructs.xml | 40 +++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+) diff --git a/EQ2/source/WorldServer/client.cpp b/EQ2/source/WorldServer/client.cpp index 5abeb4b0e..e88e3516b 100644 --- a/EQ2/source/WorldServer/client.cpp +++ b/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)); diff --git a/EQ2/structs/WorldStructs.xml b/EQ2/structs/WorldStructs.xml index 24a36fd9c..ff1f9a25f 100644 --- a/EQ2/structs/WorldStructs.xml +++ b/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" /> diff --git a/server/WorldStructs.xml b/server/WorldStructs.xml index 24a36fd9c..ff1f9a25f 100644 --- a/server/WorldStructs.xml +++ b/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" />