Super simple vJass Trigger

Kyzerdrood

New Member
Reaction score
3
Im trying to learn vJass from GUI from the tutorial posted on this site and i read till it said i should practice a bit b4 continuing and i cant get this.

JASS:
scope whichTrigger initializer Init

function Actions01 takes unit returns nothing
    call RemoveUnit(GetDyingUnit())
endfunction

function Condition01 takes nothing returns nothing

endfunction

function Init takes nothing returns nothing
    call set t = CreateTrigger()
    call TriggerAddCondition(t,Condition(function Condition01))
    call TriggerAddAction(t, function Actions01)
endfunction

endscope


I know its got to be something simple, but why doesnt this work?

im just practicing and trying to make it when a unit dies, its removed from the game.

i get error on every line.
 

Flare

Stops copies me!
Reaction score
662
JASS:
function Condition01 takes nothing returns nothing

endfunction


Conditions must return a boolean
JASS:
function Condition01 takes nothing returns boolean
  return true
//Or, if you have a specific condition, use that instead e.g.
  return GetUnitTypeId (GetTriggerUnit ()) == 'hfoo'
//That only remove the unit if it was a footman
endfunction


JASS:
function Actions01 takes unit returns nothing
    call RemoveUnit(GetDyingUnit())
endfunction

Action functions can't take any parameters.
JASS:
function Actions01 takes nothing returns nothing
    call RemoveUnit(GetDyingUnit())
endfunction

Also, when adding parameters to a function, they must be given a name e.g.
JASS:
function DisplayText takes string text returns nothing
  call DisplayTextToPlayer (GetLocalPlayer (), text, 0, 0)
endfunction
 
Reaction score
341
JASS:
scope whichTrigger initializer Init

private function Actions takes unit returns nothing
    call RemoveUnit(GetDyingUnit())
endfunction

private function Conditions takes nothing returns nothing

endfunction

private function Init takes nothing returns nothing
    call set t = CreateTrigger()
    call TriggerAddCondition(t,Condition(function Conditions))
    call TriggerAddAction(t, function Actions)
endfunction

endscope


You need to be using JNGP (NewGen) for vjass to work. Since your triggers are already in a scope make 'em private like i did. And

JASS:
function Actions01 takes unit returns nothing


Can't take anything , it must be

JASS:
function Actions01 takes nothing returns nothing


Because your referencing it with TriggerAddAction. Also change

JASS:
call set t = CreateTrigger()


to

JASS:
 

Kyzerdrood

New Member
Reaction score
3
K i did like u said, and ya i just forgot to make private, and im using newgen 1.5 and i downgraded my WE for it to work, i still get compile errors when i syntax check but ill just test the map...


tested and it wont work.
 
Reaction score
341
Don't use the syntax check button , it doesn't compile vjass. Just hit save then JassHelper will come up and compile it.
 

Kyzerdrood

New Member
Reaction score
3
ok so it will save and i cant test it but when a unit dies it doesnt get removed from the game.
 

Kyzerdrood

New Member
Reaction score
3
LOL DUH thnx


so THIS should work?

JASS:
scope whichTrigger initializer InitTrig_whichTrigger

private function Actions01 takes nothing returns nothing
    call RemoveUnit(GetDyingUnit())
endfunction

private function Condition01 takes nothing returns boolean
    return true
endfunction

private function InitTrig_whichTrigger takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddCondition(t,Condition(function Condition01))
    call TriggerAddAction(t, function Actions01)
endfunction

endscope


Edit: WOOT WORKS, first jass trigger lol, so simple, yet im so happy :D
 

Romek

Super Moderator
Reaction score
963
vJass is an extension of Jass.
So you can't possibly learn vJass without knowing Jass.
 

Kyzerdrood

New Member
Reaction score
3
well can i learn how to convert vJass to jass easily then? Cuz i havent done jass, just vJass xD
 

Romek

Super Moderator
Reaction score
963
vJass is Jass with scopes, libraries, etc.

Remove the scope from what you have there, and you're doing Jass.
vJass just adds a few extra keywords to make Jassing easier. :)
 

Kyzerdrood

New Member
Reaction score
3
lol then its more simple than i thought, i just started at like 5:50 and its 6:51 now and i know how to make simple jass triggers :D
 

saw792

Is known to say things. That is all.
Reaction score
280
By the way Kyzer, you don't need a condition when it just returns true. In that case you can simply remove the call TriggerAddCondition() line.

(You still working on that FSE RPG, or is that well and truly out the window?)
 

Kyzerdrood

New Member
Reaction score
3
yes i was, but i stopped PLAYING wc3 and so clan fse thought i quit alltogether, and so they are making a RPG called Fortress Survival Delta, which pretty much stole my idea, so i just stopped. i dont even have the map anymore :/


However i would like to get started on a rpg and release one sometime soon.

though if i was going to start, i would need someone to make quests, spells, and then terrain.
 

saw792

Is known to say things. That is all.
Reaction score
280
Nevo was trying to make me do Delta. Except I hate RPG's.

He's making some other map now, and FSE is down the toilet as I'm sure you know.

Anyway, good to see you.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      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