Help the newbie alert.

A

alzidaney

Guest
Ok newbie to this forum and to JASS as well. I'm making use of someone's free code posted in the free trigger code thread.

His definition for the code function I used is as follows

Code:
function GetNearestUnitMatching takes real sourceX, real sourceY, real range, boolexpr cond, boolean considerdead returns unit

Now, below here is what I attempted to do with the function. (OBviously its wrong. Its part of the whole trigger code btw.)

Code:
function IsEnemy takes nothing returns boolean
    local unit nextunit = GetEnumUnit()
    
    return GetOwningPlayer(nextunit) == GetOwningPlayer(udg_Summoned)
endfunction

function Trig_Tornado_Effect_Actions takes nothing returns nothing
       local unit nearest
       //local boolexpr bolexpr = 
       nearest = call GetNearestUnitMatching(GetLocationX(GetUnitLoc(GetSummonedUnit())), GetLocationY(GetUnitLoc(GetSummonedUnit())), 125, Condition(IsEnemy) , false)
endfunction

The error shows in the line
Code:
nearest = call GetNearestUnitMatching(GetLocationX(GetUnitLoc(GetSummonedUnit())), GetLocationY(GetUnitLoc(GetSummonedUnit())), 125, Condition(IsEnemy) , false)

It says that "Expected Code Statement". Im lost. Totally. I tried searching around this forum but to no avail. :(
 
A

alzidaney

Guest
Just tried it. Does'nt work. What's the diff between Filter and Enum anyways?
 

phyrex1an

Staff Member and irregular helper
Reaction score
446
FilterUnit is the unit that is 'filtered' in a boolexpr callback, EnumUnit is the unit 'picked' with ForGroup.

In addition to my last post change this:
nearest = call GetNearestUnitMatching(...)
to
set nearest = GetNearestUnitMatching(...)
 
A

alzidaney

Guest
Thx for the explaination on Filter and Enum. :)

Anyway, now there's a new error. It says "Expected Expression".
For that same line as well. :(
 
A

alzidaney

Guest
For which part should I use that? I tried it in the 'Condition(function IsEnemy)' but it still gave the same error..
 

corvusHaunt

New Member
Reaction score
96
Try this
Code:
function IsEnemy takes nothing returns boolean  //this function leaks a unit btw
    local unit nextunit = GetEnumUnit()  
    
    return GetOwningPlayer(nextunit) == GetOwningPlayer(udg_Summoned)
endfunction

function Trig_Tornado_Effect_Actions takes nothing returns nothing
       local unit nearest = GetSummonedUnit()
       local boolexpr bolexpr = Condition(function IsEnemy)
     
       set nearest = GetNearestUnitMatching(GetUnitX(nearest), GetUnitY(nearest), 125, bolexpr , false)
       
        //don't forget to clean up the boolexpr:
        call DestroyBoolExpr(bolexpr)
        set bolexpr = null
endfunction
 
A

alzidaney

Guest
OMFG. I love you man! :) Works finally. So.. Can you explain what you did
and what's the cause? :D THX THX THXTHX!!!
 

corvusHaunt

New Member
Reaction score
96
Your code:
Code:
function Trig_Tornado_Effect_Actions takes nothing returns nothing
       local unit nearest
       //local boolexpr bolexpr = 
       nearest = [COLOR=Red]call[/COLOR] GetNearestUnitMatching(GetLocationX(GetUnitLoc(GetSummonedUnit())), GetLocationY(GetUnitLoc(GetSummonedUnit())), 125, Condition(IsEnemy) , false)
endfunction

Code:
function Trig_Tornado_Effect_Actions takes nothing returns nothing
       local unit nearest = GetSummonedUnit() //You get the point of this unit, then get the X,Y of that point, twice; which is useless, I switched to GetUnitX/Y
       local boolexpr bolexpr = Condition(function IsEnemy) //store the boolexpr in a variable so we can destroy the leak
     
       set nearest = GetNearestUnitMatching(GetUnitX(nearest), GetUnitY(nearest), 125, bolexpr , false) //you only need to use "call" when calling the function directly, passing a function to return a value does not need this
       
        //don't forget to clean up the boolexpr:
        call DestroyBoolExpr(bolexpr)  //destroy the condition
        set bolexpr = null  //remove the var leak
endfunction

Glad I could help, have fun with this neat function :)
(PS- I made this and gave it to WP, he added the bj_lastHauntedGoldMine, I know him :p)
 
A

alzidaney

Guest
Oh geez.. And to think it was like so hard to figure that out.. Only you did it. :) Nice job! Thx a lot oh great one! ;)

Anyway, my JassCraft doesnt compile properly. When I click syntax check,
it will go "Checking ____filename___" for some time.. Then it comes out, "Parse successful : 1733 lines: common.j"

I have no idea what that means. I gave up and use WE's syntax checker, though some said its not fully fullproof.. Any suggestions?
 

corvusHaunt

New Member
Reaction score
96
Hmmm, I don't what that could be. WE's syntax checker isn't that great, JASSCraft's is a step up, plus the fact you don't have to worry about the crashes the syntax checker in WE sometimes causes when trying to enable a disabled trigger, save or test.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • tom_mai78101 tom_mai78101:
    As for Github, I often frequent there, boasting about my genetic algorithm for tools-assisted speedrunning and such. I'm also pretty active on Discord, with my tag @asperatology.
  • tom_mai78101 tom_mai78101:
    Yeah, the whole earthquake + air pollution combo made me completely forget about bringing updates. I'll be sure to keep on top of things after all things are less requiring my attentions.
    +2
  • The Helper The Helper:
    I am just glad that you are OK Tom! Thank you for the update!
  • Varine Varine:
    Glad to hear you're okay! I only knew about your Github cuz I tried to follow some of you when I was learning how to program, but didn't understand any of it so kind of quit paying attention to what anyone does on it
  • The Helper The Helper:
    Freaking storm outside is kicking!
  • Blackveiled Blackveiled:
    I wouldn't know, I'm in Joliet, Illinois right now working. I left Houston area about 2 weeks ago lol
  • Blackveiled Blackveiled:
    Not permanently of course, just a temporary job.
    +1
  • jonas jonas:
    Glad you're ok @tom_mai78101
  • jonas jonas:
    @Blackveiled you know another word for permanent? temporary
    +1
  • Varine Varine:
    Briefly, he'll only be there for the interim. Like a stopgap of sorts, he'll be back home in short time
  • O Old Mountain Shadow:
    Hurray! Tom has reappeared!
  • The Helper The Helper:
    Happy Thursday!
  • Blackveiled Blackveiled:
    Yep. Just another fun night at work.
  • Varine Varine:
    Broke the nozzle on my 3d printer and I don't have another heater block. So... I guess I'm fucked on that this weekend
  • The Helper The Helper:
    that sucks i bet they are expensive
  • Varine Varine:
    Not really
  • Varine Varine:
    The entire hot end is like 20 dollars, I just can't get anymore until next week
  • Varine Varine:
    I ordered like five blocks for 15 dollars. They're just little aluminum blocks with holes drilled into them
  • Varine Varine:
    They are pretty much disposable. I have shitty nozzles though, and I don't think these were designed for how hot I've run them
  • Varine Varine:
    I tried to extract it but the thing is pretty stuck. Idk what else I can use this for
  • Varine Varine:
    I'll throw it into my scrap stuff box, I'm sure can be used for something
  • Varine Varine:
    I have spare parts for like, everything BUT that block lol. Oh well, I'll print this shit next week I guess. Hopefully it fits

      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