mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-24 03:22:26 +00:00
[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:
parent
5ef8f8c3a8
commit
4a1d026215
10
zone/bot.cpp
10
zone/bot.cpp
@ -8370,7 +8370,11 @@ void EntityList::AddBot(Bot *new_bot, bool send_spawn_packet, bool dont_queue) {
|
|||||||
new_bot->SetID(GetFreeID());
|
new_bot->SetID(GetFreeID());
|
||||||
bot_list.push_back(new_bot);
|
bot_list.push_back(new_bot);
|
||||||
mob_list.insert(std::pair<uint16, Mob*>(new_bot->GetID(), new_bot));
|
mob_list.insert(std::pair<uint16, Mob*>(new_bot->GetID(), new_bot));
|
||||||
parse->EventBot(EVENT_SPAWN, new_bot, nullptr, "", 0);
|
|
||||||
|
if (parse->BotHasQuestSub(EVENT_SPAWN)) {
|
||||||
|
parse->EventBot(EVENT_SPAWN, new_bot, nullptr, "", 0);
|
||||||
|
}
|
||||||
|
|
||||||
new_bot->SetSpawned();
|
new_bot->SetSpawned();
|
||||||
if (send_spawn_packet) {
|
if (send_spawn_packet) {
|
||||||
if (dont_queue) {
|
if (dont_queue) {
|
||||||
@ -8388,7 +8392,9 @@ void EntityList::AddBot(Bot *new_bot, bool send_spawn_packet, bool dont_queue) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
new_bot->DispatchZoneControllerEvent(EVENT_SPAWN_ZONE, new_bot, "", 0, nullptr);
|
if (parse->HasQuestSub(ZONE_CONTROLLER_NPC_ID, EVENT_SPAWN_ZONE)) {
|
||||||
|
new_bot->DispatchZoneControllerEvent(EVENT_SPAWN_ZONE, new_bot, "", 0, nullptr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1870,6 +1870,7 @@ void PerlembParser::ExportEventVariables(
|
|||||||
ExportVar(package_name.c_str(), "spawned_entity_id", mob->GetID());
|
ExportVar(package_name.c_str(), "spawned_entity_id", mob->GetID());
|
||||||
ExportVar(package_name.c_str(), "spawned_bot_id", mob->IsBot() ? mob->CastToBot()->GetBotID() : 0);
|
ExportVar(package_name.c_str(), "spawned_bot_id", mob->IsBot() ? mob->CastToBot()->GetBotID() : 0);
|
||||||
ExportVar(package_name.c_str(), "spawned_npc_id", mob->IsNPC() ? mob->GetNPCTypeID() : 0);
|
ExportVar(package_name.c_str(), "spawned_npc_id", mob->IsNPC() ? mob->GetNPCTypeID() : 0);
|
||||||
|
ExportVar(package_name.c_str(), "spawned", "Mob", mob);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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));
|
npc_list.insert(std::pair<uint16, NPC *>(npc->GetID(), npc));
|
||||||
mob_list.insert(std::pair<uint16, Mob *>(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();
|
const auto emote_id = npc->GetEmoteID();
|
||||||
if (emote_id != 0) {
|
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);
|
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()) {
|
if (zone->HasMap() && zone->HasWaterMap()) {
|
||||||
npc->SetSpawnedInWater(false);
|
npc->SetSpawnedInWater(false);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user