Start work on OP_MoveMultipleItems (RoF+)

Currently it just kicks to prevent desyncs
This commit is contained in:
Michael Cook (mackal) 2017-11-25 23:56:29 -05:00
parent 29a62dfa85
commit e19b7bd368
6 changed files with 24 additions and 0 deletions

View File

@ -340,6 +340,7 @@ N(OP_MOTD),
N(OP_MoveCoin),
N(OP_MoveDoor),
N(OP_MoveItem),
N(OP_MoveMultipleItems),
N(OP_MoveLogDisregard),
N(OP_MoveLogRequest),
N(OP_MultiLineMsg),

View File

@ -1827,6 +1827,20 @@ struct MoveItem_Struct
/*0028*/
};
struct MultiMoveItemSub_Struct
{
/*0000*/ InventorySlot_Struct from_slot;
/*0012*/ InventorySlot_Struct to_slot;
/*0024*/ uint32 number_in_stack;
/*0028*/ uint8 unknown[8];
};
struct MultiMoveItem_Struct
{
/*0000*/ uint32 count;
/*0004*/ MultiMoveItemSub_Struct moves[0];
};
//
// from_slot/to_slot
// -1 - destroy

View File

@ -248,6 +248,7 @@ OP_AutoAttack=0x0d14
OP_AutoAttack2=0x3912
OP_Consume=0x4692
OP_MoveItem=0x62a2
OP_MoveMultipleItems=0x55ef
OP_DeleteItem=0x3eb5
OP_DeleteCharge=0x2d5b
OP_ItemPacket=0x5e0e

View File

@ -247,6 +247,7 @@ OP_AutoAttack=0x109d
OP_AutoAttack2=0x3526
OP_Consume=0x4b70
OP_MoveItem=0x32ee
OP_MoveMultipleItems=0x5623
OP_DeleteItem=0x18ad
OP_DeleteCharge=0x01b8
OP_ItemPacket=0x368e

View File

@ -291,6 +291,7 @@ void MapOpcodes()
ConnectedOpcodes[OP_MercenaryTimerRequest] = &Client::Handle_OP_MercenaryTimerRequest;
ConnectedOpcodes[OP_MoveCoin] = &Client::Handle_OP_MoveCoin;
ConnectedOpcodes[OP_MoveItem] = &Client::Handle_OP_MoveItem;
ConnectedOpcodes[OP_MoveMultipleItems] = &Client::Handle_OP_MoveMultipleItems;
ConnectedOpcodes[OP_OpenContainer] = &Client::Handle_OP_OpenContainer;
ConnectedOpcodes[OP_OpenGuildTributeMaster] = &Client::Handle_OP_OpenGuildTributeMaster;
ConnectedOpcodes[OP_OpenInventory] = &Client::Handle_OP_OpenInventory;
@ -9855,6 +9856,11 @@ void Client::Handle_OP_MoveItem(const EQApplicationPacket *app)
return;
}
void Client::Handle_OP_MoveMultipleItems(const EQApplicationPacket *app)
{
Kick(); // TODO: lets not desync though
}
void Client::Handle_OP_OpenContainer(const EQApplicationPacket *app)
{
// Does not exist in Ti client

View File

@ -204,6 +204,7 @@
void Handle_OP_MercenaryTimerRequest(const EQApplicationPacket *app);
void Handle_OP_MoveCoin(const EQApplicationPacket *app);
void Handle_OP_MoveItem(const EQApplicationPacket *app);
void Handle_OP_MoveMultipleItems(const EQApplicationPacket *app);
void Handle_OP_OpenContainer(const EQApplicationPacket *app);
void Handle_OP_OpenGuildTributeMaster(const EQApplicationPacket *app);
void Handle_OP_OpenInventory(const EQApplicationPacket *app);