Now that I’ve looked through the editor strings, I’ve gotten a better idea of the things changing in Legacy of the Void Editor
We should be getting it soon, since Void ships in 2 months.
Going to go over the various change that are coming in the trigger editor, both in terms of menus, options, and some other new built in library functions. There is also a large number of new native functions, which I’ll also list at the end, along with their hint text. I'm only including the SC2 specific stuff, and not any that are restricted (Blizzard only).
Trigger Editor Function Changes
View Trigger Usage
Currently, if one wants to see where a trigger element is used, you have to open up the Overview manager, switch to triggers, and then find the relevant element. Or you can choose to right click and select “View in Overview Manager”. This does work, however, the overview manager is slow, because it must display the usage of ALL trigger elements. This new option allows one to view just the elements you select. This way, it will be MUCH faster, and much more smooth.
The view usage can also be filtered to further make it easier to sort what is using the selected elements. It will provide the type of element using the element (Variable, Action, Preset, Function, Event, etc.), how many times, is it a local use, and what library is using it, and the state of the element (Is it disabled or not).
Load/Save Extra Data
It appears we will be able to load triggers from another document into the current one. This would allow one to edit related triggers to the current document (possibly from a dependency) without having to open the other file entirely. Currently if one switches documents in the editor, it can be quite slow, since it has to load everything from that document (Triggers, Data, UI, Terrain, etc.)
Function Options
Inlining
They are adding an option to make a function inline. What this does is take actions/functions/conditions that are one action/line and instead of calling the inlined function, it simply replaces the place where a function call would occur with the function body.
For example, if we had a function called sum, that returns the sum of two numbers, it would have 2 parameters (integers for this example), and would have a single action, return param1 + param2. So the code would look like this
This is inefficient because you have the overhead of a function call, slowing things down. With inlining, the code would be converted to the following instead
inta;a=1+3;
Here, the parameters were substituted in and the call entirely replaced. For this reason, inline functions will only work if they are one action.
This provides a performance boost to code that calls such simple functions repeatedly, like something that does conversions from one type to another.
Script prefixing option
Currently, the editor, when generating the script code from gui, automatically adds prefixes to the functions, usually to separate function names from different libraries. It also does this to associate functions with triggers vs those that are not. This option will let you remove those prefixes, so a function is named precisely what you specify.
Preset Constants and Retrieval
Currently, when you create Presets, you assign a type to them, and then use them. But if you want to use them as their actual type (Integer, Real, etc.), you have to write your own function to convert them, so they are accepted by GUI. An option is being added for Presets that will autogenerate a conversion function for that Preset.
There is also an option being added to make Preset values generate constant variables and uses those instead of literal values. Normally when you use a Preset in GUI, its literal value gets substituted in at the point of usage. WIth this option, it will use a constant variable instead, which can make the code more readable, since you will be able to see that a Preset was used at that location, instead of just another value.
Debugger
The debugger has 2 major new capabilities. First, it can now filter variables and functions. For larger projects, this is crucial to help find problematic functions or to simply find the variable you want to keep track of.
Second, you can now view and set breakpoints in all scripts that are included/running on the map. Currently, you can only do breakpoints and view the script of the map itself, and none of the ones contained in dependencies.
New Natives
Will be doing this soon. Long list and not as easy as reading and finding the above stuff. Format will be
Name of Action/Event/Condition - New or Updated (some simply received updated hint text) - Hint Text
EffectHistory
EffectHistoryGetTime - New - Returns the game time (in seconds) when the effect that was logged in the Effect History at the specified Index occurred.
EffectHistoryGetEffect - New - If the Effect parameter is set to Root, this will return the effect that was at the root of the effect tree for the effect that was logged in the Effect History at the specified Index. If the Effect parameter is set to Current, then this will return the effect that was logged in the Effect History at the specified Index.
EffectHistoryGetType - New - Returns the type of effect that was logged in the Effect History at the specified Index. The type for the effect is set in the effect data in the Caster History field.
EffectHistoryGetWeapon - New - Returns the weapon that originated the effect that was logged in the Effect History at the specified Index. If the effect came from an ability rather than a weapon, this will return No Game Link.
EffectHistoryGetAbil - New - Returns the ability that originated the effect that was logged in the Effect History at the specified Index. If the effect came from a weapon rather than an ability, this will return No Game Link.
EffectHistoryCount - New - Returns the number of entries in the specified Effect History. Use Effect History Of Unit to get an Effect History.
UnitEffectHistory - New - Returns an Effect History object that can be used to inspect the history of effects for a unit. In order for a unit to register effects to its history, the unit must specify an Effect History Limit value, and any effects you want to track must specify a Caster History value. The Caster History value specifies the category under which you want to track the effect. You can use Effect History Entry Type to query the category for an Effect History entry. A max count of 0 (the default) will get all available entries.
Dialog and Dialog Item
SetDialogItemAnimationIndex - New - This controls the current animation index for the dialog item. Supported for Dialog Items of type Image
SetDialogItemFillColor - New - Sets the fill color for a dialog item.
SetDialogItemPlayerId - New - Sets the target playerId for a dialog item. Only used by Hero Cutscene dialog items.
DialogSetPositionRelativeToUnitWithAnchor - New - Moves a dialog to the specified anchor, relative to the specified attachment point of the specified unit, with the specified offsets.
DialogGetRenderPriority - New - Returns the render priority for the specified dialog.
DialogSetRenderPriority - New - Sets the render priority for the specified dialog. Dialogs with higher render priorties are rendered on top of dialogs with lower render priorities.
ScreenLabelDialog - New - Returns the dialog the specified screen label to. Use "Display Screen Label" to create screen labels.
DisplayScreenLabel - New - Creates a screen image, with an identifier chosen by the ScreenImageID parameter, at the specified anchor, with the specified size and offset.
HideScreenImage2 - New - Shows or hides a screen label. Use "Display Screen label" to create screen labels.
SetDialogItemBorderColor - New - Sets the border color for a dialog item.
DialogControlSendAnimationEvent - New - Sends an animation event to a dialog item. Animations are defined in the layout of a dialog item. All animations that are listening to this event on this dialog item will trigger their defined action.
SetDialogItemStateIndex - New - Sets a Dialog Item's State Index. Currently supported for type Image.
SetDialogItemSubmenu - New - Sets the submenu for a dialog item. Only used by Command Panel dialog items.
SetDialogItemScoreValueLink - New - Sets a Dialog Item's Score Value Link. Currently supported for type ScoreValueFrame
ScreenLabelDialogItem - New - Returns the dialog item that is the specified screen label. Use "Display Screen Label" to create screen labels.
SetDialogItemUnitGroup - New - Sets the unit group for a dialog item. Only used by Command Panel dialog items.
SetDialogItemtoUseAspectUncorrection - New - By default, the offset X and offset Y values of a dialog item's position will be corrected for the aspect ratio of the window showing the game. This function is to prevent that conversion from happening. It's useful for cases where you want to feed in design coordinates and not have them aspect corrected.
DialogControlRequestFocus - New - Currently supported for Dialog Items of type EditBox
Animation
AnimLengthQueryByName - New - Starts a query for the animation length and animation time remaining of the specific animation name for the given actor. Note that the animation length and remaining time may vary from player to player due to different game states or localities. This function will query the maximum length and maximum remaining time of all players when there are different values. Note that you may only do 512 animation length queries maximum in a single game. Use the "Last Animation Query" function to get a handle to this query which can be used to get the information retrieved after the query is complete.
AnimLengthQueryByProps - New - Starts a query for the animation length of the specific animation props for the given actor. Note that the animation length time may vary from player to player due to different game states or localities. This function will query the maximum length time of all players when there are different values. Note that you may only do 512 animation length queries maximum in a single game. Use the "Last Animation Query" function to get a handle to this query which can be used to get the information retrieved after the query is complete.
AnimWait - New - Waits until an animation is a specified amount of seconds from the offset type. Note that the animations and animation times may vary from player to player due to different game states or localities so this waits for all players to report that they have reached the specified point.
AnimLengthQueryWait - New - Waits until all queries sent with "Query Animation Length" functions have been received for all players.
AnimLengthRemainingSync - New - Returns the animation time remaining previously queried. Pass this function the handle returned by the "Last Animation Query" functions to get the value, but make sure that you call Wait for Animation first to ensure that the animation query is finished. This function is only valid with a handle created by "Query Animation Length By Name".
AnimLengthSync - New - Returns the animation length previously queried. Pass this function the handle returned by the "Last Animation Query" to get the value, but make sure that you call Wait for Animation Length Queries first to ensure that the animation query is finished.
Unit
Charges
UnitAbilityGetChargeRegen - Updated - Returns the charge regen time remaining for the specified ability charge link.
UnitAbilityGetChargeRegenFull - New - Returns the full charge regen time for the specified ability charge link. If Adjustment Only is true, it will only return the "bonus" amount added to (or subtracted from) the full regen time.
UnitAbilityAddChargeRegenRemaining - New - Adds to the current amount of time remaining to regenerate the specified ability charge link.
UnitAbilityAddChargeRegenFull - New - Adds to the amount of time it takes to regenerate the specified ability charge link.
UnitGetChargeRegen - Updated - Returns the charge regen time remaining for the specified unit charge link.
UnitGetChargeRegenFull - New - Returns the full charge regen time for the specified unit charge link. If Adjustment Only is true, it will only return the "bonus" amount added to (or subtracted from) the full regen time.
UnitAddChargeRegenRemaining - New - Adds to the amount of time remaining to regenerate the specified unit charge link.
UnitBehaviorGetChargeRegenFull - New - Returns the full charge regen time for the specified ability charge link. If Adjustment Only is true, it will only return the "bonus" amount added to (or subtracted from) the full regen time.
UnitBehaviorAddChargeRegenRemaining - New - Adds to the amount of time remaining it takes to regenerate the specified behavior charge link.
UnitBehaviorAddChargeRegenFull - New - Adds to the amount of time it takes to regenerate the specified ability charge link.
PlayerGetChargeRegenFull - New - Returns the charge regen time for the specified player charge link. If Adjustment Only is true, it will only return the "bonus" amount added to (or subtracted from) the full regen time.
PlayerAddChargeRegenFull - New - Adds to the full amount of time it takes to regenerate the specified player charge link.
PlayerAddChargeRegenRemaining - New - Adds to the amount of time remaining to regenerate the specified player charge link.
GameGetChargeRegenFull - New - Returns the charge regen time for the specified global charge link. If Adjustment Only is true, it will only return the "bonus" amount added to (or subtracted from) the full regen time.
GameAddChargeRegenFull - New - Adds to the amount of time to regenerate the specified global charge link.
GameAddChargeRegenRemaining - New - Adds to the amount of time remaining to regenerate the specified global charge link.
Healing
TriggerAddEventUnitHealed - New - This event fires when a unit is healed through effects. Use "Healing Unit" to get the unit casting the heal. Use "Healing Player" to get the owner of the unit that is dealing damage. Use "Triggering Heal Given" to get the amount healed. Use "Triggering Heal Vital Type" to get the vital type that was healed. Use "Triggering Player" to get the owner of the unit that is healed. Use "Triggering Unit" to get the unit that is healed.
EventUnitHealLaunchUnit - New - Returns the Casting unit.
EventUnitHealVital - New - Returns the triggering heal vital type.
EventUnitHealLaunchPlayer - New - Returns the healing player.
EventUnitHealEffect - New - Returns the healing effect.
EventUnitHealAmount - New - Returns the triggering heal amount.
Behavior
UnitBehaviorDuration - Updated - Gets a behavior remaining duration on a unit.
UnitHasBehavior - Updated - Returns true if the specified unit has the specified behavior. (Deprecated: Actually just returns true if the stack count for this behavior is > 0)
UnitHasBehavior2 - New/Updated (This is a replacement function) - Returns true if the specified unit has the specified behavior.
TriggerAddEventUnitDamageAbsorbed - New - This event fires when a unit absorbs damage due to a behavior damage response. Use "Triggering Unit" to get the unit that absorbed damage. Use "Triggering Behavior" to get the behavior that absorbed damage on the unit. Use "Triggering Damage Absorbed" to get the amount of damage absorbed. Use "Damaging Unit" and "Damaging Player" to get the unit and player that caused the damage.
EventUnitDamageBehaviorShield - New - Returns the triggering damage amount absorbed by behavior shields (Damage Response Modify Limit)3
UnitConjoinedGroup - New - Returns the conjoined group of a unit given a conjoined behavior
UnitBehaviorDurationTotal - New - Gets a behavior duration on a unit.
Utility
UnitGetName - New - Returns the name of a specific unit. This function should be preferred if you wish to account for behavior-based name overrides rather than displaying the name of the unit type.
UnitOrderIsAcquired - New - Returns true if the unit's indexed order has been acquired rather than issued explicitly.
UnitAbilitySpendExplicit - New - Activates the specified cooldowns on the specified ability on the specified unit. In most cases, this will cause the ability to act as if it had just been used.
UnitModifyCooldown - New - Modifies current cooldown time for the specified unit cooldown link.
UnitOrderGetProgress - New - Get the progress of the current order for the given unit.
EventItemAbilityOrUnitAbility - New - If the ability was triggered by an item, it returns the items ability. Otherwise it returns the triggering ability.
EventUnitAbilityOtherUnit - New - Returns the "other unit" when an ability is used. For inventory abilities, this is the item used. For transports, it's the unit being unloaded.
UnitGetMoverLink - New - Returns the mover of the unit.
Veterancy
UnitXPGetCurrentXP - New - Returns the current xp of a unit
EventUnitVictimUnit - New - Returns the victim unit of the event. Used in response to "Unit Gains Experience".
UnitXPSetCurrentXP - New - Sets the current xp of a unit
EventUnitItemUsed - New - Returns the item used in the event. Used in response to "Unit Gains Experience".
UnitXPGetCurrentLevel - New - Returns the current level of a unit
UnitXPGetXPForLevel - New - Returns the total xp required for a specific level
UnitXPAddXP - New - Adds XP to the current unit
UnitXPGetNumLevels - New - Returns the number of levels available for a unit
UnitXPSetXPForLevel - New - Sets the required xp for a specific level
UnitXPSetCurrentLevel - New - Sets the current level of a unit
EventUnitEffectUsed - New - Returns the effect used. Used in response to "Unit Gains Experience".
Combat
EventUnitDamageVitalsLeeched - New - Returns the vitals leeched by the damaging unit.
UnitInRangeAndAbleToAttackTarget - New - Returns true if the specified unit is in range and currently able to attack the given target. This function does not factor in is weapon cooldowns.
EventUnitDamageAttemptedVitals - New - Returns the triggering damage amount attempted to vitals. This is the damage done before clamping against the amount of life the target unit has. Modified by damage responses.
UnitWeaponRange - New - Returns a unit's weapon range.
EventUnitDamageKillXP - Returns the kill XP value of the triggering unit.
UnitGetDamageTakenTime - New - Returns time for how long it's been since the unit has taken damage.
UnitWeaponSetPeriodRemaining - New - Set the remaining cooldown to 0 to let the weapon fire as soon as possible.
UnitGetDamageDealtTime - New - Returns time for how long it's been since the unit has dealt damage.
General
ImageToString - New - Converts an image to a string value.
ConvertStringToPoint - New - Converts a string value to a point value.
ConvertPresetToIdentifier - New - Converts a preset value to a string containing the identifier of the value. The preset must enable the Generate Identifier Conversion Function option for this to work.
ConvertStringToUILayoutFrameName - New - Converts a string value to a relative UI layout frame name.
ConvertPointToString - New - Converts a point value to a string value.
ConvertStringToBoolean - New - Converts a string value to a boolean value.
StringCompare - New - Returns 0 if the two strings are the same. Positive value means first character that doesn't match is greater in String1. Negative means it's greater in String2.
UI
UISetMiniMapBounds - New - Sets the Minimap Bounds to the specified Region.
UISetTargetingOrder - New - Setting the unit group to a unit group other than "null" will enter targeting mode for the specified unit group even if they are not selected. This unit group must remain referenced until targeting is completed. Setting the order to "No Order" will end targeting mode. Setting the order as "sticky" will keep it active until canceled or another order is set.
HelpPanelAddMessage - New - Creates a new entry to the message log panel. If speaker text and subtitle text are left blank they will be filled in with values from the sound link.
UIShowStandardMenu - New - Show the Game Menu (F10 Menu).
UISetGameMenuItemShortcut - New - Sets the shortcut keyboard key of a specified menu item in the game menu. Allows customization of the F10 menu.
TriggerAddEventHotkeyPressed - New - Only register for this event when you absolutely need it, as it will generate network traffic from all players for every hotkey they press. This event fires when a player presses the specified hotkey. Use "HotKey Pressed" to get the hotkey that was pressed.<n/>WARNING: If code handles the hotkey press (for example, Army Select is pressed and code responds by selecting all army units), this event WILL NOT fire!
UIHotKeyString - New - Returns the localized text for a given hot key, such as "Alt + G"
TriggerAddEventMouseWheel - New - Only register for this event when you absolutely need it, as it will generate network traffic from all players for every mouse wheel move they make. This event fires when a player moves the mouse wheel. Use "Mouse Wheel Spin" to get the amount the mouse wheel moved.
EventMouseWheelSpin - New - Returns the number of mouse wheel clicks. The number may be fractional. Use in response to a "Mouse Wheel" event.
Catalog
CatalogFieldValueGetFlagsAsInt - New - Returns the value of a CFlags or CFlagArray field for an entry as an integer so bitwise math can be done on it. Use catalog lookup functions to retrieve a data value or other information from the game data. To find the name of a field path, open the data editor and turn on View Raw Data.
CatalogFieldValueModify - New - Modifies the value of a field for an entry. To find the name of a field path, open the data editor and turn on View Raw Data. For example, if you wanted to set the unit for the first index of a train ability, your field path string would be "InfoArray[0].Unit".
CatalogReferenceModify - New - Modifies the value of a field for an entry. To find the name of a field path, open the data editor and turn on View Raw Data. For example, if you wanted to set the unit for the first index of a train ability, your field path string would be "InfoArray[0].Unit".
Triggers
TriggerDebugSetTypeFilter - New - Enable or disable various filters for debug messages. By default all filters are off and must be enabled if you want filtering to occur.
RegisterEvents - New - When used in a custom event definition, this associates one or more native events with the custom event. When used in a trigger, this dynamically registers new events with the trigger. Note that registering the same event with a trigger multiple times may cause it to execute multiple times in response to the event, so that should generally be avoided.
TriggerEventParamName - New - Returns the name of a generic event parameter which can be used within the local data table to store or access event parameters. Store parameters in the table before calling Send Generic Event, and access them in response to the event.
TriggerDebugOutputEnable - New - Enable or disable debug messages
TriggerCurrentTriggerThreadSetFlags - New - This is only used to set flags on the current galaxy thread so that the internal execution can know what type of thread is being executed.
Pathing and Path Display
UnitPathableToPoint - New - This returns whether or not the unit can path to the specified point.
UnitPathableToUnit - New - This returns whether or not the unit can path to the specified unit.
PathSetMinimumTravelDistance - New - Travel distance measures the accumulated separation between each turn on a path.
PathGetMinimumLinearDistance - New - Linear distance is "as the crow flies" - it ignores all pathing obstacles.
UnitGetGoalPosition - New - Returns the goal (target) position of a unit.
MidPoint - New - Returns the point half-way between the two given points..
PointInterpolate - New - Returns a point along the line defined by the two given points. The position along the line is determined by the given fraction. 0.0 means the source point, 1.0 means the target point, and 0.5 means half-way between the two. Values outside the 0.0 to 1.0 range result in valid extrapolations along the line beyond the given points.
PathSetMinimumLinearDistance - New - Linear distance is "as the crow flies" - it ignores all pathing obstacles.
DistanceSquaredBetweenPoints - New - Returns the squared distance between two points as a real value.
PathGetMinimumTravelDistance - New - Travel distance measures the accumulated separation between each turn on a path.
Objective
ObjectiveSetPriority - New - Determines which order objectives will display in. Larger priorities will appear higher in the list. The default priority for an objective is -1.
ObjectiveSetFirst - New - Places the objective at the end of the list, causing it to display below all other existing objectives. Objectives created later will still be added after this objective.
ObjectiveSetLast - New - Places the objective at the start of the list, causing it to display above all other objectives.
Sound
SoundSetReverbForPlayers - New - Sets sound reverb for specific players
SoundPlayAtPointForPlayer - New - Plays a sound at a point for the specified player group. Use the "Last Played Sound" function to refer to this sound.
SoundPlayOnUnitForPlayer - New - Plays a sound at a unit for the specified player group. Use the "Last Played Sound" function to refer to this sound.
SoundPlayForPlayer - New - Plays a sound for the specified player group. Use the "Last Played Sound" function to refer to this sound.
SoundPlaySceneForPlayer - New - Plays a sound for the specified players, and plays the specified animation on the specified units. The animation on the units will be sync'd up with the sound.
SoundSetListenerGender - New - The listener gender will be used to look for alternate sound data associated with voice overs.
Conversation
ConversationDataLineSetPlayers - New - Set the conversation line to only play for the given players. This overrides the players associated with the entire conversation, but cannot add players that are not viewing the conversation itself.
TransmissionSendForPlayerSelect - New - Sends a transmission with sound and an optional portrait actor to the specified players from a source unit or model. Use "Last Sent Transmission" to refer to this transmission after it has begun.
TransmissionSendForPlayer - New - Sends a transmission with sound and an optional portrait actor to the specified players from a source unit or model. Use "Last Sent Transmission" to refer to this transmission after it has begun.
TransmissionPlayerHasActiveTransmission - New - Returns whether any transmissions are active for the specified player.
DataConversationLinesWithTag - New - Tags may be defined for lines or groups within the conversation data in the Data module.
ConversationDataLineResetPlayers - New - Reset the conversation line to play for the default players associated with the entire conversation.
ConversationDataGetSpeaker - New - Returns the speaker character associated with the given conversation line.
TransmissionClearGroup - New - Immediately stops transmissions that are currently playing / being sent for a player group. Any triggers that are waiting for such transmissions to finish will resume execution.
ConversationDataLineHideForObservers - New - When hidden, the line will never be played for observers. When showing, the line will be played as long as it is visible to any player being observed.
TransmissionSourceSetBypassMessageLog - New - If the bypass message log flag is set to true then the text from this transmission will not be added to the message log.
Commander
PlayerCommander - New - Returns the commander of the player.
PlayerSetCommander - New - Sets the commander of the specified player.
PlayerSetCommanderLevel - New - Sets the commander level of the specified player.
PlayerCommanderLevel - New - Returns the commander level of the player.
Vision
VisResetFoWAlpha - New - Reset a player's Fog of War transparency level to the default value.
InShrub - New - Returns whether a point is in a shrub.
VisSetFoWAlpha - New - Override a player's Fog of War transparency level. (0 = transparent, 100 = opaque)
PlayerSetBounds - New - This does not affect pathing. Passing in a null region will reset to the global playable bounds. The provided region will be clamped within the global playable bounds.
VisGetFoWAlpha - New - Get a player's Fog of War transparency level. (0 = transparent, 100 = opaque)
VisFillArea - New - Fill the specified region for the specified player with visibility of fogged, masked, hidden or unexplored.
Camera
CameraFollowUnitGroupGet - New - Follows a unit group with the camera.
CameraForceFollowUnitGroup - New - Toggles whether the camera is forced to follow the active follow unit group. If it is not forced to follow then it will rely on the player's local follow state.
Ping
PingCreateWithPlayerId - New - Creates a minimap ping using the facing angle of a point. Use "Last Created Ping" to refer to the created ping.
PingCreateFromData - New - Creates a minimap ping using the facing angle of a point. Use "Last Created Ping" to refer to the created ping.
PingSetObserver - New - When true ping will display for observers regardless of whether they are viewing the game through everyone vision, or player vision.
EventPingOption - New - Returns an index into the specific ping option chosen in the ping panel.
MinimapPingPossibleEnemyStartLocations - New - Pings the minimap at each possible enemy spawn location of the local player. This ping cannot be modified after it is created. Use a "Create Ping" action to create a more customizable ping that can be modified after creation.
Player
PlayerSetRace - New - Sets the race of the specified player.
PlayerSetDeathTimer - New - Sets the death timer for the specified player.
KickFromGame - New - Kicks every player in the specified player group from the game
PlayerAddLabel - New - Model aspects can be controlled based on which labels a player has.
PlayerRemoveLabel - New - Removes the specified label from the player.
PlayerRemoveAllLabels - New - Removes all labels from the specified player.
PlayerHasLabel - New - Returns true if the player has the specified label.
Text
TextTagSetGravity - New - Sets the acceleration on the Z axis at which a text tag will adjust its velocity.
TextExpressionSetToken - New - Assigns a text value to an arbitrary token for use in a text expression. Use the 'Main' preset value as the token to set the expression text itself. Use the function 'Text Expression' to evaluate the final text with all token values in place.
TextExpressionAssemble - New - Evalutes the given text expression with all token values in place. Token values may be set using 'Set Text Expression Token'.
TriggerAddEventAlert - New - Event that occurs when a player receives an alert.
EventAlert - New - Returns the triggering alert.
StopTimer - New - Stops a timer, making its elapsed and remaining time 0.
TimerGetRemaining - Updated - Returns the remaining amount of time left on the specified timer. Note that due to rounding limitations, the remaining time of an expired timer may be slightly negative rather than exactly zero. Make sure to check for less than or equal to zero to account for this.
TriggerAddEventPlayerJoin - New - This event fires when a player joins the game. Use "Triggering Player" to get the player.
TriggerAddEventCommandError - New - Event that occurs when a player recieves a command error.
EventCommandErrorValue - New - Returns the triggering command error.
EventCommandErrorAbilCmd - New - Returns the ability command that was being issued when the command error was hit.
AttachModelToActor2 - Updated/New (This is a replacement function) - Creates a generic actor with the specified model attached to an actor at the specified attach point. Use "Last Created Actor" to get the attached model's actor.
AttachModelToUnitInheritVisibility - New - Creates a generic actor with the specified model attached to a unit at the specified attach point. Use "Last Created Actor" to get the actor. If the unit is hidden, the attached model will also be hidden.
GameMapPath - New - Returns the path of the map currently being played.
PointFacingAngle - New - Returns a point with the position of the specified point, and the facing of the specified angle.
TriggerAddEventPlayerEffectUsedFromScope - New - This event fires when an effect from the specified scope is used by the specified player.
AISetBullyRebuildDelay - New - Sets the delay time before the AI starts trying to replace missing bullies for a player.
cai_getLastWave - New - Returns the wave data associated with the last attack wave created for an AI personality defined in the AI module. This may correspond to any wave definition. To get the last wave for a specific wave definition, use Attack Wave Last Created Wave.
cai_wave_createdWave - Updated - Returns the wave data associated with the last attack wave created for a specific wave definition within an AI personality defined in the AI module. To get the last wave for the personality regardless of wave definition, use Last Created Wave for Personality.
ArithmeticInt2 - New - Returns the bitwise operator of the specified integer values.
ArithmeticIntMult2 - New - Returns the bitwise operation of the specified integer values in multiple instances.
Added some more natives. I probably need to go back and do some organizing/formatting. Right now I'm just taking each native and finding its corresponding hint text.
The recconect feature is one of the most important things to be implemented or at least let others players not get affected by someones lag, current system is just ridiculous.
Agreed that is nice. Current system is not ridiculous though, unless you prefer much larger replay files, and rubberbanding instead.
I'll post more natives tomorrow, but let me simply state something: You either get SC2 system of player holding everyone up, or you get rubberbanding. It is impossible to avoid both.
Currently, if one wants to see where a trigger element is used, you have to open up the Overview manager, switch to triggers, and then find the relevant element. Or you can choose to right click and select “View in Overview Manager”. This does work, however, the overview manager is slow, because it must display the usage of ALL trigger elements. This new option allows one to view just the elements you select. This way, it will be MUCH faster, and much more smooth.
I didn't know about that. Actually if I want to know where a trigger is used I just delete it and a warning message comes up telling you where it is used before it allows you to delete. and simply click on "no" when it asks you to confirm the deletion. This is instant and easy :D
Quote:
It appears we will be able to load triggers from another document into the current one. This would allow one to edit related triggers to the current document (possibly from a dependency) without having to open the other file entirely. Currently if one switches documents in the editor, it can be quite slow, since it has to load everything from that document (Triggers, Data, UI, Terrain, etc.)
We have libraries already so we can see what the code is from elsewhere. Also the editor does not load everything from another document AFAIK. If you only have the trigger editor open only the triggers are loaded. If you then open the terrain editor you will have to wait while it loads the terrain seperately. Or at least that's the way it seems. This might save a little bit of time but doesn't seem that useful. Hopefully there is a way to turn it off because I would rather they be read only so I can't accidentally mess with them unless I deliberately open up those libraries to change them.
The script prefixing and presets will make working with both GUI and script a lot easier. Unfortunately I'm using a bunch of old GUI stuff I wrote before I could figure out how to write galaxy script and it's a pain dealing with both at the same time. But if they simply showed you how you can write the script instead of hiding it away then those who prefer to write code can do so and will probably skip the GUI alltogether like I would have.
A few new toys in the new triggers but nothing big. I'm curious to know what a commander is though. What is the commander of a player?
These all sound pretty neat~ About the Commander ones, are they Blizzard-only? Any signs that we can make custom commanders? It would be very useful for making multiple techtrees per race.
It would be nice if they gave us the option of rubberbanding or everyone lags in map gameplay options. Some maps could be fine with rubberbanding, and some need the everyone lags. Also is there a event to detect when a player disconnects by rubberbanding? Then you could do stuff based on the player.
Not possible. Rubberbanding is a consequence of your computer guessing what the game should be, and guessing wrong and be corrected by the server. SC2 fundamentally doesn't do that, it has no such server, everyone is playing the same game at all times, no guessing allowed.
Hey man thx for the list. I see some improvements for working with unit's weapons which i needed some time ago. Nice. Could you plz search if there are UnitAddAbility function like the one in wc3? I know there are items workaround for this, but it requires some ui work ;(
I saw that you can now change race for the player, if you want. Does it include UI too? If so, that's exactly what I'd want for one of my campaigns. :)
Hey man thx for the list. I see some improvements for working with unit's weapons which i needed some time ago. Nice. Could you plz search if there are UnitAddAbility function like the one in wc3? I know there are items workaround for this, but it requires some ui work ;(
No such things ,but you can display other unit's command card, kind of a alter way.
I saw that you can now change race for the player, if you want. Does it include UI too? If so, that's exactly what I'd want for one of my campaigns. :)
Yes it would change the UI, and musics, and everything.
It's also the ultimate solution for custom race picking.
Cool, so it kinda works like Dawn of War: Winter Assault, then. Remember, in the campaigns where you could change races and even the UI changed and stuff? That's what I meant.
Cool, so it kinda works like Dawn of War: Winter Assault, then. Remember, in the campaigns where you could change races and even the UI changed and stuff? That's what I meant.
Currently, if one wants to see where a trigger element is used, you have to open up the Overview manager, switch to triggers, and then find the relevant element. Or you can choose to right click and select “View in Overview Manager”. This does work, however, the overview manager is slow, because it must display the usage of ALL trigger elements. This new option allows one to view just the elements you select. This way, it will be MUCH faster, and much more smooth.
I didn't know about that. Actually if I want to know where a trigger is used I just delete it and a warning message comes up telling you where it is used before it allows you to delete. and simply click on "no" when it asks you to confirm the deletion. This is instant and easy :D Quote:
It appears we will be able to load triggers from another document into the current one. This would allow one to edit related triggers to the current document (possibly from a dependency) without having to open the other file entirely. Currently if one switches documents in the editor, it can be quite slow, since it has to load everything from that document (Triggers, Data, UI, Terrain, etc.)
We have libraries already so we can see what the code is from elsewhere. Also the editor does not load everything from another document AFAIK. If you only have the trigger editor open only the triggers are loaded. If you then open the terrain editor you will have to wait while it loads the terrain seperately. Or at least that's the way it seems. This might save a little bit of time but doesn't seem that useful. Hopefully there is a way to turn it off because I would rather they be read only so I can't accidentally mess with them unless I deliberately open up those libraries to change them.
The script prefixing and presets will make working with both GUI and script a lot easier. Unfortunately I'm using a bunch of old GUI stuff I wrote before I could figure out how to write galaxy script and it's a pain dealing with both at the same time. But if they simply showed you how you can write the script instead of hiding it away then those who prefer to write code can do so and will probably skip the GUI alltogether like I would have.
A few new toys in the new triggers but nothing big. I'm curious to know what a commander is though. What is the commander of a player?
These all sound pretty neat~ About the Commander ones, are they Blizzard-only? Any signs that we can make custom commanders? It would be very useful for making multiple techtrees per race.
Commanders are NOT AI things.
It's part of a Key feature of the Void: Allied Command. Of course you can create Custom Commanders.
Now that I’ve looked through the editor strings, I’ve gotten a better idea of the things changing in Legacy of the Void Editor
We should be getting it soon, since Void ships in 2 months.
Going to go over the various change that are coming in the trigger editor, both in terms of menus, options, and some other new built in library functions. There is also a large number of new native functions, which I’ll also list at the end, along with their hint text. I'm only including the SC2 specific stuff, and not any that are restricted (Blizzard only).
Trigger Editor Function Changes
View Trigger Usage
Currently, if one wants to see where a trigger element is used, you have to open up the Overview manager, switch to triggers, and then find the relevant element. Or you can choose to right click and select “View in Overview Manager”. This does work, however, the overview manager is slow, because it must display the usage of ALL trigger elements. This new option allows one to view just the elements you select. This way, it will be MUCH faster, and much more smooth. The view usage can also be filtered to further make it easier to sort what is using the selected elements. It will provide the type of element using the element (Variable, Action, Preset, Function, Event, etc.), how many times, is it a local use, and what library is using it, and the state of the element (Is it disabled or not).
Load/Save Extra Data
It appears we will be able to load triggers from another document into the current one. This would allow one to edit related triggers to the current document (possibly from a dependency) without having to open the other file entirely. Currently if one switches documents in the editor, it can be quite slow, since it has to load everything from that document (Triggers, Data, UI, Terrain, etc.)
Function Options
Inlining
They are adding an option to make a function inline. What this does is take actions/functions/conditions that are one action/line and instead of calling the inlined function, it simply replaces the place where a function call would occur with the function body.
For example, if we had a function called sum, that returns the sum of two numbers, it would have 2 parameters (integers for this example), and would have a single action, return param1 + param2. So the code would look like this
And if I were to call it, it would look like this
This is inefficient because you have the overhead of a function call, slowing things down. With inlining, the code would be converted to the following instead
Here, the parameters were substituted in and the call entirely replaced. For this reason, inline functions will only work if they are one action.
This provides a performance boost to code that calls such simple functions repeatedly, like something that does conversions from one type to another.
Script prefixing option
Currently, the editor, when generating the script code from gui, automatically adds prefixes to the functions, usually to separate function names from different libraries. It also does this to associate functions with triggers vs those that are not. This option will let you remove those prefixes, so a function is named precisely what you specify.
Preset Constants and Retrieval
Currently, when you create Presets, you assign a type to them, and then use them. But if you want to use them as their actual type (Integer, Real, etc.), you have to write your own function to convert them, so they are accepted by GUI. An option is being added for Presets that will autogenerate a conversion function for that Preset.
There is also an option being added to make Preset values generate constant variables and uses those instead of literal values. Normally when you use a Preset in GUI, its literal value gets substituted in at the point of usage. WIth this option, it will use a constant variable instead, which can make the code more readable, since you will be able to see that a Preset was used at that location, instead of just another value.
Debugger
The debugger has 2 major new capabilities. First, it can now filter variables and functions. For larger projects, this is crucial to help find problematic functions or to simply find the variable you want to keep track of.
Second, you can now view and set breakpoints in all scripts that are included/running on the map. Currently, you can only do breakpoints and view the script of the map itself, and none of the ones contained in dependencies.
New Natives
Will be doing this soon. Long list and not as easy as reading and finding the above stuff. Format will be
Name of Action/Event/Condition - New or Updated (some simply received updated hint text) - Hint Text
EffectHistory
EffectHistoryGetTime - New - Returns the game time (in seconds) when the effect that was logged in the Effect History at the specified Index occurred.
EffectHistoryGetEffect - New - If the Effect parameter is set to Root, this will return the effect that was at the root of the effect tree for the effect that was logged in the Effect History at the specified Index. If the Effect parameter is set to Current, then this will return the effect that was logged in the Effect History at the specified Index.
EffectHistoryGetType - New - Returns the type of effect that was logged in the Effect History at the specified Index. The type for the effect is set in the effect data in the Caster History field.
EffectHistoryGetWeapon - New - Returns the weapon that originated the effect that was logged in the Effect History at the specified Index. If the effect came from an ability rather than a weapon, this will return No Game Link.
EffectHistoryGetAbil - New - Returns the ability that originated the effect that was logged in the Effect History at the specified Index. If the effect came from a weapon rather than an ability, this will return No Game Link.
EffectHistoryCount - New - Returns the number of entries in the specified Effect History. Use Effect History Of Unit to get an Effect History.
UnitEffectHistory - New - Returns an Effect History object that can be used to inspect the history of effects for a unit. In order for a unit to register effects to its history, the unit must specify an Effect History Limit value, and any effects you want to track must specify a Caster History value. The Caster History value specifies the category under which you want to track the effect. You can use Effect History Entry Type to query the category for an Effect History entry. A max count of 0 (the default) will get all available entries.
Dialog and Dialog Item
SetDialogItemAnimationIndex - New - This controls the current animation index for the dialog item. Supported for Dialog Items of type Image
SetDialogItemFillColor - New - Sets the fill color for a dialog item.
SetDialogItemPlayerId - New - Sets the target playerId for a dialog item. Only used by Hero Cutscene dialog items.
DialogSetPositionRelativeToUnitWithAnchor - New - Moves a dialog to the specified anchor, relative to the specified attachment point of the specified unit, with the specified offsets.
DialogGetRenderPriority - New - Returns the render priority for the specified dialog.
DialogSetRenderPriority - New - Sets the render priority for the specified dialog. Dialogs with higher render priorties are rendered on top of dialogs with lower render priorities.
ScreenLabelDialog - New - Returns the dialog the specified screen label to. Use "Display Screen Label" to create screen labels.
DisplayScreenLabel - New - Creates a screen image, with an identifier chosen by the ScreenImageID parameter, at the specified anchor, with the specified size and offset.
HideScreenImage2 - New - Shows or hides a screen label. Use "Display Screen label" to create screen labels.
SetDialogItemBorderColor - New - Sets the border color for a dialog item.
DialogControlSendAnimationEvent - New - Sends an animation event to a dialog item. Animations are defined in the layout of a dialog item. All animations that are listening to this event on this dialog item will trigger their defined action.
SetDialogItemStateIndex - New - Sets a Dialog Item's State Index. Currently supported for type Image.
SetDialogItemSubmenu - New - Sets the submenu for a dialog item. Only used by Command Panel dialog items.
SetDialogItemScoreValueLink - New - Sets a Dialog Item's Score Value Link. Currently supported for type ScoreValueFrame
ScreenLabelDialogItem - New - Returns the dialog item that is the specified screen label. Use "Display Screen Label" to create screen labels.
SetDialogItemUnitGroup - New - Sets the unit group for a dialog item. Only used by Command Panel dialog items.
SetDialogItemtoUseAspectUncorrection - New - By default, the offset X and offset Y values of a dialog item's position will be corrected for the aspect ratio of the window showing the game. This function is to prevent that conversion from happening. It's useful for cases where you want to feed in design coordinates and not have them aspect corrected.
DialogControlRequestFocus - New - Currently supported for Dialog Items of type EditBox
Animation
AnimLengthQueryByName - New - Starts a query for the animation length and animation time remaining of the specific animation name for the given actor. Note that the animation length and remaining time may vary from player to player due to different game states or localities. This function will query the maximum length and maximum remaining time of all players when there are different values. Note that you may only do 512 animation length queries maximum in a single game. Use the "Last Animation Query" function to get a handle to this query which can be used to get the information retrieved after the query is complete.
AnimLengthQueryByProps - New - Starts a query for the animation length of the specific animation props for the given actor. Note that the animation length time may vary from player to player due to different game states or localities. This function will query the maximum length time of all players when there are different values. Note that you may only do 512 animation length queries maximum in a single game. Use the "Last Animation Query" function to get a handle to this query which can be used to get the information retrieved after the query is complete.
AnimWait - New - Waits until an animation is a specified amount of seconds from the offset type. Note that the animations and animation times may vary from player to player due to different game states or localities so this waits for all players to report that they have reached the specified point.
AnimLengthQueryWait - New - Waits until all queries sent with "Query Animation Length" functions have been received for all players.
AnimLengthRemainingSync - New - Returns the animation time remaining previously queried. Pass this function the handle returned by the "Last Animation Query" functions to get the value, but make sure that you call Wait for Animation first to ensure that the animation query is finished. This function is only valid with a handle created by "Query Animation Length By Name".
AnimLengthSync - New - Returns the animation length previously queried. Pass this function the handle returned by the "Last Animation Query" to get the value, but make sure that you call Wait for Animation Length Queries first to ensure that the animation query is finished.
Unit
Charges
UnitAbilityGetChargeRegen - Updated - Returns the charge regen time remaining for the specified ability charge link.
UnitAbilityGetChargeRegenFull - New - Returns the full charge regen time for the specified ability charge link. If Adjustment Only is true, it will only return the "bonus" amount added to (or subtracted from) the full regen time.
UnitAbilityAddChargeRegenRemaining - New - Adds to the current amount of time remaining to regenerate the specified ability charge link.
UnitAbilityAddChargeRegenFull - New - Adds to the amount of time it takes to regenerate the specified ability charge link.
UnitGetChargeRegen - Updated - Returns the charge regen time remaining for the specified unit charge link.
UnitGetChargeRegenFull - New - Returns the full charge regen time for the specified unit charge link. If Adjustment Only is true, it will only return the "bonus" amount added to (or subtracted from) the full regen time.
UnitAddChargeRegenRemaining - New - Adds to the amount of time remaining to regenerate the specified unit charge link.
UnitBehaviorGetChargeRegenFull - New - Returns the full charge regen time for the specified ability charge link. If Adjustment Only is true, it will only return the "bonus" amount added to (or subtracted from) the full regen time.
UnitBehaviorAddChargeRegenRemaining - New - Adds to the amount of time remaining it takes to regenerate the specified behavior charge link.
UnitBehaviorAddChargeRegenFull - New - Adds to the amount of time it takes to regenerate the specified ability charge link.
PlayerGetChargeRegenFull - New - Returns the charge regen time for the specified player charge link. If Adjustment Only is true, it will only return the "bonus" amount added to (or subtracted from) the full regen time.
PlayerAddChargeRegenFull - New - Adds to the full amount of time it takes to regenerate the specified player charge link.
PlayerAddChargeRegenRemaining - New - Adds to the amount of time remaining to regenerate the specified player charge link.
GameGetChargeRegenFull - New - Returns the charge regen time for the specified global charge link. If Adjustment Only is true, it will only return the "bonus" amount added to (or subtracted from) the full regen time.
GameAddChargeRegenFull - New - Adds to the amount of time to regenerate the specified global charge link.
GameAddChargeRegenRemaining - New - Adds to the amount of time remaining to regenerate the specified global charge link.
Healing
TriggerAddEventUnitHealed - New - This event fires when a unit is healed through effects. Use "Healing Unit" to get the unit casting the heal. Use "Healing Player" to get the owner of the unit that is dealing damage. Use "Triggering Heal Given" to get the amount healed. Use "Triggering Heal Vital Type" to get the vital type that was healed. Use "Triggering Player" to get the owner of the unit that is healed. Use "Triggering Unit" to get the unit that is healed.
EventUnitHealLaunchUnit - New - Returns the Casting unit.
EventUnitHealVital - New - Returns the triggering heal vital type.
EventUnitHealLaunchPlayer - New - Returns the healing player.
EventUnitHealEffect - New - Returns the healing effect.
EventUnitHealAmount - New - Returns the triggering heal amount.
Behavior
UnitBehaviorDuration - Updated - Gets a behavior remaining duration on a unit.
UnitHasBehavior - Updated - Returns true if the specified unit has the specified behavior. (Deprecated: Actually just returns true if the stack count for this behavior is > 0)
UnitHasBehavior2 - New/Updated (This is a replacement function) - Returns true if the specified unit has the specified behavior.
TriggerAddEventUnitDamageAbsorbed - New - This event fires when a unit absorbs damage due to a behavior damage response. Use "Triggering Unit" to get the unit that absorbed damage. Use "Triggering Behavior" to get the behavior that absorbed damage on the unit. Use "Triggering Damage Absorbed" to get the amount of damage absorbed. Use "Damaging Unit" and "Damaging Player" to get the unit and player that caused the damage.
EventUnitDamageBehaviorShield - New - Returns the triggering damage amount absorbed by behavior shields (Damage Response Modify Limit)3
UnitConjoinedGroup - New - Returns the conjoined group of a unit given a conjoined behavior
UnitBehaviorDurationTotal - New - Gets a behavior duration on a unit.
Utility
UnitGetName - New - Returns the name of a specific unit. This function should be preferred if you wish to account for behavior-based name overrides rather than displaying the name of the unit type.
UnitOrderIsAcquired - New - Returns true if the unit's indexed order has been acquired rather than issued explicitly.
UnitAbilitySpendExplicit - New - Activates the specified cooldowns on the specified ability on the specified unit. In most cases, this will cause the ability to act as if it had just been used.
UnitModifyCooldown - New - Modifies current cooldown time for the specified unit cooldown link.
UnitOrderGetProgress - New - Get the progress of the current order for the given unit.
EventItemAbilityOrUnitAbility - New - If the ability was triggered by an item, it returns the items ability. Otherwise it returns the triggering ability.
EventUnitAbilityOtherUnit - New - Returns the "other unit" when an ability is used. For inventory abilities, this is the item used. For transports, it's the unit being unloaded.
UnitGetMoverLink - New - Returns the mover of the unit.
Veterancy
UnitXPGetCurrentXP - New - Returns the current xp of a unit
EventUnitVictimUnit - New - Returns the victim unit of the event. Used in response to "Unit Gains Experience".
UnitXPSetCurrentXP - New - Sets the current xp of a unit
EventUnitItemUsed - New - Returns the item used in the event. Used in response to "Unit Gains Experience".
UnitXPGetCurrentLevel - New - Returns the current level of a unit
UnitXPGetXPForLevel - New - Returns the total xp required for a specific level
UnitXPAddXP - New - Adds XP to the current unit
UnitXPGetNumLevels - New - Returns the number of levels available for a unit
UnitXPSetXPForLevel - New - Sets the required xp for a specific level
UnitXPSetCurrentLevel - New - Sets the current level of a unit
EventUnitEffectUsed - New - Returns the effect used. Used in response to "Unit Gains Experience".
Combat
EventUnitDamageVitalsLeeched - New - Returns the vitals leeched by the damaging unit.
UnitInRangeAndAbleToAttackTarget - New - Returns true if the specified unit is in range and currently able to attack the given target. This function does not factor in is weapon cooldowns.
EventUnitDamageAttemptedVitals - New - Returns the triggering damage amount attempted to vitals. This is the damage done before clamping against the amount of life the target unit has. Modified by damage responses.
UnitWeaponRange - New - Returns a unit's weapon range.
EventUnitDamageKillXP - Returns the kill XP value of the triggering unit.
UnitGetDamageTakenTime - New - Returns time for how long it's been since the unit has taken damage.
UnitWeaponSetPeriodRemaining - New - Set the remaining cooldown to 0 to let the weapon fire as soon as possible.
UnitGetDamageDealtTime - New - Returns time for how long it's been since the unit has dealt damage.
General
ImageToString - New - Converts an image to a string value.
ConvertStringToPoint - New - Converts a string value to a point value.
ConvertPresetToIdentifier - New - Converts a preset value to a string containing the identifier of the value. The preset must enable the Generate Identifier Conversion Function option for this to work.
ConvertStringToUILayoutFrameName - New - Converts a string value to a relative UI layout frame name.
ConvertPointToString - New - Converts a point value to a string value.
ConvertStringToBoolean - New - Converts a string value to a boolean value.
StringCompare - New - Returns 0 if the two strings are the same. Positive value means first character that doesn't match is greater in String1. Negative means it's greater in String2.
UI
UISetMiniMapBounds - New - Sets the Minimap Bounds to the specified Region.
UISetTargetingOrder - New - Setting the unit group to a unit group other than "null" will enter targeting mode for the specified unit group even if they are not selected. This unit group must remain referenced until targeting is completed. Setting the order to "No Order" will end targeting mode. Setting the order as "sticky" will keep it active until canceled or another order is set.
HelpPanelAddMessage - New - Creates a new entry to the message log panel. If speaker text and subtitle text are left blank they will be filled in with values from the sound link.
UIShowStandardMenu - New - Show the Game Menu (F10 Menu).
UISetGameMenuItemShortcut - New - Sets the shortcut keyboard key of a specified menu item in the game menu. Allows customization of the F10 menu.
TriggerAddEventHotkeyPressed - New - Only register for this event when you absolutely need it, as it will generate network traffic from all players for every hotkey they press. This event fires when a player presses the specified hotkey. Use "HotKey Pressed" to get the hotkey that was pressed.<n/>WARNING: If code handles the hotkey press (for example, Army Select is pressed and code responds by selecting all army units), this event WILL NOT fire!
UIHotKeyString - New - Returns the localized text for a given hot key, such as "Alt + G"
TriggerAddEventMouseWheel - New - Only register for this event when you absolutely need it, as it will generate network traffic from all players for every mouse wheel move they make. This event fires when a player moves the mouse wheel. Use "Mouse Wheel Spin" to get the amount the mouse wheel moved.
EventMouseWheelSpin - New - Returns the number of mouse wheel clicks. The number may be fractional. Use in response to a "Mouse Wheel" event.
Catalog
CatalogFieldValueGetFlagsAsInt - New - Returns the value of a CFlags or CFlagArray field for an entry as an integer so bitwise math can be done on it. Use catalog lookup functions to retrieve a data value or other information from the game data. To find the name of a field path, open the data editor and turn on View Raw Data.
CatalogFieldValueModify - New - Modifies the value of a field for an entry. To find the name of a field path, open the data editor and turn on View Raw Data. For example, if you wanted to set the unit for the first index of a train ability, your field path string would be "InfoArray[0].Unit".
CatalogReferenceModify - New - Modifies the value of a field for an entry. To find the name of a field path, open the data editor and turn on View Raw Data. For example, if you wanted to set the unit for the first index of a train ability, your field path string would be "InfoArray[0].Unit".
Triggers
TriggerDebugSetTypeFilter - New - Enable or disable various filters for debug messages. By default all filters are off and must be enabled if you want filtering to occur.
RegisterEvents - New - When used in a custom event definition, this associates one or more native events with the custom event. When used in a trigger, this dynamically registers new events with the trigger. Note that registering the same event with a trigger multiple times may cause it to execute multiple times in response to the event, so that should generally be avoided.
TriggerEventParamName - New - Returns the name of a generic event parameter which can be used within the local data table to store or access event parameters. Store parameters in the table before calling Send Generic Event, and access them in response to the event.
TriggerDebugOutputEnable - New - Enable or disable debug messages
TriggerCurrentTriggerThreadSetFlags - New - This is only used to set flags on the current galaxy thread so that the internal execution can know what type of thread is being executed.
Pathing and Path Display
UnitPathableToPoint - New - This returns whether or not the unit can path to the specified point.
UnitPathableToUnit - New - This returns whether or not the unit can path to the specified unit.
PathSetMinimumTravelDistance - New - Travel distance measures the accumulated separation between each turn on a path.
PathGetMinimumLinearDistance - New - Linear distance is "as the crow flies" - it ignores all pathing obstacles.
UnitGetGoalPosition - New - Returns the goal (target) position of a unit.
MidPoint - New - Returns the point half-way between the two given points..
PointInterpolate - New - Returns a point along the line defined by the two given points. The position along the line is determined by the given fraction. 0.0 means the source point, 1.0 means the target point, and 0.5 means half-way between the two. Values outside the 0.0 to 1.0 range result in valid extrapolations along the line beyond the given points.
PathSetMinimumLinearDistance - New - Linear distance is "as the crow flies" - it ignores all pathing obstacles.
DistanceSquaredBetweenPoints - New - Returns the squared distance between two points as a real value.
PathGetMinimumTravelDistance - New - Travel distance measures the accumulated separation between each turn on a path.
Objective
ObjectiveSetPriority - New - Determines which order objectives will display in. Larger priorities will appear higher in the list. The default priority for an objective is -1.
ObjectiveSetFirst - New - Places the objective at the end of the list, causing it to display below all other existing objectives. Objectives created later will still be added after this objective.
ObjectiveSetLast - New - Places the objective at the start of the list, causing it to display above all other objectives.
Sound
SoundSetReverbForPlayers - New - Sets sound reverb for specific players
SoundPlayAtPointForPlayer - New - Plays a sound at a point for the specified player group. Use the "Last Played Sound" function to refer to this sound.
SoundPlayOnUnitForPlayer - New - Plays a sound at a unit for the specified player group. Use the "Last Played Sound" function to refer to this sound.
SoundPlayForPlayer - New - Plays a sound for the specified player group. Use the "Last Played Sound" function to refer to this sound.
SoundPlaySceneForPlayer - New - Plays a sound for the specified players, and plays the specified animation on the specified units. The animation on the units will be sync'd up with the sound.
SoundSetListenerGender - New - The listener gender will be used to look for alternate sound data associated with voice overs.
Conversation
ConversationDataLineSetPlayers - New - Set the conversation line to only play for the given players. This overrides the players associated with the entire conversation, but cannot add players that are not viewing the conversation itself.
TransmissionSendForPlayerSelect - New - Sends a transmission with sound and an optional portrait actor to the specified players from a source unit or model. Use "Last Sent Transmission" to refer to this transmission after it has begun.
TransmissionSendForPlayer - New - Sends a transmission with sound and an optional portrait actor to the specified players from a source unit or model. Use "Last Sent Transmission" to refer to this transmission after it has begun.
TransmissionPlayerHasActiveTransmission - New - Returns whether any transmissions are active for the specified player.
DataConversationLinesWithTag - New - Tags may be defined for lines or groups within the conversation data in the Data module.
ConversationDataLineResetPlayers - New - Reset the conversation line to play for the default players associated with the entire conversation.
ConversationDataGetSpeaker - New - Returns the speaker character associated with the given conversation line.
TransmissionClearGroup - New - Immediately stops transmissions that are currently playing / being sent for a player group. Any triggers that are waiting for such transmissions to finish will resume execution.
ConversationDataLineHideForObservers - New - When hidden, the line will never be played for observers. When showing, the line will be played as long as it is visible to any player being observed.
TransmissionSourceSetBypassMessageLog - New - If the bypass message log flag is set to true then the text from this transmission will not be added to the message log.
Commander
PlayerCommander - New - Returns the commander of the player.
PlayerSetCommander - New - Sets the commander of the specified player.
PlayerSetCommanderLevel - New - Sets the commander level of the specified player.
PlayerCommanderLevel - New - Returns the commander level of the player.
Vision
VisResetFoWAlpha - New - Reset a player's Fog of War transparency level to the default value.
InShrub - New - Returns whether a point is in a shrub.
VisSetFoWAlpha - New - Override a player's Fog of War transparency level. (0 = transparent, 100 = opaque)
PlayerSetBounds - New - This does not affect pathing. Passing in a null region will reset to the global playable bounds. The provided region will be clamped within the global playable bounds.
VisGetFoWAlpha - New - Get a player's Fog of War transparency level. (0 = transparent, 100 = opaque)
VisFillArea - New - Fill the specified region for the specified player with visibility of fogged, masked, hidden or unexplored.
Camera
CameraFollowUnitGroupGet - New - Follows a unit group with the camera.
CameraForceFollowUnitGroup - New - Toggles whether the camera is forced to follow the active follow unit group. If it is not forced to follow then it will rely on the player's local follow state.
Ping
PingCreateWithPlayerId - New - Creates a minimap ping using the facing angle of a point. Use "Last Created Ping" to refer to the created ping.
PingCreateFromData - New - Creates a minimap ping using the facing angle of a point. Use "Last Created Ping" to refer to the created ping.
PingSetObserver - New - When true ping will display for observers regardless of whether they are viewing the game through everyone vision, or player vision.
EventPingOption - New - Returns an index into the specific ping option chosen in the ping panel.
MinimapPingPossibleEnemyStartLocations - New - Pings the minimap at each possible enemy spawn location of the local player. This ping cannot be modified after it is created. Use a "Create Ping" action to create a more customizable ping that can be modified after creation.
Player
PlayerSetRace - New - Sets the race of the specified player.
PlayerSetDeathTimer - New - Sets the death timer for the specified player.
KickFromGame - New - Kicks every player in the specified player group from the game
PlayerAddLabel - New - Model aspects can be controlled based on which labels a player has.
PlayerRemoveLabel - New - Removes the specified label from the player.
PlayerRemoveAllLabels - New - Removes all labels from the specified player.
PlayerHasLabel - New - Returns true if the player has the specified label.
Text
TextTagSetGravity - New - Sets the acceleration on the Z axis at which a text tag will adjust its velocity.
TextExpressionSetToken - New - Assigns a text value to an arbitrary token for use in a text expression. Use the 'Main' preset value as the token to set the expression text itself. Use the function 'Text Expression' to evaluate the final text with all token values in place.
TextExpressionAssemble - New - Evalutes the given text expression with all token values in place. Token values may be set using 'Set Text Expression Token'.
TriggerAddEventAlert - New - Event that occurs when a player receives an alert.
EventAlert - New - Returns the triggering alert.
StopTimer - New - Stops a timer, making its elapsed and remaining time 0.
TimerGetRemaining - Updated - Returns the remaining amount of time left on the specified timer. Note that due to rounding limitations, the remaining time of an expired timer may be slightly negative rather than exactly zero. Make sure to check for less than or equal to zero to account for this.
TriggerAddEventPlayerJoin - New - This event fires when a player joins the game. Use "Triggering Player" to get the player.
TriggerAddEventCommandError - New - Event that occurs when a player recieves a command error.
EventCommandErrorValue - New - Returns the triggering command error.
EventCommandErrorAbilCmd - New - Returns the ability command that was being issued when the command error was hit.
AttachModelToActor2 - Updated/New (This is a replacement function) - Creates a generic actor with the specified model attached to an actor at the specified attach point. Use "Last Created Actor" to get the attached model's actor.
AttachModelToUnitInheritVisibility - New - Creates a generic actor with the specified model attached to a unit at the specified attach point. Use "Last Created Actor" to get the actor. If the unit is hidden, the attached model will also be hidden.
GameMapPath - New - Returns the path of the map currently being played.
PointFacingAngle - New - Returns a point with the position of the specified point, and the facing of the specified angle.
TriggerAddEventPlayerEffectUsedFromScope - New - This event fires when an effect from the specified scope is used by the specified player.
AISetBullyRebuildDelay - New - Sets the delay time before the AI starts trying to replace missing bullies for a player.
cai_getLastWave - New - Returns the wave data associated with the last attack wave created for an AI personality defined in the AI module. This may correspond to any wave definition. To get the last wave for a specific wave definition, use Attack Wave Last Created Wave.
cai_wave_createdWave - Updated - Returns the wave data associated with the last attack wave created for a specific wave definition within an AI personality defined in the AI module. To get the last wave for the personality regardless of wave definition, use Last Created Wave for Personality.
ArithmeticInt2 - New - Returns the bitwise operator of the specified integer values.
ArithmeticIntMult2 - New - Returns the bitwise operation of the specified integer values in multiple instances.
Excellent news for trigger in a dependencies! with this, i can update my triggers code between all my maps at the same times! wow!
what does this mean? will there be a reconnect feature?
It may be Storm only. The event is in both clients, but this is only seen in Storm so far.
Added some more natives. I probably need to go back and do some organizing/formatting. Right now I'm just taking each native and finding its corresponding hint text.
convert a image to string?
I guess its the file name or something cause i dont see why
@egodbout: Go
Probably a good function for knitters.
The recconect feature is one of the most important things to be implemented or at least let others players not get affected by someones lag, current system is just ridiculous.
@Zer0skiller: Go
Agreed that is nice. Current system is not ridiculous though, unless you prefer much larger replay files, and rubberbanding instead.
I'll post more natives tomorrow, but let me simply state something: You either get SC2 system of player holding everyone up, or you get rubberbanding. It is impossible to avoid both.
I didn't know about that. Actually if I want to know where a trigger is used I just delete it and a warning message comes up telling you where it is used before it allows you to delete. and simply click on "no" when it asks you to confirm the deletion. This is instant and easy :D
We have libraries already so we can see what the code is from elsewhere. Also the editor does not load everything from another document AFAIK. If you only have the trigger editor open only the triggers are loaded. If you then open the terrain editor you will have to wait while it loads the terrain seperately. Or at least that's the way it seems. This might save a little bit of time but doesn't seem that useful. Hopefully there is a way to turn it off because I would rather they be read only so I can't accidentally mess with them unless I deliberately open up those libraries to change them.
The script prefixing and presets will make working with both GUI and script a lot easier. Unfortunately I'm using a bunch of old GUI stuff I wrote before I could figure out how to write galaxy script and it's a pain dealing with both at the same time. But if they simply showed you how you can write the script instead of hiding it away then those who prefer to write code can do so and will probably skip the GUI alltogether like I would have.
A few new toys in the new triggers but nothing big. I'm curious to know what a commander is though. What is the commander of a player?
These all sound pretty neat~ About the Commander ones, are they Blizzard-only? Any signs that we can make custom commanders? It would be very useful for making multiple techtrees per race.
@ArcaneDurandel: Go
It would be nice if they gave us the option of rubberbanding or everyone lags in map gameplay options. Some maps could be fine with rubberbanding, and some need the everyone lags. Also is there a event to detect when a player disconnects by rubberbanding? Then you could do stuff based on the player.
Still alive and kicking, just busy.
My guide to the trigger editor (still a work in progress)
@willuwontu: Go
Not possible. Rubberbanding is a consequence of your computer guessing what the game should be, and guessing wrong and be corrected by the server. SC2 fundamentally doesn't do that, it has no such server, everyone is playing the same game at all times, no guessing allowed.
@ArcaneDurandel: Go
Hey man thx for the list. I see some improvements for working with unit's weapons which i needed some time ago. Nice. Could you plz search if there are UnitAddAbility function like the one in wc3? I know there are items workaround for this, but it requires some ui work ;(
I saw that you can now change race for the player, if you want. Does it include UI too? If so, that's exactly what I'd want for one of my campaigns. :)
No such things ,but you can display other unit's command card, kind of a alter way.
Yes it would change the UI, and musics, and everything.
It's also the ultimate solution for custom race picking.
@Renee2islga: Go
Cool, so it kinda works like Dawn of War: Winter Assault, then. Remember, in the campaigns where you could change races and even the UI changed and stuff? That's what I meant.
Yes, it can be changed in the middle of a map.
Commanders are NOT AI things.
It's part of a Key feature of the Void: Allied Command. Of course you can create Custom Commanders.
http://us.battle.net/sc2/en/blog/19829510