diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/World.cpp | 15 | ||||
-rw-r--r-- | src/game/World.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/game/World.cpp b/src/game/World.cpp index 7adb9f4d24f..b722f67f827 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -2426,6 +2426,21 @@ void World::ScriptsProcess() break; } + case SCRIPT_COMMAND_KILL: + { + if(!source || ((Creature*)source)->isDead()) + break; + + ((Creature*)source)->DealDamage(((Creature*)source), ((Creature*)source)->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); + + switch(step.script->dataint) + { + case 0: break; //return false not remove corpse + case 1: ((Creature*)source)->RemoveCorpse(); break; + } + break; + } + default: sLog.outError("Unknown script command %u called.",step.script->command); break; diff --git a/src/game/World.h b/src/game/World.h index 4848c87ca5f..8b6fe46b561 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -331,6 +331,7 @@ enum RealmZone #define SCRIPT_COMMAND_LOAD_PATH 16 // source = unit, path = datalong, repeatable datalong2 #define SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT 17 // datalong scriptid, lowguid datalong2, dataint table #define SCRIPT_COMMAND_PLAYSOUND 18 // datalong soundid, datalong2 play only self +#define SCRIPT_COMMAND_KILL 19 // datalong removecorpse /// Storage class for commands issued for delayed execution |