WizWom Posted September 13, 2006 Share Posted September 13, 2006 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
Nythrun Posted September 13, 2006 Share Posted September 13, 2006 Platform: Windows XP, 1 GB RAM, AMD Semprom, ATI 8500, crash 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. I'm so confused. Link to comment
WizWom Posted September 13, 2006 Author Share Posted September 13, 2006 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
Recommended Posts
Archived
This topic is now archived and is closed to further replies.