From 93f6c328fc02b80b70792514a54ca26e676a1122 Mon Sep 17 00:00:00 2001 From: ErikasKontenis Date: Wed, 13 Nov 2019 21:26:42 +0200 Subject: [PATCH] remove corpse owner on every corpse after every 10s --- src/creature.cpp | 1 + src/game.cpp | 5 +++++ src/game.h | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/creature.cpp b/src/creature.cpp index 8bd0318..47fb833 100644 --- a/src/creature.cpp +++ b/src/creature.cpp @@ -712,6 +712,7 @@ bool Creature::dropCorpse(Creature* lastHitCreature, Creature* mostDamageCreatur if (corpse) { g_game.internalAddItem(tile, corpse, INDEX_WHEREEVER, FLAG_NOLIMIT); g_game.startDecay(corpse); + g_scheduler.addEvent(createSchedulerTask(10000, std::bind(&Game::RemoveCorpseOwner, &g_game, corpse))); } //scripting event - onDeath diff --git a/src/game.cpp b/src/game.cpp index 905d7fe..6d87500 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -3762,6 +3762,11 @@ void Game::internalDecayItem(Item* item) } } +void Game::RemoveCorpseOwner(Item* item) +{ + item->removeAttribute(ITEM_ATTRIBUTE_CORPSEOWNER); +} + void Game::checkDecay() { g_scheduler.addEvent(createSchedulerTask(EVENT_DECAYINTERVAL, std::bind(&Game::checkDecay, this))); diff --git a/src/game.h b/src/game.h index a484818..9d26b42 100644 --- a/src/game.h +++ b/src/game.h @@ -485,7 +485,7 @@ class Game void setBedSleeper(BedItem* bed, uint32_t guid); void removeBedSleeper(uint32_t guid); bool reload(ReloadTypes_t reloadType); - + void Game::RemoveCorpseOwner(Item* item); Groups groups; Map map; Raids raids;