Discussion Cannot convert integer to unit...

xAnaMorphine

Active Member
Reaction score
43
Trigger:
  • set udg_Heroes[1] = 'H000'


The Units aren't preplaced, that is why I want to store them into an Array first. Sadly it doesn't work :(





JASS:
scope Heroes initializer init

private function init takes nothing returns nothing
    call Inventory.create('H000', "Paladins", "Heavy Armors, Leather Armors, Cloth Armors, Shields")
endfunction

endscope
 

Nherwyziant

Be better than you were yesterday :D
Reaction score
96
Set heroes to integer and set it's value in JASS

JASS:
set udg_Heroes = 'H000'


JASS:
call Inventory.create(udg_Heroes, "Paladins", "Heavy Armors, Leather Armors, Cloth Armors, Shields")
 

xAnaMorphine

Active Member
Reaction score
43
Set heroes to integer and set it's value in JASS

JASS:
set udg_Heroes = 'H000'


JASS:
call Inventory.create(udg_Heroes, "Paladins", "Heavy Armors, Leather Armors, Cloth Armors, Shields")

tried, did not work or I did it wrong
 

Exide

I am amazingly focused right now!
Reaction score
448

xAnaMorphine

Active Member
Reaction score
43
You probably did it wrong.
Show us your complete function?

Yes, sir!

This is what I have got:

JASS:
function Trig_dfg_Actions takes nothing returns nothing
    set udg_Heroes = 'H000'
endfunction

//===========================================================================
function InitTrig_dfg takes nothing returns nothing
    set gg_trg_dfg = CreateTrigger(  )
    call TriggerAddAction( gg_trg_dfg, function Trig_dfg_Actions )
endfunction


JASS:
scope Heroes initializer init

private function init takes nothing returns nothing
    call Inventory.create('H000', "Paladins", "Heavy Armors, Leather Armors, Cloth Armors, Shields")
endfunction

endscope
 

Exide

I am amazingly focused right now!
Reaction score
448
JASS:

Inventory.create('H000'   //You should use the variable, here.


It was a long time since I used vJASS (or WE at all), but if I remember correctly you can do something like this:

JASS:

scope Heroes initializer init

globals
    set udg_Heroes = 'H000'
endglobals

private function init takes nothing returns nothing
    call Inventory.create(udg_Heroes, "Paladins", "Heavy Armors, Leather Armors, Cloth Armors, Shields")
endfunction

endscope


Correct me if I'm wrong. :p
 

xAnaMorphine

Active Member
Reaction score
43
JASS:

Inventory.create('H000'   //You should use the variable, here.


It was a long time since I used vJASS (or WE at all), but if I remember correctly you can do something like this:

JASS:

scope Heroes initializer init

globals
    set udg_Heroes = 'H000'
endglobals

private function init takes nothing returns nothing
    call Inventory.create(udg_Heroes, "Paladins", "Heavy Armors, Leather Armors, Cloth Armors, Shields")
endfunction

endscope


Correct me if I'm wrong. :p

Well maybe I am really stupid, but It does not look like it works for me.

syntax error, cannot convert integer into unit and yeah undefined something :(
 

Exide

I am amazingly focused right now!
Reaction score
448
That syntax error you got sounds like you're using an integer where you should be using a unit. (Different variable types completely.)
Meaning:

JASS:

call Inventory.create()


takes 'unit', not 'integer'.

You can convert unit into integer by using GetUnitType() (if I remember correctly.)

For example:

JASS:

set udg_Hero = GetUnitType(*gg_unit__your_unit_here*)



I'm not sure what call Inventory.create() actually is, though.
 

xAnaMorphine

Active Member
Reaction score
43
Okay, here guys: http://www.hiveworkshop.com/forums/...ating&order=DESC&search=Equipment&d=list&r=20

Remember that the unit who will gain the inventory is bought from a tavern and is not preplaced and not every unit should have the same inventory aswell.

I am off to the gym now, will be back in around 2~3 hrs. I will think about it while training, hope it will be clear for your guys now since I provided the link ^_^

Looking forward...
 

Komaqtion

You can change this now in User CP.
Reaction score
469
You should, instead of creating it at Map Init, just create it when it is bought from the tavern...
 

Trollvottel

never aging title
Reaction score
262
eerm...

JASS:
globals
    set udg_Heroes = 'H000'
endglobals


what kind of jass is this?

it should be:

JASS:
globals
    private integer udg_Heroes = 'H000'
endglobals


and later:

JASS:
private function init takes nothing returns nothing
    set udg_Heroes = 'H000'
    call Inventory.create(udg_Heroes, "Paladins", "Heavy Armors, Leather Armors, Cloth Armors, Shields")
endfunction


and thats only a correct SYNTAX! now actually udg_Heroes should be a unit which you get when it enters the map...
 

xAnaMorphine

Active Member
Reaction score
43
eerm...

JASS:
globals
    set udg_Heroes = 'H000'
endglobals


what kind of jass is this?

it should be:

JASS:
globals
    private integer udg_Heroes = 'H000'
endglobals


and later:

JASS:

private function init takes nothing returns nothing
    set udg_Heroes = 'H000'
    call Inventory.create(udg_Heroes, "Paladins", "Heavy Armors, Leather Armors, Cloth Armors, Shields")
endfunction


and thats only a correct SYNTAX! now actually udg_Heroes should be a unit which you get when it enters the map...

oh i c sir, well my jass isnt really good as you can see.

btw, how do i put everything together now?
 

Trollvottel

never aging title
Reaction score
262
Well. Throw all that code away. Now just create a trigger which fires when a hero of the specific type is entering the map. then create the inventory for this unit (= GetTriggerUnit() )
 
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