[Quest API] Add EVENT_PAYLOAD to Perl/Lua. (#2611)

* [Quest API] Add EVENT_PAYLOAD to Perl/Lua.

# Perl
- Add `$bot->SendPayload(payload_id)`.
- Add `$bot->SendPayload(payload_id, payload_value)`.
- Add `$client->SendPayload(payload_id)`.
- Add `$client->SendPayload(payload_id, payload_value)`.
- Add `$mob->SendPayload(payload_id)`.
- Add `$mob->SendPayload(payload_id, payload_value)`.
- Add `$npc->SendPayload(payload_id)`.
- Add `$npc->SendPayload(payload_id, payload_value)`.

# Lua
- Add `bot:SendPayload(payload_id)`.
- Add `bot:SendPayload(payload_id, payload_value)`.
- Add `client:SendPayload(payload_id)`.
- Add `client:SendPayload(payload_id, payload_value)`.
- Add `mob:SendPayload(payload_id)`.
- Add `mob:SendPayload(payload_id, payload_value)`.
- Add `npc:SendPayload(payload_id)`.
- Add `npc:SendPayload(payload_id, payload_value)`.

# Notes
- Allows operators to send payload IDs with a payload value, the value can be a comma separated value, JSON, etc.
- The idea is to allow a more configurable event for operators to send information to/from entities.

* Cleanup parser events.
This commit is contained in:
Alex King
2022-12-04 17:47:49 -05:00
committed by GitHub
parent e1d5274bd5
commit 9a35cacf27
25 changed files with 1630 additions and 342 deletions
+12
View File
@@ -2732,6 +2732,16 @@ perl::array Perl_Client_GetZoneFlags(Client* self)
return a;
}
void Perl_Client_SendPayload(Client* self, int payload_id) // @categories Script Utility
{
self->SendPayload(payload_id);
}
void Perl_Client_SendPayload(Client* self, int payload_id, std::string payload_value) // @categories Script Utility
{
self->SendPayload(payload_id, payload_value);
}
void Perl_Client_Signal(Client* self, int signal_id)
{
self->Signal(signal_id);
@@ -3179,6 +3189,8 @@ void perl_register_client()
package.add("SendMarqueeMessage", (void(*)(Client*, uint32, std::string, uint32))&Perl_Client_SendMarqueeMessage);
package.add("SendMarqueeMessage", (void(*)(Client*, uint32, uint32, uint32, uint32, uint32, std::string))&Perl_Client_SendMarqueeMessage);
package.add("SendOPTranslocateConfirm", &Perl_Client_SendOPTranslocateConfirm);
package.add("SendPayload", (void(*)(Client*, int))&Perl_Client_SendPayload);
package.add("SendPayload", (void(*)(Client*, int, std::string))&Perl_Client_SendPayload);
package.add("SendPEQZoneFlagInfo", &Perl_Client_SendPEQZoneFlagInfo);
package.add("SendSound", &Perl_Client_SendSound);
package.add("SendSpellAnim", &Perl_Client_SendSpellAnim);