mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-03 03:50:40 +00:00
[Zone] Implement Zone State Saving on Shutdown (#4715)
* Save spawns * Update base_zone_state_spawns_repository.h * Zone state save work * Code cleanup * More cleanup * Database migration * Update database_update_manifest.cpp * Revert decay at storage model * Code cleanup * More cleanup * More cleanup * More cleanup * Entity variables * Add entity variables to the schema * Post rebase * Checkpoint * Serialize / deserialize buffs * Current hp / mana / end save / load * Save / load current_waypoint * Add zone spawn protection * Finishing touches * Cleanup * Update zone_save_state.cpp * Cleanup * Update zone_save_state.cpp * Update npc.cpp * Update npc.cpp * More * Update perl_npc.cpp * Update zone_loot.cpp
This commit is contained in:
+21
-18
@@ -2789,32 +2789,35 @@ bool NPC::Death(Mob* killer_mob, int64 damage, uint16 spell, EQ::skills::SkillTy
|
||||
const uint16 entity_id = GetID();
|
||||
|
||||
if (
|
||||
!HasOwner() &&
|
||||
!IsMerc() &&
|
||||
!GetSwarmInfo() &&
|
||||
(!is_merchant || allow_merchant_corpse) &&
|
||||
(
|
||||
!HasOwner() &&
|
||||
!IsMerc() &&
|
||||
!GetSwarmInfo() &&
|
||||
(!is_merchant || allow_merchant_corpse) &&
|
||||
(
|
||||
killer &&
|
||||
(
|
||||
killer->IsClient() ||
|
||||
killer &&
|
||||
(
|
||||
killer->HasOwner() &&
|
||||
killer->GetUltimateOwner()->IsClient()
|
||||
) ||
|
||||
(
|
||||
killer->IsNPC() &&
|
||||
killer->CastToNPC()->GetSwarmInfo() &&
|
||||
killer->CastToNPC()->GetSwarmInfo()->GetOwner() &&
|
||||
killer->CastToNPC()->GetSwarmInfo()->GetOwner()->IsClient()
|
||||
killer->IsClient() ||
|
||||
(
|
||||
killer->HasOwner() &&
|
||||
killer->GetUltimateOwner()->IsClient()
|
||||
) ||
|
||||
(
|
||||
killer->IsNPC() &&
|
||||
killer->CastToNPC()->GetSwarmInfo() &&
|
||||
killer->CastToNPC()->GetSwarmInfo()->GetOwner() &&
|
||||
killer->CastToNPC()->GetSwarmInfo()->GetOwner()->IsClient()
|
||||
)
|
||||
)
|
||||
) ||
|
||||
(
|
||||
killer_mob && is_ldon_treasure
|
||||
)
|
||||
) ||
|
||||
(
|
||||
killer_mob && is_ldon_treasure
|
||||
)
|
||||
)
|
||||
) {
|
||||
|| IsQueuedForCorpse()
|
||||
) {
|
||||
if (killer) {
|
||||
if (killer->GetOwner() != 0 && killer->GetOwner()->IsClient()) {
|
||||
killer = killer->GetOwner();
|
||||
|
||||
Reference in New Issue
Block a user