elmstfreddie
The Finglonger
- Reaction score
- 203
Well, I got four of these errors in World Editor, yet JASSCraft gives me no errors... What's wrong? Here's the code:
Oh yeah, lines that get the error:
JASS:
function Trig_Slash_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 039;A000039;
endfunction
constant function MaxSlashAmount takes integer castlevel returns integer
return (castlevel + 0) + 9
endfunction
constant function SlashDamageDealt takes integer l,integer castlevel returns real
return (6.00 + (castlevel + 0) * 2) * l
endfunction
constant function TimeBetweenAttacks takes integer l,integer castlevel returns real
if ((1.00 - (0.25 * (castlevel + 0))) - 0.05 - l) >= 0.05 then
return ((1.00 - (0.25 * (castlevel + 0))) - 0.05 - l)
else
return 0.05
endif
endfunction
function TextTagMessage takes texttag tt,real lifespan,integer colourred,integer colourgreen,integer colourblue,integer transparency,real fadepoint,real x,real y,real heightoffset,real xspeed,real yspeed,string message,real size,boolean show returns nothing
call SetTextTagPermanent(tt,false)
call SetTextTagLifespan(tt,lifespan)
call SetTextTagColor(tt,colourred,colourgreen,colourblue,transparency)
call SetTextTagFadepoint(tt,fadepoint)
call SetTextTagPos(tt,x,y,heightoffset)
call SetTextTagVelocity(tt,xspeed,yspeed)
call SetTextTagText(tt,message,size)
call SetTextTagVisibility(tt,show)
endfunction
function Trig_Slash_Actions takes nothing returns nothing
local unit Caster = GetTriggerUnit()
local unit Target = GetSpellTargetUnit()
local real CasterX
local real CasterY
local real TargetX
local real TargetY
local real CasterNewX
local real CasterNewY
local real MirrorEffectX
local real MirrorEffectY
local texttag array t
local integer l = 1
local effect array blood
local effect array mirroreffect
loop
exitwhen l > (MaxSlashAmount(GetUnitAbilityLevel(Caster,A000)))
call PauseUnit(Caster,true)
call PauseUnit(Target,true)
//Pauses the caster and target to prevent problems, however pausing target is unnecessary
set CasterX = GetUnitX(Caster)
set CasterY = GetUnitY(Caster)
set TargetX = GetUnitX(Target)
set TargetY = GetUnitY(Target)
set mirroreffect[l] = AddSpecialEffect("Abilities\\Spells\\Orc\\MirrorImage\\MirrorImageCaster.mdl",GetUnitX(Caster),GetUnitY(Target))
set CasterNewX = GetLocationX(GetUnitLoc(Target)) + 100.00 * Cos(l*45.00*(3.14159/180.00))
set CasterNewY = GetLocationY(GetUnitLoc(Target)) + 100.00 * Sin(l*45.00*(3.14159/180.00))
//Setting polar offsets for the caster
//No need to edit
call SetUnitPosition(Caster,CasterNewX,CasterNewY)
//Moves the caster to his new spot
call SetUnitFacing(Caster,((l*45.00)+180.00))
//Makes the caster face the target
call SetUnitAnimation(Caster,"attack")
//Gives the illusion of the Caster attacking
if((GetRandomInt(1,50)) >= l) then
call UnitDamageTarget(Caster,Target,(SlashDamageDealt(l,GetUnitAbilityLevel(Caster,A000))),true,true,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_AXE_MEDIUM_CHOP)
if((GetUnitState(Target,UNIT_STATE_LIFE))== 0) then
set blood[l] = AddSpecialEffect("Objects\\Spawnmodels\\Orc\\OrcLargeDeathExplode\\OrcLargeDeathExplode.mdl",GetUnitX(Target),GetUnitY(Target))
set t[l] = CreateTextTag()
call TextTagMessage(t[l],1.50,255,20,20,255,(1.00-(0.05*l)),GetUnitX(Caster),GetUnitY(Caster),0.00,0.00,0.030,"DEADLY BLOW!",0.03,true)
call PauseUnit(Caster,false)
call PauseUnit(Target,false)
set t[l] = null
set Caster = null
set Target = null
set blood[l] = null
set mirroreffect[l] = null
return
else
set blood[l] = AddSpecialEffect("Objects\\Spawnmodels\\Orc\\Orcblood\\BattrollBlood.mdl",GetUnitX(Target),GetUnitY(Target))
set t[l] = CreateTextTag()
call TextTagMessage(t[l],1.50,255,20,20,255,(1.00-(0.05*l)),GetUnitX(Caster),GetUnitY(Caster),0.00,0.00,0.036,(R2S(SlashDamageDealt(l,GetUnitAbilityLevel(Caster,A000)))+"!"),0.014+(0.001*l),true)
endif
else
call TextTagMessage(t[l],1.50,255,20,20,255,(1.00-(0.05*l)),GetUnitX(Caster),GetUnitY(Caster),0.00,0.00,0.036,"Failed",0.025,true)
call PauseUnit(Caster,false)
call PauseUnit(Target,false)
set t[l] = null
set Caster = null
set Target = null
set blood[l] = null
set mirroreffect[l] = null
return
endif
call TriggerSleepAction((TimeBetweenAttacks(GetUnitAbilityLevel(Caster,A000),l)))
call DestroyEffect(blood[l])
call DestroyEffect(mirroreffect[l])
set l = l + 1
endloop
call PauseUnit(Caster,false)
call PauseUnit(Target,false)
set t[l] = null
set Caster = null
set Target = null
set blood[l] = null
set mirroreffect[l] = null
endfunction
//===========================================================================
function InitTrig_Slash takes nothing returns nothing
set gg_trg_Slash = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Slash, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Slash, Condition( function Trig_Slash_Conditions ) )
call TriggerAddAction( gg_trg_Slash, function Trig_Slash_Actions )
endfunction
Oh yeah, lines that get the error:
JASS:
exitwhen l > (MaxSlashAmount(GetUnitAbilityLevel(Caster,A000)))
JASS:
call UnitDamageTarget(Caster,Target,(SlashDamageDealt(l,GetUnitAbilityLevel(Caster,A000))),true,true,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_AXE_MEDIUM_CHOP)
JASS:
call TextTagMessage(t[l],1.50,255,20,20,255,(1.00-(0.05*l)),GetUnitX(Caster),GetUnitY(Caster),0.00,0.00,0.036,(R2S(SlashDamageDealt(l,GetUnitAbilityLevel(Caster,A000)))+"!"),0.014+(0.001*l),true)
JASS:
call TriggerSleepAction((TimeBetweenAttacks(GetUnitAbilityLevel(Caster,A000),l)))