in starcraft 1.16.1, I have a terran command center that hp is to 15000, I found HP will not be displayed when HP is up to 10000, I tested it, when it goes to 9999, it is fine, then I changed it to 10000, boom just gone. can anyone fix this ? or it is fixed already?
None.
This is normal Starcraft behaviour, I don't think it's something that could be easily fixed.
The original staredit only allowed life up to 9999. Also if a unit has both 4-digit shields and hp the hp will be hidden until the unit is sufficiently damaged.
None.
The game is hardcoded to hide the hp/shields counter if either hitpoints or shields are above 9999. Can be easily resolved with GPTP, by patching or hooking the function @ 0x4263E0.
It will also not show if the text doesn't fit within the text area, which is usually when both hp and shields have large values, but may still appear visible if there are a bunch of ones since they take up less width than the other numbers. This can be resolved by editing the statdata.bin file and widening that text area.
The game is hardcoded to hide the hp/shields counter if either hitpoints or shields are above 9999. Can be easily resolved with GPTP, by patching or hooking the function @ 0x4263E0.
It will also not show if the text doesn't fit within the text area, which is usually when both hp and shields have large values, but may still appear visible if there are a bunch of ones since they take up less width than the other numbers. This can be resolved by editing the statdata.bin file and widening that text area.
thanks for your reply. as you mentioned that by patching or hooking the function @ 0x4263E0. how can I do this? I've already got the gptp, and next step?
None.
https://github.com/BoomerangAide/GPTP/blob/master/GPTP/hooks/interface/status_display/advanced/status_base_text.cpp#L835unitMaxHP <= 9999
- change
9999 to a higher value
(up to 8388607, at which point would be the same as the next option)-
or change to
unitMaxHP >= 0-
or remove entirely to display any hitpoints value
units_dat::MaxShieldPoints[unit->id] <= 9999
- change
9999 to a higher value
(up to 65535, at which point would be the same as the next option)-
or remove entirely to display any shield points value
The reason for the max value or non-negative number is because hitpoints are signed int, so anything above 8388607 will appear as negative HP. However you can do without the number check because although the game can display the negative number just fine, it will crash anyway because the HP bars cannot handle negative HP properly (which is something that can also be fixed).
https://github.com/BoomerangAide/GPTP/blob/master/GPTP/hooks/interface/status_display/advanced/status_base_text.cpp#L835unitMaxHP <= 9999
- change
9999 to a higher value
(up to 8388607, at which point would be the same as the next option)-
or change to
unitMaxHP >= 0-
or remove entirely to display any hitpoints value
units_dat::MaxShieldPoints[unit->id] <= 9999
- change
9999 to a higher value
(up to 65535, at which point would be the same as the next option)-
or remove entirely to display any shield points value
The reason for the max value or non-negative number is because hitpoints are signed int, so anything above 8388607 will appear as negative HP. However you can do without the number check because although the game can display the negative number just fine, it will crash anyway because the HP bars cannot handle negative HP properly (which is something that can also be fixed).
thanks for your reply,so I changed the values you listed, and compiled it to the plugin, everything will be just fine?
None.
https://github.com/BoomerangAide/GPTP/blob/master/GPTP/hooks/interface/status_display/advanced/status_base_text.cpp#L835unitMaxHP <= 9999
- change
9999 to a higher value
(up to 8388607, at which point would be the same as the next option)-
or change to
unitMaxHP >= 0-
or remove entirely to display any hitpoints value
units_dat::MaxShieldPoints[unit->id] <= 9999
- change
9999 to a higher value
(up to 65535, at which point would be the same as the next option)-
or remove entirely to display any shield points value
The reason for the max value or non-negative number is because hitpoints are signed int, so anything above 8388607 will appear as negative HP. However you can do without the number check because although the game can display the negative number just fine, it will crash anyway because the HP bars cannot handle negative HP properly (which is something that can also be fixed).
I finally generate the result files:GPTP.dll and somehow I can not load it into game? how should I do?
None.