Simple Frustrating errors

yes9111

New Member
Reaction score
8
Hi
I wrote a JASS script for the first time
and it's giving me 30 errors. =( (When it has 51 lines -_-)
Plz help.

JASS:
// JASS - Spell File
// Dreadlord Ability JASS triggers

function EnemyUnits takes nothing returns boolean
    // Callback function that filters out
    // units that are owners.
    return IsEnemy(GetOwningPlayer(GetFilterUnit()), udg_tempplayer)
endfunction

function Absorb_Actions takes nothing returns nothing
    local unit caster = GetTriggerUnit()
    local filterfunc filterEnemies = Filter(function EnemyUnits)
    local unit target
    local group targets
    local real hp = 0
    local integer abillevel = GetUnitAbilityLevel(caster, 'A004')
    set udg_tempPlayer = GetOwningPlayer(caster)
    call GroupEnumUnitsInRangeOfLoc(targets, GetUnitLoc(caster), 450, filterEnemies)
    loop
        if IsPlayerEnemy(GetOwningPlayer(GetEnumUnit()), GetOwningPlayer(caster)) then
            set target = FirstOfGroup(targets)
            exitwhen targets == null        
            set hp = GetWidgetLife(target) * 0.05 * abillevel
            call SetWidgetLife(target, GetWidgetLife(target) - hp)
            call SetWidgetLife(caster, GetWidgetLife(caster) + hp)
            call GroupRemoveUnit(targets, target)
        endif
    endloop
    set caster = null
    set target = null
    set targets = null
    call DestroyFilter(filterEnemies)        
endfunction

function Absorb_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A004'
endfunction

function InitTrig_Dread_Absorb takes nothing returns nothing
    set gg_trg_Dread_Absorb = CreateTrigger()
    call TriggerAddAction(gg_trg_Dread_Absorb, function Absorb_Actions)
    call TriggerRegisterAnyUnitEventBJ(gg_trg_Dread_Absorb, EVENT_UNIT_UNIT_SPELL)
    call TriggerAddCondition(gg_trg_Dread_Absorb, Condition(function Absorb_Conditions))
endfunction


The errors it gives me if I enable the trigger in WE
Line X : Expected end of line <-- this error is driving me crazy :banghead:
And is there a way for you to declare Global Variables in JASS
with the Globals block?
When I try it...

Line X : Expected end of line

:banghead::banghead::banghead::banghead::banghead::banghead::banghead:
JASS:
globals
    constant int absorb_abilcode = &#039;A004&#039;
endglobals


O
And is there an easy way for you to write the JASS Scripts in JASS Craft and then import the scripts into your map?
Besides creating a trigger, changing it to custom text and then copying & pasting the script in...
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
>>And is there a way for you to declare Global Variables in JASS
with the Globals block?
When I try it...

You will need vJass compatible world editor. Get NewGen WorldEditor

JASS:
    loop
        if IsPlayerEnemy(GetOwningPlayer(GetEnumUnit()), GetOwningPlayer(caster)) then
            set target = FirstOfGroup(targets)
            exitwhen targets == null        
            set hp = GetWidgetLife(target) * 0.05 * abillevel
            call SetWidgetLife(target, GetWidgetLife(target) - hp)
            call SetWidgetLife(caster, GetWidgetLife(caster) + hp)
            call GroupRemoveUnit(targets, target)
        endif
    endloop

Wrong! You place the exitwhen in the wrong place~ Correct me if i am wrong :D
Correct Version:
JASS:
    loop
            exitwhen targets == null
        if IsPlayerEnemy(GetOwningPlayer(GetEnumUnit()), GetOwningPlayer(caster)) then
            set target = FirstOfGroup(targets)  
            set hp = GetWidgetLife(target) * 0.05 * abillevel
            call SetWidgetLife(target, GetWidgetLife(target) - hp)
            call SetWidgetLife(caster, GetWidgetLife(caster) + hp)
            call GroupRemoveUnit(targets, target)
        endif
    endloop


>>And is there an easy way for you to write the JASS Scripts in JASS Craft and then import the scripts into your map?
Besides creating a trigger, changing it to custom text and then copying & pasting the script in...

Use NewGen + TESH.
 
S

svinec

Guest
also, I don't think there is an event EVENT_UNIT_UNIT_SPELL.
 

Jazradel

Helping people do more by doing less.
Reaction score
102
~Gals~ is wrong about the loop, that exitwhen is in the right place.
 

phyrex1an

Staff Member and irregular helper
Reaction score
447
~Gals~ is wrong about the loop, that exitwhen is in the right place.
~Gals~ is actually more correct than you think.

JASS:
    loop
        set target = FirstOfGroup(targets)
        exitwhen target == null
        call GroupRemoveUnit(targets, target)
        set hp = GetWidgetLife(target) * 0.05 * abillevel
        call SetWidgetLife(target, GetWidgetLife(target) - hp)
        call SetWidgetLife(caster, GetWidgetLife(caster) + hp)
    endloop

The problems was:
1. GetEnumUnit(), what unit is that on a Spell Cast event?
2.The If is not needed since we take care of that when we add units to the group.

I wouldn't use a FirstOfGroup loop at all for this but whatever. (ForGroup <3)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top