D2S Parsing almost done. Todo: full item parsing, Editor GUI, NPC Intro Data, refactor code, writeQuest/writeStat function etc.

This commit is contained in:
Hash Borgir
2022-06-29 01:53:27 -06:00
parent 29063867c5
commit e51e40175e
5 changed files with 146 additions and 59 deletions

View File

@@ -66,25 +66,48 @@ $stats->setBits($cleanbits);
//}
$stats->rewind();
for($i=0; $i <= strlen($bits); $i++) {
$id = hexdec($ByteReader->toBytesR($stats->readb(9)));
if (!empty($ISC[$id])){
$val = $stats->readb($ISC[$id]['CSvBits']);
$stat = $ISC[$id]['Stat'];
$values[$stat] = hexdec($ByteReader->toBytesR($val));
}
$stats->skip($ISC[$id]['CSvBits']);
$ids[$id] = $id;
}
$values['hitpoints'] = (int) round($values['hitpoints'] / 2048);
$values['maxhp'] = (int) round($values['maxhp'] / 2048);
$values['mana'] = (int) round($values['mana'] / 2048);
$values['maxmana'] = (int) round($values['maxmana'] / 2048);
$values['stamina'] = (int) round($values['stamina'] / 2048);
$values['maxstamina'] = (int) round($values['maxstamina'] / 2048);
$values['killcounter'] = (int) round($values['killcounter'] / 2);
$stats->rewind();
foreach($ids as $id){
$stats->skip(9);
$val = $stats->readb($ISC[$id]['CSvBits']);
$stat = $ISC[$id]['Stat'];
$values[$stat] = hexdec($ByteReader->toBytesR($val));
}
$values['hitpoints'] = (int) round($values['hitpoints'] >> 11);
$values['maxhp'] = (int) round($values['maxhp'] >> 11);
$values['mana'] = (int) round($values['mana'] >> 11);
$values['maxmana'] = (int) round($values['maxmana'] >> 11);
$values['stamina'] = (int) round($values['stamina'] >> 11);
$values['maxstamina'] = (int) round($values['maxstamina'] >> 11);
$values['killcounter'] = (int) round($values['killcounter'] >> 1);
var_dump($values);
//$stats->rewind();
//for($i=0; $i <= strlen($bits); $i++) {
// $id = hexdec($ByteReader->toBytesR($stats->readb(9)));
// if (!empty($ISC[$id])){
// $val = $stats->readb($ISC[$id]['CSvBits']);
// $stat = $ISC[$id]['Stat'];
// $values[$stat] = hexdec($ByteReader->toBytesR($val));
// }
//}
//$values['hitpoints'] = (int) round($values['hitpoints'] / 2048);
//$values['maxhp'] = (int) round($values['maxhp'] / 2048);
//$values['mana'] = (int) round($values['mana'] / 2048);
//$values['maxmana'] = (int) round($values['maxmana'] / 2048);
//$values['stamina'] = (int) round($values['stamina'] / 2048);
//$values['maxstamina'] = (int) round($values['maxstamina'] / 2048);
//$values['killcounter'] = (int) round($values['killcounter'] / 2);
//
//var_dump($values);
//array_pop($ids);
//