- Joined
- Aug 8, 2011
- Messages
- 297
How to give a hero more than 4 spells ?
function Trig_Shift_up_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A014'
endfunction
function Trig_Shift_up_Actions takes nothing returns nothing
local player pl = GetTriggerPlayer()
local integer p = GetPlayerId(pl) + 1
local integer i = udg_Class2 * udg_Max_Ability_Per_Unit + udg_AbilityPage * 4
local integer t = udg_Class2 * udg_Max_Ability_Per_Unit + udg_AbilityPage * 4 + 3
loop
exitwhen i > t
call SetPlayerAbilityAvailable( pl, udg_Abilities1[i], false )
set i = i + 1
endloop
if ( udg_AbilityPage > 0 ) then
set udg_AbilityPage = udg_AbilityPage - 1
else
set udg_AbilityPage = udg_Max_Ability_Per_Unit / 4 - 1
endif
set i = udg_Class2 * udg_Max_Ability_Per_Unit + udg_AbilityPage * 4
set t = i + 3
loop
exitwhen i > t
call SetPlayerAbilityAvailable( pl, udg_Abilities1[i], true )
set i = i + 1
endloop
set pl = null
endfunction
//===========================================================================
function InitTrig_Shift_up takes nothing returns nothing
set gg_trg_Shift_up = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Shift_up, EVENT_PLAYER_UNIT_SPELL_ENDCAST )
call TriggerAddCondition( gg_trg_Shift_up, Condition( function Trig_Shift_up_Conditions ) )
call TriggerAddAction( gg_trg_Shift_up, function Trig_Shift_up_Actions )
endfunction
function Trig_Shift_down_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A01A'
endfunction
function Trig_Shift_down_Actions takes nothing returns nothing
local player pl = GetTriggerPlayer()
local integer p = GetPlayerId(pl) + 1
local integer i = udg_Class2 * udg_Max_Ability_Per_Unit + udg_AbilityPage * 4
local integer t = udg_Class2 * udg_Max_Ability_Per_Unit + udg_AbilityPage * 4 + 3
loop
exitwhen i > t
call SetPlayerAbilityAvailable( pl, udg_Abilities1[i], false )
set i = i + 1
endloop
if ( udg_AbilityPage < ( udg_Max_Ability_Per_Unit / 4 - 1 ) ) then
set udg_AbilityPage = ( udg_AbilityPage + 1 )
else
set udg_AbilityPage = 0
endif
set i = udg_Class2 * udg_Max_Ability_Per_Unit + udg_AbilityPage * 4
set t = i + 3
loop
exitwhen i > t
call SetPlayerAbilityAvailable( pl, udg_Abilities1[i], true )
set i = i + 1
endloop
set pl = null
endfunction
//===========================================================================
function InitTrig_Shift_down takes nothing returns nothing
set gg_trg_Shift_down = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Shift_down, EVENT_PLAYER_UNIT_SPELL_ENDCAST )
call TriggerAddCondition( gg_trg_Shift_down, Condition( function Trig_Shift_down_Conditions ) )
call TriggerAddAction( gg_trg_Shift_down, function Trig_Shift_down_Actions )
endfunction