Jump to content

Effect Damage Dice value


WizWom

Recommended Posts

Based on http://forums.gibberlings3.net/index.php?showtopic=7527 I decided to try some things:

 

Modify AMUL01 to

5d2 : 7-8 damage taken

5d1 : 5 damage

9d1 : 9 dmg

0x7FFFFFF9 d1 : crash

0x11 d1 : 17 dmg

0x21 d1 : 33 dmg

At this point I hack the GAM to CHARNAME 512 base HP, 530 after CON

0x41 d1 : 65 dmg

0x81 d1 : 129 dmg

0x101 d1 : crash

0x201 d1 : crash

0x401 d1 : crash

0x701 d1 : crash

0xC01 d1 : crash

0xFF d1 : 255 dmg

 

So, it seems something happens you go over 255, but it doues nott seem to have an & 0xFF in the code, or a cast to char.

 

Platform: Windows XP, 1 GB RAM, AMD Semprom, ATI 8500, crash

Link to comment
Platform: Windows XP, 1 GB RAM, AMD Semprom, ATI 8500, crash

:blush:

 

Bizarre, dice type and sides in .itm extended headers aren't the same as dice type and sides in feature blocks despite both being dwords that are apparently using only one byte. Confirmed, changing the extended header of amul01 from 0d6 to 0x101d1 results in one point of damage, and changing either damage effect in the feature block from 3d6 to 0x101d1 results in crash. :hm: I'm so confused.

Link to comment

If they used an unsigned char for a while loop variable, but then did the test against the value as an unsigned long (4 bytes), then we would get exactly this behavior, now that I think about it.

 

Of course, using anything but int (normal or unsigned) for a temporary variable is stupid in so many ways...

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...