From 883e88fad52a7a80418e62cad04c025a15df496f Mon Sep 17 00:00:00 2001 From: Schmoozerd Date: Tue, 4 Jan 2011 04:14:12 +0300 Subject: [PATCH] [10956] Implement support triggered spells in SCRIPT_COMMAND_CAST_SPELL Signed-off-by: VladimirMangos --- doc/script_commands.txt | 2 +- src/game/Map.cpp | 2 +- src/game/ScriptMgr.cpp | 2 +- src/game/ScriptMgr.h | 3 ++- src/shared/revision_nr.h | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/script_commands.txt b/doc/script_commands.txt index b92e12fe4..bf6b71c0b 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -157,7 +157,7 @@ spell_scripts 15 SCRIPT_COMMAND_CAST_SPELL source/target cast spell at target/source * datalong = spell id - * datalong2 = 0: s->t 1: s->s 2: t->t 3: t->s + * datalong2 = 0: s->t 1: s->s 2: t->t 3: t->s 4: cast triggered 16 SCRIPT_COMMAND_PLAY_SOUND source = any object, target=any/player * datalong = sound_id diff --git a/src/game/Map.cpp b/src/game/Map.cpp index 2231ef0b0..5a48b586d 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -2397,7 +2397,7 @@ void Map::ScriptsProcess() Unit* spellSource = (Unit*)cmdSource; //TODO: when GO cast implemented, code below must be updated accordingly to also allow GO spell cast - spellSource->CastSpell(spellTarget, step.script->castSpell.spellId, false); + spellSource->CastSpell(spellTarget, step.script->castSpell.spellId, step.script->castSpell.flags & 0x04); break; } diff --git a/src/game/ScriptMgr.cpp b/src/game/ScriptMgr.cpp index 05ae4d42c..893e04461 100644 --- a/src/game/ScriptMgr.cpp +++ b/src/game/ScriptMgr.cpp @@ -332,7 +332,7 @@ void ScriptMgr::LoadScripts(ScriptMapMap& scripts, const char* tablename) tablename, tmp.castSpell.spellId, tmp.id); continue; } - if (tmp.castSpell.flags & ~0x3) // 2 bits + if (tmp.castSpell.flags & ~0x7) // 3 bits { sLog.outErrorDb("Table `%s` using unknown flags in datalong2 (%u)i n SCRIPT_COMMAND_CAST_SPELL for script id %u", tablename, tmp.castSpell.flags, tmp.id); diff --git a/src/game/ScriptMgr.h b/src/game/ScriptMgr.h index cb6fd9762..426c8c700 100644 --- a/src/game/ScriptMgr.h +++ b/src/game/ScriptMgr.h @@ -61,7 +61,8 @@ enum eScriptCommand SCRIPT_COMMAND_CLOSE_DOOR = 12, // source = unit, datalong=db_guid, datalong2=reset_delay SCRIPT_COMMAND_ACTIVATE_OBJECT = 13, // source = unit, target=GO SCRIPT_COMMAND_REMOVE_AURA = 14, // source (datalong2!=0) or target (datalong==0) unit, datalong = spell_id - SCRIPT_COMMAND_CAST_SPELL = 15, // source/target cast spell at target/source (script->datalong2: 0: s->t 1: s->s 2: t->t 3: t->s + SCRIPT_COMMAND_CAST_SPELL = 15, // source/target cast spell at target/source + // datalong2: 0: s->t 1: s->s 2: t->t 3: t->s (this values in 2 bits), and 0x4 mask for cast triggered can be added to SCRIPT_COMMAND_PLAY_SOUND = 16, // source = any object, target=any/player, datalong (sound_id), datalong2 (bitmask: 0/1=anyone/target, 0/2=with distance dependent, so 1|2 = 3 is target with distance dependent) SCRIPT_COMMAND_CREATE_ITEM = 17, // source or target must be player, datalong = item entry, datalong2 = amount SCRIPT_COMMAND_DESPAWN_SELF = 18, // source or target must be creature, datalong = despawn delay diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 8ddbb8c87..61b91019b 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10955" + #define REVISION_NR "10956" #endif // __REVISION_NR_H__