From 0d355e3126ab7e0a88bd8e54ce724498f6828c01 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 17 Feb 2015 15:32:42 +0300 Subject: eathena: add pet emote command. --- src/actions/pets.cpp | 3 +++ src/net/eathena/pethandler.cpp | 8 ++------ src/net/eathena/protocol.h | 1 + 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/actions/pets.cpp b/src/actions/pets.cpp index fa413227f..109da80cd 100644 --- a/src/actions/pets.cpp +++ b/src/actions/pets.cpp @@ -85,6 +85,9 @@ impHandler(setPetName) impHandler(petEmote) { + if (!serverFeatures->haveTalkPet()) + return false; + if (event.action >= InputAction::PET_EMOTE_1 && event.action <= InputAction::PET_EMOTE_48) { diff --git a/src/net/eathena/pethandler.cpp b/src/net/eathena/pethandler.cpp index 29e48ba04..6d1167198 100644 --- a/src/net/eathena/pethandler.cpp +++ b/src/net/eathena/pethandler.cpp @@ -121,12 +121,8 @@ void PetHandler::spawn(const Being *const being A_UNUSED, void PetHandler::emote(const uint8_t emoteId, const int petId A_UNUSED) { - mRandCounter ++; - if (mRandCounter > 10000) - mRandCounter = 1000; - - chatHandler->talk(strprintf("\302\202\302e%dz%d", - static_cast(emoteId), mRandCounter), GENERAL_CHANNEL); + createOutPacket(CMSG_PET_EMOTE); + outMsg.writeInt8(emoteId, "emote id"); } void PetHandler::catchPet(const Being *const being) const diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index e2d1d9b7e..a02495b19 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -513,6 +513,7 @@ #define CMSG_PET_SELECT_EGG 0x01a7 #define CMSG_PET_MENU_ACTION 0x01a1 #define CMSG_PET_TALK 0x0b0c +#define CMSG_PET_EMOTE 0x0b0d #define CMSG_MERCENARY_ACTION 0x029f #define CMSG_HOMUNCULUS_SET_NAME 0x0231 -- cgit v1.2.3-60-g2f50