[Quest API] Export $spawned to EVENT_SPAWN_ZONE in Perl (#2877)

* [Quest API] Export $spawned to EVENT_SPAWN_ZONE in Perl

# Notes
- Exports `$spawned` to `EVENT_SPAWN_ZONE` in Perl.
- Allows operators to use the mob reference instead of having to grab it from entity list.

* Optional parsing.
This commit is contained in:
Alex King
2023-02-13 00:46:01 -05:00
committed by GitHub
parent 5ef8f8c3a8
commit 4a1d026215
3 changed files with 15 additions and 4 deletions
+6 -2
View File
@@ -683,7 +683,9 @@ void EntityList::AddNPC(NPC *npc, bool send_spawn_packet, bool dont_queue)
npc_list.insert(std::pair<uint16, NPC *>(npc->GetID(), npc));
mob_list.insert(std::pair<uint16, Mob *>(npc->GetID(), npc));
parse->EventNPC(EVENT_SPAWN, npc, nullptr, "", 0);
if (parse->HasQuestSub(npc->GetNPCTypeID())) {
parse->EventNPC(EVENT_SPAWN, npc, nullptr, "", 0);
}
const auto emote_id = npc->GetEmoteID();
if (emote_id != 0) {
@@ -722,7 +724,9 @@ void EntityList::AddNPC(NPC *npc, bool send_spawn_packet, bool dont_queue)
entity_list.ScanCloseMobs(npc->close_mobs, npc, true);
npc->DispatchZoneControllerEvent(EVENT_SPAWN_ZONE, npc, "", 0, nullptr);
if (parse->HasQuestSub(ZONE_CONTROLLER_NPC_ID, EVENT_SPAWN_ZONE)) {
npc->DispatchZoneControllerEvent(EVENT_SPAWN_ZONE, npc, "", 0, nullptr);
}
if (zone->HasMap() && zone->HasWaterMap()) {
npc->SetSpawnedInWater(false);