[Quest API] (Performance) Check event EVENT_PAYLOAD or EVENT_SIGNAL exist before export and execute (#2902)

* [Quest API] Optionally parse EVENT_PAYLOAD and EVENT_SIGNAL

# Notes
- Optionally parse these events instead of always doing so.

* Update bot.cpp
This commit is contained in:
Alex King 2023-02-12 23:28:50 -05:00 committed by GitHub
parent 4a339d49df
commit bad44f35e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 12 deletions

View File

@ -9224,14 +9224,18 @@ void Bot::SpawnBotGroupByName(Client* c, std::string botgroup_name, uint32 leade
void Bot::Signal(int signal_id) void Bot::Signal(int signal_id)
{ {
const auto export_string = fmt::format("{}", signal_id); if (parse->BotHasQuestSub(EVENT_SIGNAL)) {
parse->EventBot(EVENT_SIGNAL, this, nullptr, export_string, 0); parse->EventBot(EVENT_SIGNAL, this, nullptr, std::to_string(signal_id), 0);
}
} }
void Bot::SendPayload(int payload_id, std::string payload_value) void Bot::SendPayload(int payload_id, std::string payload_value)
{ {
const auto export_string = fmt::format("{} {}", payload_id, payload_value); if (parse->BotHasQuestSub(EVENT_PAYLOAD)) {
const auto& export_string = fmt::format("{} {}", payload_id, payload_value);
parse->EventBot(EVENT_PAYLOAD, this, nullptr, export_string, 0); parse->EventBot(EVENT_PAYLOAD, this, nullptr, export_string, 0);
}
} }
void Bot::OwnerMessage(std::string message) void Bot::OwnerMessage(std::string message)

View File

@ -5180,14 +5180,18 @@ void Client::ShowSkillsWindow()
void Client::Signal(int signal_id) void Client::Signal(int signal_id)
{ {
const auto export_string = fmt::format("{}", signal_id); if (parse->PlayerHasQuestSub(EVENT_SIGNAL)) {
parse->EventPlayer(EVENT_SIGNAL, this, export_string, 0); parse->EventPlayer(EVENT_SIGNAL, this, std::to_string(signal_id), 0);
}
} }
void Client::SendPayload(int payload_id, std::string payload_value) void Client::SendPayload(int payload_id, std::string payload_value)
{ {
const auto export_string = fmt::format("{} {}", payload_id, payload_value); if (parse->PlayerHasQuestSub(EVENT_PAYLOAD)) {
const auto& export_string = fmt::format("{} {}", payload_id, payload_value);
parse->EventPlayer(EVENT_PAYLOAD, this, export_string, 0); parse->EventPlayer(EVENT_PAYLOAD, this, export_string, 0);
}
} }
void Client::SendRewards() void Client::SendRewards()

View File

@ -2470,8 +2470,10 @@ void NPC::CheckSignal() {
if (!signal_q.empty()) { if (!signal_q.empty()) {
int signal_id = signal_q.front(); int signal_id = signal_q.front();
signal_q.pop_front(); signal_q.pop_front();
const auto export_string = fmt::format("{}", signal_id);
parse->EventNPC(EVENT_SIGNAL, this, nullptr, export_string, 0); if (parse->HasQuestSub(GetNPCTypeID(), EVENT_SIGNAL)) {
parse->EventNPC(EVENT_SIGNAL, this, nullptr, std::to_string(signal_id), 0);
}
} }
} }

View File

@ -3069,8 +3069,11 @@ void NPC::SignalNPC(int _signal_id)
void NPC::SendPayload(int payload_id, std::string payload_value) void NPC::SendPayload(int payload_id, std::string payload_value)
{ {
const auto export_string = fmt::format("{} {}", payload_id, payload_value); if (parse->HasQuestSub(GetNPCTypeID(), EVENT_PAYLOAD)) {
const auto& export_string = fmt::format("{} {}", payload_id, payload_value);
parse->EventNPC(EVENT_PAYLOAD, this, nullptr, export_string, 0); parse->EventNPC(EVENT_PAYLOAD, this, nullptr, export_string, 0);
}
} }
NPC_Emote_Struct* NPC::GetNPCEmote(uint32 emoteid, uint8 event_) { NPC_Emote_Struct* NPC::GetNPCEmote(uint32 emoteid, uint8 event_) {