So what I'm trying to do is when a certain unit is created, the level of that unit (done) as well as the icon of that unit showing up in the leaderboard. However, I see no option to do that, as I can only add preset icons. Is there any way to do that? Or is there any other way I can add the icon/button/portrait of that unit (any will do) to the leaderboard?
I'd suppose a customscript like this would work:
SetVariable(lv_unitIcon, (CatalogFieldValueGet(c_gameCatalogActor, (StringToText2((UnitGetType(lv_unit)))), "UnitIcon", c_playerAny)))
I haven't tested that line though, it might give some errors.
A Translation of what it does:
SetVariable ==> the Set Variable function
lv_unitIcon ==> the local variable named unitIcon (the type of this variable is Image(File) )
CatalogFieldValueGet ==> this retrieves info from what you can set in the data editor.
c_gameCatalogActor ==> this tells the CatalogFieldValueGet to look in the Actors catalog.
StringToText2 ==> This one is a bit confusing. what it does isn't transforming a string to a text, but it transforms a gamelink to a string.
UnitGetType ==> It retrieves the Unit Type gamelink of the given unit.
lv_unit ==> the local variable named unit (the type of this variable is Unit)
"UnitIcon" ==> the field that is read from the catalog. in this case it retrieves the UnitIcon.
c_playerAny ==> which player's catalog should be read?, in this case it doesn't matter since all the players have the same data for what we're trying to retrieve.
You'll need to customcode it because you want it to return a type of Image(File), and there is no conversion from string to Image(File), even though they're both just strings.
Getting a syntax error. Is there an API or any place where I can look up the syntax to try and find the error? If I enter the script in script validator (galaxyvalidator), all I get is unexpected token and since all I can do about this is understand it of someone else did it, I'm a bit at a loss.
ok, just tested it and it was giving an error, as you said.
I've included my test map here.
If you run it and type -spawn <UnitName> then it will create an unit and also display the last created unit in the leaderboard, with text and icon.
example: -spawn Marine
Although I can't see what is wrong with what I typed earlier, I've made it into a function that you can copy from the included map and paste in your map. you can then just call that function to retrieve the UnitIcon.
This only works when the Actor is the same as the Unit, It might need some altering when that isn't the case. But for all default units it will work.
So what I'm trying to do is when a certain unit is created, the level of that unit (done) as well as the icon of that unit showing up in the leaderboard. However, I see no option to do that, as I can only add preset icons. Is there any way to do that? Or is there any other way I can add the icon/button/portrait of that unit (any will do) to the leaderboard?
Wightnish
@thewightnish: Go
You'll have to do some catalog work for it.
I'd suppose a customscript like this would work:
SetVariable(lv_unitIcon, (CatalogFieldValueGet(c_gameCatalogActor, (StringToText2((UnitGetType(lv_unit)))), "UnitIcon", c_playerAny)))
I haven't tested that line though, it might give some errors.
A Translation of what it does:
SetVariable ==> the Set Variable function
lv_unitIcon ==> the local variable named unitIcon (the type of this variable is Image(File) )
CatalogFieldValueGet ==> this retrieves info from what you can set in the data editor.
c_gameCatalogActor ==> this tells the CatalogFieldValueGet to look in the Actors catalog.
StringToText2 ==> This one is a bit confusing. what it does isn't transforming a string to a text, but it transforms a gamelink to a string.
UnitGetType ==> It retrieves the Unit Type gamelink of the given unit.
lv_unit ==> the local variable named unit (the type of this variable is Unit)
"UnitIcon" ==> the field that is read from the catalog. in this case it retrieves the UnitIcon.
c_playerAny ==> which player's catalog should be read?, in this case it doesn't matter since all the players have the same data for what we're trying to retrieve.
You'll need to customcode it because you want it to return a type of Image(File), and there is no conversion from string to Image(File), even though they're both just strings.
@Helral: Go
Getting a syntax error. Is there an API or any place where I can look up the syntax to try and find the error? If I enter the script in script validator (galaxyvalidator), all I get is unexpected token and since all I can do about this is understand it of someone else did it, I'm a bit at a loss.
@thewightnish: Go
hmmm I'll go test it out, I'll throw in a map with my next reply, so you can see what I did.
ok, just tested it and it was giving an error, as you said.
I've included my test map here.
If you run it and type -spawn <UnitName> then it will create an unit and also display the last created unit in the leaderboard, with text and icon.
example: -spawn Marine
Although I can't see what is wrong with what I typed earlier, I've made it into a function that you can copy from the included map and paste in your map. you can then just call that function to retrieve the UnitIcon.
This only works when the Actor is the same as the Unit, It might need some altering when that isn't the case. But for all default units it will work.
Very nice, even got it to work with my custom units without problems.
Thanks alot, you really helped me out there!