From d1afad47aa70bbcdfa740ba01941216baf5c48f5 Mon Sep 17 00:00:00 2001 From: Derision Date: Sun, 17 Feb 2013 10:19:12 +0000 Subject: [PATCH] Added optional guildid and minstatus parameters to quest::gmsay(, [color], [toworld], [guildid], [minstatus]) --- changelog.txt | 6 ++++-- zone/perlparser.cpp | 12 ++++++++++-- zone/questmgr.cpp | 13 ++++++------- zone/questmgr.h | 2 +- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/changelog.txt b/changelog.txt index a89d93bab..9cdc4d9c6 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,9 +1,11 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- +== 02/17/2013 == +Derision: Added optional guildid and minstatus parameters to quest::gmsay(, [color], [toworld], [guildid], [minstatus]) + == 02/16/2013 == demonstar55: Fix AA reuse timer calc -demonstar55: Remove old filters and change all remaining old to new (Also fix -Auction filtering out OOC as well due to incorrect define) +demonstar55: Remove old filters and change all remaining old to new (Also fix Auction filtering out OOC as well due to incorrect define) == 02/12/2013 == Kayen: AA fix diff --git a/zone/perlparser.cpp b/zone/perlparser.cpp index b6f2e6982..8c3062069 100644 --- a/zone/perlparser.cpp +++ b/zone/perlparser.cpp @@ -644,12 +644,14 @@ XS(XS__gmsay); XS(XS__gmsay) { dXSARGS; - if (items != 1 && items != 2 && items != 3) + if ((items < 1) || (items > 5)) Perl_croak(aTHX_ "Usage: gmsay(str, color, send_to_world?)"); char * str = (char *)SvPV_nolen(ST(0)); int color = 7; bool send_to_world = 0; + uint32 to_guilddbid = 0; + uint16 to_minstatus = 80; if (items > 1) { color = (int)SvIV(ST(1)); @@ -659,7 +661,13 @@ XS(XS__gmsay) send_to_world = ((int)SvIV(ST(2))) == 0?false:true; } - quest_manager.gmsay(str, color, send_to_world); + if (items > 3) + to_guilddbid = (int)SvUV(ST(3)); + + if (items > 4) + to_minstatus = (int)SvUV(ST(4)); + + quest_manager.gmsay(str, color, send_to_world, to_guilddbid, to_minstatus); XSRETURN_EMPTY; } diff --git a/zone/questmgr.cpp b/zone/questmgr.cpp index 1a3fda81e..473f7ae1f 100644 --- a/zone/questmgr.cpp +++ b/zone/questmgr.cpp @@ -526,13 +526,12 @@ void QuestManager::shout2(const char *str) { worldserver.SendEmoteMessage(0,0,0,13, "%s shouts, '%s'", owner->GetCleanName(), str); } -void QuestManager::gmsay(const char *str, uint32 color, bool send_to_world) { - if(send_to_world) { - worldserver.SendEmoteMessage(0, 0, 80, color, "%s", str); - } - else { - entity_list.MessageStatus(0, 80, color, "%s", str); - } +void QuestManager::gmsay(const char *str, uint32 color, bool send_to_world, uint32 to_guilddbid, uint32 to_minstatus) +{ + if(send_to_world) + worldserver.SendEmoteMessage(0, to_guilddbid, to_minstatus, color, "%s", str); + else + entity_list.MessageStatus(to_guilddbid, to_minstatus, color, "%s", str); } void QuestManager::depop(int npc_type) { // depop NPC and don't start spawn timer diff --git a/zone/questmgr.h b/zone/questmgr.h index 83c3a006e..96174abc6 100644 --- a/zone/questmgr.h +++ b/zone/questmgr.h @@ -68,7 +68,7 @@ public: void emote(const char *str); void shout(const char *str); void shout2(const char *str); - void gmsay(const char *str, uint32 color, bool send_to_world); + void gmsay(const char *str, uint32 color, bool send_to_world, uint32 to_guilddbid, uint32 to_minstatus); void depop(int npc_type = 0); // depop NPC and don't start spawn timer void depop_withtimer(int npc_type = 0); // depop NPC and start spawn timer void depopall(int npc_type = 0);