diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 4291cd054..2be564058 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -8286,6 +8286,15 @@ void Client::Handle_OP_ItemLinkClick(const EQApplicationPacket *app) if (GetTarget() && GetTarget()->IsNPC()) { if (silentsaylink) { parse->EventNPC(EVENT_SAY, GetTarget()->CastToNPC(), this, response.c_str(), 0); + + if (response[0] == '#' && parse->PlayerHasQuestSub(EVENT_COMMAND)) { + parse->EventPlayer(EVENT_COMMAND, this, response.substr(1).c_str(), 0); + } +#ifdef BOTS + else if (response[0] == '^' && parse->PlayerHasQuestSub(EVENT_BOT_COMMAND)) { + parse->EventPlayer(EVENT_BOT_COMMAND, this, response.substr(1).c_str(), 0); + } +#endif parse->EventPlayer(EVENT_SAY, this, response.c_str(), 0); } else { @@ -8296,6 +8305,14 @@ void Client::Handle_OP_ItemLinkClick(const EQApplicationPacket *app) } else { if (silentsaylink) { + if (response[0] == '#' && parse->PlayerHasQuestSub(EVENT_COMMAND)) { + parse->EventPlayer(EVENT_COMMAND, this, response.substr(1).c_str(), 0); + } +#ifdef BOTS + else if (response[0] == '^' && parse->PlayerHasQuestSub(EVENT_BOT_COMMAND)) { + parse->EventPlayer(EVENT_BOT_COMMAND, this, response.substr(1).c_str(), 0); + } +#endif parse->EventPlayer(EVENT_SAY, this, response.c_str(), 0); } else { diff --git a/zone/embparser.cpp b/zone/embparser.cpp index ef1b404a2..f89c09ad4 100644 --- a/zone/embparser.cpp +++ b/zone/embparser.cpp @@ -1546,6 +1546,9 @@ void PerlembParser::ExportEventVariables( Seperator sep(data); ExportVar(package_name.c_str(), "command", (sep.arg[0] + 1)); ExportVar(package_name.c_str(), "args", (sep.argnum >= 1 ? (&data[strlen(sep.arg[0]) + 1]) : "0")); + ExportVar(package_name.c_str(), "data", objid); + ExportVar(package_name.c_str(), "text", data); + ExportVar(package_name.c_str(), "langid", extradata); break; } @@ -1615,6 +1618,9 @@ void PerlembParser::ExportEventVariables( Seperator sep(data); ExportVar(package_name.c_str(), "bot_command", (sep.arg[0] + 1)); ExportVar(package_name.c_str(), "args", (sep.argnum >= 1 ? (&data[strlen(sep.arg[0]) + 1]) : "0")); + ExportVar(package_name.c_str(), "data", objid); + ExportVar(package_name.c_str(), "text", data); + ExportVar(package_name.c_str(), "langid", extradata); break; }