[LUA] Basic JASS based question on creating units in LUA

WildTurkey

Previously known as giv_me_rep
Reaction score
88
Hello,


decided I'd give crack at writing something in LUA and a little trip back to memory lane on WC3 sounded like a nice idea.

I'm struggling however to just replace a unit selected from a unitgroup!

Would appreciate a set of eyes from the JASS guys, let me know if you spot an issue here.

I think it must be with my local target = GetEnumUnit(), with this in mind i started trying to just create a unit but I couldn't get that going either :S

Unit Id's are taken from WorldEditor, tried with default as well 'hgyr' was tested with in case the issue was that 'h000'is a structure, no dice. Tried with quotationg marks instead of inverted commas but no dice there either. Tried Creating a unit without luck, Destructible without luck. Very very confused...

I put some print lines in there to mark and the last item printed is 6, all units are deleted at the end of this and no new units are created which then tells me that in fact GetEnumUnit() is being detected and in fact the issue is with the unit ID? But then why does the flying machine code not work in testing? I am most confused.


Kind regards

Code:
--calls here first

function initSelectTownBuildings()

    --select all units in unit group

    --for each unit in unit group:

  

    print("1")

    local grpobj = GetUnitsOfPlayerAll(Player(0)) --create unit group of place holder objects

    local unitCount = CountUnitsInGroup(grpobj)

    print("2")

    print("unit Count: "..unitCount)

  

    ForGroupBJ(grpobj, initPlaceTownBuildings) --run function for each object in group

end


function initPlaceTownBuildings()

    print("3")

    --if random number == X do action Ax
    --add more stuff later maybe

    local rand = GetRandomInt(1, 1)

    print("4")

    local target = GetEnumUnit() --get the unit pickd

    print("5")

    print("rand: ".. rand)

    --lumbermill scenario

    if (rand == 1) then

        print("6")

        --replace placeholder with lumbermill

        ReplaceUnitBJ(target, 'h000', bj_UNIT_STATE_METHOD_MAXIMUM )

        print("7")
        --CODE DOES NOT REACH THIS POINT!

    end

end
 
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