From 7e7662b6fdc1172d4a5980c06476863f638e4ef3 Mon Sep 17 00:00:00 2001 From: Poszer <41213210+poszer@users.noreply.github.com> Date: Tue, 30 Apr 2019 09:38:46 +0200 Subject: [PATCH] fix(DB/SAI): Trident of Naz'jan to SAI (#1736) - Remove item script for Trident of Naz'jan (Use: Impale Leviroth while he slumbers in the waters below Riplash) - Restore Immune to PC flag on reset. - Add missing in-combat spell. - Change inhabittype so the NPC's corpse doesn't fall to the sea floor when he dies --- .../rev_1555843331078984800.sql | 17 +++++++++++ src/server/scripts/World/item_scripts.cpp | 28 ------------------- 2 files changed, 17 insertions(+), 28 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1555843331078984800.sql diff --git a/data/sql/updates/pending_db_world/rev_1555843331078984800.sql b/data/sql/updates/pending_db_world/rev_1555843331078984800.sql new file mode 100644 index 000000000..e710e83e3 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1555843331078984800.sql @@ -0,0 +1,17 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1555843331078984800'); + +-- Leviroth SmartAI +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=26452; +DELETE FROM `smart_scripts` WHERE `entryorguid`=26452 AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(26452, 0, 0, 1, 8, 0, 100, 0, 47170, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Leviroth - On Spellhit (Impale Leviroth) - Remove Unit flags (Immune to PC)'), +(26452, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 11, 46767, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Leviroth - On Spellhit (Impale Leviroth) - Cast Cosmetic - Underwater Blood'), +(26452, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Leviroth - On Spellhit (Impale Leviroth) - Start Attack'); + +-- Trident of Naz'jan item +UPDATE `item_template` SET `ScriptName`="" WHERE `entry`=35850; +UPDATE `creature_template` SET `InhabitType`=2 WHERE `entry`=26452; + +DELETE FROM `conditions` WHERE `SourceEntry`=47170 AND `SourceTypeOrReferenceId`=17; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `comment`) VALUES +(17, 0, 47170, 0, 0, 29, 0, 26452, 8, 0, 0, 0, 0, "", 'Spell Impale Leviroth can only be used within 8 yards of NPC Leviroth'); diff --git a/src/server/scripts/World/item_scripts.cpp b/src/server/scripts/World/item_scripts.cpp index 17ae0a2f1..d418793d6 100644 --- a/src/server/scripts/World/item_scripts.cpp +++ b/src/server/scripts/World/item_scripts.cpp @@ -208,33 +208,6 @@ public: } }; -enum TheEmissary -{ - QUEST_THE_EMISSARY = 11626, - NPC_LEVIROTH = 26452 -}; - -class item_trident_of_nazjan : public ItemScript -{ -public: - item_trident_of_nazjan() : ItemScript("item_Trident_of_Nazjan") { } - - bool OnUse(Player* player, Item* item, const SpellCastTargets & /*targets*/) - { - if (player->GetQuestStatus(QUEST_THE_EMISSARY) == QUEST_STATUS_INCOMPLETE) - { - if (Creature* pLeviroth = player->FindNearestCreature(NPC_LEVIROTH, 10.0f)) // spell range - { - pLeviroth->AI()->AttackStart(player); - return false; - } else - player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, item, NULL); - } else - player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, item, NULL); - return true; - } -}; - enum CapturedFrog { QUEST_THE_PERFECT_SPIES = 25444, @@ -270,6 +243,5 @@ void AddSC_item_scripts() new item_mysterious_egg(); new item_disgusting_jar(); new item_petrov_cluster_bombs(); - new item_trident_of_nazjan(); new item_captured_frog(); }