diff --git a/changelog.txt b/changelog.txt index 254c262ea..8df9c1c34 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,10 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- +== 04/03/2013 == +demonstar55: Overloaded Mob::Say_StringID with the option to provide a message type +demonstar55: Switched rest of the Pet Messages to MT_PetResponse (Leader commands intentionally left the old way) + == 04/2/2013 == Bad_Captain: Fixed Merc lack of use of heal over time spells (causing excessive healing). Bad_Captain: Fixed pet mitigation/AC issues. diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 52d35dd71..c27ee0a73 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -7086,7 +7086,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) if (mypet->IsFeared()) break; //keeps pet running while feared if((mypet->GetPetType() == petAnimation && GetAA(aaAnimationEmpathy) >= 3) || mypet->GetPetType() != petAnimation) { - mypet->Say_StringID(PET_CALMING); + mypet->Say_StringID(MT_PetResponse, PET_CALMING); mypet->WipeHateList(); mypet->SetTarget(NULL); } @@ -7111,7 +7111,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) SetPet(NULL); } - mypet->Say_StringID(PET_GETLOST_STRING); + mypet->Say_StringID(MT_PetResponse, PET_GETLOST_STRING); mypet->CastToNPC()->Depop(); //Oddly, the client (Titanium) will still allow "/pet get lost" command despite me adding the code below. If someone can figure that out, you can uncomment this code and use it. @@ -7130,7 +7130,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) if((mypet->GetPetType() == petAnimation && GetAA(aaAnimationEmpathy) >= 1) || mypet->GetPetType() != petAnimation) { if(mypet->IsNPC()) { mypet->SetHeld(false); - mypet->Say_StringID(PET_GUARDINGLIFE); + mypet->Say_StringID(MT_PetResponse, PET_GUARDINGLIFE); mypet->SetPetOrder(SPO_Guard); mypet->CastToNPC()->SaveGuardSpot(); } @@ -7142,7 +7142,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) if((mypet->GetPetType() == petAnimation && GetAA(aaAnimationEmpathy) >= 1) || mypet->GetPetType() != petAnimation) { mypet->SetHeld(false); - mypet->Say_StringID(PET_FOLLOWING); + mypet->Say_StringID(MT_PetResponse, PET_FOLLOWING); mypet->SetPetOrder(SPO_Follow); mypet->SendAppearancePacket(AT_Anim, ANIM_STAND); } @@ -7167,7 +7167,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) if((mypet->GetPetType() == petAnimation && GetAA(aaAnimationEmpathy) >= 1) || mypet->GetPetType() != petAnimation) { mypet->SetHeld(false); - mypet->Say_StringID(PET_GUARDME_STRING); + mypet->Say_StringID(MT_PetResponse, PET_GUARDME_STRING); mypet->SetPetOrder(SPO_Follow); mypet->SendAppearancePacket(AT_Anim, ANIM_STAND); } @@ -7177,7 +7177,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) if (mypet->IsFeared()) break; //could be exploited like PET_BACKOFF if((mypet->GetPetType() == petAnimation && GetAA(aaAnimationEmpathy) >= 3) || mypet->GetPetType() != petAnimation) { - mypet->Say_StringID(PET_SIT_STRING); + mypet->Say_StringID(MT_PetResponse, PET_SIT_STRING); mypet->SetPetOrder(SPO_Sit); mypet->SetRunAnimSpeed(0); if(!mypet->UseBardSpellLogic()) //maybe we can have a bard pet @@ -7190,7 +7190,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) if (mypet->IsFeared()) break; //could be exploited like PET_BACKOFF if((mypet->GetPetType() == petAnimation && GetAA(aaAnimationEmpathy) >= 3) || mypet->GetPetType() != petAnimation) { - mypet->Say_StringID(PET_SIT_STRING); + mypet->Say_StringID(MT_PetResponse, PET_SIT_STRING); mypet->SetPetOrder(SPO_Follow); mypet->SendAppearancePacket(AT_Anim, ANIM_STAND); } @@ -7200,7 +7200,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) if (mypet->IsFeared()) break; //could be exploited like PET_BACKOFF if(mypet->GetPetType() != petAnimation) { - mypet->Say_StringID(PET_SIT_STRING); + mypet->Say_StringID(MT_PetResponse, PET_SIT_STRING); mypet->SetPetOrder(SPO_Sit); mypet->SetRunAnimSpeed(0); if(!mypet->UseBardSpellLogic()) //maybe we can have a bard pet @@ -7214,7 +7214,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app) if (mypet->IsFeared()) break; //could be exploited like PET_BACKOFF - mypet->Say_StringID(PET_ON_HOLD); + mypet->Say_StringID(MT_PetResponse, PET_ON_HOLD); mypet->WipeHateList(); mypet->SetHeld(true); } diff --git a/zone/mob.cpp b/zone/mob.cpp index 2d1539086..b7b89d925 100644 --- a/zone/mob.cpp +++ b/zone/mob.cpp @@ -2544,7 +2544,7 @@ void Mob::Say(const char *format, ...) void Mob::Say_StringID(uint32 string_id, const char *message3, const char *message4, const char *message5, const char *message6, const char *message7, const char *message8, const char *message9) { char string_id_str[10]; - + snprintf(string_id_str, 10, "%d", string_id); entity_list.MessageClose_StringID(this, false, 200, 10, @@ -2553,6 +2553,18 @@ void Mob::Say_StringID(uint32 string_id, const char *message3, const char *messa ); } +void Mob::Say_StringID(uint32 type, uint32 string_id, const char *message3, const char *message4, const char *message5, const char *message6, const char *message7, const char *message8, const char *message9) +{ + char string_id_str[10]; + + snprintf(string_id_str, 10, "%d", string_id); + + entity_list.MessageClose_StringID(this, false, 200, type, + GENERIC_STRINGID_SAY, GetCleanName(), string_id_str, message3, message4, message5, + message6, message7, message8, message9 + ); +} + void Mob::Shout(const char *format, ...) { char buf[1000]; diff --git a/zone/mob.h b/zone/mob.h index 5f29227d5..cefa8842d 100644 --- a/zone/mob.h +++ b/zone/mob.h @@ -490,6 +490,8 @@ public: void Say(const char *format, ...); void Say_StringID(uint32 string_id, const char *message3 = 0, const char *message4 = 0, const char *message5 = 0, const char *message6 = 0, const char *message7 = 0, const char *message8 = 0, const char *message9 = 0); + void Say_StringID(uint32 type, uint32 string_id, const char *message3 = 0, const char *message4 = 0, const char *message5 = 0, + const char *message6 = 0, const char *message7 = 0, const char *message8 = 0, const char *message9 = 0); void Shout(const char *format, ...); void Emote(const char *format, ...); void QuestJournalledSay(Client *QuestInitiator, const char *str);