From 78a93e380c073ca241ca6ae4f7f040e8f1c08099 Mon Sep 17 00:00:00 2001 From: laasker <79991768+laasker@users.noreply.github.com> Date: Tue, 24 Sep 2024 20:53:35 -0300 Subject: [PATCH] Prevent switching spec while in queue for Solo Arena (#20) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * prevent switching spec while in solo queue * Update solo3v3_sc.h * Update src/solo3v3_sc.h --------- Co-authored-by: Stefano Borzì --- src/solo3v3_sc.cpp | 28 +--------------------------- src/solo3v3_sc.h | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/solo3v3_sc.cpp b/src/solo3v3_sc.cpp index 1809935..0c50cc7 100644 --- a/src/solo3v3_sc.cpp +++ b/src/solo3v3_sc.cpp @@ -721,33 +721,6 @@ bool PlayerScript3v3Arena::CanBattleFieldPort(Player* player, uint8 arenaType, B return true; } - -// class Spell_SC : public SpellSC -// { -// public: -// Spell_SC() : SpellSC("Spell_SC") { } - -// bool CanSelectSpecTalent(Spell* spell) override -// { -// if (!spell) -// return false; - -// if (spell->GetCaster()->isPlayer()) -// { -// Player* plr = spell->GetCaster()->ToPlayer(); - -// if (plr->InBattlegroundQueueForBattlegroundQueueType((BattlegroundQueueTypeId)BATTLEGROUND_QUEUE_3v3_SOLO) /*|| -// plr->InBattlegroundQueueForBattlegroundQueueType((BattlegroundQueueTypeId)BATTLEGROUND_QUEUE_1v1)*/) -// { -// plr->GetSession()->SendAreaTriggerMessage("You can't change your talents while in queue for 3v3."); // or 1v1 -// return false; -// } -// } - -// return true; -// } -// } - void AddSC_Solo_3v3_Arena() { if (!ArenaTeam::ArenaSlotByType.count(ARENA_TEAM_SOLO_3v3)) @@ -771,4 +744,5 @@ void AddSC_Solo_3v3_Arena() new ConfigLoader3v3Arena(); new PlayerScript3v3Arena(); new Arena_SC(); + new Solo3v3Spell(); } diff --git a/src/solo3v3_sc.h b/src/solo3v3_sc.h index f41545b..508d61c 100644 --- a/src/solo3v3_sc.h +++ b/src/solo3v3_sc.h @@ -25,6 +25,7 @@ #include "Config.h" #include "Battleground.h" #include "solo3v3.h" +#include "Spell.h" enum Npc3v3Actions { NPC_3v3_ACTION_CREATE_ARENA_TEAM = 1, @@ -140,3 +141,30 @@ class Arena_SC : public ArenaScript return true; } }; + +class Solo3v3Spell : public SpellSC +{ +public: + Solo3v3Spell() : SpellSC("Solo3v3Spell") { } + + + bool CanSelectSpecTalent(Spell* spell) override + { + if (!spell) + return false; + + if (spell->GetCaster()->IsPlayer()) + { + Player* plr = spell->GetCaster()->ToPlayer(); + + if (plr->InBattlegroundQueueForBattlegroundQueueType((BattlegroundQueueTypeId)BATTLEGROUND_QUEUE_3v3_SOLO)) + { + plr->GetSession()->SendAreaTriggerMessage("You can't change your talents while in queue for solo arena."); + return false; + } + } + + return true; + } + +};