[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
@@ -670,6 +670,16 @@ void Perl_NPC_ReloadSpells(NPC* self)
self->ReloadSpells();
}
void Perl_NPC_SendPayload(NPC* self, int payload_id) // @categories Script Utility
{
self->SendPayload(payload_id);
}
void Perl_NPC_SendPayload(NPC* self, int payload_id, std::string payload_value) // @categories Script Utility
{
self->SendPayload(payload_id, payload_value);
}
void perl_register_npc()
{
perl::interpreter perl(PERL_GET_THX);
@@ -786,6 +796,8 @@ void perl_register_npc()
package.add("SaveGuardSpot", (void(*)(NPC*, bool))&Perl_NPC_SaveGuardSpot);
package.add("SaveGuardSpot", (void(*)(NPC*, float, float, float, float))&Perl_NPC_SaveGuardSpot);
package.add("ScaleNPC", &Perl_NPC_ScaleNPC);
package.add("SendPayload", (void(*)(NPC*, int))&Perl_NPC_SendPayload);
package.add("SendPayload", (void(*)(NPC*, int, std::string))&Perl_NPC_SendPayload);
package.add("SetCopper", &Perl_NPC_SetCopper);
package.add("SetGold", &Perl_NPC_SetGold);
package.add("SetGrid", &Perl_NPC_SetGrid);