Instantly Move

K

Kerberos

Guest
Any jass pros who know how to do this?


cuz it crashes when it goes off
My code, or something else? If it's my code, some possible errors are:
You didn't copy my code exactly
You aren't clearing memory leaks with the "call DestroyGroup(udg_LeakGroup) at the end
You don't have a unit group variable named "LeakGroup" (the name is irrelevant as long as you change the "LeakGroup" in the last line to your variable name)

My stuff works fine on my computer.

And how does it crash? Does it freeze, or quit? When does this happen: when you're playing the map or when you're trying to save it?
 

Builder Bob

Live free or don't
Reaction score
249
actually the errors are

Syntax Error
Statement outside of function.


the 2 brackets didn't fix it, i tried 1-5

Could you post the whole trigger? The syntax error is the 2 missing brackets. The Statement outside of function is something else.
 

cleeezzz

The Undead Ranger.
Reaction score
268
Code:
Wind
    Events
        Time - Every 0.05 seconds of game time
    Conditions
    Actions
        Set Archer_Group = (Units of type Archer Goddess)
        Unit Group - Pick every unit in Archer_Group and do (Actions)
            Loop - Actions
                Set Archer_Loc = (Position of (Picked unit))
                Set Temp_Point6 = (Archer_Loc offset by (Wind_Speed / 20.00) towards Wind_Degree degrees)
                Custom script:   call SetUnitX(  GetEnumUnit() , RMaxBJ(GetRectMinX(bj_mapInitialPlayableArea), RMinBJ(GetRectMaxX(bj_mapInitialPlayableArea)  ,  GetUnitX(GetEnumUnit())+Sin(bj_DEGTORAD * AngleBetweenPoints(GetUnitLoc(GetEnumUnit()),udg_Temp_Point6))*udg_Wind_Speed/50)
                Custom script:   call SetUnitY(  GetEnumUnit()  ,  GetUnitY(GetEnumUnit())+Sin(bj_DEGTORAD * AngleBetweenPoints(GetUnitLoc(GetEnumUnit()),udg_Temp_Point6))*udg_Wind_Speed/50)
                Custom script:   call RemoveLocation(udg_Archer_Loc)
                Custom script:   call RemoveLocation(udg_Temp_Point6)
        Custom script:   call DestroyGroup(udg_Archer_Group)
 

Builder Bob

Live free or don't
Reaction score
249
This compiles:

(it's not 100% the same as your trigger, but close enough. I tested it in the world editor to be sure)

Code:
wind
    Events
        Time - Every 0.05 seconds of game time
    Conditions
    Actions
        Set Archer_Group = (Units of type Footman)
        Unit Group - Pick every unit in Archer_Group and do (Actions)
            Loop - Actions
                Set Archer_Loc = (Position of (Picked unit))
                Set Temp_Point6 = (Archer_Loc offset by Wind_Speed towards Wind_Degree degrees)
                Custom script:   call SetUnitX(GetEnumUnit(), RMaxBJ(GetRectMinX(bj_mapInitialPlayableArea), RMinBJ(GetRectMaxX(bj_mapInitialPlayableArea), GetUnitX(GetEnumUnit())+Cos(bj_DEGTORAD * AngleBetweenPoints(GetUnitLoc(GetEnumUnit()),udg_Temp_Point6))*udg_Wind_Speed/50.0)))
                Custom script:   call SetUnitY(GetEnumUnit(), RMaxBJ(GetRectMinY(bj_mapInitialPlayableArea), RMinBJ(GetRectMaxY(bj_mapInitialPlayableArea), GetUnitY(GetEnumUnit())+Sin(bj_DEGTORAD * AngleBetweenPoints(GetUnitLoc(GetEnumUnit()),udg_Temp_Point6))*udg_Wind_Speed/50.0)))
                Custom script:   call RemoveLocation(udg_Archer_Loc)
                Custom script:   call RemoveLocation(udg_Temp_Point6)
        Custom script:   call DestroyGroup(udg_Archer_Group)

By the way, I think you want Cos in the custom script regarding X position.

Edit: modified the code to include Cos for X position and boundaries for Y position.
Changed udg_Wind_Speed/50 to udg_Wind_Speed/50.0 to make sure the result has decimals.
 
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