Added optional guildid and minstatus parameters to quest::gmsay(<messsage>, [color], [toworld], [guildid], [minstatus])

This commit is contained in:
Derision 2013-02-17 10:19:12 +00:00
parent 15dc9cfaf4
commit d1afad47aa
4 changed files with 21 additions and 12 deletions

View File

@ -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(<messsage>, [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

View File

@ -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;
}

View File

@ -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

View File

@ -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);