mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-11 11:48:37 +00:00
[Quest API] Add Despawn Events to Perl/Lua. (#2707)
# Perl - Add `$bot->GetBotID()`. - Add `EVENT_DESPAWN`. - Add `EVENT_DESPAWN_ZONE`. # Lua - Add `bot:GetBotID()`. - Add `event_despawn`. - Add `event_despawn_zone`. # Notes - Allows operators to determine when a Bot or an NPC has been despawned via Depop. - Bots call NPC::Depop on ^camp so we just put the code there. - Adds the ability to get a bot's ID using their reference in case you're looping a list and need that value. - Moves `DispatchZoneControllerEvent` from NPC to Mob so it can be used by any type.
This commit is contained in:
@@ -7041,3 +7041,28 @@ void Mob::CopyHateList(Mob* to) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int Mob::DispatchZoneControllerEvent(
|
||||
QuestEventID evt,
|
||||
Mob* init,
|
||||
const std::string& data,
|
||||
uint32 extra,
|
||||
std::vector<std::any>* pointers
|
||||
) {
|
||||
auto ret = 0;
|
||||
|
||||
if (
|
||||
RuleB(Zone, UseZoneController) &&
|
||||
(
|
||||
!IsNPC() ||
|
||||
(IsNPC() && GetNPCTypeID() != ZONE_CONTROLLER_NPC_ID)
|
||||
)
|
||||
) {
|
||||
auto controller = entity_list.GetNPCByNPCTypeID(ZONE_CONTROLLER_NPC_ID);
|
||||
if (controller) {
|
||||
ret = parse->EventNPC(evt, controller, init, data, extra, pointers);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user