aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/World.cpp15
-rw-r--r--src/game/World.h1
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