diff options
author | Blaymoira <none@none> | 2009-03-05 17:25:29 +0100 |
---|---|---|
committer | Blaymoira <none@none> | 2009-03-05 17:25:29 +0100 |
commit | c5175e5e470f6c630b4c8659f0e0e6a1094891cc (patch) | |
tree | b8e71ea53376f32a4c6e4a57d2927674483a7a38 /src | |
parent | 465b10fc60a1f135ec26f09fc88d673a1e73a95d (diff) |
*Implement SCRIPT_COMMAND_KILL for database scripting
--HG--
branch : trunk
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 |