mirror of
https://gitlab.com/hashborgir/d2tools.git
synced 2024-11-30 12:36:03 +00:00
d2s checksum working, no more bad generic file
This commit is contained in:
parent
3001eaf611
commit
25bfbfe93d
@ -57,7 +57,7 @@ if (!empty($_POST)) {
|
|||||||
$path = rtrim($_POST['path'], "\\");
|
$path = rtrim($_POST['path'], "\\");
|
||||||
$path = str_replace("\\", "\\\\", $path);
|
$path = str_replace("\\", "\\\\", $path);
|
||||||
|
|
||||||
$savePath .= $path . '\\\\save\\\\';
|
$savePath = $path . '\\\\save\\\\';
|
||||||
$tbl = $path.'\\\\data\\\\local\\\\lng\\\\eng\\\\';
|
$tbl = $path.'\\\\data\\\\local\\\\lng\\\\eng\\\\';
|
||||||
|
|
||||||
$path .= '\\\\data\\\\global\\\\excel\\\\';
|
$path .= '\\\\data\\\\global\\\\excel\\\\';
|
||||||
|
@ -73,4 +73,8 @@ function strtobits(string $str): string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
function swapEndianness($hex) {
|
||||||
|
return implode('', array_reverse(str_split($hex, 2)));
|
||||||
}
|
}
|
@ -118,21 +118,21 @@ class D2SaveFile {
|
|||||||
|
|
||||||
foreach ($questsNorm as $k => $v) {
|
foreach ($questsNorm as $k => $v) {
|
||||||
$x = (str_split(strtobits($v), 8));
|
$x = (str_split(strtobits($v), 8));
|
||||||
//if ($x[0][0]) {
|
if ($x[0][0]) {
|
||||||
$quests['Norm'][$this->sData->qNorm[$k]] = $x[0][0];
|
$quests['Norm'][$this->sData->qNorm[$k]] = $x[0][0];
|
||||||
//}
|
}
|
||||||
}
|
}
|
||||||
foreach ($questsNM as $k => $v) {
|
foreach ($questsNM as $k => $v) {
|
||||||
$x = array_filter(str_split(strtobits($v), 8));
|
$x = array_filter(str_split(strtobits($v), 8));
|
||||||
//if ($x[0][0]) {
|
if ($x[0][0]) {
|
||||||
$quests['NM'][$this->sData->qNM[$k]] = $x[0][0];
|
$quests['NM'][$this->sData->qNM[$k]] = $x[0][0];
|
||||||
//}
|
}
|
||||||
}
|
}
|
||||||
foreach ($questsHell as $k => $v) {
|
foreach ($questsHell as $k => $v) {
|
||||||
$x = array_filter(str_split(strtobits($v), 8));
|
$x = array_filter(str_split(strtobits($v), 8));
|
||||||
//if ($x[0][0]) {
|
if ($x[0][0]) {
|
||||||
$quests['Hell'][$this->sData->qHell[$k]] = $x[0][0];
|
$quests['Hell'][$this->sData->qHell[$k]] = $x[0][0];
|
||||||
//}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $quests;
|
return $quests;
|
||||||
@ -188,15 +188,21 @@ class D2SaveFile {
|
|||||||
// ddump(str_split($wp['Norm']));
|
// ddump(str_split($wp['Norm']));
|
||||||
|
|
||||||
foreach ($wp['Norm'] as $k => $v) {
|
foreach ($wp['Norm'] as $k => $v) {
|
||||||
$waypoints['Norm'][$this->sData->wpNames[$k]] = $v;
|
if ($v == 1) {
|
||||||
|
$waypoints['Norm'][$this->sData->wpNames[$k]] = $v;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($wp['NM'] as $k => $v) {
|
foreach ($wp['NM'] as $k => $v) {
|
||||||
$waypoints['NM'][$this->sData->wpNames[$k]] = $v;
|
if ($v == 1) {
|
||||||
|
$waypoints['NM'][$this->sData->wpNames[$k]] = $v;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($wp['Hell'] as $k => $v) {
|
foreach ($wp['Hell'] as $k => $v) {
|
||||||
$waypoints['Hell'][$this->sData->wpNames[$k]] = $v;
|
if ($v == 1) {
|
||||||
|
$waypoints['Hell'][$this->sData->wpNames[$k]] = $v;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,39 +71,39 @@ class D2SaveFileStructureData {
|
|||||||
714 => 51, // NPC Introductions
|
714 => 51, // NPC Introductions
|
||||||
];
|
];
|
||||||
public $qNorm = [
|
public $qNorm = [
|
||||||
345 => 'introWarriv',
|
//345 => 'introWarriv',
|
||||||
347 => 'DenOfEvil',
|
347 => 'DenOfEvil',
|
||||||
349 => 'SistersBurialGrounds',
|
349 => 'SistersBurialGrounds',
|
||||||
351 => 'ToolsOfTheTrade',
|
351 => 'ToolsOfTheTrade',
|
||||||
353 => 'TheSearchForCain',
|
353 => 'TheSearchForCain',
|
||||||
355 => 'TheForgottenTower',
|
355 => 'TheForgottenTower',
|
||||||
357 => 'SistersToTheSlaughter',
|
357 => 'SistersToTheSlaughter',
|
||||||
359 => 'traveledToAct2',
|
//359 => 'traveledToAct2',
|
||||||
361 => 'introJerhyn',
|
//361 => 'introJerhyn',
|
||||||
363 => 'RadamentsLair',
|
363 => 'RadamentsLair',
|
||||||
365 => 'TheHoradricStaff',
|
365 => 'TheHoradricStaff',
|
||||||
367 => 'TaintedSun',
|
367 => 'TaintedSun',
|
||||||
369 => 'ArcaneSanctuary',
|
369 => 'ArcaneSanctuary',
|
||||||
371 => 'TheSummoner',
|
371 => 'TheSummoner',
|
||||||
373 => 'TheSevenTombs',
|
373 => 'TheSevenTombs',
|
||||||
375 => 'traveledToAct3',
|
//375 => 'traveledToAct3',
|
||||||
377 => 'introHratli',
|
//377 => 'introHratli',
|
||||||
379 => 'LamEsensTome',
|
379 => 'LamEsensTome',
|
||||||
381 => 'KhalimsWill',
|
381 => 'KhalimsWill',
|
||||||
383 => 'BladeOfTheOldReligion',
|
383 => 'BladeOfTheOldReligion',
|
||||||
385 => 'TheGoldenBird',
|
385 => 'TheGoldenBird',
|
||||||
387 => 'TheBlackenedTemple',
|
387 => 'TheBlackenedTemple',
|
||||||
389 => 'TheGuardian',
|
389 => 'TheGuardian',
|
||||||
391 => 'traveledtoAct4',
|
//391 => 'traveledtoAct4',
|
||||||
393 => 'introToAct4',
|
//393 => 'introToAct4',
|
||||||
395 => 'TheFallenAngel',
|
395 => 'TheFallenAngel',
|
||||||
397 => 'TerrorsEnd',
|
397 => 'TerrorsEnd',
|
||||||
399 => 'HellForge',
|
399 => 'HellForge',
|
||||||
401 => 'empty1',
|
//401 => 'empty1',
|
||||||
403 => 'empty2',
|
//403 => 'empty2',
|
||||||
405 => 'empty3',
|
//405 => 'empty3',
|
||||||
407 => 'traveledToAct5',
|
//407 => 'traveledToAct5',
|
||||||
409 => 'completedTerrorsEnd',
|
//409 => 'completedTerrorsEnd',
|
||||||
414 => 'SiegeOnHarrogath',
|
414 => 'SiegeOnHarrogath',
|
||||||
416 => 'RescueOnMountArreat',
|
416 => 'RescueOnMountArreat',
|
||||||
418 => 'PrisonOfIce',
|
418 => 'PrisonOfIce',
|
||||||
@ -112,39 +112,39 @@ class D2SaveFileStructureData {
|
|||||||
424 => 'EveOfDestruction',
|
424 => 'EveOfDestruction',
|
||||||
];
|
];
|
||||||
public $qNM = [
|
public $qNM = [
|
||||||
438 => 'introWarrivNM',
|
//438 => 'introWarrivNM',
|
||||||
440 => 'DenOfEvilNM',
|
440 => 'DenOfEvilNM',
|
||||||
442 => 'SistersBurialGroundsNM',
|
442 => 'SistersBurialGroundsNM',
|
||||||
444 => 'ToolsOfTheTradeNM',
|
444 => 'ToolsOfTheTradeNM',
|
||||||
446 => 'TheSearchForCainNM',
|
446 => 'TheSearchForCainNM',
|
||||||
448 => 'TheForgottenTowerNM',
|
448 => 'TheForgottenTowerNM',
|
||||||
450 => 'SistersToTheSlaughterNM',
|
450 => 'SistersToTheSlaughterNM',
|
||||||
452 => 'traveledToAct2NM',
|
//452 => 'traveledToAct2NM',
|
||||||
454 => 'introJerhynNM',
|
//454 => 'introJerhynNM',
|
||||||
456 => 'RadamentsLairNM',
|
456 => 'RadamentsLairNM',
|
||||||
458 => 'TheHoradricStaffNM',
|
458 => 'TheHoradricStaffNM',
|
||||||
460 => 'TaintedSunNM',
|
460 => 'TaintedSunNM',
|
||||||
462 => 'ArcaneSanctuaryNM',
|
462 => 'ArcaneSanctuaryNM',
|
||||||
464 => 'TheSummonerNM',
|
464 => 'TheSummonerNM',
|
||||||
466 => 'TheSevenTombsNM',
|
466 => 'TheSevenTombsNM',
|
||||||
468 => 'traveledToAct3NM',
|
//468 => 'traveledToAct3NM',
|
||||||
470 => 'introHratliNM',
|
//470 => 'introHratliNM',
|
||||||
472 => 'LamEsensTomeNM',
|
472 => 'LamEsensTomeNM',
|
||||||
474 => 'KhalimsWillNM',
|
474 => 'KhalimsWillNM',
|
||||||
476 => 'BladeOfTheOldReligionNM',
|
476 => 'BladeOfTheOldReligionNM',
|
||||||
478 => 'TheGoldenBirdNM',
|
478 => 'TheGoldenBirdNM',
|
||||||
480 => 'TheBlackenedTempleNM',
|
480 => 'TheBlackenedTempleNM',
|
||||||
482 => 'TheGuardianNM',
|
482 => 'TheGuardianNM',
|
||||||
484 => 'traveledtoAct4NM',
|
//484 => 'traveledtoAct4NM',
|
||||||
486 => 'introToAct4NM',
|
//486 => 'introToAct4NM',
|
||||||
488 => 'TheFallenAngelNM',
|
488 => 'TheFallenAngelNM',
|
||||||
490 => 'TerrorsEndNM',
|
490 => 'TerrorsEndNM',
|
||||||
492 => 'HellForgeNM',
|
492 => 'HellForgeNM',
|
||||||
494 => 'emptyNM1',
|
//494 => 'emptyNM1',
|
||||||
496 => 'emptyNM2',
|
//496 => 'emptyNM2',
|
||||||
498 => 'emptyNM3',
|
//498 => 'emptyNM3',
|
||||||
500 => 'traveledToAct5NM',
|
//500 => 'traveledToAct5NM',
|
||||||
502 => 'completedTerrorsEndNM',
|
//502 => 'completedTerrorsEndNM',
|
||||||
504 => 'SiegeOnHarrogathNM',
|
504 => 'SiegeOnHarrogathNM',
|
||||||
506 => 'RescueOnMountArreatNM',
|
506 => 'RescueOnMountArreatNM',
|
||||||
508 => 'PrisonOfIceNM',
|
508 => 'PrisonOfIceNM',
|
||||||
@ -153,39 +153,39 @@ class D2SaveFileStructureData {
|
|||||||
514 => 'EveOfDestructionNM',
|
514 => 'EveOfDestructionNM',
|
||||||
];
|
];
|
||||||
public $qHell = [
|
public $qHell = [
|
||||||
528 => 'introWarrivHell',
|
//528 => 'introWarrivHell',
|
||||||
530 => 'DenOfEvilHell',
|
530 => 'DenOfEvilHell',
|
||||||
532 => 'SistersBurialGroundsHell',
|
532 => 'SistersBurialGroundsHell',
|
||||||
534 => 'ToolsOfTheTradeHell',
|
534 => 'ToolsOfTheTradeHell',
|
||||||
536 => 'TheSearchForCainHell',
|
536 => 'TheSearchForCainHell',
|
||||||
538 => 'TheForgottenTowerHell',
|
538 => 'TheForgottenTowerHell',
|
||||||
540 => 'SistersToTheSlaughterHell',
|
540 => 'SistersToTheSlaughterHell',
|
||||||
542 => 'traveledToAct2Hell',
|
//542 => 'traveledToAct2Hell',
|
||||||
544 => 'introJerhynHell',
|
//544 => 'introJerhynHell',
|
||||||
546 => 'RadamentsLairHell',
|
546 => 'RadamentsLairHell',
|
||||||
548 => 'TheHoradricStaffHell',
|
548 => 'TheHoradricStaffHell',
|
||||||
550 => 'TaintedSunHell',
|
550 => 'TaintedSunHell',
|
||||||
552 => 'ArcaneSanctuaryHell',
|
552 => 'ArcaneSanctuaryHell',
|
||||||
554 => 'TheSummonerHell',
|
554 => 'TheSummonerHell',
|
||||||
556 => 'TheSevenTombsHell',
|
556 => 'TheSevenTombsHell',
|
||||||
558 => 'traveledToAct3Hell',
|
//558 => 'traveledToAct3Hell',
|
||||||
560 => 'introHratliHell',
|
//560 => 'introHratliHell',
|
||||||
562 => 'LamEsensTomeHell',
|
562 => 'LamEsensTomeHell',
|
||||||
564 => 'KhalimsWillHell',
|
564 => 'KhalimsWillHell',
|
||||||
566 => 'BladeOfTheOldReligionHell',
|
566 => 'BladeOfTheOldReligionHell',
|
||||||
568 => 'TheGoldenBirdHell',
|
568 => 'TheGoldenBirdHell',
|
||||||
570 => 'TheBlackenedTempleHell',
|
570 => 'TheBlackenedTempleHell',
|
||||||
572 => 'TheGuardianHell',
|
572 => 'TheGuardianHell',
|
||||||
574 => 'traveledtoAct4Hell',
|
//574 => 'traveledtoAct4Hell',
|
||||||
576 => 'introToAct4Hell',
|
//576 => 'introToAct4Hell',
|
||||||
578 => 'TheFallenAngelHell',
|
578 => 'TheFallenAngelHell',
|
||||||
580 => 'TerrorsEndHell',
|
580 => 'TerrorsEndHell',
|
||||||
582 => 'HellForgeHell',
|
582 => 'HellForgeHell',
|
||||||
584 => 'emptyHell1',
|
//584 => 'emptyHell1',
|
||||||
586 => 'emptyHell2',
|
//586 => 'emptyHell2',
|
||||||
588 => 'emptyHell3',
|
//588 => 'emptyHell3',
|
||||||
590 => 'traveledToAct5Hell',
|
//590 => 'traveledToAct5Hell',
|
||||||
592 => 'completedTerrorsEndHell',
|
//592 => 'completedTerrorsEndHell',
|
||||||
594 => 'SiegeOnHarrogathHell',
|
594 => 'SiegeOnHarrogathHell',
|
||||||
596 => 'RescueOnMountArreatHell',
|
596 => 'RescueOnMountArreatHell',
|
||||||
598 => 'PrisonOfIceHell',
|
598 => 'PrisonOfIceHell',
|
||||||
@ -293,6 +293,265 @@ class D2SaveFileStructureData {
|
|||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
public $xorTable = [
|
||||||
|
"00" => 0x0,
|
||||||
|
"01" => 0x77073096,
|
||||||
|
"02" => 0xEE0E612C,
|
||||||
|
"03" => 0x990951BA,
|
||||||
|
"04" => 0x076DC419,
|
||||||
|
"05" => 0x706AF48F,
|
||||||
|
"06" => 0xE963A535,
|
||||||
|
"07" => 0x9E6495A3,
|
||||||
|
"08" => 0x0EDB8832,
|
||||||
|
"09" => 0x79DCB8A4,
|
||||||
|
"0A" => 0xE0D5E91E,
|
||||||
|
"0B" => 0x97D2D988,
|
||||||
|
"0C" => 0x09B64C2B,
|
||||||
|
"0D" => 0x7EB17CBD,
|
||||||
|
"0E" => 0xE7B82D07,
|
||||||
|
"0F" => 0x90BF1D91,
|
||||||
|
"10" => 0x1DB71064,
|
||||||
|
"11" => 0x6AB020F2,
|
||||||
|
"12" => 0xF3B97148,
|
||||||
|
"13" => 0x84BE41DE,
|
||||||
|
"14" => 0x1ADAD47D,
|
||||||
|
"15" => 0x6DDDE4EB,
|
||||||
|
"16" => 0xF4D4B551,
|
||||||
|
"17" => 0x83D385C7,
|
||||||
|
"18" => 0x136C9856,
|
||||||
|
"19" => 0x646BA8C0,
|
||||||
|
"1A" => 0xFD62F97A,
|
||||||
|
"1B" => 0x8A65C9EC,
|
||||||
|
"1C" => 0x14015C4F,
|
||||||
|
"1D" => 0x63066CD9,
|
||||||
|
"1E" => 0xFA0F3D63,
|
||||||
|
"1F" => 0x8D080DF5,
|
||||||
|
"20" => 0x3B6E20C8,
|
||||||
|
"21" => 0x4C69105E,
|
||||||
|
"22" => 0xD56041E4,
|
||||||
|
"23" => 0xA2677172,
|
||||||
|
"24" => 0x3C03E4D1,
|
||||||
|
"25" => 0x4B04D447,
|
||||||
|
"26" => 0xD20D85FD,
|
||||||
|
"27" => 0xA50AB56B,
|
||||||
|
"28" => 0x35B5A8FA,
|
||||||
|
"29" => 0x42B2986C,
|
||||||
|
"2A" => 0xDBBBC9D6,
|
||||||
|
"2B" => 0xACBCF940,
|
||||||
|
"2C" => 0x32D86CE3,
|
||||||
|
"2D" => 0x45DF5C75,
|
||||||
|
"2E" => 0xDCD60DCF,
|
||||||
|
"2F" => 0xABD13D59,
|
||||||
|
"30" => 0x26D930AC,
|
||||||
|
"31" => 0x51DE003A,
|
||||||
|
"32" => 0xC8D75180,
|
||||||
|
"33" => 0xBFD06116,
|
||||||
|
"34" => 0x21B4F4B5,
|
||||||
|
"35" => 0x56B3C423,
|
||||||
|
"36" => 0xCFBA9599,
|
||||||
|
"37" => 0xB8BDA50F,
|
||||||
|
"38" => 0x2802B89E,
|
||||||
|
"39" => 0x5F058808,
|
||||||
|
"3A" => 0xC60CD9B2,
|
||||||
|
"3B" => 0xB10BE924,
|
||||||
|
"3C" => 0x2F6F7C87,
|
||||||
|
"3D" => 0x58684C11,
|
||||||
|
"3E" => 0xC1611DAB,
|
||||||
|
"3F" => 0xB6662D3D,
|
||||||
|
"40" => 0x76DC4190,
|
||||||
|
"41" => 0x01DB7106,
|
||||||
|
"42" => 0x98D220BC,
|
||||||
|
"43" => 0xEFD5102A,
|
||||||
|
"44" => 0x71B18589,
|
||||||
|
"45" => 0x06B6B51F,
|
||||||
|
"46" => 0x9FBFE4A5,
|
||||||
|
"47" => 0xE8B8D433,
|
||||||
|
"48" => 0x7807C9A2,
|
||||||
|
"49" => 0x0F00F934,
|
||||||
|
"4A" => 0x9609A88E,
|
||||||
|
"4B" => 0xE10E9818,
|
||||||
|
"4C" => 0x7F6A0DBB,
|
||||||
|
"4D" => 0x086D3D2D,
|
||||||
|
"4E" => 0x91646C97,
|
||||||
|
"4F" => 0xE6635C01,
|
||||||
|
"50" => 0x6B6B51F4,
|
||||||
|
"51" => 0x1C6C6162,
|
||||||
|
"52" => 0x856530D8,
|
||||||
|
"53" => 0xF262004E,
|
||||||
|
"54" => 0x6C0695ED,
|
||||||
|
"55" => 0x1B01A57B,
|
||||||
|
"56" => 0x8208F4C1,
|
||||||
|
"57" => 0xF50FC457,
|
||||||
|
"58" => 0x65B0D9C6,
|
||||||
|
"59" => 0x12B7E950,
|
||||||
|
"5A" => 0x8BBEB8EA,
|
||||||
|
"5B" => 0xFCB9887C,
|
||||||
|
"5C" => 0x62DD1DDF,
|
||||||
|
"5D" => 0x15DA2D49,
|
||||||
|
"5E" => 0x8CD37CF3,
|
||||||
|
"5F" => 0xFBD44C65,
|
||||||
|
"60" => 0x4DB26158,
|
||||||
|
"61" => 0x3AB551CE,
|
||||||
|
"62" => 0xA3BC0074,
|
||||||
|
"63" => 0xD4BB30E2,
|
||||||
|
"64" => 0x4ADFA541,
|
||||||
|
"65" => 0x3DD895D7,
|
||||||
|
"66" => 0xA4D1C46D,
|
||||||
|
"67" => 0xD3D6F4FB,
|
||||||
|
"68" => 0x4369E96A,
|
||||||
|
"69" => 0x346ED9FC,
|
||||||
|
"6A" => 0xAD678846,
|
||||||
|
"6B" => 0xDA60B8D0,
|
||||||
|
"6C" => 0x44042D73,
|
||||||
|
"6D" => 0x33031DE5,
|
||||||
|
"6E" => 0xAA0A4C5F,
|
||||||
|
"6F" => 0xDD0D7CC9,
|
||||||
|
"70" => 0x5005713C,
|
||||||
|
"71" => 0x270241AA,
|
||||||
|
"72" => 0xBE0B1010,
|
||||||
|
"73" => 0xC90C2086,
|
||||||
|
"74" => 0x5768B525,
|
||||||
|
"75" => 0x206F85B3,
|
||||||
|
"76" => 0xB966D409,
|
||||||
|
"77" => 0xCE61E49F,
|
||||||
|
"78" => 0x5EDEF90E,
|
||||||
|
"79" => 0x29D9C998,
|
||||||
|
"7A" => 0xB0D09822,
|
||||||
|
"7B" => 0xC7D7A8B4,
|
||||||
|
"7C" => 0x59B33D17,
|
||||||
|
"7D" => 0x2EB40D81,
|
||||||
|
"7E" => 0xB7BD5C3B,
|
||||||
|
"7F" => 0xC0BA6CAD,
|
||||||
|
"80" => 0xEDB88320,
|
||||||
|
"81" => 0x9ABFB3B6,
|
||||||
|
"82" => 0x03B6E20C,
|
||||||
|
"83" => 0x74B1D29A,
|
||||||
|
"84" => 0xEAD54739,
|
||||||
|
"85" => 0x9DD277AF,
|
||||||
|
"86" => 0x04DB2615,
|
||||||
|
"87" => 0x73DC1683,
|
||||||
|
"88" => 0xE3630B12,
|
||||||
|
"89" => 0x94643B84,
|
||||||
|
"8A" => 0x0D6D6A3E,
|
||||||
|
"8B" => 0x7A6A5AA8,
|
||||||
|
"8C" => 0xE40ECF0B,
|
||||||
|
"8D" => 0x9309FF9D,
|
||||||
|
"8E" => 0x0A00AE27,
|
||||||
|
"8F" => 0x7D079EB1,
|
||||||
|
"90" => 0xF00F9344,
|
||||||
|
"91" => 0x8708A3D2,
|
||||||
|
"92" => 0x1E01F268,
|
||||||
|
"93" => 0x6906C2FE,
|
||||||
|
"94" => 0xF762575D,
|
||||||
|
"95" => 0x806567CB,
|
||||||
|
"96" => 0x196C3671,
|
||||||
|
"97" => 0x6E6B06E7,
|
||||||
|
"98" => 0xFED41B76,
|
||||||
|
"99" => 0x89D32BE0,
|
||||||
|
"9A" => 0x10DA7A5A,
|
||||||
|
"9B" => 0x67DD4ACC,
|
||||||
|
"9C" => 0xF9B9DF6F,
|
||||||
|
"9D" => 0x8EBEEFF9,
|
||||||
|
"9E" => 0x17B7BE43,
|
||||||
|
"9F" => 0x60B08ED5,
|
||||||
|
"A0" => 0xD6D6A3E8,
|
||||||
|
"A1" => 0xA1D1937E,
|
||||||
|
"A2" => 0x38D8C2C4,
|
||||||
|
"A3" => 0x4FDFF252,
|
||||||
|
"A4" => 0xD1BB67F1,
|
||||||
|
"A5" => 0xA6BC5767,
|
||||||
|
"A6" => 0x3FB506DD,
|
||||||
|
"A7" => 0x48B2364B,
|
||||||
|
"A8" => 0xD80D2BDA,
|
||||||
|
"A9" => 0xAF0A1B4C,
|
||||||
|
"AA" => 0x36034AF6,
|
||||||
|
"AB" => 0x41047A60,
|
||||||
|
"AC" => 0xDF60EFC3,
|
||||||
|
"AD" => 0xA867DF55,
|
||||||
|
"AE" => 0x316E8EEF,
|
||||||
|
"AF" => 0x4669BE79,
|
||||||
|
"B0" => 0xCB61B38C,
|
||||||
|
"B1" => 0xBC66831A,
|
||||||
|
"B2" => 0x256FD2A0,
|
||||||
|
"B3" => 0x5268E236,
|
||||||
|
"B4" => 0xCC0C7795,
|
||||||
|
"B5" => 0xBB0B4703,
|
||||||
|
"B6" => 0x220216B9,
|
||||||
|
"B7" => 0x5505262F,
|
||||||
|
"B8" => 0xC5BA3BBE,
|
||||||
|
"B9" => 0xB2BD0B28,
|
||||||
|
"BA" => 0x2BB45A92,
|
||||||
|
"BB" => 0x5CB36A04,
|
||||||
|
"BC" => 0xC2D7FFA7,
|
||||||
|
"BD" => 0xB5D0CF31,
|
||||||
|
"BE" => 0x2CD99E8B,
|
||||||
|
"BF" => 0x5BDEAE1D,
|
||||||
|
"C0" => 0x9B64C2B0,
|
||||||
|
"C1" => 0xEC63F226,
|
||||||
|
"C2" => 0x756AA39C,
|
||||||
|
"C3" => 0x026D930A,
|
||||||
|
"C4" => 0x9C0906A9,
|
||||||
|
"C5" => 0xEB0E363F,
|
||||||
|
"C6" => 0x72076785,
|
||||||
|
"C7" => 0x05005713,
|
||||||
|
"C8" => 0x95BF4A82,
|
||||||
|
"C9" => 0xE2B87A14,
|
||||||
|
"CA" => 0x7BB12BAE,
|
||||||
|
"CB" => 0x0CB61B38,
|
||||||
|
"CC" => 0x92D28E9B,
|
||||||
|
"CD" => 0xE5D5BE0D,
|
||||||
|
"CE" => 0x7CDCEFB7,
|
||||||
|
"CF" => 0x0BDBDF21,
|
||||||
|
"D0" => 0x86D3D2D4,
|
||||||
|
"D1" => 0xF1D4E242,
|
||||||
|
"D2" => 0x68DDB3F8,
|
||||||
|
"D3" => 0x1FDA836E,
|
||||||
|
"D4" => 0x81BE16CD,
|
||||||
|
"D5" => 0xF6B9265B,
|
||||||
|
"D6" => 0x6FB077E1,
|
||||||
|
"D7" => 0x18B74777,
|
||||||
|
"D8" => 0x88085AE6,
|
||||||
|
"D9" => 0xFF0F6A70,
|
||||||
|
"DA" => 0x66063BCA,
|
||||||
|
"DB" => 0x11010B5C,
|
||||||
|
"DC" => 0x8F659EFF,
|
||||||
|
"DD" => 0xF862AE69,
|
||||||
|
"DE" => 0x616BFFD3,
|
||||||
|
"DF" => 0x166CCF45,
|
||||||
|
"E0" => 0xA00AE278,
|
||||||
|
"E1" => 0xD70DD2EE,
|
||||||
|
"E2" => 0x4E048354,
|
||||||
|
"E3" => 0x3903B3C2,
|
||||||
|
"E4" => 0xA7672661,
|
||||||
|
"E5" => 0xD06016F7,
|
||||||
|
"E6" => 0x4969474D,
|
||||||
|
"E7" => 0x3E6E77DB,
|
||||||
|
"E8" => 0xAED16A4A,
|
||||||
|
"E9" => 0xD9D65ADC,
|
||||||
|
"EA" => 0x40DF0B66,
|
||||||
|
"EB" => 0x37D83BF0,
|
||||||
|
"EC" => 0xA9BCAE53,
|
||||||
|
"ED" => 0xDEBB9EC5,
|
||||||
|
"EE" => 0x47B2CF7F,
|
||||||
|
"EF" => 0x30B5FFE9,
|
||||||
|
"F0" => 0xBDBDF21C,
|
||||||
|
"F1" => 0xCABAC28A,
|
||||||
|
"F2" => 0x53B39330,
|
||||||
|
"F3" => 0x24B4A3A6,
|
||||||
|
"F4" => 0xBAD03605,
|
||||||
|
"F5" => 0xCDD70693,
|
||||||
|
"F6" => 0x54DE5729,
|
||||||
|
"F7" => 0x23D967BF,
|
||||||
|
"F8" => 0xB3667A2E,
|
||||||
|
"F9" => 0xC4614AB8,
|
||||||
|
"FA" => 0x5D681B02,
|
||||||
|
"FB" => 0x2A6F2B94,
|
||||||
|
"FC" => 0xB40BBE37,
|
||||||
|
"FD" => 0xC30C8EA1,
|
||||||
|
"FE" => 0x5A05DF1B,
|
||||||
|
"FF" => 0x2D02EF8D
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Initialize Skills From Skills.txt
|
Initialize Skills From Skills.txt
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
$form = new Formr\Formr('bootstrap4');
|
$form = new Formr\Formr();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
@ -80,18 +80,28 @@ EOT;
|
|||||||
<?php
|
<?php
|
||||||
foreach ($charData as $c) {
|
foreach ($charData as $c) {
|
||||||
|
|
||||||
foreach ($c->charData['Quests'] as $quest) {
|
$quests = null;
|
||||||
foreach ($quest as $q) {
|
foreach ($c->charData['Quests'] as $quest) {
|
||||||
|
foreach ($quest as $difficulty => $q) {
|
||||||
foreach ($q as $k => $v) {
|
foreach ($q as $k => $v) {
|
||||||
$quest .= "$k = $v<br>";
|
if ($v == 1) {
|
||||||
|
$quests .= "<input type='checkbox' $k = $v checked disabled>$k<br>";
|
||||||
|
} else {
|
||||||
|
$quests .= "<input type='checkbox' $k = $v disabled>$k<br>";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$wps = null;
|
$wps = null;
|
||||||
foreach ($c->charData['Waypoints'] as $waypoints) {
|
foreach ($c->charData['Waypoints'] as $waypoints) {
|
||||||
foreach ($waypoints as $k => $v) {
|
foreach ($waypoints as $k => $v) {
|
||||||
$wps .= "$k = $v<br>";
|
if ($v == 1 && $k != ''){
|
||||||
|
$wps .= "<input type='checkbox' $k = $v checked disabled>$k<br>";
|
||||||
|
} else {
|
||||||
|
$wps .= "<input type='checkbox' $k = $v disabled>$k<br>";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,12 +190,10 @@ EOT;
|
|||||||
<select id='CharacterClass'>
|
<select id='CharacterClass'>
|
||||||
$option
|
$option
|
||||||
</select>
|
</select>
|
||||||
<div>
|
<input style="border: 1px solid black;width: 34px;" type="number" id="CharacterLevel" value="{$c->charData['CharacterLevel']}"><br>
|
||||||
<input style="border: 1px solid black;width: 34px;" type="number" id="CharacterLevel" value="{$c->charData['CharacterLevel']}">: Char Lvl<br>
|
|
||||||
$radio
|
$radio
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col"><h2>Quests</h2>$quest</div>
|
<div class="col"><h2>Quests</h2>$quests</div>
|
||||||
<div class="col"><h2>Waypoints</h2>$wps</div>
|
<div class="col"><h2>Waypoints</h2>$wps</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
47
test.php
47
test.php
@ -7,6 +7,8 @@ ini_set('max_execution_time', '0');
|
|||||||
session_start();
|
session_start();
|
||||||
ob_start();
|
ob_start();
|
||||||
|
|
||||||
|
require_once './testData.php';
|
||||||
|
|
||||||
require_once './config.php';
|
require_once './config.php';
|
||||||
require_once './_pdo.php';
|
require_once './_pdo.php';
|
||||||
require_once "./src/D2Functions.php";
|
require_once "./src/D2Functions.php";
|
||||||
@ -18,43 +20,26 @@ define('DB_FILE', "ironman-dev.db");
|
|||||||
PDO_Connect("sqlite:" . DB_FILE);
|
PDO_Connect("sqlite:" . DB_FILE);
|
||||||
|
|
||||||
$filename = "D:\Diablo II\MODS\ironman-dev\save\Test.d2s";
|
$filename = "D:\Diablo II\MODS\ironman-dev\save\Test.d2s";
|
||||||
|
$filename = str_replace("\\", "\\\\", $filename);
|
||||||
$fp = fopen($filename, "rb+");
|
$fp = fopen($filename, "rb+");
|
||||||
$filesize = filesize($filename);
|
|
||||||
$pucData = unpack("C*",file_get_contents($filename));
|
|
||||||
|
|
||||||
// ddump($pucData);
|
|
||||||
|
|
||||||
|
|
||||||
// ddump(fseek($fp, 1));
|
|
||||||
|
|
||||||
// pucData - pointer to the byte stream of the .d2s file
|
|
||||||
// iSize - number of bytes in the stream ( filesize )
|
|
||||||
function checksum($fp, $pucData, $iSize){
|
|
||||||
// delete old checksum at offset 0x0C - byte 12
|
|
||||||
fseek($fp, 12);
|
|
||||||
// (I) unsigned integer (machine dependent size and byte order)
|
|
||||||
fwrite($fp, pack('I', 0)); // produces 4 bytes
|
|
||||||
|
|
||||||
$uiCS = 0b00000000000000000000000000000000;
|
|
||||||
|
|
||||||
// this is the whole checksum calculation
|
|
||||||
for ($j = 1; $j <= $iSize; ++$j ){
|
|
||||||
$uiCS = (($uiCS << 1)|( $uiCS >> 31)) + decbin($pucData[$j]);
|
|
||||||
// dump(decbin($pucData[$j]));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
dump(decbin($uiCS));
|
|
||||||
|
|
||||||
//fseek($fp, 12);
|
|
||||||
//fwrite($fp, pack('I', $uiCS));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// delete old checksum at offset 0x0C - byte 12
|
||||||
|
fseek($fp, 12);
|
||||||
|
// (I) unsigned integer (machine dependent size and byte order)
|
||||||
|
fwrite($fp, pack('I', 0)); // produces 4 bytes
|
||||||
|
|
||||||
|
// edit quest test, den of evil
|
||||||
fseek($fp, 347);
|
fseek($fp, 347);
|
||||||
fwrite($fp, pack('C', 0xFD));
|
fwrite($fp, pack('C', 0xFD));
|
||||||
fseek($fp, 348);
|
fseek($fp, 348);
|
||||||
fwrite($fp, pack('C', 0x9F));
|
fwrite($fp, pack('C', 0x9F));
|
||||||
|
|
||||||
checksum($fp, $pucData, $filesize);
|
$checksum = swapEndianness(shell_exec("bin\d2scs.exe \"$filename\""));
|
||||||
|
|
||||||
|
// write NEW checksum at offset 0x0C - byte 12
|
||||||
|
fseek($fp, 12);
|
||||||
|
// (I) unsigned integer (machine dependent size and byte order)
|
||||||
|
fwrite($fp, pack('H*', $checksum)); // produces 4 bytes
|
||||||
|
|
||||||
|
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
|
519
testData.php
Normal file
519
testData.php
Normal file
@ -0,0 +1,519 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$xorTableDec = [
|
||||||
|
1 => 0x0,
|
||||||
|
2 => 0x77073096,
|
||||||
|
3 => 0xEE0E612C,
|
||||||
|
4 => 0x990951BA,
|
||||||
|
5 => 0x076DC419,
|
||||||
|
6 => 0x706AF48F,
|
||||||
|
7 => 0xE963A535,
|
||||||
|
8 => 0x9E6495A3,
|
||||||
|
9 => 0x0EDB8832,
|
||||||
|
10 => 0x79DCB8A4,
|
||||||
|
11 => 0xE0D5E91E,
|
||||||
|
12 => 0x97D2D988,
|
||||||
|
13 => 0x09B64C2B,
|
||||||
|
14 => 0x7EB17CBD,
|
||||||
|
15 => 0xE7B82D07,
|
||||||
|
16 => 0x90BF1D91,
|
||||||
|
17 => 0x1DB71064,
|
||||||
|
18 => 0x6AB020F2,
|
||||||
|
19 => 0xF3B97148,
|
||||||
|
20 => 0x84BE41DE,
|
||||||
|
21 => 0x1ADAD47D,
|
||||||
|
22 => 0x6DDDE4EB,
|
||||||
|
23 => 0xF4D4B551,
|
||||||
|
24 => 0x83D385C7,
|
||||||
|
25 => 0x136C9856,
|
||||||
|
26 => 0x646BA8C0,
|
||||||
|
27 => 0xFD62F97A,
|
||||||
|
28 => 0x8A65C9EC,
|
||||||
|
29 => 0x14015C4F,
|
||||||
|
30 => 0x63066CD9,
|
||||||
|
31 => 0xFA0F3D63,
|
||||||
|
32 => 0x8D080DF5,
|
||||||
|
33 => 0x3B6E20C8,
|
||||||
|
34 => 0x4C69105E,
|
||||||
|
35 => 0xD56041E4,
|
||||||
|
36 => 0xA2677172,
|
||||||
|
37 => 0x3C03E4D1,
|
||||||
|
38 => 0x4B04D447,
|
||||||
|
39 => 0xD20D85FD,
|
||||||
|
40 => 0xA50AB56B,
|
||||||
|
41 => 0x35B5A8FA,
|
||||||
|
42 => 0x42B2986C,
|
||||||
|
43 => 0xDBBBC9D6,
|
||||||
|
44 => 0xACBCF940,
|
||||||
|
45 => 0x32D86CE3,
|
||||||
|
46 => 0x45DF5C75,
|
||||||
|
47 => 0xDCD60DCF,
|
||||||
|
48 => 0xABD13D59,
|
||||||
|
49 => 0x26D930AC,
|
||||||
|
50 => 0x51DE003A,
|
||||||
|
51 => 0xC8D75180,
|
||||||
|
52 => 0xBFD06116,
|
||||||
|
53 => 0x21B4F4B5,
|
||||||
|
54 => 0x56B3C423,
|
||||||
|
55 => 0xCFBA9599,
|
||||||
|
56 => 0xB8BDA50F,
|
||||||
|
57 => 0x2802B89E,
|
||||||
|
58 => 0x5F058808,
|
||||||
|
59 => 0xC60CD9B2,
|
||||||
|
60 => 0xB10BE924,
|
||||||
|
61 => 0x2F6F7C87,
|
||||||
|
62 => 0x58684C11,
|
||||||
|
63 => 0xC1611DAB,
|
||||||
|
64 => 0xB6662D3D,
|
||||||
|
65 => 0x76DC4190,
|
||||||
|
66 => 0x01DB7106,
|
||||||
|
67 => 0x98D220BC,
|
||||||
|
68 => 0xEFD5102A,
|
||||||
|
69 => 0x71B18589,
|
||||||
|
70 => 0x06B6B51F,
|
||||||
|
71 => 0x9FBFE4A5,
|
||||||
|
72 => 0xE8B8D433,
|
||||||
|
73 => 0x7807C9A2,
|
||||||
|
74 => 0x0F00F934,
|
||||||
|
75 => 0x9609A88E,
|
||||||
|
76 => 0xE10E9818,
|
||||||
|
77 => 0x7F6A0DBB,
|
||||||
|
78 => 0x086D3D2D,
|
||||||
|
79 => 0x91646C97,
|
||||||
|
80 => 0xE6635C01,
|
||||||
|
81 => 0x6B6B51F4,
|
||||||
|
82 => 0x1C6C6162,
|
||||||
|
83 => 0x856530D8,
|
||||||
|
84 => 0xF262004E,
|
||||||
|
85 => 0x6C0695ED,
|
||||||
|
86 => 0x1B01A57B,
|
||||||
|
87 => 0x8208F4C1,
|
||||||
|
88 => 0xF50FC457,
|
||||||
|
89 => 0x65B0D9C6,
|
||||||
|
90 => 0x12B7E950,
|
||||||
|
91 => 0x8BBEB8EA,
|
||||||
|
92 => 0xFCB9887C,
|
||||||
|
93 => 0x62DD1DDF,
|
||||||
|
94 => 0x15DA2D49,
|
||||||
|
95 => 0x8CD37CF3,
|
||||||
|
96 => 0xFBD44C65,
|
||||||
|
97 => 0x4DB26158,
|
||||||
|
98 => 0x3AB551CE,
|
||||||
|
99 => 0xA3BC0074,
|
||||||
|
100 => 0xD4BB30E2,
|
||||||
|
101 => 0x4ADFA541,
|
||||||
|
102 => 0x3DD895D7,
|
||||||
|
103 => 0xA4D1C46D,
|
||||||
|
104 => 0xD3D6F4FB,
|
||||||
|
105 => 0x4369E96A,
|
||||||
|
106 => 0x346ED9FC,
|
||||||
|
107 => 0xAD678846,
|
||||||
|
108 => 0xDA60B8D0,
|
||||||
|
109 => 0x44042D73,
|
||||||
|
110 => 0x33031DE5,
|
||||||
|
111 => 0xAA0A4C5F,
|
||||||
|
112 => 0xDD0D7CC9,
|
||||||
|
113 => 0x5005713C,
|
||||||
|
114 => 0x270241AA,
|
||||||
|
115 => 0xBE0B1010,
|
||||||
|
116 => 0xC90C2086,
|
||||||
|
117 => 0x5768B525,
|
||||||
|
118 => 0x206F85B3,
|
||||||
|
119 => 0xB966D409,
|
||||||
|
120 => 0xCE61E49F,
|
||||||
|
121 => 0x5EDEF90E,
|
||||||
|
122 => 0x29D9C998,
|
||||||
|
123 => 0xB0D09822,
|
||||||
|
124 => 0xC7D7A8B4,
|
||||||
|
125 => 0x59B33D17,
|
||||||
|
126 => 0x2EB40D81,
|
||||||
|
127 => 0xB7BD5C3B,
|
||||||
|
128 => 0xC0BA6CAD,
|
||||||
|
129 => 0xEDB88320,
|
||||||
|
130 => 0x9ABFB3B6,
|
||||||
|
131 => 0x03B6E20C,
|
||||||
|
132 => 0x74B1D29A,
|
||||||
|
133 => 0xEAD54739,
|
||||||
|
134 => 0x9DD277AF,
|
||||||
|
135 => 0x04DB2615,
|
||||||
|
136 => 0x73DC1683,
|
||||||
|
137 => 0xE3630B12,
|
||||||
|
138 => 0x94643B84,
|
||||||
|
139 => 0x0D6D6A3E,
|
||||||
|
140 => 0x7A6A5AA8,
|
||||||
|
141 => 0xE40ECF0B,
|
||||||
|
142 => 0x9309FF9D,
|
||||||
|
143 => 0x0A00AE27,
|
||||||
|
144 => 0x7D079EB1,
|
||||||
|
145 => 0xF00F9344,
|
||||||
|
146 => 0x8708A3D2,
|
||||||
|
147 => 0x1E01F268,
|
||||||
|
148 => 0x6906C2FE,
|
||||||
|
149 => 0xF762575D,
|
||||||
|
150 => 0x806567CB,
|
||||||
|
151 => 0x196C3671,
|
||||||
|
152 => 0x6E6B06E7,
|
||||||
|
153 => 0xFED41B76,
|
||||||
|
154 => 0x89D32BE0,
|
||||||
|
155 => 0x10DA7A5A,
|
||||||
|
156 => 0x67DD4ACC,
|
||||||
|
157 => 0xF9B9DF6F,
|
||||||
|
158 => 0x8EBEEFF9,
|
||||||
|
159 => 0x17B7BE43,
|
||||||
|
160 => 0x60B08ED5,
|
||||||
|
161 => 0xD6D6A3E8,
|
||||||
|
162 => 0xA1D1937E,
|
||||||
|
163 => 0x38D8C2C4,
|
||||||
|
164 => 0x4FDFF252,
|
||||||
|
165 => 0xD1BB67F1,
|
||||||
|
166 => 0xA6BC5767,
|
||||||
|
167 => 0x3FB506DD,
|
||||||
|
168 => 0x48B2364B,
|
||||||
|
169 => 0xD80D2BDA,
|
||||||
|
170 => 0xAF0A1B4C,
|
||||||
|
171 => 0x36034AF6,
|
||||||
|
172 => 0x41047A60,
|
||||||
|
173 => 0xDF60EFC3,
|
||||||
|
174 => 0xA867DF55,
|
||||||
|
175 => 0x316E8EEF,
|
||||||
|
176 => 0x4669BE79,
|
||||||
|
177 => 0xCB61B38C,
|
||||||
|
178 => 0xBC66831A,
|
||||||
|
179 => 0x256FD2A0,
|
||||||
|
180 => 0x5268E236,
|
||||||
|
181 => 0xCC0C7795,
|
||||||
|
182 => 0xBB0B4703,
|
||||||
|
183 => 0x220216B9,
|
||||||
|
184 => 0x5505262F,
|
||||||
|
185 => 0xC5BA3BBE,
|
||||||
|
186 => 0xB2BD0B28,
|
||||||
|
187 => 0x2BB45A92,
|
||||||
|
188 => 0x5CB36A04,
|
||||||
|
189 => 0xC2D7FFA7,
|
||||||
|
190 => 0xB5D0CF31,
|
||||||
|
191 => 0x2CD99E8B,
|
||||||
|
192 => 0x5BDEAE1D,
|
||||||
|
193 => 0x9B64C2B0,
|
||||||
|
194 => 0xEC63F226,
|
||||||
|
195 => 0x756AA39C,
|
||||||
|
196 => 0x026D930A,
|
||||||
|
197 => 0x9C0906A9,
|
||||||
|
198 => 0xEB0E363F,
|
||||||
|
199 => 0x72076785,
|
||||||
|
200 => 0x05005713,
|
||||||
|
201 => 0x95BF4A82,
|
||||||
|
202 => 0xE2B87A14,
|
||||||
|
203 => 0x7BB12BAE,
|
||||||
|
204 => 0x0CB61B38,
|
||||||
|
205 => 0x92D28E9B,
|
||||||
|
206 => 0xE5D5BE0D,
|
||||||
|
207 => 0x7CDCEFB7,
|
||||||
|
208 => 0x0BDBDF21,
|
||||||
|
209 => 0x86D3D2D4,
|
||||||
|
210 => 0xF1D4E242,
|
||||||
|
211 => 0x68DDB3F8,
|
||||||
|
212 => 0x1FDA836E,
|
||||||
|
213 => 0x81BE16CD,
|
||||||
|
214 => 0xF6B9265B,
|
||||||
|
215 => 0x6FB077E1,
|
||||||
|
216 => 0x18B74777,
|
||||||
|
217 => 0x88085AE6,
|
||||||
|
218 => 0xFF0F6A70,
|
||||||
|
219 => 0x66063BCA,
|
||||||
|
220 => 0x11010B5C,
|
||||||
|
221 => 0x8F659EFF,
|
||||||
|
222 => 0xF862AE69,
|
||||||
|
223 => 0x616BFFD3,
|
||||||
|
224 => 0x166CCF45,
|
||||||
|
225 => 0xA00AE278,
|
||||||
|
226 => 0xD70DD2EE,
|
||||||
|
227 => 0x4E048354,
|
||||||
|
228 => 0x3903B3C2,
|
||||||
|
229 => 0xA7672661,
|
||||||
|
230 => 0xD06016F7,
|
||||||
|
231 => 0x4969474D,
|
||||||
|
232 => 0x3E6E77DB,
|
||||||
|
233 => 0xAED16A4A,
|
||||||
|
234 => 0xD9D65ADC,
|
||||||
|
235 => 0x40DF0B66,
|
||||||
|
236 => 0x37D83BF0,
|
||||||
|
237 => 0xA9BCAE53,
|
||||||
|
238 => 0xDEBB9EC5,
|
||||||
|
239 => 0x47B2CF7F,
|
||||||
|
240 => 0x30B5FFE9,
|
||||||
|
241 => 0xBDBDF21C,
|
||||||
|
242 => 0xCABAC28A,
|
||||||
|
243 => 0x53B39330,
|
||||||
|
244 => 0x24B4A3A6,
|
||||||
|
245 => 0xBAD03605,
|
||||||
|
246 => 0xCDD70693,
|
||||||
|
247 => 0x54DE5729,
|
||||||
|
248 => 0x23D967BF,
|
||||||
|
249 => 0xB3667A2E,
|
||||||
|
250 => 0xC4614AB8,
|
||||||
|
251 => 0x5D681B02,
|
||||||
|
252 => 0x2A6F2B94,
|
||||||
|
253 => 0xB40BBE37,
|
||||||
|
254 => 0xC30C8EA1,
|
||||||
|
255 => 0x5A05DF1B,
|
||||||
|
256 => 0x2D02EF8D,
|
||||||
|
];
|
||||||
|
|
||||||
|
$xorTableHex = [
|
||||||
|
"00" => 0x0,
|
||||||
|
"01" => 0x77073096,
|
||||||
|
"02" => 0xEE0E612C,
|
||||||
|
"03" => 0x990951BA,
|
||||||
|
"04" => 0x076DC419,
|
||||||
|
"05" => 0x706AF48F,
|
||||||
|
"06" => 0xE963A535,
|
||||||
|
"07" => 0x9E6495A3,
|
||||||
|
"08" => 0x0EDB8832,
|
||||||
|
"09" => 0x79DCB8A4,
|
||||||
|
"0A" => 0xE0D5E91E,
|
||||||
|
"0B" => 0x97D2D988,
|
||||||
|
"0C" => 0x09B64C2B,
|
||||||
|
"0D" => 0x7EB17CBD,
|
||||||
|
"0E" => 0xE7B82D07,
|
||||||
|
"0F" => 0x90BF1D91,
|
||||||
|
"10" => 0x1DB71064,
|
||||||
|
"11" => 0x6AB020F2,
|
||||||
|
"12" => 0xF3B97148,
|
||||||
|
"13" => 0x84BE41DE,
|
||||||
|
"14" => 0x1ADAD47D,
|
||||||
|
"15" => 0x6DDDE4EB,
|
||||||
|
"16" => 0xF4D4B551,
|
||||||
|
"17" => 0x83D385C7,
|
||||||
|
"18" => 0x136C9856,
|
||||||
|
"19" => 0x646BA8C0,
|
||||||
|
"1A" => 0xFD62F97A,
|
||||||
|
"1B" => 0x8A65C9EC,
|
||||||
|
"1C" => 0x14015C4F,
|
||||||
|
"1D" => 0x63066CD9,
|
||||||
|
"1E" => 0xFA0F3D63,
|
||||||
|
"1F" => 0x8D080DF5,
|
||||||
|
"20" => 0x3B6E20C8,
|
||||||
|
"21" => 0x4C69105E,
|
||||||
|
"22" => 0xD56041E4,
|
||||||
|
"23" => 0xA2677172,
|
||||||
|
"24" => 0x3C03E4D1,
|
||||||
|
"25" => 0x4B04D447,
|
||||||
|
"26" => 0xD20D85FD,
|
||||||
|
"27" => 0xA50AB56B,
|
||||||
|
"28" => 0x35B5A8FA,
|
||||||
|
"29" => 0x42B2986C,
|
||||||
|
"2A" => 0xDBBBC9D6,
|
||||||
|
"2B" => 0xACBCF940,
|
||||||
|
"2C" => 0x32D86CE3,
|
||||||
|
"2D" => 0x45DF5C75,
|
||||||
|
"2E" => 0xDCD60DCF,
|
||||||
|
"2F" => 0xABD13D59,
|
||||||
|
"30" => 0x26D930AC,
|
||||||
|
"31" => 0x51DE003A,
|
||||||
|
"32" => 0xC8D75180,
|
||||||
|
"33" => 0xBFD06116,
|
||||||
|
"34" => 0x21B4F4B5,
|
||||||
|
"35" => 0x56B3C423,
|
||||||
|
"36" => 0xCFBA9599,
|
||||||
|
"37" => 0xB8BDA50F,
|
||||||
|
"38" => 0x2802B89E,
|
||||||
|
"39" => 0x5F058808,
|
||||||
|
"3A" => 0xC60CD9B2,
|
||||||
|
"3B" => 0xB10BE924,
|
||||||
|
"3C" => 0x2F6F7C87,
|
||||||
|
"3D" => 0x58684C11,
|
||||||
|
"3E" => 0xC1611DAB,
|
||||||
|
"3F" => 0xB6662D3D,
|
||||||
|
"40" => 0x76DC4190,
|
||||||
|
"41" => 0x01DB7106,
|
||||||
|
"42" => 0x98D220BC,
|
||||||
|
"43" => 0xEFD5102A,
|
||||||
|
"44" => 0x71B18589,
|
||||||
|
"45" => 0x06B6B51F,
|
||||||
|
"46" => 0x9FBFE4A5,
|
||||||
|
"47" => 0xE8B8D433,
|
||||||
|
"48" => 0x7807C9A2,
|
||||||
|
"49" => 0x0F00F934,
|
||||||
|
"4A" => 0x9609A88E,
|
||||||
|
"4B" => 0xE10E9818,
|
||||||
|
"4C" => 0x7F6A0DBB,
|
||||||
|
"4D" => 0x086D3D2D,
|
||||||
|
"4E" => 0x91646C97,
|
||||||
|
"4F" => 0xE6635C01,
|
||||||
|
"50" => 0x6B6B51F4,
|
||||||
|
"51" => 0x1C6C6162,
|
||||||
|
"52" => 0x856530D8,
|
||||||
|
"53" => 0xF262004E,
|
||||||
|
"54" => 0x6C0695ED,
|
||||||
|
"55" => 0x1B01A57B,
|
||||||
|
"56" => 0x8208F4C1,
|
||||||
|
"57" => 0xF50FC457,
|
||||||
|
"58" => 0x65B0D9C6,
|
||||||
|
"59" => 0x12B7E950,
|
||||||
|
"5A" => 0x8BBEB8EA,
|
||||||
|
"5B" => 0xFCB9887C,
|
||||||
|
"5C" => 0x62DD1DDF,
|
||||||
|
"5D" => 0x15DA2D49,
|
||||||
|
"5E" => 0x8CD37CF3,
|
||||||
|
"5F" => 0xFBD44C65,
|
||||||
|
"60" => 0x4DB26158,
|
||||||
|
"61" => 0x3AB551CE,
|
||||||
|
"62" => 0xA3BC0074,
|
||||||
|
"63" => 0xD4BB30E2,
|
||||||
|
"64" => 0x4ADFA541,
|
||||||
|
"65" => 0x3DD895D7,
|
||||||
|
"66" => 0xA4D1C46D,
|
||||||
|
"67" => 0xD3D6F4FB,
|
||||||
|
"68" => 0x4369E96A,
|
||||||
|
"69" => 0x346ED9FC,
|
||||||
|
"6A" => 0xAD678846,
|
||||||
|
"6B" => 0xDA60B8D0,
|
||||||
|
"6C" => 0x44042D73,
|
||||||
|
"6D" => 0x33031DE5,
|
||||||
|
"6E" => 0xAA0A4C5F,
|
||||||
|
"6F" => 0xDD0D7CC9,
|
||||||
|
"70" => 0x5005713C,
|
||||||
|
"71" => 0x270241AA,
|
||||||
|
"72" => 0xBE0B1010,
|
||||||
|
"73" => 0xC90C2086,
|
||||||
|
"74" => 0x5768B525,
|
||||||
|
"75" => 0x206F85B3,
|
||||||
|
"76" => 0xB966D409,
|
||||||
|
"77" => 0xCE61E49F,
|
||||||
|
"78" => 0x5EDEF90E,
|
||||||
|
"79" => 0x29D9C998,
|
||||||
|
"7A" => 0xB0D09822,
|
||||||
|
"7B" => 0xC7D7A8B4,
|
||||||
|
"7C" => 0x59B33D17,
|
||||||
|
"7D" => 0x2EB40D81,
|
||||||
|
"7E" => 0xB7BD5C3B,
|
||||||
|
"7F" => 0xC0BA6CAD,
|
||||||
|
"80" => 0xEDB88320,
|
||||||
|
"81" => 0x9ABFB3B6,
|
||||||
|
"82" => 0x03B6E20C,
|
||||||
|
"83" => 0x74B1D29A,
|
||||||
|
"84" => 0xEAD54739,
|
||||||
|
"85" => 0x9DD277AF,
|
||||||
|
"86" => 0x04DB2615,
|
||||||
|
"87" => 0x73DC1683,
|
||||||
|
"88" => 0xE3630B12,
|
||||||
|
"89" => 0x94643B84,
|
||||||
|
"8A" => 0x0D6D6A3E,
|
||||||
|
"8B" => 0x7A6A5AA8,
|
||||||
|
"8C" => 0xE40ECF0B,
|
||||||
|
"8D" => 0x9309FF9D,
|
||||||
|
"8E" => 0x0A00AE27,
|
||||||
|
"8F" => 0x7D079EB1,
|
||||||
|
"90" => 0xF00F9344,
|
||||||
|
"91" => 0x8708A3D2,
|
||||||
|
"92" => 0x1E01F268,
|
||||||
|
"93" => 0x6906C2FE,
|
||||||
|
"94" => 0xF762575D,
|
||||||
|
"95" => 0x806567CB,
|
||||||
|
"96" => 0x196C3671,
|
||||||
|
"97" => 0x6E6B06E7,
|
||||||
|
"98" => 0xFED41B76,
|
||||||
|
"99" => 0x89D32BE0,
|
||||||
|
"9A" => 0x10DA7A5A,
|
||||||
|
"9B" => 0x67DD4ACC,
|
||||||
|
"9C" => 0xF9B9DF6F,
|
||||||
|
"9D" => 0x8EBEEFF9,
|
||||||
|
"9E" => 0x17B7BE43,
|
||||||
|
"9F" => 0x60B08ED5,
|
||||||
|
"A0" => 0xD6D6A3E8,
|
||||||
|
"A1" => 0xA1D1937E,
|
||||||
|
"A2" => 0x38D8C2C4,
|
||||||
|
"A3" => 0x4FDFF252,
|
||||||
|
"A4" => 0xD1BB67F1,
|
||||||
|
"A5" => 0xA6BC5767,
|
||||||
|
"A6" => 0x3FB506DD,
|
||||||
|
"A7" => 0x48B2364B,
|
||||||
|
"A8" => 0xD80D2BDA,
|
||||||
|
"A9" => 0xAF0A1B4C,
|
||||||
|
"AA" => 0x36034AF6,
|
||||||
|
"AB" => 0x41047A60,
|
||||||
|
"AC" => 0xDF60EFC3,
|
||||||
|
"AD" => 0xA867DF55,
|
||||||
|
"AE" => 0x316E8EEF,
|
||||||
|
"AF" => 0x4669BE79,
|
||||||
|
"B0" => 0xCB61B38C,
|
||||||
|
"B1" => 0xBC66831A,
|
||||||
|
"B2" => 0x256FD2A0,
|
||||||
|
"B3" => 0x5268E236,
|
||||||
|
"B4" => 0xCC0C7795,
|
||||||
|
"B5" => 0xBB0B4703,
|
||||||
|
"B6" => 0x220216B9,
|
||||||
|
"B7" => 0x5505262F,
|
||||||
|
"B8" => 0xC5BA3BBE,
|
||||||
|
"B9" => 0xB2BD0B28,
|
||||||
|
"BA" => 0x2BB45A92,
|
||||||
|
"BB" => 0x5CB36A04,
|
||||||
|
"BC" => 0xC2D7FFA7,
|
||||||
|
"BD" => 0xB5D0CF31,
|
||||||
|
"BE" => 0x2CD99E8B,
|
||||||
|
"BF" => 0x5BDEAE1D,
|
||||||
|
"C0" => 0x9B64C2B0,
|
||||||
|
"C1" => 0xEC63F226,
|
||||||
|
"C2" => 0x756AA39C,
|
||||||
|
"C3" => 0x026D930A,
|
||||||
|
"C4" => 0x9C0906A9,
|
||||||
|
"C5" => 0xEB0E363F,
|
||||||
|
"C6" => 0x72076785,
|
||||||
|
"C7" => 0x05005713,
|
||||||
|
"C8" => 0x95BF4A82,
|
||||||
|
"C9" => 0xE2B87A14,
|
||||||
|
"CA" => 0x7BB12BAE,
|
||||||
|
"CB" => 0x0CB61B38,
|
||||||
|
"CC" => 0x92D28E9B,
|
||||||
|
"CD" => 0xE5D5BE0D,
|
||||||
|
"CE" => 0x7CDCEFB7,
|
||||||
|
"CF" => 0x0BDBDF21,
|
||||||
|
"D0" => 0x86D3D2D4,
|
||||||
|
"D1" => 0xF1D4E242,
|
||||||
|
"D2" => 0x68DDB3F8,
|
||||||
|
"D3" => 0x1FDA836E,
|
||||||
|
"D4" => 0x81BE16CD,
|
||||||
|
"D5" => 0xF6B9265B,
|
||||||
|
"D6" => 0x6FB077E1,
|
||||||
|
"D7" => 0x18B74777,
|
||||||
|
"D8" => 0x88085AE6,
|
||||||
|
"D9" => 0xFF0F6A70,
|
||||||
|
"DA" => 0x66063BCA,
|
||||||
|
"DB" => 0x11010B5C,
|
||||||
|
"DC" => 0x8F659EFF,
|
||||||
|
"DD" => 0xF862AE69,
|
||||||
|
"DE" => 0x616BFFD3,
|
||||||
|
"DF" => 0x166CCF45,
|
||||||
|
"E0" => 0xA00AE278,
|
||||||
|
"E1" => 0xD70DD2EE,
|
||||||
|
"E2" => 0x4E048354,
|
||||||
|
"E3" => 0x3903B3C2,
|
||||||
|
"E4" => 0xA7672661,
|
||||||
|
"E5" => 0xD06016F7,
|
||||||
|
"E6" => 0x4969474D,
|
||||||
|
"E7" => 0x3E6E77DB,
|
||||||
|
"E8" => 0xAED16A4A,
|
||||||
|
"E9" => 0xD9D65ADC,
|
||||||
|
"EA" => 0x40DF0B66,
|
||||||
|
"EB" => 0x37D83BF0,
|
||||||
|
"EC" => 0xA9BCAE53,
|
||||||
|
"ED" => 0xDEBB9EC5,
|
||||||
|
"EE" => 0x47B2CF7F,
|
||||||
|
"EF" => 0x30B5FFE9,
|
||||||
|
"F0" => 0xBDBDF21C,
|
||||||
|
"F1" => 0xCABAC28A,
|
||||||
|
"F2" => 0x53B39330,
|
||||||
|
"F3" => 0x24B4A3A6,
|
||||||
|
"F4" => 0xBAD03605,
|
||||||
|
"F5" => 0xCDD70693,
|
||||||
|
"F6" => 0x54DE5729,
|
||||||
|
"F7" => 0x23D967BF,
|
||||||
|
"F8" => 0xB3667A2E,
|
||||||
|
"F9" => 0xC4614AB8,
|
||||||
|
"FA" => 0x5D681B02,
|
||||||
|
"FB" => 0x2A6F2B94,
|
||||||
|
"FC" => 0xB40BBE37,
|
||||||
|
"FD" => 0xC30C8EA1,
|
||||||
|
"FE" => 0x5A05DF1B,
|
||||||
|
"FF" => 0x2D02EF8D
|
||||||
|
];
|
Loading…
Reference in New Issue
Block a user