NeuroToxin
New Member
- Reaction score
- 46
In my summons system, its completed, but so far each ability can only have one level to work, any ideas on how to fix that?
Here it is
Here it is
JASS:
library Summons
globals
private integer array SummonAbility
private integer array Unit_Id
private real array NumSummoned
private real x
private real y
private real array Duration
private location temploc
private integer i
private integer m
endglobals
//==========================================================================
//================================SETUP=====================================
//==========================================================================
private function setup takes nothing returns nothing
set SummonAbility[1] = 039;AHfs039;//The summon ability, *Note, if you want to add more, just copy this line,
//Then just change the [1] to a [2] or a [3] etc. and add 1 number to i, *Note, only add 1 to i when you add another ability.
set Unit_Id[1] = 039;hfoo039;//Same as the "SummonAbility" variable, just copy and paste the line.
set NumSummoned[1] = 2//The number of summoned Units of X type.
set Duration[1] = 60
set i = 1//Needed for the loops, when you add another spell, just increase the size of this by one.
set m = i//Needed once again.
endfunction
//===========================================================================
//=============================ENDSETUP======================================
//===========================================================================
private function WhatSpells takes nothing returns boolean
loop
exitwhen 1 > i
if GetSpellAbilityId() == SummonAbility<i> then
call BJDebugMsg("It039;s the right spell")
return true
else
set i = i - 1
endif
return false
endloop
endfunction
function CreateUnits takes nothing returns nothing
local unit u
local real xp
local real yp
local player p = GetOwningPlayer(GetTriggerUnit())
call setup()
set i = m
if (WhatSpells() == true) then
set temploc = GetSpellTargetLoc()
set x = GetLocationX(temploc)
set y = GetLocationY(temploc)
loop
exitwhen 1 > i
loop
exitwhen 1 > NumSummoned<i>
call BJDebugMsg("Creation Started")
set xp = x + 50 * Cos(270 * bj_DEGTORAD)
set yp = y + 50 * Sin(270 * bj_DEGTORAD)
set u = CreateUnit(p, Unit_Id<i>, xp, yp, 270)
call UnitApplyTimedLife(u, 039;BTLF039;, Duration<i>)
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Orc\\FeralSpirit\\feralspirittarget.mdl", xp, yp))
set u = null
set xp = xp + 50 * Cos(270 * bj_DEGTORAD)
set NumSummoned<i> = NumSummoned<i> - 1
endloop
set i = i - 1
endloop
call RemoveLocation(temploc)
endif
endfunction
//===========================================================================
function InitTrig_Summons_System takes nothing returns nothing
set gg_trg_Summons_System = CreateTrigger( )
call TriggerAddAction( gg_trg_Summons_System, function CreateUnits )
endfunction
endlibrary
</i></i></i></i></i></i>