From f09be5f124fcf2ab9531e1d31c144b795f778196 Mon Sep 17 00:00:00 2001 From: The GhostRider Date: Thu, 29 Jun 2023 23:22:11 +0100 Subject: [PATCH] fix(DB/SAI): Yenniku (#16631) * Fix(SAI/C++/NPC): NPC Yenniku and Removal of AI C++ * Update rev_1687759233155225800.sql Changes made * Update rev_1687759233155225800.sql * Update rev_1687759233155225800.sql * Update rev_1687759233155225800.sql * Update rev_1687759233155225800.sql * Update rev_1687759233155225800.sql * Update rev_1687759233155225800.sql * Update data/sql/updates/pending_db_world/rev_1687759233155225800.sql Co-authored-by: Gultask <100873791+Gultask@users.noreply.github.com> * Update rev_1687759233155225800.sql * Update rev_1687759233155225800.sql --------- Co-authored-by: Gultask <100873791+Gultask@users.noreply.github.com> --- .../rev_1687759233155225800.sql | 22 +++ .../eastern_kingdoms_script_loader.cpp | 2 - .../zone_stranglethorn_vale.cpp | 129 ------------------ 3 files changed, 22 insertions(+), 131 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1687759233155225800.sql delete mode 100644 src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp diff --git a/data/sql/updates/pending_db_world/rev_1687759233155225800.sql b/data/sql/updates/pending_db_world/rev_1687759233155225800.sql new file mode 100644 index 000000000..aa097d3ed --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1687759233155225800.sql @@ -0,0 +1,22 @@ +-- Fix SAI Yenniku -- +DELETE FROM `creature_text` WHERE (`CreatureID` = 2530 AND `GroupID` = 0); +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(2530, 0, 0, '%s is struck dumb by the Soul Gem!', 16, 0, 100, 0, 0, 0, 681, 0, 'Yenniku'); + +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE (`entry` = 2530); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 2530); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2530, 0, 0, 1, 8, 0, 100, 0, 3607, 0, 30000, 30000, 0, 2, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Yenniku - On Spellhit \'Yenniku`s Release\' - Set Faction 35'), +(2530, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 80, 253000, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Yenniku - On Spellhit \'Yenniku`s Release\' - Run Script'), +(2530, 0, 2, 0, 20, 0, 100, 0, 593, 0, 0, 0, 0, 80, 253001, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Yenniku - On Quest \'Filling the Soul Gem\' Finished - Run Script'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` IN (253000, 253001)); +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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(253000, 9, 0, 0, 0, 0, 100, 0, 100, 100, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 18, 6, 0, 0, 0, 0, 0, 0, 0, 'Yenniku - Actionlist - Set Orientation Closest Player'), +(253000, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Yenniku - Actionlist - Say Line 0'), +(253000, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 75, 18970, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Yenniku - Actionlist - Add Aura \'Self Stun - (Visual only)\''), +(253000, 9, 3, 0, 0, 0, 100, 0, 60000, 60000, 0, 0, 0, 28, 18970, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Yenniku - Actionlist - Remove Aura \'Self Stun - (Visual only)\''), +(253000, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 2, 28, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Yenniku - Actionlist - Set Faction 28'), +(253001, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 2, 28, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Yenniku - Actionlist - Set Faction 28'), +(253001, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 28, 18970, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Yenniku - Actionlist - Remove Aura \'Self Stun - (Visual only)\''); diff --git a/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp b/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp index f844d0061..82f3f0d19 100644 --- a/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp +++ b/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp @@ -157,7 +157,6 @@ void AddSC_isle_of_queldanas(); void AddSC_redridge_mountains(); void AddSC_silverpine_forest(); void AddSC_stormwind_city(); -void AddSC_stranglethorn_vale(); void AddSC_tirisfal_glades(); void AddSC_undercity(); void AddSC_western_plaguelands(); @@ -310,7 +309,6 @@ void AddEasternKingdomsScripts() AddSC_redridge_mountains(); AddSC_silverpine_forest(); AddSC_stormwind_city(); - AddSC_stranglethorn_vale(); AddSC_tirisfal_glades(); AddSC_undercity(); AddSC_western_plaguelands(); diff --git a/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp b/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp deleted file mode 100644 index 1686e33d3..000000000 --- a/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/* - * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Affero General Public License as published by the - * Free Software Foundation; either version 3 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -/* ScriptData -SDName: Stranglethorn_Vale -SD%Complete: 100 -SDComment: Quest support: 592 -SDCategory: Stranglethorn Vale -EndScriptData */ - -/* ContentData -npc_yenniku -EndContentData */ - -#include "Player.h" -#include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "SpellInfo.h" - -/*###### -## npc_yenniku -######*/ - -class npc_yenniku : public CreatureScript -{ -public: - npc_yenniku() : CreatureScript("npc_yenniku") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_yennikuAI(creature); - } - - struct npc_yennikuAI : public ScriptedAI - { - npc_yennikuAI(Creature* creature) : ScriptedAI(creature) - { - bReset = false; - } - - uint32 Reset_Timer; - bool bReset; - - void Reset() override - { - Reset_Timer = 0; - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); - } - - void SpellHit(Unit* caster, SpellInfo const* spell) override - { - if (bReset || spell->Id != 3607) - return; - - if (Player* player = caster->ToPlayer()) - { - if (player->GetQuestStatus(592) == QUEST_STATUS_INCOMPLETE) //Yenniku's Release - { - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STUN); - me->CombatStop(); //stop combat - me->GetThreatMgr().ClearAllThreat(); //unsure of this - me->SetFaction(FACTION_HORDE_GENERIC); - - bReset = true; - Reset_Timer = 60000; - } - } - } - - void JustEngagedWith(Unit* /*who*/) override { } - - void UpdateAI(uint32 diff) override - { - if (bReset) - { - if (Reset_Timer <= diff) - { - EnterEvadeMode(); - bReset = false; - me->SetFaction(FACTION_TROLL_BLOODSCALP); - return; - } - - Reset_Timer -= diff; - - if (me->IsInCombat() && me->GetVictim()) - { - if (Player* player = me->GetVictim()->ToPlayer()) - { - if (player->GetTeamId() == TEAM_HORDE) - { - me->CombatStop(); - me->GetThreatMgr().ClearAllThreat(); - } - } - } - } - - //Return since we have no target - if (!UpdateVictim()) - return; - - DoMeleeAttackIfReady(); - } - }; -}; - -/*###### -## -######*/ - -void AddSC_stranglethorn_vale() -{ - new npc_yenniku(); -}