I list every changes I found in this patch here, as wells as my descriptions and thoughts for them.
Data Module
- Official 'Crit Attack' support
There is a 'crit chance' field and a 'Crit Effect' field in all weapons. When the unit does the crit, the weapon would use the 'Crit Effect' instead of the normal effect, and with no damage scaling.
You can adjust the crit chance with behaviors, but behaviors can't add or change weapons' 'Crit Effect' .
There is a 'WeaponCriticalUpdate' event in Actor system, to help you capture the Crit event.(So you can do red 'Crit!' float text when the unit does the crit)
Glad to see an official 'Crit Attack' system, but it's mechanism doesn't work in the way I expected. It only works for weapons, and there would be no universal 'Cirt Strike' behavior. You need to adjust the 'Crit Effect' field of all weapons.
- Added a 'Global' flag to Veterancy behaviors
With this flag checked, your hero can gain XP from other units' kill credits, even if the other units doesn't have Veterancy behaviors, another WC3 thing.
Now if we want to make all your armys can share the XP to the heroes, we no longer have to add veterancy behaviors to every units.
- 'Energy Armor' support (Mana Shield)
Now you can do WC3's Mana Shield in SC2. There is a 'Energy Damage Ratio' field added to the units, if its value greater than zero, damage will be applied to energy before life. This many points of damage will be absorbed for each point of energy lost. So set it to 2, you get wc3's Mana shield.
There is also a 'Energy Armor' field for all units. It works jut like the Shield Armor and the Life Armor. But only works when 'Energy Damage Ratio' is greater than 0.
There is also a 'Shield Damage Ratio' field, It works jut like the 'Energy Damage Ratio'.
You can modify the 'Energy Armor', 'Energy Damage Ratio' and 'Shield Damage Ratio' with buffs
- 'Buff duration variety' support
All Buffs now have a 'Duration Override +' array, which allow you to set different duration for different targets (use validators).
So we can make the same buff have different duration time on normal units and on heroes, just like in WC3.
If only this patch could come out sooner :( In my own WC3 mod, I was forced to create 2 versions for each buff, which is a quite annoying work.
- 'Color Blind' support
You can set the UI colors under or not under the new 'color blind' system(Documented) in Game UI data.
- 'Unit Random Name' and 'Name Change' support
Now units can have random names like in wc3, you just need to add all the random names in to the unit's 'Random Name' field .
And now behaviors can also modify unit's name. ('Modification - Unit Name Override')
- 'Pillage' support
There is a 'Resource Damage Leech' field for units, just like the 'pillage' ability in WC3, you can gain resource from damage target. The resource you get is based on (Target'sRepairCost*Damage/Target'sMaxLife)
- 'Revive Validator' support (Altar)
The Revive abilites has been changed, now you can set validators for every revive slots.
It is very useful when you want to recreate the WC3 altars. In WC3, most units are revivable, so before the patch, you may find you 'altar' would display all your dead units, not just heroes. Now you can use validators to filter out them, leave dead heroes only.
It's very useful to me. Because I do have this issue in my own WC3 mod.
- '(WC3) Armor Formula' support
Unit's Life Armor, Shield Armor, Energy Armor now all have a 'Armor Formula' field to allows you to customize your armor Formula for each unit. And you can add tooltips for units' life armor.
It have 5 sub fields: Negative Armor Multiplier, Negative Damage Base, Negative Damage Unscaled, Positive Armor Multiplier, Positive Damage Ratio.
After some test, I find the way to set your unit's armor to WC3 style.
Negative Armor Multiplier=0
Negative Damage Base=0.94
Negative Damage Unscaled=1
Positive Armor Multiplier=0
Positive Damage Ratio=0.06
Now I only hope blizzard can add more unit Attributes. In my own WC3 Mod, I used triggers to do the WC3 Armor system, but even with patch 2.0.10, I can't get rid of the triggers from my armor system. Because the unit Attributes are just too few for me to map all WC3 Armor Types and WC3 Unit Classifications...
- 'Level Skip' support for Learning abilities
These is a 'Veterancy Level Min' field and a 'Veterancy Level Skip' field for each slot of the Learning abilities.
So we make ability can only be learned on hero Lv6, or make the new level of a ability can only be learned after heroes level 1,3,5. Just like the heroes abilites in WC3.
Now I only hope blizzard can add support to dynamicly change the heroes's Unspent Skill Points with effects, as well as the allow us to competely unlearn a learned spell.
- 'Healing Multiplier' support
All buff now have a 'Heal Dealt Multiplier' field and a 'Heal Taken Multiplier' field.
It seems the Healing Multiplier only works for Create Healer effects, doesn't work on healings down by the Modify Unit effect.
- 'XP Multipllier' support
All buff now have a 'XP Multipllier' field, a 'XP Unscaled Bonus' field and a 'XP Scaled Bonus' field.
It affect the XP you gained, not the XP the enemy get when they kill you.
- Added a new field 'Shared XP Max Count' to Veterancy behaviors
It can be use to set the max XP amount you can shared to others.
- New behavior states: 'Suppress XP Gain', 'Suppress XP Grant', 'Suppress XP Sharing'
- A new unit flag: 'AIMakeIgnore'
AI Ignores This Unit Type And Won't Try To Make It.
- A new unit filter/behavior state: Resistant
Can be used to do WC3's 'Resistant Skin', it seems.
- A new unit flag: Revivable
- A new unit flag: Resistant
Same as the behavior one.
- A new cost category: Upgrade
- Added a 'Ignore Placement' flag for each slot of the Training abilities.
- Now you can set the death type of the trainer when Training Cancelled or Training Complete
Only works for Larva-like training, which has 'Kill on Complete' and 'Kill On Cancel' flags checked.
- Added a Damage Modifier Source' field to all effect
Seem can be used to set your damage effect's 'Spell Power' from a unit other than the Caster.
- Added a 'Behavior Alignment' field into the 'Remove Behavior' effect.
Now you can make the 'Remove Behavior' effect to only remove debuffs or only remove the buffs on target unit. Like WC3's Dispel Magic(Purify).
- New flags for Create Healer effects: 'Suppress Energy Regen', 'Suppress Life Regen', 'Suppress Shields Regen'
- Added a 'No Damage Timer Reset' flag to Damage effects
- Added a new 'RallyUnit' field to Modify Unit effects
- Added a 'Validate Teleport' flag to Launch Missile effects.
- Added a 'Revive' flag for Modify Unit effects
Now we can finally revive units with effects.
- Added 'Initial Effect', 'Expire Effect', 'Final Effect', 'Period Count', 'Periodic Period' fields to Create Healer effects
Much like the Create Persistent effects now.
- Added 'Recharge Vital Fraction' and 'Recharge Vital Max' fields to Create Healer effects
- Added a new 'Observer Zoom Levels' field to Cameras
Now you can set 'camera zoom level for observers'(Documented).
- Added a 'Restore Height' flag and a 'Restore Height Duration' field to all movers
- A new requirement state: Revivable
Now you can count the Revivable units only in your requirement nodes. Can be used to count your heroes when you want to limit your hero head count to 3 (Revivable heroes need to be counted in this case)
- Added a new field 'Display Scaled Time' in Game UI data
You can set if the the game display the scaled time or actual time.
- Added a new field 'Observer Soundtrack' in Game UI data
Now you can set specialized soundtrack for Observers.
- Added a 'Which Unit' field Player Requirement validators
- Added a 'Response To Unit Player Change' flag to all actors
- A new Actor Site Operation: Orient Attach Point To
- A new Actor Scope type: Snapshot
Each snapshot actors of units/doodads now be created in standalone scopes, and the scope type would be 'Snapshot'.
- A new Actor Event: UpgradeFinalized
- A new Actor Event: WeaponCriticalUpdate
Used to capture the Crit.
- A new Actor Term: AnimationBracketStateExitReason
You can use it to get the exit reason of animation bracket, only works when the event is 'AnimBracketState'.
- A new Actor Term: IsLocalParticipantType
- A new Actor Message: ActorSiteOpDump
Can be used to dump current Site Operation of the actor.
- A new Actor Message: ClearLocalTintColor
- A new Actor Message: HideWorkerCount
- New Actor Messages: SetGroupIcon, SetHeroIcon, SetUnitIcon, SetWireframe, SetWireframeShield
- A new Actor Request flag: Reach Across Effect Trees
- The official 'Actor Phasing' support (Documented)
It's documented, but I still want to say something about it. It seems blizzard added official per player support for the actors, no one is going to use GAx3 now :P
(Edited:) It seems the 'player filter' only works for non-unit typed actors, like Models and doodads. Not sure why.
- The “Effects” array in Effects Sets and the “Duration” field in Apply Behavior Effect is now upgradable (Documented)
Can be useful in many ways.
Trigger Module
- Max Global Memory size increased
The max Global Variable Memory size is now 16,777,216 (2^24)
- Bank Size Debug support
Added 3 new trigger functions to help us debug Bank size as text:
Bank Size As Text
Bank Section Size As Text
Bank Key Size As Text
- Per player TOD setting
A new action: 'Set Time of Day Lighting For Player', allows you to set the lighting used by the time of day for a specific player.
- 'Continue' in GUI support
Trigger GUI now allows you to use 'Continue' action in trigger loops. You can use 'Continue;' in Galaxy before, but this time it has GUI support.
- Show/Hide Message Log
This new trigger action allows you to turn on/off the Message Log window for specified players.
- Unit current speed (NYI?)
A new unit property added to the native.galaxy: 'c_unitPropMovementSpeedCurrent'. Judge by the name, it may be used to set/get unit's instantaneous speed.
But currently, it seems doesn't work at all.
Text Module
- IDs for manually added text entries can now be changed using Data > Change Text ID.(Documented)
Great. Now please add a 'search' box and a 'insert all unlocalized ID' button into the Text Module, Blizzard Devs.
General
- Multi-Region Publishing (Documented)
The publish dialog now includes checkboxes for all available regions.(Except China)
- Added an “Always Use Latest Version” option for Battle.net dependencies published by the active user. (Documented)
Only works for your own Mods. Doesn't work for public mods, it seems.
- Doodads now support Pitch and Roll properties for three-dimensional rotation. (Documented)
Great news, terrainers! We finally get this. While the Editor is great, the Terrain module is always its 'shortest board'. Cliff limitation, texture limitation, can't roll doodads at will. Now one of these 3 'primal evils' has down.
Default Hotkey:
Pitch: Shift + Alt + Mouse
Roll: Ctrl + Alt +Mouse
- Support for Map Symmetry has been added (Documented)
Yeah, you can do symmetrical maps more easier. Now I only hope they can add a 'Scale Terrain' feature which allow us to scale +/- existed terrains.
- The HDR Multiplier property can now be modified independently from Custom Color. (Documented)
UI Module
- Two new zoom levels have been added to the observer camera which let observers zoom out much further than what was allowed prior to Patch 2.0.10
While it's a great change, it still doesn't allow you to customize the observers zoom level in your Interfaces. Everything is defined in Camera data. Otherwise things would be much better...
- Added a 'Validate Teleport' flag to Launch Missile effects.
Does it mean that if a unit teleports, a missile that was launched to it before the teleportation won't follow the unit at his new position? (answer acquired in chat -> yes)
Quote:
- A new Actor Request flag: Reach Across Effect Trees
Is it to link effects from one branch to another, through the common root?
- Added a 'Validate Teleport' flag to Launch Missile effects.
Does it mean that if a unit teleports, a missile that was launched to it before the teleportation won't follow the unit at his new position? (answer acquired in chat -> yes) Quote:
- A new Actor Request flag: Reach Across Effect Trees
Is it to link effects from one branch to another, through the common root?
Yes, if you uncheck the 'Validate Teleport' flag, the missile would still follow the target even if the target teleports.
Check it and it will miss if the target teleports.
There's been a small change in how Vitals are handled, if you change a unit's max energy with a behavior, its current energy will get updated to the new maximum.
Hey so i found this awesome field in portraits today: (None): EDSTR_FIELDNAME_CModel_PortraitOffset (0.000000,0.00000,0.000000)
There is now support to move the Portrait Model
It is now Possible to Use Units as Portraits.
X Moves Model Left or Right
Y Moves Model Up or Down
Z -Unsure what it does doesn't seem to effect Model
To Zoom in or Out from a Model you will still need to Set a Actor: Portrait Camera
"For each integer/real" seems to work different now. After finishing the iteration, the variable won't end with the end value that you set in that function.
For example, the following code ends with A being set to 10.0 after the loop:
Due to the way sc2 translates GUI to mapscript's galaxy code, maps can only be bugged when you update them. So, if you update your map, you might be adding bugs to it without knowledge...
All for loops now compile to galaxy for loops. All the unnecessary stuff that was done before has been removed, which should lead to a small performance improvement. I did never really understand why the variable shouldnt be 10 after the loop in the first place.
"For each integer/real" seems to work different now. After finishing the iteration, the variable won't end with the end value that you set in that function.
All for loops now compile to galaxy for loops. All the unnecessary stuff that was done before has been removed, which should lead to a small performance improvement. I did never really understand why the variable shouldnt be 10 after the loop in the first place.
The problem is the fact that it suddenly changed- Starmon was using these loops a whole lot, and so when they suddenly work differently, you've got a problem :P I'm sure they set them up that way to be more friendly to the average modder. After all, it does say "for eacn int from 1 to 10", so it makes more sense that way if you don't see the actual code for a loop.
I posted to the technical forums & shot them an email about it....We'll see what their response is. Since they've stated that they don't want to break compatibility with old maps, I can't imagine that this is intended.
Rollback Post to RevisionRollBack
Feel free to Send me a PM if you have any questions/concerns!
The problem is the fact that it suddenly changed- Starmon was using these loops a whole lot, and so when they suddenly work differently, you've got a problem :P I'm sure they set them up that way to be more friendly to the average modder. After all, it does say "for eacn int from 1 to 10", so it makes more sense that way if you don't see the actual code for a loop.
I posted to the technical forums shot them an email about it....We'll see what their response is. Since they've stated that they don't want to break compatibility with old maps, I can't imagine that this is intended.
I'm actually really surprised that this seems to be an issue for so many people.
As far as I understand the new implementation can just cause problems if the loop variable itself was used outside (after) the loop construct. I personally never used loop variables outside a loop and I cant really think of a case where this would be useful. I agree that it kinda sucks, but I guess Blizzard tried to remove the small performance overhead which existed prior to 2.0.10 by using the new for loop implementation (The old one was really odd, the new one is better but still not perfect since they have to make one additional check per iteration which is required to work for negative increments), and I personally hope they dont go back.
Using loop variables outside the loop construct is, in fact, really weird and a bad style, which is why in most modern programming languages loop variables are declared within the loop scope and cant be used outside, such as
for(inti=0;i<10;i++){//do stuff with i}
In this case, "i" cant be used after the loop since it exists within the loops scope only.
Of course it would also be possible to declare i outside of the loop scope, but you really wont see this very often since it simply isnt very practical and just confusing.
In addition, compatibility with old maps is not broken at all, since the changes just get applied once the code is recompiled. Therefore, already uploaded maps will be uneffected by this change.
I agree that it kinda sucks, but I guess Blizzard tried to remove the small performance overhead which existed prior to 2.0.10 by using the new for loop implementation (The old one was really odd), and I personally hope they dont go back.
I don't think they should go back. Just informing us that they change something that can create bugs in future would have been nice. That's what I did after having that change verified by zeldarules28.
Don't forget that old maps that aren't updated, won't be affected by that change as they still use the old loop's implementation in galaxy. But it's an improvement for new loops. There is just the bug-creating transition phase when the map is ported to the new patch.
I don't think they should go back. Just informing us that they change something that can create bugs in future would have been nice. That's what I did after having that change verified by zeldarules28.
Don't forget that old maps that aren't updated, won't be affected by that change as they still use the old loop's implementation in galaxy. But it's an improvement for new loops. There is just the bug-creating transition phase when the map is ported to the new patch.
I actually believe they probably didnt know that they changed smth. I could imagene that they just wanted to improve the GUI -> Galaxy compilation and forgot about this detail. One easy fix would be to just add the increment*-1 to the loop variable just after the loop, however, again, this would lead into a small performance overhead and therefore I dont support this (even though its very minor).
About the point with the function syntax saying "for each integer from 1 to X", i dont think that this necessarily means that the integer has to be X after the loop, it just means that the loop does this steps, using i, and then exits. It really depends on the personal interpretation. I agree that it might be kinda confusing though, especially for beginners.
While typically iterators are only good for their loop and then that is it, there are some rare cases (or in Starmon's case, not so rare...) where this can happen. For example, in my project, sometimes I can use a loop to modify values for me, but sometimes the details get so specific that it is easier to just do it line by line for some segments. So sometimes I have a while loop for awhile, then line by line. Also, sometimes I'll use an iterator just to refer to a specific item without having to change values all the time too, as a lazy way to get more done faster. Could do it in loop form of course, but I have no interest in making yet more arrays full of text/string/whatever values just to make my code more compact in one area (and instead create even more code elsewhere!).
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I list every changes I found in this patch here, as wells as my descriptions and thoughts for them.
Data Module
- Official 'Crit Attack' support
There is a 'crit chance' field and a 'Crit Effect' field in all weapons. When the unit does the crit, the weapon would use the 'Crit Effect' instead of the normal effect, and with no damage scaling.
You can adjust the crit chance with behaviors, but behaviors can't add or change weapons' 'Crit Effect' .
There is a 'WeaponCriticalUpdate' event in Actor system, to help you capture the Crit event.(So you can do red 'Crit!' float text when the unit does the crit)
Glad to see an official 'Crit Attack' system, but it's mechanism doesn't work in the way I expected. It only works for weapons, and there would be no universal 'Cirt Strike' behavior. You need to adjust the 'Crit Effect' field of all weapons.
- Added a 'Global' flag to Veterancy behaviors
With this flag checked, your hero can gain XP from other units' kill credits, even if the other units doesn't have Veterancy behaviors, another WC3 thing.
Now if we want to make all your armys can share the XP to the heroes, we no longer have to add veterancy behaviors to every units.
- 'Energy Armor' support (Mana Shield)
Now you can do WC3's Mana Shield in SC2. There is a 'Energy Damage Ratio' field added to the units, if its value greater than zero, damage will be applied to energy before life. This many points of damage will be absorbed for each point of energy lost. So set it to 2, you get wc3's Mana shield.
There is also a 'Energy Armor' field for all units. It works jut like the Shield Armor and the Life Armor. But only works when 'Energy Damage Ratio' is greater than 0.
There is also a 'Shield Damage Ratio' field, It works jut like the 'Energy Damage Ratio'.
You can modify the 'Energy Armor', 'Energy Damage Ratio' and 'Shield Damage Ratio' with buffs
- 'Buff duration variety' support
All Buffs now have a 'Duration Override +' array, which allow you to set different duration for different targets (use validators).
So we can make the same buff have different duration time on normal units and on heroes, just like in WC3.
If only this patch could come out sooner :( In my own WC3 mod, I was forced to create 2 versions for each buff, which is a quite annoying work.
- 'Color Blind' support
You can set the UI colors under or not under the new 'color blind' system(Documented) in Game UI data.
- 'Unit Random Name' and 'Name Change' support
Now units can have random names like in wc3, you just need to add all the random names in to the unit's 'Random Name' field .
And now behaviors can also modify unit's name. ('Modification - Unit Name Override')
- 'Pillage' support
There is a 'Resource Damage Leech' field for units, just like the 'pillage' ability in WC3, you can gain resource from damage target. The resource you get is based on (Target'sRepairCost*Damage/Target'sMaxLife)
- 'Revive Validator' support (Altar)
The Revive abilites has been changed, now you can set validators for every revive slots.
It is very useful when you want to recreate the WC3 altars. In WC3, most units are revivable, so before the patch, you may find you 'altar' would display all your dead units, not just heroes. Now you can use validators to filter out them, leave dead heroes only.
It's very useful to me. Because I do have this issue in my own WC3 mod.
- '(WC3) Armor Formula' support
Unit's Life Armor, Shield Armor, Energy Armor now all have a 'Armor Formula' field to allows you to customize your armor Formula for each unit. And you can add tooltips for units' life armor.
It have 5 sub fields: Negative Armor Multiplier, Negative Damage Base, Negative Damage Unscaled, Positive Armor Multiplier, Positive Damage Ratio.
After some test, I find the way to set your unit's armor to WC3 style.
Negative Armor Multiplier=0
Negative Damage Base=0.94
Negative Damage Unscaled=1
Positive Armor Multiplier=0
Positive Damage Ratio=0.06
Now I only hope blizzard can add more unit Attributes. In my own WC3 Mod, I used triggers to do the WC3 Armor system, but even with patch 2.0.10, I can't get rid of the triggers from my armor system. Because the unit Attributes are just too few for me to map all WC3 Armor Types and WC3 Unit Classifications...
- 'Level Skip' support for Learning abilities
These is a 'Veterancy Level Min' field and a 'Veterancy Level Skip' field for each slot of the Learning abilities.
So we make ability can only be learned on hero Lv6, or make the new level of a ability can only be learned after heroes level 1,3,5. Just like the heroes abilites in WC3.
Now I only hope blizzard can add support to dynamicly change the heroes's Unspent Skill Points with effects, as well as the allow us to competely unlearn a learned spell.
- 'Healing Multiplier' support
All buff now have a 'Heal Dealt Multiplier' field and a 'Heal Taken Multiplier' field.
It seems the Healing Multiplier only works for Create Healer effects, doesn't work on healings down by the Modify Unit effect.
- 'XP Multipllier' support
All buff now have a 'XP Multipllier' field, a 'XP Unscaled Bonus' field and a 'XP Scaled Bonus' field.
It affect the XP you gained, not the XP the enemy get when they kill you.
- Added a new field 'Shared XP Max Count' to Veterancy behaviors
It can be use to set the max XP amount you can shared to others.
- New behavior states: 'Suppress XP Gain', 'Suppress XP Grant', 'Suppress XP Sharing'
- A new unit flag: 'AIMakeIgnore'
AI Ignores This Unit Type And Won't Try To Make It.
- A new unit filter/behavior state: Resistant
Can be used to do WC3's 'Resistant Skin', it seems.
- A new unit flag: Revivable
- A new unit flag: Resistant
Same as the behavior one.
- A new cost category: Upgrade
- Added a 'Ignore Placement' flag for each slot of the Training abilities.
- Now you can set the death type of the trainer when Training Cancelled or Training Complete
Only works for Larva-like training, which has 'Kill on Complete' and 'Kill On Cancel' flags checked.
- Added a Damage Modifier Source' field to all effect
Seem can be used to set your damage effect's 'Spell Power' from a unit other than the Caster.
- Added a 'Behavior Alignment' field into the 'Remove Behavior' effect.
Now you can make the 'Remove Behavior' effect to only remove debuffs or only remove the buffs on target unit. Like WC3's Dispel Magic(Purify).
- New flags for Create Healer effects: 'Suppress Energy Regen', 'Suppress Life Regen', 'Suppress Shields Regen'
- Added a 'No Damage Timer Reset' flag to Damage effects
- Added a new 'RallyUnit' field to Modify Unit effects
- Added a 'Validate Teleport' flag to Launch Missile effects.
- Added a 'Revive' flag for Modify Unit effects
Now we can finally revive units with effects.
- Added 'Initial Effect', 'Expire Effect', 'Final Effect', 'Period Count', 'Periodic Period' fields to Create Healer effects
Much like the Create Persistent effects now.
- Added 'Recharge Vital Fraction' and 'Recharge Vital Max' fields to Create Healer effects
- Added a new 'Observer Zoom Levels' field to Cameras
Now you can set 'camera zoom level for observers'(Documented).
- Added a 'Restore Height' flag and a 'Restore Height Duration' field to all movers
- A new requirement state: Revivable
Now you can count the Revivable units only in your requirement nodes. Can be used to count your heroes when you want to limit your hero head count to 3 (Revivable heroes need to be counted in this case)
- Added a new field 'Display Scaled Time' in Game UI data
You can set if the the game display the scaled time or actual time.
- Added a new field 'Observer Soundtrack' in Game UI data
Now you can set specialized soundtrack for Observers.
- Added a 'Which Unit' field Player Requirement validators
- Added a 'Response To Unit Player Change' flag to all actors
- Added a 'Icon Tint' field to Range actors
- The 'Physic State' support for the actors is removed
See http:us.battle.net/sc2/en/forum/topic/8796431766
- A new Actor System Reference: HostImpactSource
- A new Actor System Reference: OuterUnit
- A new Actor Site Operation: Orient Attach Point To
- A new Actor Scope type: Snapshot
Each snapshot actors of units/doodads now be created in standalone scopes, and the scope type would be 'Snapshot'.
- A new Actor Event: UpgradeFinalized
- A new Actor Event: WeaponCriticalUpdate
Used to capture the Crit.
- A new Actor Term: AnimationBracketStateExitReason
You can use it to get the exit reason of animation bracket, only works when the event is 'AnimBracketState'.
- A new Actor Term: IsLocalParticipantType
- A new Actor Message: ActorSiteOpDump
Can be used to dump current Site Operation of the actor.
- A new Actor Message: ClearLocalTintColor
- A new Actor Message: HideWorkerCount
- New Actor Messages: SetGroupIcon, SetHeroIcon, SetUnitIcon, SetWireframe, SetWireframeShield
- A new Actor Request flag: Reach Across Effect Trees
- The official 'Actor Phasing' support (Documented)
It's documented, but I still want to say something about it. It seems blizzard added official per player support for the actors, no one is going to use GAx3 now :P
(Edited:) It seems the 'player filter' only works for non-unit typed actors, like Models and doodads. Not sure why.
- The “Effects” array in Effects Sets and the “Duration” field in Apply Behavior Effect is now upgradable (Documented)
Can be useful in many ways.
Trigger Module
- Max Global Memory size increased
The max Global Variable Memory size is now 16,777,216 (2^24)
- Bank Size Debug support
Added 3 new trigger functions to help us debug Bank size as text:
Bank Size As Text
Bank Section Size As Text
Bank Key Size As Text
- Per player TOD setting
A new action: 'Set Time of Day Lighting For Player', allows you to set the lighting used by the time of day for a specific player.
- 'Continue' in GUI support
Trigger GUI now allows you to use 'Continue' action in trigger loops. You can use 'Continue;' in Galaxy before, but this time it has GUI support.
- Show/Hide Message Log
This new trigger action allows you to turn on/off the Message Log window for specified players.
- Unit current speed (NYI?)
A new unit property added to the native.galaxy: 'c_unitPropMovementSpeedCurrent'. Judge by the name, it may be used to set/get unit's instantaneous speed.
But currently, it seems doesn't work at all.
Text Module
- IDs for manually added text entries can now be changed using Data > Change Text ID.(Documented)
Great. Now please add a 'search' box and a 'insert all unlocalized ID' button into the Text Module, Blizzard Devs.
General
- Multi-Region Publishing (Documented)
The publish dialog now includes checkboxes for all available regions.(Except China)
- Added an “Always Use Latest Version” option for Battle.net dependencies published by the active user. (Documented)
Only works for your own Mods. Doesn't work for public mods, it seems.
- Added 'Export Balance Data' functionality. (Documented)
Terrain Module
- Doodads now support Pitch and Roll properties for three-dimensional rotation. (Documented)
Great news, terrainers! We finally get this. While the Editor is great, the Terrain module is always its 'shortest board'. Cliff limitation, texture limitation, can't roll doodads at will. Now one of these 3 'primal evils' has down.
Default Hotkey:
Pitch: Shift + Alt + Mouse
Roll: Ctrl + Alt +Mouse
- Support for Map Symmetry has been added (Documented)
Yeah, you can do symmetrical maps more easier. Now I only hope they can add a 'Scale Terrain' feature which allow us to scale +/- existed terrains.
- The HDR Multiplier property can now be modified independently from Custom Color. (Documented)
UI Module
- Two new zoom levels have been added to the observer camera which let observers zoom out much further than what was allowed prior to Patch 2.0.10
While it's a great change, it still doesn't allow you to customize the observers zoom level in your Interfaces. Everything is defined in Camera data. Otherwise things would be much better...
Mille25 brought this up in the Galaxy section, the maximum amount of global variables has increased to a little over 4,170,000
Thank you for this information. Will do some test about it...
Test result, the max Global Variable Memory size is now 16,777,216 (2^24) Added it to the list
All Game Link input dialogs in Data Editor has been changed from a drop list to a tree/list view with search function.
For example, the Effect field of the Effect abilities:
Does it mean that if a unit teleports, a missile that was launched to it before the teleportation won't follow the unit at his new position? (answer acquired in chat -> yes)
Is it to link effects from one branch to another, through the common root?
Yes, if you uncheck the 'Validate Teleport' flag, the missile would still follow the target even if the target teleports.
Check it and it will miss if the target teleports.
Maybe a stupid question... But did the doodad limit stay the same?... ;D
Yesss... that makes workarounds with redirect missile + arrays to connect missile&target obsolete... :)
edit: No, actually not in my cases as I want some teleports to break it... this would have been better defined within the teleport actions itself.
There's been a small change in how Vitals are handled, if you change a unit's max energy with a behavior, its current energy will get updated to the new maximum.
Hey so i found this awesome field in portraits today:
(None): EDSTR_FIELDNAME_CModel_PortraitOffset (0.000000,0.00000,0.000000)
There is now support to move the Portrait Model
It is now Possible to Use Units as Portraits.
X Moves Model Left or Right
Y Moves Model Up or Down
Z -Unsure what it does doesn't seem to effect Model
To Zoom in or Out from a Model you will still need to Set a Actor: Portrait Camera
@zaysite: Go Very interesting, it seems all those cinematic models can easily become portraits now.
"For each integer/real" seems to work different now. After finishing the iteration, the variable won't end with the end value that you set in that function.
For example, the following code ends with A being set to 10.0 after the loop:
Due to the way sc2 translates GUI to mapscript's galaxy code, maps can only be bugged when you update them. So, if you update your map, you might be adding bugs to it without knowledge...
@Ahli634: Go
All for loops now compile to galaxy for loops. All the unnecessary stuff that was done before has been removed, which should lead to a small performance improvement. I did never really understand why the variable shouldnt be 10 after the loop in the first place.
^ I can confirm that one.
The problem is the fact that it suddenly changed- Starmon was using these loops a whole lot, and so when they suddenly work differently, you've got a problem :P I'm sure they set them up that way to be more friendly to the average modder. After all, it does say "for eacn int from 1 to 10", so it makes more sense that way if you don't see the actual code for a loop.
I posted to the technical forums & shot them an email about it....We'll see what their response is. Since they've stated that they don't want to break compatibility with old maps, I can't imagine that this is intended.
Something I found: Ctrl-F9(Test document) can now be done from custom scripts.
I'm actually really surprised that this seems to be an issue for so many people.
As far as I understand the new implementation can just cause problems if the loop variable itself was used outside (after) the loop construct. I personally never used loop variables outside a loop and I cant really think of a case where this would be useful. I agree that it kinda sucks, but I guess Blizzard tried to remove the small performance overhead which existed prior to 2.0.10 by using the new for loop implementation (The old one was really odd, the new one is better but still not perfect since they have to make one additional check per iteration which is required to work for negative increments), and I personally hope they dont go back.
Using loop variables outside the loop construct is, in fact, really weird and a bad style, which is why in most modern programming languages loop variables are declared within the loop scope and cant be used outside, such as
In this case, "i" cant be used after the loop since it exists within the loops scope only.
Of course it would also be possible to declare i outside of the loop scope, but you really wont see this very often since it simply isnt very practical and just confusing.
In addition, compatibility with old maps is not broken at all, since the changes just get applied once the code is recompiled. Therefore, already uploaded maps will be uneffected by this change.
I don't think they should go back. Just informing us that they change something that can create bugs in future would have been nice. That's what I did after having that change verified by zeldarules28.
Don't forget that old maps that aren't updated, won't be affected by that change as they still use the old loop's implementation in galaxy. But it's an improvement for new loops. There is just the bug-creating transition phase when the map is ported to the new patch.
I actually believe they probably didnt know that they changed smth. I could imagene that they just wanted to improve the GUI -> Galaxy compilation and forgot about this detail. One easy fix would be to just add the increment*-1 to the loop variable just after the loop, however, again, this would lead into a small performance overhead and therefore I dont support this (even though its very minor).
About the point with the function syntax saying "for each integer from 1 to X", i dont think that this necessarily means that the integer has to be X after the loop, it just means that the loop does this steps, using i, and then exits. It really depends on the personal interpretation. I agree that it might be kinda confusing though, especially for beginners.
While typically iterators are only good for their loop and then that is it, there are some rare cases (or in Starmon's case, not so rare...) where this can happen. For example, in my project, sometimes I can use a loop to modify values for me, but sometimes the details get so specific that it is easier to just do it line by line for some segments. So sometimes I have a while loop for awhile, then line by line. Also, sometimes I'll use an iterator just to refer to a specific item without having to change values all the time too, as a lazy way to get more done faster. Could do it in loop form of course, but I have no interest in making yet more arrays full of text/string/whatever values just to make my code more compact in one area (and instead create even more code elsewhere!).