-
Notifications
You must be signed in to change notification settings - Fork 12
/
FlightHandler2.lua
38 lines (33 loc) · 1.16 KB
/
FlightHandler2.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
-- Don't touch without consulting me first. Don't want you to screw up your game.
local AURA_ID = 100225
local TRIGGER_SPELLS = {100211, 100213, 100214}
local CAST_SPELLS = {100210, 100218, 100219, 100220}
local CAST_SPELL_ID = 69669
local function tableContains(table, element)
for _, value in pairs(table) do
if value == element then
return true
end
end
return false
end
local function CheckAuraStacksAndCast(player, auraId, triggerSpells, castSpellId)
if player:HasAura(auraId) then
local aura = player:GetAura(auraId)
local stacks = aura:GetStackAmount()
if stacks >= 3 then
player:CastSpell(player, castSpellId, true)
end
end
end
local function OnSpellCast(event, player, spell, skipCheck)
local spellId = spell:GetEntry()
if tableContains(TRIGGER_SPELLS, spellId) then
CheckAuraStacksAndCast(player, AURA_ID, TRIGGER_SPELLS, CAST_SPELL_ID)
elseif tableContains(CAST_SPELLS, spellId) then
if player:HasAura(AURA_ID) then
player:RemoveAura(AURA_ID)
end
end
end
RegisterPlayerEvent(5, OnSpellCast)