From 147c250a56c351163d2bc682ee126133caacbd59 Mon Sep 17 00:00:00 2001 From: frcoun Date: Thu, 7 Jan 2010 21:30:38 +0100 Subject: [PATCH] [9121] Implement dummy effects for spell 50926,51026,51592 and 51961 Note: Some adjustments in addition to original patch, using delay despawn. Also provide sql update for proper work of affected spells (if already exist in database). Signed-off-by: NoFantasy --- sql/mangos.sql | 2 +- .../9121_01_mangos_npc_spellclick_spells.sql | 4 ++ sql/updates/Makefile.am | 2 + src/game/SpellEffects.cpp | 40 ++++++++++++++----- src/shared/revision_nr.h | 2 +- src/shared/revision_sql.h | 2 +- 6 files changed, 38 insertions(+), 14 deletions(-) create mode 100644 sql/updates/9121_01_mangos_npc_spellclick_spells.sql diff --git a/sql/mangos.sql b/sql/mangos.sql index f60a1707a..f16c8e667 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -24,7 +24,7 @@ CREATE TABLE `db_version` ( `version` varchar(120) default NULL, `creature_ai_version` varchar(120) default NULL, `cache_id` int(10) default '0', - `required_9095_01_mangos_command` bit(1) default NULL + `required_9121_01_mangos_npc_spellclick_spells` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- diff --git a/sql/updates/9121_01_mangos_npc_spellclick_spells.sql b/sql/updates/9121_01_mangos_npc_spellclick_spells.sql new file mode 100644 index 000000000..ffccf9144 --- /dev/null +++ b/sql/updates/9121_01_mangos_npc_spellclick_spells.sql @@ -0,0 +1,4 @@ +ALTER TABLE db_version CHANGE COLUMN required_9095_01_mangos_command required_9121_01_mangos_npc_spellclick_spells bit; + +UPDATE npc_spellclick_spells SET cast_flags=1 WHERE spell_id IN (50926,51026,51592,51961); +DELETE FROM npc_spellclick_spells WHERE spell_id IN (50927,50737,51593,51037); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 7d2089db7..adaad2eb5 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -225,6 +225,7 @@ pkgdata_DATA = \ 9070_01_mangos_spell_proc_event.sql \ 9074_01_mangos_command.sql \ 9095_01_mangos_command.sql \ + 9121_01_mangos_npc_spellclick_spells.sql \ README ## Additional files to include when running 'make dist' @@ -430,4 +431,5 @@ EXTRA_DIST = \ 9070_01_mangos_spell_proc_event.sql \ 9074_01_mangos_command.sql \ 9095_01_mangos_command.sql \ + 9121_01_mangos_npc_spellclick_spells.sql \ README diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 4f1427f15..8e47c565c 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -1175,6 +1175,35 @@ void Spell::EffectDummy(uint32 i) return; } + case 50926: // Gluttonous Lurkers: Create Zul'Drak Rat Cover + case 51026: // Create Drakkari Medallion Cover + case 51592: // Pickup Primordial Hatchling + case 51961: // Captured Chicken Cover + { + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT || m_caster->GetTypeId() != TYPEID_PLAYER) + return; + + uint32 spellId = 0; + + switch(m_spellInfo->Id) + { + case 50926: spellId = 50927; break; + case 51026: spellId = 50737; break; + case 51592: spellId = 51593; break; + case 51961: spellId = 51037; break; + } + + if (const SpellEntry *pSpell = sSpellStore.LookupEntry(spellId)) + { + unitTarget->CastSpell(m_caster, spellId, true); + + Creature* creatureTarget = (Creature*)unitTarget; + + if (const SpellCastTimesEntry *pCastTime = sSpellCastTimesStore.LookupEntry(pSpell->CastingTimeIndex)) + creatureTarget->ForcedDespawn(pCastTime->CastTime + 1); + } + return; + } case 51582: //Rocket Boots Engaged (Rocket Boots Xtreme and Rocket Boots Xtreme Lite) { if (m_caster->GetTypeId() != TYPEID_PLAYER) @@ -1186,17 +1215,6 @@ void Spell::EffectDummy(uint32 i) m_caster->CastSpell(m_caster, 30452, true, NULL); return; } - case 51592: // Pickup Primordial Hatchling - { - if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT) - return; - - Creature* creatureTarget = (Creature*)unitTarget; - - creatureTarget->ForcedDespawn(); - return; - - } case 52308: // Take Sputum Sample { switch(i) diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 12362f898..a9d19750f 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 "9120" + #define REVISION_NR "9121" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index 9dc1eac37..388180f74 100644 --- a/src/shared/revision_sql.h +++ b/src/shared/revision_sql.h @@ -1,6 +1,6 @@ #ifndef __REVISION_SQL_H__ #define __REVISION_SQL_H__ #define REVISION_DB_CHARACTERS "required_8874_01_characters_character_skills" - #define REVISION_DB_MANGOS "required_9095_01_mangos_command" + #define REVISION_DB_MANGOS "required_9121_01_mangos_npc_spellclick_spells" #define REVISION_DB_REALMD "required_9010_01_realmd_realmlist" #endif // __REVISION_SQL_H__