"Expected returns" error in Jasshelper

retupmoc258

New Member
Reaction score
1
So this is what I have and for some reason when I save this the Jasshelper says "Expected returns" Why does my function need to return something? I just intend for a trigger to use call this function and give it the information it wants used and then go to work spawning creatures according to what it gave it.

JASS:
function SpawnFunc takes rect WhichRect integer MinSpawnRange integer MaxSpawnRange integer MinSpawnNum returns nothing
    local group SpawnGroup = CreateGroup()
    local integer SpawnInt
    
    set HeroTot = 0
    set EnemyTot = 0
      
    set SpawnGroup = GetUnitsInRectAll(WhichRect)
    call ForGroup(SpawnGroup, function OwnerIsPlayerOneGroup )
    call DestroyGroup(SpawnGroup)
    
    if ( HeroTot >= 1 ) then
        return
    endif

    // Spawn Trigger Here
    if ( EnemyTot <= MinSpawnNum ) then
        set bj_forLoopAIndex = ( EnemyTot + 1 )
        set bj_forLoopAIndexEnd = ( MinSpawnNum + 2 )
        loop
            exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
            set SpawnInt = GetRandomInt(MinSpawnRange, MaxSpawnRange)
            call CreateNUnitsAtLoc( 1, udg_Monster_UnitType[SpawnInt], Player(PLAYER_NEUTRAL_AGGRESSIVE), GetRandomLocInRect(WhichRect), GetRandomDirectionDeg() )
            call IssuePointOrderLocBJ( GetLastCreatedUnit(), "patrol", GetRandomLocInRect(WhichRect) )
            set bj_forLoopAIndex = bj_forLoopAIndex + 1
        endloop
    else
        return
    endif

endfunction
 

PurgeandFire

zxcvmkgdfg
Reaction score
509
Add commas to separate parameters:
JASS:
function SpawnFunc takes rect WhichRect, integer MinSpawnRange, integer MaxSpawnRange, integer MinSpawnNum returns nothing


@roaaaarrrr: a "return" with nothing after it basically acts as a "Skip Remaining Actions". =D
 

retupmoc258

New Member
Reaction score
1
Exactly. I would expect it to act as a "Skip Remaining Actions" Because if you put one of those into a Trigger and convert it, that's what it leaves. But . . . in this case with or without the "return" lines in there, it still says that there is an expected return . . . So, if I have to return something (and nobody knows why I have to) then what can I return that won't leak?
 

jig7c

Stop reading me...-statement
Reaction score
123
try posting in jass section

maybe remove return and type in DisableTrigger(GetTriggeringTrigger)
 

retupmoc258

New Member
Reaction score
1
It's not a trigger, though . . . and it can't ever be a trigger because it needs functional values to be used. Granted, I could just put all of this in each spawning trigger I intend to make . . . essentially creating 30 times the coding . . . seems like a terrible waste of space, though.
 

retupmoc258

New Member
Reaction score
1
Whenever I try to use this, Jasshelper gives me this error: "Expected returns". I don't know what to do with the function to make it work. It's not meant to return anything . . .

JASS:
function SpawnFunc takes rect WhichRect integer MinSpawnRange integer MaxSpawnRange integer MinSpawnNum returns nothing
    local group SpawnGroup = CreateGroup()
    local integer SpawnInt
    
    set HeroTot = 0
    set EnemyTot = 0
      
    set SpawnGroup = GetUnitsInRectAll(WhichRect)
    call ForGroup(SpawnGroup, function OwnerIsPlayerOneGroup )
    call DestroyGroup(SpawnGroup)
    
    if ( HeroTot >= 1 ) then
        return
    endif

    // Spawn Trigger Here
    if ( EnemyTot <= MinSpawnNum ) then
        set bj_forLoopAIndex = ( EnemyTot + 1 )
        set bj_forLoopAIndexEnd = ( MinSpawnNum + 2 )
        loop
            exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
            set SpawnInt = GetRandomInt(MinSpawnRange, MaxSpawnRange)
            call CreateNUnitsAtLoc( 1, udg_Monster_UnitType[SpawnInt], Player(PLAYER_NEUTRAL_AGGRESSIVE), GetRandomLocInRect(WhichRect), GetRandomDirectionDeg() )
            call IssuePointOrderLocBJ( GetLastCreatedUnit(), "patrol", GetRandomLocInRect(WhichRect) )
            set bj_forLoopAIndex = bj_forLoopAIndex + 1
        endloop
    else
        return
    endif

endfunction
 

PurgeandFire

zxcvmkgdfg
Reaction score
509
It should compile just fine then.

Be sure you did as I suggested:
JASS:
function SpawnFunc takes rect WhichRect, integer MinSpawnRange, integer MaxSpawnRange, integer MinSpawnNum returns nothing
//Add the commas


Also be sure that all those globals are valid global variables that you've declared. I don't see a reason why it'd cause a syntax error, especially since I just tested it right now and it gave no error. =\

Can you screenshot the error that pops up?
 

retupmoc258

New Member
Reaction score
1
Yeah, here's a screenshot. The globals I used in the function are declared elsewhere, and as you can see Jasshelper has no problem with it . . . so you put it in exactly as is and it worked just fine?

Still doesn't fix the problems. Check the other post for the screenshot.

http://www.thehelper.net/forums/showthread.php?p=1213555#post1213555

Ah, nevermind. Added one too many commas

Thanks very much. It appears to be stable.

Ah, now I have the commas there and it works. Hmm . . . go figure. Oh, and one less comma, which was continuing the problem.

Thanks very much for the help.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top