[Patch] Prohibit The Use Of Spells

I used this query:


INSERT INTO `disables` (`sourceType`, `entry`, `flags`, `params_0`, `params_1`, `comment`) VALUES

(0, 61447, 32, '', '3698', "Disable mount in Nagrand arena");

To deny the use double mount on Nagrand Arena. But on arena you can still call this mount.

PS: Maybe in some other way you can prevent use of double mounts in the arenas?

up

You can’t just use flag 32 alone. This flag is checked after checking the unit type, so 33 should work fine. (disable the spell in this area for players)

INSERT INTO `disables` VALUES (0, 61447, (1+32), '', '3698', "Disable mount in Nagrand arena");

INSERT INTO disables VALUES (0, 60424, (1+32), “”, “3698”, “Disable mount in arena”);

INSERT INTO disables VALUES (0, 55531, (1+32), “”, “3968”, “Disable mount in arena”);

INSERT INTO disables VALUES (0, 61425, (1+32), “”, “3702”, “Disable mount in arena”);

INSERT INTO disables VALUES (0, 61447, (1+32), “”, “4406”, “Disable mount in arena”);

INSERT INTO disables VALUES (0, 61469, (1+32), “”, “4378”, “Disable mount in arena”);

Still in the arena can use double mounts …

Tell me how to disable the use of spells in the arena through the core?

You can hack Spell::CheckCast in Spell.cpp. Something like this:

[CODE]SpellCastResult Spell::CheckCast(bool strict)

{

if (MapEntry const* mapEntry = sMapStore.LookupEntry(m_caster->GetMapId()))

	if (mapEntry->IsBattleArena())

		if (m_spellInfo->Id == 60424 || m_spellInfo->Id == 55531 || m_spellInfo->Id == 61425

			|| m_spellInfo->Id == 61447 || m_spellInfo->Id == 61469)

			return SPELL_FAILED_NOT_IN_ARENA;


// check death state

[/CODE]

You can also use instance_template.allowMount column for the respective map Id (for now, might be deprecated and converted to a new disables type soon).

He wants to disable just some mounts, like bikes.

Fredi, Thank you very much for your help

This should avoid hacking the core for this kind of change:

https://gist.github.com/1596502

Added flags:

64 - Spell disabled in all Arena maps

128 - Spell disabled in all Battleground maps

Example: INSERT INTO disables VALUES (0, 60424, (1+64), “”, “”, “Mekgineer’s Chopper in Arenas”);

This will disable spell Mekgineer’s Chopper(60424) for players in all Arenas.

Example: INSERT INTO disables VALUES (0, 60424, (1+128), “”, “”, “Mekgineer’s Chopper in Battlegrounds”);

This will disable spell Mekgineer’s Chopper(60424) for players in all Battlegrounds.

Example: INSERT INTO disables VALUES (0, 60424, (1+64+128), “”, “”, “Mekgineer’s Chopper in Arenas and Battlegrounds”);

This will disable spell Mekgineer’s Chopper(60424) for players in all Arenas and Battlegrounds.

thx!!

Can you create one pull request for this? :slight_smile:

now this patch is part of core.