Pages:<< prev 1 next >>
#1 Jan 12, 2008 5:45 pm
Black Hand
GroupAdministrators
Posts3,697
JoinedJan 1, 2002
Bug: Mobs with max hitdie values always show as DYING
Danger: Trivial - Display issue only.
Discovered in: AFKMud 2.02
Found by: Kayle
Fixed by: Quixadhal
---
act_info.cpp, show_condition
Locate:
Change to:
The problem exists because show_condition used strictly integer math to handle the calculations. It's likely complicated even more by the fact that stock Smaug defines victim->hit and victim->max_hit as short. Casting everything to doubles gives back a useable percent value.
Danger: Trivial - Display issue only.
Discovered in: AFKMud 2.02
Found by: Kayle
Fixed by: Quixadhal
---
act_info.cpp, show_condition
Locate:
if( victim->max_hit > 0 ) percent = ( 100 * victim->hit ) / victim->max_hit; else percent = -1;
Change to:
if( victim->max_hit > 0 ) percent = ( int )( ( 100.0 * ( double )( victim->hit ) ) / ( double )( victim->max_hit ) ); else percent = -1;
Kayle said:
Currently the max hitdie you can assign a mob is 30000d30000+30000. Well, if you assign this to a mob, they could have anywhere from 60,000 to 690,030,000 hit points. Well, any amount of hitpoints over 20,000,000 will result in the mob always showing up as DYING.
The problem exists because show_condition used strictly integer math to handle the calculations. It's likely complicated even more by the fact that stock Smaug defines victim->hit and victim->max_hit as short. Casting everything to doubles gives back a useable percent value.
Pages:<< prev 1 next >>