From fe9fb72dffbb35eef9a10ff90b240b5d2a999320 Mon Sep 17 00:00:00 2001 From: "Michael Cook (mackal)" Date: Thu, 4 May 2017 22:55:17 -0400 Subject: [PATCH] Update pet command messages --- zone/client_packet.cpp | 61 +++++++++++++++++++++++++++++++++++++----- zone/string_ids.h | 7 +++++ 2 files changed, 62 insertions(+), 6 deletions(-) diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index aa64b5d82..6281a5af8 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -10233,11 +10233,20 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC()) { if (mypet->IsHeld()) { + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_HOLD_SET_OFF); mypet->SetHeld(false); } else { - mypet->Say_StringID(MT_PetResponse, PET_ON_HOLD); // they use new messages now, but only SoD+? + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_HOLD_SET_ON); + + if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater) + mypet->Say_StringID(MT_PetResponse, PET_NOW_HOLDING); + else + mypet->Say_StringID(MT_PetResponse, PET_ON_HOLD); + mypet->SetHeld(true); } mypet->SetGHeld(false); @@ -10247,7 +10256,13 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) } case PET_HOLD_ON: { if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC() && !mypet->IsHeld()) { - mypet->Say_StringID(MT_PetResponse, PET_ON_HOLD); + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_HOLD_SET_ON); + + if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater) + mypet->Say_StringID(MT_PetResponse, PET_NOW_HOLDING); + else + mypet->Say_StringID(MT_PetResponse, PET_ON_HOLD); mypet->SetHeld(true); mypet->SetGHeld(false); SetPetCommandState(PET_BUTTON_GHOLD, 0); @@ -10255,19 +10270,29 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) break; } case PET_HOLD_OFF: { - if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC() && mypet->IsHeld()) + if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC() && mypet->IsHeld()) { + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_HOLD_SET_OFF); mypet->SetHeld(false); + } break; } case PET_GHOLD: { if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC()) { if (mypet->IsGHeld()) { + if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater) + Message_StringID(MT_PetResponse, PET_OFF_GHOLD); mypet->SetGHeld(false); } else { - mypet->Say_StringID(MT_PetResponse, PET_ON_HOLD); // message wrong + if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater) { + Message_StringID(MT_PetResponse, PET_ON_GHOLD); + mypet->Say_StringID(MT_PetResponse, PET_GHOLD_ON_MSG); + } else { + mypet->Say_StringID(MT_PetResponse, PET_ON_HOLD); + } mypet->SetGHeld(true); } mypet->SetHeld(false); @@ -10277,7 +10302,12 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) } case PET_GHOLD_ON: { if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC()) { - mypet->Say_StringID(MT_PetResponse, PET_ON_HOLD); + if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater) { + Message_StringID(MT_PetResponse, PET_ON_GHOLD); + mypet->Say_StringID(MT_PetResponse, PET_GHOLD_ON_MSG); + } else { + mypet->Say_StringID(MT_PetResponse, PET_ON_HOLD); + } mypet->SetGHeld(true); mypet->SetHeld(false); SetPetCommandState(PET_BUTTON_HOLD, 0); @@ -10285,8 +10315,11 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) break; } case PET_GHOLD_OFF: { - if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC() && mypet->IsGHeld()) + if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC() && mypet->IsGHeld()) { + if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater) + Message_StringID(MT_PetResponse, PET_OFF_GHOLD); mypet->SetGHeld(false); + } break; } case PET_SPELLHOLD: { @@ -10295,10 +10328,14 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) break; if (mypet->IsNoCast()) { Message_StringID(MT_PetResponse, PET_CASTING); + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_OFF); mypet->SetNoCast(false); } else { Message_StringID(MT_PetResponse, PET_NOT_CASTING); + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_ON); mypet->SetNoCast(true); } } @@ -10310,6 +10347,8 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) break; if (!mypet->IsNoCast()) { Message_StringID(MT_PetResponse, PET_NOT_CASTING); + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_ON); mypet->SetNoCast(true); } } @@ -10321,6 +10360,8 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) break; if (mypet->IsNoCast()) { Message_StringID(MT_PetResponse, PET_CASTING); + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_OFF); mypet->SetNoCast(false); } } @@ -10332,10 +10373,14 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) break; if (mypet->IsFocused()) { Message_StringID(MT_PetResponse, PET_NOT_FOCUSING); + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_FOCUS_SET_OFF); mypet->SetFocused(false); } else { Message_StringID(MT_PetResponse, PET_NOW_FOCUSING); + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_FOCUS_SET_ON); mypet->SetFocused(true); } } @@ -10347,6 +10392,8 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) break; if (!mypet->IsFocused()) { Message_StringID(MT_PetResponse, PET_NOW_FOCUSING); + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_FOCUS_SET_ON); mypet->SetFocused(true); } } @@ -10358,6 +10405,8 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) break; if (mypet->IsFocused()) { Message_StringID(MT_PetResponse, PET_NOT_FOCUSING); + if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater) + Message_StringID(MT_PetResponse, PET_FOCUS_SET_OFF); mypet->SetFocused(false); } } diff --git a/zone/string_ids.h b/zone/string_ids.h index 0326cff7e..ee4203a0e 100644 --- a/zone/string_ids.h +++ b/zone/string_ids.h @@ -164,6 +164,12 @@ #define PVP_ON 552 //You are now player kill and follow the ways of Discord. #define GENERIC_STRINGID_SAY 554 //%1 says '%T2' #define CANNOT_WAKE 555 //%1 tells you, 'I am unable to wake %2, master.' +#define PET_HOLD_SET_ON 698 //The pet hold mode has been set to on. +#define PET_HOLD_SET_OFF 699 //The pet hold mode has been set to off. +#define PET_FOCUS_SET_ON 700 //The pet focus mode has been set to on. +#define PET_FOCUS_SET_OFF 701 //The pet focus mode has been set to off. +#define PET_SPELLHOLD_SET_ON 702 //The pet spellhold mode has been set to on. +#define PET_SPELLHOLD_SET_OFF 703 //The pet spellhold mode has been set to off. #define GUILD_NAME_IN_USE 711 //You cannot create a guild with that name, that guild already exists on this server. #define GM_GAINXP 1002 //[GM] You have gained %1 AXP and %2 EXP (%3). #define MALE_SLAYUNDEAD 1007 //%1's holy blade cleanses his target!(%2) @@ -322,6 +328,7 @@ #define SENTINEL_TRIG_YOU 6724 //You have triggered your sentinel. #define SENTINEL_TRIG_OTHER 6725 //%1 has triggered your sentinel. #define IDENTIFY_SPELL 6765 //Item Lore: %1. +#define PET_NOW_HOLDING 6834 //Now holding, Master. I will not start attacks until ordered. #define PET_ON_GHOLD 6843 //Pet greater hold has been set to on. #define PET_OFF_GHOLD 6846 //Pet greater hold has been set to off. #define PET_GHOLD_ON_MSG 6847 //Now greater holding master. I will only attack something new if ordered.