diff options
Diffstat (limited to 'src/net/eathena')
-rw-r--r-- | src/net/eathena/protocol.h | 1 | ||||
-rw-r--r-- | src/net/eathena/vendinghandler.cpp | 14 | ||||
-rw-r--r-- | src/net/eathena/vendinghandler.h | 4 |
3 files changed, 19 insertions, 0 deletions
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index ff985053b..f10ec6163 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -535,5 +535,6 @@ #define CMSG_VENDING_CLOSE 0x012e #define CMSG_VENDING_LIST_REQ 0x0130 +#define CMSG_VENDING_BUY 0x0134 #endif // NET_EATHENA_PROTOCOL_H diff --git a/src/net/eathena/vendinghandler.cpp b/src/net/eathena/vendinghandler.cpp index 0b145e3e7..e16e26fd8 100644 --- a/src/net/eathena/vendinghandler.cpp +++ b/src/net/eathena/vendinghandler.cpp @@ -168,4 +168,18 @@ void VendingHandler::open(const Being *const being) const outMsg.writeInt32(being->getId(), "account id"); } +void VendingHandler::buy(const Being *const being, + const int index, + const int amount) const +{ + if (!being) + return; + + createOutPacket(CMSG_VENDING_BUY); + outMsg.writeInt16(12, "len"); + outMsg.writeInt32(being->getId(), "account id"); + outMsg.writeInt16(amount, "amount"); + outMsg.writeInt16(index, "index"); +} + } // namespace EAthena diff --git a/src/net/eathena/vendinghandler.h b/src/net/eathena/vendinghandler.h index 7e0bb8368..ef18f4ce2 100644 --- a/src/net/eathena/vendinghandler.h +++ b/src/net/eathena/vendinghandler.h @@ -41,6 +41,10 @@ class VendingHandler final : public MessageHandler, void open(const Being *const being) const override final; + void buy(const Being *const being, + const int index, + const int amount) const override final; + protected: static void processOpenReq(Net::MessageIn &msg); |