"Expected a name"

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:
JASS:
function Trig_Slash_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
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)))
 

SFilip

Gone but not forgotten
Reaction score
634
> A000 exists
A000 doesn't.
'A000' perhaps.

Change every instance of GetUnitAbilityLevel(Caster,A000) into GetUnitAbilityLevel(Caster,'A000').
 

elmstfreddie

The Finglonger
Reaction score
203
Ha!
Duh.
Thanks, sometimes I'm retarded.
(apparently Tom Jones DID say that, I guess I didn't read past his code or something =/)
 
General chit-chat
Help Users

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top