You might find that buffs can take the unit to the maximum real cap. You could also try entering a larger value in XML view in the data editor and see if that works.
Do keep in mind that 100,000 life is a lot of life. Consider using a toughness based armor mechanic such as used by Diablo III or StarCraft II to increase unit toughness without resorting to insane life values.
I'm just aiming to make some literal remakes of wc3 maps, and running into some walls regarding certain stats. I'm not really aiming to innovate too much, just recreate. And as I'm sure you know, some of the classics left you with some seriously crazy stats.
Not going to stress too much over it, would just be better overall if it were gone!
Well the crazy stats are kinda part of the nostaliga. Besides, if I can make a hero system that works under such extreme conditions, then anything less should work fine too.
I know what you mean, I think I remember being something like 3,257,365 or something like that, I remember the 3,200,000 part but the other numbers were off, making it somewhere between 2 to the 21st and 22nt power, kind of annoying that they seem to have taken that away, I did not realize they capped it off to something other than the maximum possible value.
that or memory serves me poorly on the exact number, but I do remember starcraft 2 being able to handle a larger number than 100,000 in that data field.
If you aren't using all of them you can also use some of the Attributes to compound HP: Damage 100 normal, 10 vs Armored, 1 vs Massive.
Also go through all lowest-level units, see how low you can go with the minimum HP. As I recall most of those WC3 maps started you at several hundred, already wasting 2 orders of magnitude unless the exact damage/HP ration mattered for balancing.
I know SC2 can also handle fractions of 1HP, as you can go pretty low with regeneration rates, but I don't know how well it works for damage, and the UI only shows full HP.
Life is a signed Q18.13 fixed point number (as is likely the "fixed" type in Galaxy). As such the maximum life a unit can have is exactly 524287.9998779296875. Proof is provided with the attached screenshot.
It is impossible to set maximum life beyond exactly 100000 in the data editor due to a range constraint applied to the unit entry type for that field. To get maximum life above 100000 you can either use triggers (set unit property only, modifying the unit type entry with catalog natives will not work due to validation preformed) or behaviours.
The data editor only approach to obtain a unit with maximum life of near 524287.9998779296875 (not exactly but within 0.0002 life) would be to give the unit entry with 100000 maximum life a buff behaviour which adds 424287.9998779296875 life Max Bonus (it will likely round to 424287.9997, hence the error).
Going beyond the 524287.9998779296875 limit of maximum life will result in a unit with 1 hit point. Going beyond the limit with current life will instantly kill the unit.
That's good stuff to know. I was using catalog field values to set life before. It makes the 100,000 life cap seem completely arbitrary and senseless, beyond the whole "you'll never really see a unit with this much life anyway" aspect.
Seems like every other data asset is capped at 450k. Ah well, guess I'll have to work around it! Thanks!
SC2 has two types, signed 32bit integer and signed Q18.13 fixed. As such everything the game does will be capped by the range of those types.
It does not use floating points (WC3 did which is why it supported larger ranges) because they are notoriously platform dependent and cause a lot of grief (we all remember the Windows with Mac session problems from WC3).
Sc2 doesn't use floating points? Kinda surprised to hear that, since I've had to do a lot of work to get simple calculations to be accurate. Usually they'll be off by about +/- 1% and I always just attributed that to reals being floating points. I have the Strength stat increase summoned unit life by 5% per point, and actually getting that to work without the result being irritatingly off (2401 life instead of 2400) was such a pain!
Even then, large damage buffs are still displaying weird amounts. Weapons that deal 5000 damage but have a 25% bonus give some odd looking number.
Edit: Yeah, +10% damage buff on a unit with 5000 damage gives +500.49 which isn't really wrong, just... ugly!
Sc2 doesn't use floating points? Kinda surprised to hear that, since I've had to do a lot of work to get simple calculations to be accurate. Usually they'll be off by about +/- 1% and I always just attributed that to reals being floating points. I have the Strength stat increase summoned unit life by 5% per point, and actually getting that to work without the result being irritatingly off (2401 life instead of 2400) was such a pain!
Even then, large damage buffs are still displaying weird amounts. Weapons that deal 5000 damage but have a 25% bonus give some odd looking number.
Edit: Yeah, +10% damage buff on a unit with 5000 damage gives +500.49 which isn't really wrong, just... ugly!
Fixed point numbers have other sources of error, especially if they do not use 64bit intermediates. It mostly comes down to the in ability to represent decimal numbers exactly.
1.10 -> 1.10009765625 (rounding up)
1.10009765625 * 5000 = 5500.48828125
See where the error came from? The solution is to choose binary fractions for the amount to add as opposed to decimal ones as those have no representation error.
Ah, reminds me of the gods in LOAP and The Curse Of Time RPG. The one had stats so rigged they overflowed and killed themselves the others took a combined assault and lots of Liches for over an hour and a ton of expensive cheesy towers.
Rollback Post to RevisionRollBack
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
Maximum life is 100,000? I swear it used to be the same as the maximum real value (524,287).
Was this changed or am I delusional? Is there any way to break this cap?
You might find that buffs can take the unit to the maximum real cap. You could also try entering a larger value in XML view in the data editor and see if that works.
Do keep in mind that 100,000 life is a lot of life. Consider using a toughness based armor mechanic such as used by Diablo III or StarCraft II to increase unit toughness without resorting to insane life values.
I'm just aiming to make some literal remakes of wc3 maps, and running into some walls regarding certain stats. I'm not really aiming to innovate too much, just recreate. And as I'm sure you know, some of the classics left you with some seriously crazy stats.
Not going to stress too much over it, would just be better overall if it were gone!
StarCraft II is not Warcraft III. You will need to improvise and revise rather than try and do something the game just cannot do.
Which they were ratted poorly for.
Well the crazy stats are kinda part of the nostaliga. Besides, if I can make a hero system that works under such extreme conditions, then anything less should work fine too.
I swear it used to be 500k max life, though!
@TyaArcade: Go
I know what you mean, I think I remember being something like 3,257,365 or something like that, I remember the 3,200,000 part but the other numbers were off, making it somewhere between 2 to the 21st and 22nt power, kind of annoying that they seem to have taken that away, I did not realize they capped it off to something other than the maximum possible value.
that or memory serves me poorly on the exact number, but I do remember starcraft 2 being able to handle a larger number than 100,000 in that data field.
Not to my knowledge. I wanted massive health bars for a boss in a map I was working on around 1.5 patch and I couldn't get it above 100k then.
@JacktheArcher: Go
You could always do a stages type thing and have a behavior that prevents death and restores health.
If you aren't using all of them you can also use some of the Attributes to compound HP: Damage 100 normal, 10 vs Armored, 1 vs Massive.
Also go through all lowest-level units, see how low you can go with the minimum HP. As I recall most of those WC3 maps started you at several hundred, already wasting 2 orders of magnitude unless the exact damage/HP ration mattered for balancing.
I know SC2 can also handle fractions of 1HP, as you can go pretty low with regeneration rates, but I don't know how well it works for damage, and the UI only shows full HP.
As far as I know, you can increase the max life above that with a behavior, I'd suggest you not to though, as it tends to have some bugs above that.
I'd suggest you to use damage reduction, so a unit which should have 200.000 health, could have 100.000 and 50% damage reduction.
Life is a signed Q18.13 fixed point number (as is likely the "fixed" type in Galaxy). As such the maximum life a unit can have is exactly 524287.9998779296875. Proof is provided with the attached screenshot.
It is impossible to set maximum life beyond exactly 100000 in the data editor due to a range constraint applied to the unit entry type for that field. To get maximum life above 100000 you can either use triggers (set unit property only, modifying the unit type entry with catalog natives will not work due to validation preformed) or behaviours.
The data editor only approach to obtain a unit with maximum life of near 524287.9998779296875 (not exactly but within 0.0002 life) would be to give the unit entry with 100000 maximum life a buff behaviour which adds 424287.9998779296875 life Max Bonus (it will likely round to 424287.9997, hence the error).
Going beyond the 524287.9998779296875 limit of maximum life will result in a unit with 1 hit point. Going beyond the limit with current life will instantly kill the unit.
That's good stuff to know. I was using catalog field values to set life before. It makes the 100,000 life cap seem completely arbitrary and senseless, beyond the whole "you'll never really see a unit with this much life anyway" aspect.
Seems like every other data asset is capped at 450k. Ah well, guess I'll have to work around it! Thanks!
SC2 has two types, signed 32bit integer and signed Q18.13 fixed. As such everything the game does will be capped by the range of those types.
It does not use floating points (WC3 did which is why it supported larger ranges) because they are notoriously platform dependent and cause a lot of grief (we all remember the Windows with Mac session problems from WC3).
Sc2 doesn't use floating points? Kinda surprised to hear that, since I've had to do a lot of work to get simple calculations to be accurate. Usually they'll be off by about +/- 1% and I always just attributed that to reals being floating points. I have the Strength stat increase summoned unit life by 5% per point, and actually getting that to work without the result being irritatingly off (2401 life instead of 2400) was such a pain!
Even then, large damage buffs are still displaying weird amounts. Weapons that deal 5000 damage but have a 25% bonus give some odd looking number.
Edit: Yeah, +10% damage buff on a unit with 5000 damage gives +500.49 which isn't really wrong, just... ugly!
Fixed point numbers have other sources of error, especially if they do not use 64bit intermediates. It mostly comes down to the in ability to represent decimal numbers exactly.
1.10 -> 1.10009765625 (rounding up)
1.10009765625 * 5000 = 5500.48828125
See where the error came from? The solution is to choose binary fractions for the amount to add as opposed to decimal ones as those have no representation error.
@TyaArcade: Go
Ah, reminds me of the gods in LOAP and The Curse Of Time RPG. The one had stats so rigged they overflowed and killed themselves the others took a combined assault and lots of Liches for over an hour and a ton of expensive cheesy towers.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg