diff --git a/src/otclient/net/protocolgame.h b/src/otclient/net/protocolgame.h index 10206f25..d3e5f8dc 100644 --- a/src/otclient/net/protocolgame.h +++ b/src/otclient/net/protocolgame.h @@ -46,6 +46,7 @@ public: void sendWalkEast(); void sendWalkSouth(); void sendWalkWest(); + void sendStopAutowalk(); void sendWalkNorthEast(); void sendWalkSouthEast(); void sendWalkSouthWest(); @@ -54,6 +55,15 @@ public: void sendTurnEast(); void sendTurnSouth(); void sendTurnWest(); + void sendThrow(const Position& fromPos, int thingId, int stackpos, const Position& toPos, int count); + void sendLookInShop(int thingId, int count); + void sendPlayerPurchase(int thingId, int count, int amount, bool ignoreCapacity, bool buyWithBackpack); + void sendPlayerSale(int thingId, int count, int amount, bool ignoreEquipped); + void sendCloseShop(); + void sendRequestTrade(const Position& pos, int thingId, int stackpos, int playerId); + void sendLookInTrade(bool counterOffer, int index); + void sendAcceptTrade(); + void sendRejectTrade(); void sendUseItem(const Position& position, int itemId, int stackpos, int index); void sendLookAt(const Position& position, int thingId, int stackpos); void sendTalk(int channelType, int channelId, const std::string& receiver, const std::string& message); diff --git a/src/otclient/net/protocolgamesend.cpp b/src/otclient/net/protocolgamesend.cpp index e4a64f1f..21510437 100644 --- a/src/otclient/net/protocolgamesend.cpp +++ b/src/otclient/net/protocolgamesend.cpp @@ -73,6 +73,8 @@ void ProtocolGame::sendPing() send(oMsg); } +// autowalk + void ProtocolGame::sendWalkNorth() { OutputMessage oMsg; @@ -101,6 +103,13 @@ void ProtocolGame::sendWalkWest() send(oMsg); } +void ProtocolGame::sendStopAutowalk() +{ + OutputMessage oMsg; + oMsg.addU8(Otc::ClientStop); + send(oMsg); +} + void ProtocolGame::sendWalkNorthEast() { OutputMessage oMsg; @@ -157,6 +166,91 @@ void ProtocolGame::sendTurnWest() send(oMsg); } +void ProtocolGame::sendThrow(const Position& fromPos, int thingId, int stackpos, const Position& toPos, int count) +{ + OutputMessage oMsg; + oMsg.addU8(Otc::ClientMoveObject); + addPosition(oMsg, fromPos); + oMsg.addU16(thingId); + oMsg.addU8(stackpos); + addPosition(oMsg, toPos); + oMsg.addU8(count); + send(oMsg); +} + +void ProtocolGame::sendLookInShop(int thingId, int count) +{ + OutputMessage oMsg; + oMsg.addU8(Otc::ClientInspectNpcTrade); + oMsg.addU16(thingId); + oMsg.addU8(count); + send(oMsg); +} + +void ProtocolGame::sendPlayerPurchase(int thingId, int count, int amount, bool ignoreCapacity, bool buyWithBackpack) +{ + OutputMessage oMsg; + oMsg.addU8(Otc::ClientBuyObject); + oMsg.addU16(thingId); + oMsg.addU8(count); + oMsg.addU8(amount); + oMsg.addU8(ignoreCapacity ? 0x01 : 0x00); + oMsg.addU8(buyWithBackpack ? 0x01 : 0x00); + send(oMsg); +} + +void ProtocolGame::sendPlayerSale(int thingId, int count, int amount, bool ignoreEquipped) +{ + OutputMessage oMsg; + oMsg.addU8(Otc::ClientSellObject); + oMsg.addU16(thingId); + oMsg.addU8(count); + oMsg.addU8(amount); + oMsg.addU8(ignoreEquipped ? 0x01 : 0x00); + send(oMsg); +} + +void ProtocolGame::sendCloseShop() +{ + OutputMessage oMsg; + oMsg.addU8(Otc::ClientCloseNpcTrade); + send(oMsg); +} + +void ProtocolGame::sendRequestTrade(const Position& pos, int thingId, int stackpos, int playerId) +{ + OutputMessage oMsg; + oMsg.addU8(Otc::ClientTradeObject); + addPosition(oMsg, pos); + oMsg.addU16(thingId); + oMsg.addU8(stackpos); + oMsg.addU32(playerId); + send(oMsg); +} + +void ProtocolGame::sendLookInTrade(bool counterOffer, int index) +{ + OutputMessage oMsg; + oMsg.addU8(Otc::ClientInspectTrade); + oMsg.addU8(counterOffer ? 0x01 : 0x00); + oMsg.addU8(index); + send(oMsg); +} + +void ProtocolGame::sendAcceptTrade() +{ + OutputMessage oMsg; + oMsg.addU8(Otc::ClientAcceptTrade); + send(oMsg); +} + +void ProtocolGame::sendRejectTrade() +{ + OutputMessage oMsg; + oMsg.addU8(Otc::ClientRejectTrade); + send(oMsg); +} + void ProtocolGame::sendUseItem(const Position& position, int itemId, int stackpos, int index) { OutputMessage oMsg; @@ -168,6 +262,20 @@ void ProtocolGame::sendUseItem(const Position& position, int itemId, int stackpo send(oMsg); } +// use item ex + +// battle window + +// rotate item + +// close container + +// up arrow container + +// text window + +// house window + void ProtocolGame::sendLookAt(const Position& position, int thingId, int stackpos) { OutputMessage oMsg; @@ -204,6 +312,52 @@ void ProtocolGame::sendTalk(int channelType, int channelId, const std::string& r send(oMsg); } +// get channels + +// open channels + +// close channel + +// open priv + +// process report + +// gm closes report + +// cancel report + +// close npc + +// fight modes + +// attack + +// follow + +// invite to party + +// join party + +// revoke party invitation + +// pass party leadership + +// leave party + +// enable shared exp + +// create private channel + +// channel invite + +// channel exclude + +// cancel move + +// update tile + +// update container + void ProtocolGame::sendGetOutfit() { OutputMessage oMsg; @@ -242,6 +396,16 @@ void ProtocolGame::sendRemoveVip(int id) send(oMsg); } +// bug report + +// violation window + +// debug assert + +// quest log + +// quest line + void ProtocolGame::addPosition(OutputMessage& msg, const Position& position) { msg.addU16(position.x);