I can't really see what kind of program you want to make around it.
You just do Set or Get giving the xml path. What's tricky is to find the path as you have to open the xml files, but other than that the function does well its job.
Well, as I said, I'm still new to Galaxy, so maybe I'm not understanding this fully, but I'm still looking at this function thinking "What can I do with this?", and "How can I do it?"
I'm sure it would be clearer if I had the XML in front of me, but my quest for Galaxy knowledge has not yet led me across the "here's how you get the XML" path.
As far as what the program does, I was thinking of basically making this...I don't know...like the trigger editor, sort of? I didn't have a completely clear UI idea yet, but something along the lines of having a dropdown listing the things you can do:
Swap an ability
Change cost
Move command card Button Location
So you'd, say, pick a source / target (one of the Catalog libraries), maybe specify a little further (for example, picking the "Unit" library and then specifying the unit you intend to modify), and then another selection box would allow you to input the data. The app could even read the XML to interpret what the settings currently are, and attempt to serve as a rudimentary validator.
In making that list, a question popped into my mind, which I present more as a rhetorical example seeking validation that I am, in fact, simply missing something rather than detailed answers.
In order to change the Zealot's ability from Charge to Blink, I would call: CatalogFieldValueSet (c_gameCatalogUnit, "Zealot", "AbilArray[5].Link, 1, "Blink"); - Sholdak
This allows us to change an ability. Can abilities be added? In the XML, it's just adding another line, but code works a bit differently. If I could add a line using this, would I simply increment the array index? Or would I use a function like push or pop or...?
As I describe this, I realize that a well-documented tutorial (akin to all the others I've been gleaning knowledge from in the API Tutorial area) would likely work quite well. If this is the case, I'm certainly all for it, but unfortunately under qualified for that particular task. Talk about the blind leading the blind.
There are some pretty severe limitations to CatalogFieldValueSet unfortunately. There hasn't been any documentation listing what those are yet, but for example things like changing Command Cards on the fly doesn't seem to be possible in most circumstances. I need to get around to updating the tutorial with that info.
If you are talking about adding a user-friendly wrapper to the function, best way to go about that is just making a Trigger Library. Many of the existing Blizzard trigger actions related to data actually use CatalogFieldValueGet/Set internally.
Glad I learned that at least. Out of curiosity, are we able to look at how they used CatalogFieldValue internally, or is that for us to (re-)figure out for ourselves?
I tried to delete the thread (as its just taking up space now) but apparently can only do my individual posts.
I can't really see what kind of program you want to make around it.
You just do Set or Get giving the xml path. What's tricky is to find the path as you have to open the xml files, but other than that the function does well its job.
@vjeux: Go
Well, as I said, I'm still new to Galaxy, so maybe I'm not understanding this fully, but I'm still looking at this function thinking "What can I do with this?", and "How can I do it?"
I'm sure it would be clearer if I had the XML in front of me, but my quest for Galaxy knowledge has not yet led me across the "here's how you get the XML" path.
As far as what the program does, I was thinking of basically making this...I don't know...like the trigger editor, sort of? I didn't have a completely clear UI idea yet, but something along the lines of having a dropdown listing the things you can do:
So you'd, say, pick a source / target (one of the Catalog libraries), maybe specify a little further (for example, picking the "Unit" library and then specifying the unit you intend to modify), and then another selection box would allow you to input the data. The app could even read the XML to interpret what the settings currently are, and attempt to serve as a rudimentary validator.
In making that list, a question popped into my mind, which I present more as a rhetorical example seeking validation that I am, in fact, simply missing something rather than detailed answers.
In order to change the Zealot's ability from Charge to Blink, I would call: CatalogFieldValueSet (c_gameCatalogUnit, "Zealot", "AbilArray[5].Link, 1, "Blink"); - Sholdak
This allows us to change an ability. Can abilities be added? In the XML, it's just adding another line, but code works a bit differently. If I could add a line using this, would I simply increment the array index? Or would I use a function like push or pop or...?
As I describe this, I realize that a well-documented tutorial (akin to all the others I've been gleaning knowledge from in the API Tutorial area) would likely work quite well. If this is the case, I'm certainly all for it, but unfortunately under qualified for that particular task. Talk about the blind leading the blind.
There are some pretty severe limitations to CatalogFieldValueSet unfortunately. There hasn't been any documentation listing what those are yet, but for example things like changing Command Cards on the fly doesn't seem to be possible in most circumstances. I need to get around to updating the tutorial with that info.
If you are talking about adding a user-friendly wrapper to the function, best way to go about that is just making a Trigger Library. Many of the existing Blizzard trigger actions related to data actually use CatalogFieldValueGet/Set internally.
Glad I learned that at least. Out of curiosity, are we able to look at how they used CatalogFieldValue internally, or is that for us to (re-)figure out for ourselves?
I tried to delete the thread (as its just taking up space now) but apparently can only do my individual posts.
Why would you delete it? There is still information here.