• 0

    posted a message on What field changes a hero unit's armor tooltip? [Solved]

    (Basic) UI: Life Armor Tooltip

    You have to specify a text key before entering the text. The Armor and Move Speed info cannot be removed as far as I know.

    Posted in: Data
  • 0

    posted a message on Placement Footprints Of Allies

    I was thinking of having a paused, hidden dummy unit issue the same build command and setting the player's placement models to Invisible using an upgrade. (This is for a unit tester so costs are irrelevant).

    Thanks for the help.

    Posted in: Data
  • 0

    posted a message on generic object creation error
    Quote from BigDonRob: Go

    the trigger is not functioning properly.

    Be more specific, please. Describe the actual problem.

    Are your regions named like "Level 001" or "Level 1"?

    Also, if this is your whole trigger, there's no reason to use an array.

    Posted in: Triggers
  • 0

    posted a message on Terms like "!ValidateUnit ..."

    If editing XML in the data module is anything like editing XML in the UI module, NOPE!

    The UI module is extremely buggy and constantly undoes my changes and even deletes layout files when I rename them. I suspect the XML editor in the data module has the same type of issues.

    Posted in: Galaxy Editor Bugs and Feedback
  • 0

    posted a message on Placement Footprints Of Allies

    Normally, placement models/footprints prevent you from building/landing other things on them. E.g. if you order an SCV to construct a supply depot somewhere, then you cannot queue up a second supply depot at that spot (unless you click really fast, but then the order just gets ignored). The build grid will show red/invalid cells there. The same applies to landing flying buildings, placing auto-turrets, rooting spine/spore crawlers and summoning nydus worms.

    invalid-build-grid-placement

    When playing with allies, however, such as in co-op or team ladder games, you can see their placement models but they don't block you from placing anything there.

    valid-build-grid-placement

    Is there a way to make the footprints of placement models apply to the build grids of allies, i.e. block allies from placing things?

    Posted in: Data
  • 0

    posted a message on Terms like "!ValidateUnit ..."

    So I'm trying to copy all of the changed units from the official balance test mod into a separate map as separate, independent units and I've spent about 8 hours in total (over the course of two weeks) trying to debug various issues after copying just one unit, the infestor, and all of its associated abilities/effects/etc that were changed.

    I've battled with UI glitches such as actor terms randomly being replaced by messages(!) when I edit them, as well as copy-n-paste bugs, like specific fields not being copied (e.g. button hotkeys), and other strange bugs, like the infestor's deep tunnel ability being replaced by the burrow/unburrow abilities after I had duplicated those (and being unable to fix it without reopening the map because I couldn't select the ability command for the Deep Tunnel button on the command card).

    And now I've finally conquered all of those bugs and I've got two entirely independent, functional ingestors. Whew! I think it's safe to say that now that I've accomplished this, and learned some of the traps that the editor sets for you, copying the rest of the balance test changes should be relatively easy (which is not to say it won't be time-consuming - I'm going to have to double-check everything manually from now on). I deliberately chose to attempt to copy the infestor first because it seems like the most complicated unit, what with being able to morph, move while burrowed, cast spells and all, so I could gauge how viable my idea was and whether I could do it.

    Now to get to my actual concern...

    The last bug I had to fix had eluded me for quite some time and it was caused by one little, missing exclamation mark.

    In the official Balance Test Mod v1.33, the infestor's actor has three event definitions that look like this:

    Event: Abil.InfestorDeepTunnel.SourceCastStart
        Term: !ValidateUnit IsInfestorBurrowed
        Message: AnimPlay Morph Morph 0 -1.000000 -1.000000 1.800000 AsDuration
    Event: Effect.InfestorDeepTunnelCPThird.Start
        Term: !ValidateUnit IsInfestorBurrowed
        Message: AnimBracketStart Burrow Burrow {} {} OpeningPlayForever 0.200000 AsDuration
    Event: Effect.InfestorDeepTunnelCPThird.Stop
        Term: !ValidateUnit IsInfestorBurrowed
        Message: AnimBracketStop Burrow
    

    The terms here all begin with a "!" which negates the normal result. If the validator returns true, the term returns false, and vice versa. This is pretty easy to understand and familiar to anyone who has learned a little bit of programing or boolean logic. However, the problem is that there's no apparent way to add this exclamation mark in the editor unless you edit with "View Raw Data" enabled.

    Furthermore, if you edit a term like this in the GUI, such as changing the validator, it'll remove that exclamation mark. This tripped me up so hard because I had to replace all of the validators with new ones (e.g. IsInfestorBurrowedBalanceTest), and I even duplicated the "NotInfestor" and "NotInfestorBurrowed" validators, but I just blindly replaced all of the original validators with the equivalent ones and didn't notice the exclamation marks disappearing. So actually I needed to use the opposite validators, which I eventually did to fix the bugs I was seeing in-game.

    TL;DR Blizzard apparently edits actor events in raw mode and uses exclamation marks to negate the results of terms, and that exclamation mark operator isn't supported in the GUI and gets silently erased if you make any edits.

    Posted in: Galaxy Editor Bugs and Feedback
  • 0

    posted a message on Unit Ability (UnitAbilityGet) function returns incorrect values

    Four years later and this bug hasn't been fixed? :S

    Posted in: Galaxy Editor Bugs and Feedback
  • 0

    posted a message on Assign Lobby Position to Player Spot

    You can always change the alliances during the game and transfer ownership of units.

    Posted in: Triggers
  • 0

    posted a message on UI Request
    Quote from Ahli634: Go

    The container is not visible, so its size can be pretty much the entire screen. There is no problem with that.

    Yes, there is a problem with that. Changing the positioning is unnecessarily more convoluted than it should be. Right now the icons are anchored to the bottom-right of the container. If I wanted them above the unit portrait, I'd have to change the anchoring of the container and the icon template. Also, it interferes with being able to click on other frames in the UI editor.

    Quote from Ahli634: Go

    But, if you really want to, you can set an anchor to a child frame via just using the child frame's name in the anchor's relative="ChildFrame". If you position your last upgrade icon slot properly, you can just use its top border (= "Min").

    And what if I later decide to add/rearrange/remove things? Then I have to find and update every other frame that was anchoring to some arbitrary child instead of the container when that was really the intent.

    I'm not looking for good 'nuff's. I want to know the proper, clean way.

    I guess you already gave up...

    Quote from BigDonRob: Go

    Is there a specific loop to use, or just copy paste a bunch of waits?

    Don't update the UI if you don't have to. Just set the text together when you actually change the value.

    Posted in: UI Development
  • 0

    posted a message on Record[SOLVED] vs. Array[UNSOLVED]

    Does this help? http://peeeq.de/gui.php?id=3885

    Posted in: Triggers
  • 0

    posted a message on UI Request

    You need to refresh it yourself by setting the dialog item text.

    Posted in: UI Development
  • 0

    posted a message on [Solved] Check if effect kills a unit

    The normal Zealot attack is made up of two effects: "Psi Blades" and "Psi Blades (Damage)". The first is a Create Persistent effect which just splits the Zealot's attack into two hits, by creating the "Psi Blades (Damage)" effect twice.

    To achieve what you want is very simple.

    1. Create a new effect of type Modify Unit and set the Shields Change Fraction to 1. That means "set shields to 100%". Then set the Impact Unit to "Caster". Call this effect something like "Zealot - Restore Shields".
    2. Create a new effect of type Set and add to it the two effects "Psi Blades (Damage)" and the new Modify Unit effect you just created.
    3. In the "Psi Blades" effect, change the Period Effects to the new Set effect you just created. This will cause it to execute both effects (Damage & Restore Shields) for every swing.
    4. Create a new validator of type Unit Compare Vital and call it "Zealot - Unit Died From Attack". Leave everything at its default values. It will compare if the target's life is equal to 0, i.e. dead.
    5. Add this validator to the "Zealot - Restore Shields" effect.

    And it works!

    Now you just need someone more knowledgeable than me to show you how to create a nice shield regen animation on the Zealot.

    Posted in: Data
  • 0

    posted a message on Record[SOLVED] vs. Array[UNSOLVED]

    Of course you can!

    Getting/setting array elements is as easy as with any other variable. You just specify the index after the variable name.

    To check for values in the array, you use the For Each Integer action to count from 0 to (number of array elements - 1) and an If Then Else action to compare each value in the array to the value you want to find.

    You give the For Each Integer action an integer variable and it changes the value of that variable as it counts through the numbers. You then use that variable as the index into the array.

    Posted in: Triggers
  • 0

    posted a message on Assign Lobby Position to Player Spot

    As far as I know, there's no way to detect what position a player had in the lobby and it wouldn't be that useful if you could because it kinda randomly shuffles players as they join/leave.

    However, you can detect which team a player was in using the Players On Team function that returns a player group.

    Posted in: Triggers
  • 0

    posted a message on Record[SOLVED] vs. Array[UNSOLVED]

    You cannot mix different types of values in arrays and each record definition effectively creates a new, separate type.

    Once you create a variable of a certain record type, you can treat it like any other variable except you cannot pass it into or return it from actions/functions or directly assign them to other variables. The variable picker will then offer you the record variable whenever it detects that one of the variables inside the record (or any nested records) matches the type of value you're editing. If your record doesn't contain any text variables, then it will not appear when you look for variables to use when setting a dialog item's text, for example.

    I recommend you try things out more yourself, it's really not that complicated.

    Arrays are just lists of values of the same type. They can be ordered or unordered (but you have to make sure they remain ordered or implement a sorting algorithm yourself - and there are some examples for that provided by Blizzard in the Built-in library). Just like records, you cannot pass them directly into or out of functions or assign them directly. That's it really.

    Posted in: Triggers
  • To post a comment, please or register a new account.