switchmods fixed session vars, saved to db in d2config class. Need to test d2s editor with modifyBit() function. need to fix app.js uniqueitems editor required fields on misc/weapons/armor

This commit is contained in:
Hash Borgir 2022-05-24 00:16:01 -06:00
parent 16174f5efd
commit 6b4b0c564e
22 changed files with 405 additions and 10360 deletions

View File

@ -132,3 +132,5 @@ print_r($charData);
// $charData['Unknown'] = $data['52']; // $charData['Unknown'] = $data['52'];
// $charData['Unknown'] = $data['175']; // $charData['Unknown'] = $data['175'];
// $charData['Unknown'] = $data['191']; // $charData['Unknown'] = $data['191'];

View File

@ -112,7 +112,7 @@ FROM uniqueitems
LEFT JOIN $table ON uniqueitems.`code` = $table.`code` LEFT JOIN $table ON uniqueitems.`code` = $table.`code`
WHERE `type` IS NOT NULL AND uniqueitems.`code`= $table.`code` AND $table.`code` != '' ORDER BY `index`"; WHERE `type` IS NOT NULL AND uniqueitems.`code`= $table.`code` AND $table.`code` != '' ORDER BY `index`";
} }
if ($view == "char") { if ($view == "char") { // charm
$sql .= " OR uniqueitems.`code`='cm1' OR uniqueitems.`code`='cm2' OR uniqueitems.`code`='cm3'"; $sql .= " OR uniqueitems.`code`='cm1' OR uniqueitems.`code`='cm2' OR uniqueitems.`code`='cm3'";
} }
$res = PDO_FetchAll($sql); $res = PDO_FetchAll($sql);

Binary file not shown.

313
checksum.php Normal file
View File

@ -0,0 +1,313 @@
<?php
$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
];
require_once './src/D2Functions.php';
$filename = "D:\Diablo II\MODS\ironman-dev\save\Sorc.d2s";
$fp = fopen($filename, "rb+");
$filesize = filesize($filename);
$pucData = file_get_contents($filename);
// ddump($pucData);
// pucData - pointer to the byte stream of the .d2s file
// iSize - number of bytes in the stream ( filesize )
function checksum($fp, $pucData, $iSize, $xorTableHex) {
// 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
$uVar = 0xFFFFFFFF;
for($i=0;$i<$iSize;$i++) {
// $hex = strtoupper(bin2hex($pucData[$i])); // getting correct bytes here, matches file in hex editor
// dump((strtoupper(dechex($xorTableHex[$hex]))));
// uVar1 = uVar1 >> 8 ^ DWORD_ARRAY_6fd2a248[(uint)*param_1 ^ uVar1 & 0xff];
// $xorTableHex = $xorTableHex = [
// "00" => 0x0,
// "01" => 0x77073096,
// "02" => 0xEE0E612C] etc.
// uVar1 >> 8 ^ *(uint *)(&DAT_6fd2a248 + ((uint)*param_1 ^ uVar1 & 0xff) * 4);
$dec = hexdec(dechex(unpack('C', $pucData[$i])[1]));
$uVar = (($uVar << 1)|( $uVar >> 31)) + $dec;
// $uVar = $uVar >> 8 ^ ($xorTableHex[$hex] ^ ($uVar & 0xFF) * 4);
// yeah, it was producing wrong val cuz I there is no * 4
}
dump(swapEndianness(dechex($uVar)));
//fseek($fp, 12);
//fwrite($fp, pack('I', $uiCS));
}
//fseek($fp, 347);
//fwrite($fp, pack('C', 0xFD));
//fseek($fp, 348);
//fwrite($fp, pack('C', 0x9F));
checksum($fp, $pucData, $filesize, $xorTableHex);
fclose($fp);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -189,6 +189,9 @@ if (!isset($_SESSION['modname']) || (!file_exists(APP_DB)) || (!file_exists($_SE
} }
ddump($post);
$sql = "SELECT rowid,`index` from `uniqueitems` WHERE `index`=\"{$post['index']}\""; $sql = "SELECT rowid,`index` from `uniqueitems` WHERE `index`=\"{$post['index']}\"";

View File

@ -1,94 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><sqlb_project><db path="D:/Documents/D2Modder/D2Modder/ironman-dev.db" readonly="0" foreign_keys="1" case_sensitive_like="0" temp_store="0" wal_autocheckpoint="1000" synchronous="2"/><attached/><window><main_tabs open="structure browser pragmas query" current="3"/></window><tab_structure><column_width id="0" width="300"/><column_width id="1" width="0"/><column_width id="2" width="100"/><column_width id="3" width="58404"/><column_width id="4" width="0"/><expanded_item id="0" parent="1"/><expanded_item id="1" parent="1"/><expanded_item id="2" parent="1"/><expanded_item id="3" parent="1"/></tab_structure><tab_browse><current_table name="4,10:main_bufficons"/><default_encoding codec=""/><browse_table_settings/></tab_browse><tab_sql><sql name="1.sql">WITH cte_item_codes(code,flippyfile) AS (
SELECT code,flippyfile from armor WHERE code != ''
UNION
SELECT code,flippyfile from misc WHERE code != ''
UNION
SELECT code,flippyfile from weapons WHERE code != ''
UNION
SELECT normcode,flippyfile from armor WHERE code != ''
UNION
SELECT normcode,flippyfile from weapons WHERE code != ''
UNION
SELECT ubercode,flippyfile from armor WHERE code != ''
UNION
SELECT ubercode,flippyfile from weapons WHERE code != ''
UNION
SELECT ultracode,flippyfile from armor WHERE code != ''
UNION
SELECT ultracode,flippyfile from weapons WHERE code != ''
)
--SELECT u.code,c.flippyfile
--FROM uniqueitems as u
--JOIN cte_item_codes as c
--ON u.code = c.code
SELECT s.item,c.flippyfile
FROM setitems as s
JOIN cte_item_codes as c
ON s.item = c.code
WHERE s.item != '' AND c.code != ''</sql><sql name="SQL 2">select count(*) from setitems</sql><sql name="SQL 3">WITH cte_item_codes(code,flippyfile) AS (
SELECT code,flippyfile from armor WHERE code != ''
UNION
SELECT code,flippyfile from misc WHERE code != ''
UNION
SELECT code,flippyfile from weapons WHERE code != ''
UNION
SELECT normcode,flippyfile from armor WHERE code != ''
UNION
SELECT normcode,flippyfile from weapons WHERE code != ''
UNION
SELECT ubercode,flippyfile from armor WHERE code != ''
UNION
SELECT ubercode,flippyfile from weapons WHERE code != ''
UNION
SELECT ultracode,flippyfile from armor WHERE code != ''
UNION
SELECT ultracode,flippyfile from weapons WHERE code != ''
)
SELECT u.code,c.flippyfile
FROM uniqueitems as u
JOIN cte_item_codes as c
ON u.code = c.code
--SELECT s.item,c.flippyfile
--FROM setitems as s
--JOIN cte_item_codes as c
--ON s.item = c.code
WHERE
u.code &lt;&gt; ''
AND c.code &lt;&gt; '';</sql><sql name="SQL 4">WITH cte_item_codes(code,flippyfile) AS (
SELECT code,flippyfile from armor
UNION
SELECT code,flippyfile from misc
UNION
SELECT code,flippyfile from weapons
UNION
SELECT normcode,flippyfile from armor
UNION
SELECT normcode,flippyfile from weapons
UNION
SELECT ubercode,flippyfile from armor
UNION
SELECT ubercode,flippyfile from weapons
UNION
SELECT ultracode,flippyfile from armor
UNION
SELECT ultracode,flippyfile from weapons
)
select * from cte_item_codes</sql><sql name="SQL 5">SELECT a.flippyfile, m.flippyfile, w.flippyfile
FROM armor AS a,
misc AS m,
weapons AS w
WHERE a.code = 'axe'
OR a.normcode = 'axe'
OR a.ubercode = 'axe'
OR a.ultracode = 'axe'
OR m.code = 'axe'
OR w.code = 'axe'
OR w.ultracode = 'axe'
OR w.normcode = 'axe'
OR w.ubercode = 'axe'</sql><sql name="SQL 6">select item from setitems</sql><current_tab id="5"/></tab_sql></sqlb_project>

File diff suppressed because it is too large Load Diff

View File

@ -1,578 +0,0 @@
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "armor" (
"name" VARCHAR(255) DEFAULT '',
"version" INT DEFAULT '',
"compactsave" INT DEFAULT '',
"rarity" INT DEFAULT '',
"spawnable" INT DEFAULT '',
"minac" INT DEFAULT '',
"maxac" INT DEFAULT '',
"absorbs" INT DEFAULT '',
"speed" INT DEFAULT '',
"reqstr" INT DEFAULT '',
"block" INT DEFAULT '',
"durability" INT DEFAULT '',
"nodurability" INT DEFAULT '',
"level" INT DEFAULT '',
"levelreq" INT DEFAULT '',
"cost" INT DEFAULT '',
"gamble cost" INT DEFAULT '',
"code" VARCHAR(255) DEFAULT '',
"namestr" VARCHAR(255) DEFAULT '',
"magic lvl" VARCHAR(255) DEFAULT '',
"auto prefix" VARCHAR(255) DEFAULT '',
"alternategfx" VARCHAR(255) DEFAULT '',
"OpenBetaGfx" VARCHAR(255) DEFAULT '',
"normcode" VARCHAR(255) DEFAULT '',
"ubercode" VARCHAR(255) DEFAULT '',
"ultracode" VARCHAR(255) DEFAULT '',
"spelloffset" INT DEFAULT '',
"component" INT DEFAULT '',
"invwidth" INT DEFAULT '',
"invheight" INT DEFAULT '',
"hasinv" INT DEFAULT '',
"gemsockets" INT DEFAULT '',
"gemapplytype" INT DEFAULT '',
"flippyfile" VARCHAR(255) DEFAULT '',
"invfile" VARCHAR(255) DEFAULT '',
"uniqueinvfile" VARCHAR(255) DEFAULT '',
"setinvfile" VARCHAR(255) DEFAULT '',
"rArm" VARCHAR(255) DEFAULT '',
"lArm" VARCHAR(255) DEFAULT '',
"Torso" VARCHAR(255) DEFAULT '',
"Legs" VARCHAR(255) DEFAULT '',
"rSPad" VARCHAR(255) DEFAULT '',
"lSPad" VARCHAR(255) DEFAULT '',
"useable" INT DEFAULT '',
"throwable" INT DEFAULT '',
"stackable" INT DEFAULT '',
"minstack" INT DEFAULT '',
"maxstack" INT DEFAULT '',
"type" VARCHAR(255) DEFAULT '',
"type2" VARCHAR(255) DEFAULT '',
"dropsound" VARCHAR(255) DEFAULT '',
"dropsfxframe" INT DEFAULT '',
"usesound" VARCHAR(255) DEFAULT '',
"unique" INT DEFAULT '',
"transparent" INT DEFAULT '',
"transtbl" INT DEFAULT '',
"quivered" INT DEFAULT '',
"lightradius" INT DEFAULT '',
"belt" INT DEFAULT '',
"quest" INT DEFAULT '',
"missiletype" INT DEFAULT '',
"durwarning" INT DEFAULT '',
"qntwarning" INT DEFAULT '',
"mindam" INT DEFAULT '',
"maxdam" INT DEFAULT '',
"StrBonus" VARCHAR(255) DEFAULT '',
"DexBonus" VARCHAR(255) DEFAULT '',
"gemoffset" INT DEFAULT '',
"bitfield1" INT DEFAULT '',
"CharsiMin" VARCHAR(255) DEFAULT '',
"CharsiMax" VARCHAR(255) DEFAULT '',
"CharsiMagicMin" VARCHAR(255) DEFAULT '',
"CharsiMagicMax" VARCHAR(255) DEFAULT '',
"CharsiMagicLvl" VARCHAR(255) DEFAULT '',
"GheedMin" VARCHAR(255) DEFAULT '',
"GheedMax" VARCHAR(255) DEFAULT '',
"GheedMagicMin" VARCHAR(255) DEFAULT '',
"GheedMagicMax" VARCHAR(255) DEFAULT '',
"GheedMagicLvl" VARCHAR(255) DEFAULT '',
"AkaraMin" VARCHAR(255) DEFAULT '',
"AkaraMax" VARCHAR(255) DEFAULT '',
"AkaraMagicMin" VARCHAR(255) DEFAULT '',
"AkaraMagicMax" VARCHAR(255) DEFAULT '',
"AkaraMagicLvl" VARCHAR(255) DEFAULT '',
"FaraMin" VARCHAR(255) DEFAULT '',
"FaraMax" VARCHAR(255) DEFAULT '',
"FaraMagicMin" VARCHAR(255) DEFAULT '',
"FaraMagicMax" VARCHAR(255) DEFAULT '',
"FaraMagicLvl" VARCHAR(255) DEFAULT '',
"LysanderMin" VARCHAR(255) DEFAULT '',
"LysanderMax" VARCHAR(255) DEFAULT '',
"LysanderMagicMin" VARCHAR(255) DEFAULT '',
"LysanderMagicMax" VARCHAR(255) DEFAULT '',
"LysanderMagicLvl" VARCHAR(255) DEFAULT '',
"DrognanMin" VARCHAR(255) DEFAULT '',
"DrognanMax" VARCHAR(255) DEFAULT '',
"DrognanMagicMin" VARCHAR(255) DEFAULT '',
"DrognanMagicMax" VARCHAR(255) DEFAULT '',
"DrognanMagicLvl" VARCHAR(255) DEFAULT '',
"HraltiMin" VARCHAR(255) DEFAULT '',
"HraltiMax" VARCHAR(255) DEFAULT '',
"HraltiMagicMin" VARCHAR(255) DEFAULT '',
"HraltiMagicMax" VARCHAR(255) DEFAULT '',
"HraltiMagicLvl" VARCHAR(255) DEFAULT '',
"AlkorMin" VARCHAR(255) DEFAULT '',
"AlkorMax" VARCHAR(255) DEFAULT '',
"AlkorMagicMin" VARCHAR(255) DEFAULT '',
"AlkorMagicMax" VARCHAR(255) DEFAULT '',
"AlkorMagicLvl" VARCHAR(255) DEFAULT '',
"OrmusMin" VARCHAR(255) DEFAULT '',
"OrmusMax" VARCHAR(255) DEFAULT '',
"OrmusMagicMin" VARCHAR(255) DEFAULT '',
"OrmusMagicMax" VARCHAR(255) DEFAULT '',
"OrmusMagicLvl" VARCHAR(255) DEFAULT '',
"ElzixMin" VARCHAR(255) DEFAULT '',
"ElzixMax" VARCHAR(255) DEFAULT '',
"ElzixMagicMin" VARCHAR(255) DEFAULT '',
"ElzixMagicMax" VARCHAR(255) DEFAULT '',
"ElzixMagicLvl" VARCHAR(255) DEFAULT '',
"AshearaMin" VARCHAR(255) DEFAULT '',
"AshearaMax" VARCHAR(255) DEFAULT '',
"AshearaMagicMin" VARCHAR(255) DEFAULT '',
"AshearaMagicMax" VARCHAR(255) DEFAULT '',
"AshearaMagicLvl" VARCHAR(255) DEFAULT '',
"CainMin" VARCHAR(255) DEFAULT '',
"CainMax" VARCHAR(255) DEFAULT '',
"CainMagicMin" VARCHAR(255) DEFAULT '',
"CainMagicMax" VARCHAR(255) DEFAULT '',
"CainMagicLvl" VARCHAR(255) DEFAULT '',
"HalbuMin" VARCHAR(255) DEFAULT '',
"HalbuMax" VARCHAR(255) DEFAULT '',
"HalbuMagicMin" VARCHAR(255) DEFAULT '',
"HalbuMagicMax" VARCHAR(255) DEFAULT '',
"HalbuMagicLvl" VARCHAR(255) DEFAULT '',
"JamellaMin" VARCHAR(255) DEFAULT '',
"JamellaMax" VARCHAR(255) DEFAULT '',
"JamellaMagicMin" VARCHAR(255) DEFAULT '',
"JamellaMagicMax" VARCHAR(255) DEFAULT '',
"JamellaMagicLvl" VARCHAR(255) DEFAULT '',
"LarzukMin" VARCHAR(255) DEFAULT '',
"LarzukMax" VARCHAR(255) DEFAULT '',
"LarzukMagicMin" VARCHAR(255) DEFAULT '',
"LarzukMagicMax" VARCHAR(255) DEFAULT '',
"LarzukMagicLvl" VARCHAR(255) DEFAULT '',
"MalahMin" VARCHAR(255) DEFAULT '',
"MalahMax" VARCHAR(255) DEFAULT '',
"MalahMagicMin" VARCHAR(255) DEFAULT '',
"MalahMagicMax" VARCHAR(255) DEFAULT '',
"MalahMagicLvl" VARCHAR(255) DEFAULT '',
"DrehyaMin" VARCHAR(255) DEFAULT '',
"DrehyaMax" VARCHAR(255) DEFAULT '',
"DrehyaMagicMin" VARCHAR(255) DEFAULT '',
"DrehyaMagicMax" VARCHAR(255) DEFAULT '',
"DrehyaMagicLvl" VARCHAR(255) DEFAULT '',
"Source Art" VARCHAR(255) DEFAULT '',
"Game Art" VARCHAR(255) DEFAULT '',
"Transform" INT DEFAULT '',
"InvTrans" INT DEFAULT '',
"SkipName" INT DEFAULT '',
"NightmareUpgrade" VARCHAR(255) DEFAULT '',
"HellUpgrade" VARCHAR(255) DEFAULT '',
"nameable" INT DEFAULT '',
"PermStoreItem" VARCHAR(255) DEFAULT ''
);
CREATE TABLE IF NOT EXISTS "misc" (
"name" VARCHAR(255) DEFAULT '',
"*name" VARCHAR(255) DEFAULT '',
"szFlavorText" VARCHAR(255) DEFAULT '',
"compactsave" INT DEFAULT '',
"version" INT DEFAULT '',
"level" INT DEFAULT '',
"levelreq" INT DEFAULT '',
"rarity" INT DEFAULT '',
"spawnable" INT DEFAULT '',
"speed" INT DEFAULT '',
"nodurability" INT DEFAULT '',
"cost" INT DEFAULT '',
"gamble cost" INT DEFAULT '',
"auto prefix" VARCHAR(255) DEFAULT '',
"code" VARCHAR(255) DEFAULT '',
"alternategfx" VARCHAR(255) DEFAULT '',
"namestr" VARCHAR(255) DEFAULT '',
"component" INT DEFAULT '',
"invwidth" INT DEFAULT '',
"invheight" INT DEFAULT '',
"hasinv" INT DEFAULT '',
"gemsockets" INT DEFAULT '',
"gemapplytype" INT DEFAULT '',
"flippyfile" VARCHAR(255) DEFAULT '',
"invfile" VARCHAR(255) DEFAULT '',
"uniqueinvfile" VARCHAR(255) DEFAULT '',
"special" VARCHAR(255) DEFAULT '',
"Transmogrify" INT DEFAULT '',
"TMogType" VARCHAR(255) DEFAULT '',
"TMogMin" VARCHAR(255) DEFAULT '',
"TMogMax" VARCHAR(255) DEFAULT '',
"useable" INT DEFAULT '',
"throwable" INT DEFAULT '',
"type" VARCHAR(255) DEFAULT '',
"type2" VARCHAR(255) DEFAULT '',
"dropsound" VARCHAR(255) DEFAULT '',
"dropsfxframe" INT DEFAULT '',
"usesound" VARCHAR(255) DEFAULT '',
"unique" INT DEFAULT '',
"transparent" INT DEFAULT '',
"transtbl" INT DEFAULT '',
"lightradius" INT DEFAULT '',
"belt" INT DEFAULT '',
"autobelt" INT DEFAULT '',
"stackable" INT DEFAULT '',
"minstack" INT DEFAULT '',
"maxstack" INT DEFAULT '',
"spawnstack" INT DEFAULT '',
"quest" VARCHAR(255) DEFAULT '',
"questdiffcheck" VARCHAR(255) DEFAULT '',
"missiletype" INT DEFAULT '',
"spellicon" INT DEFAULT '',
"pSpell" INT DEFAULT '',
"state" VARCHAR(255) DEFAULT '',
"cstate1" VARCHAR(255) DEFAULT '',
"cstate2" VARCHAR(255) DEFAULT '',
"len" VARCHAR(255) DEFAULT '',
"stat1" VARCHAR(255) DEFAULT '',
"calc1" INT DEFAULT '',
"stat2" VARCHAR(255) DEFAULT '',
"calc2" VARCHAR(255) DEFAULT '',
"stat3" VARCHAR(255) DEFAULT '',
"calc3" VARCHAR(255) DEFAULT '',
"spelldesc" VARCHAR(255) DEFAULT '',
"spelldescstr" VARCHAR(255) DEFAULT '',
"spelldesccalc" VARCHAR(255) DEFAULT '',
"durwarning" INT DEFAULT '',
"qntwarning" INT DEFAULT '',
"gemoffset" INT DEFAULT '',
"BetterGem" VARCHAR(255) DEFAULT '',
"bitfield1" INT DEFAULT '',
"CharsiMin" VARCHAR(255) DEFAULT '',
"CharsiMax" VARCHAR(255) DEFAULT '',
"CharsiMagicMin" VARCHAR(255) DEFAULT '',
"CharsiMagicMax" VARCHAR(255) DEFAULT '',
"CharsiMagicLvl" VARCHAR(255) DEFAULT '',
"GheedMin" VARCHAR(255) DEFAULT '',
"GheedMax" VARCHAR(255) DEFAULT '',
"GheedMagicMin" VARCHAR(255) DEFAULT '',
"GheedMagicMax" VARCHAR(255) DEFAULT '',
"GheedMagicLvl" VARCHAR(255) DEFAULT '',
"AkaraMin" VARCHAR(255) DEFAULT '',
"AkaraMax" VARCHAR(255) DEFAULT '',
"AkaraMagicMin" VARCHAR(255) DEFAULT '',
"AkaraMagicMax" VARCHAR(255) DEFAULT '',
"AkaraMagicLvl" VARCHAR(255) DEFAULT '',
"FaraMin" VARCHAR(255) DEFAULT '',
"FaraMax" VARCHAR(255) DEFAULT '',
"FaraMagicMin" VARCHAR(255) DEFAULT '',
"FaraMagicMax" VARCHAR(255) DEFAULT '',
"FaraMagicLvl" VARCHAR(255) DEFAULT '',
"LysanderMin" VARCHAR(255) DEFAULT '',
"LysanderMax" VARCHAR(255) DEFAULT '',
"LysanderMagicMin" VARCHAR(255) DEFAULT '',
"LysanderMagicMax" VARCHAR(255) DEFAULT '',
"LysanderMagicLvl" VARCHAR(255) DEFAULT '',
"DrognanMin" VARCHAR(255) DEFAULT '',
"DrognanMax" VARCHAR(255) DEFAULT '',
"DrognanMagicMin" VARCHAR(255) DEFAULT '',
"DrognanMagicMax" VARCHAR(255) DEFAULT '',
"DrognanMagicLvl" VARCHAR(255) DEFAULT '',
"HraltiMin" VARCHAR(255) DEFAULT '',
"HraltiMax" VARCHAR(255) DEFAULT '',
"HraltiMagicMin" VARCHAR(255) DEFAULT '',
"HraltiMagicMax" VARCHAR(255) DEFAULT '',
"HraltiMagicLvl" VARCHAR(255) DEFAULT '',
"AlkorMin" VARCHAR(255) DEFAULT '',
"AlkorMax" VARCHAR(255) DEFAULT '',
"AlkorMagicMin" VARCHAR(255) DEFAULT '',
"AlkorMagicMax" VARCHAR(255) DEFAULT '',
"AlkorMagicLvl" VARCHAR(255) DEFAULT '',
"OrmusMin" VARCHAR(255) DEFAULT '',
"OrmusMax" VARCHAR(255) DEFAULT '',
"OrmusMagicMin" VARCHAR(255) DEFAULT '',
"OrmusMagicMax" VARCHAR(255) DEFAULT '',
"OrmusMagicLvl" VARCHAR(255) DEFAULT '',
"ElzixMin" VARCHAR(255) DEFAULT '',
"ElzixMax" VARCHAR(255) DEFAULT '',
"ElzixMagicMin" VARCHAR(255) DEFAULT '',
"ElzixMagicMax" VARCHAR(255) DEFAULT '',
"ElzixMagicLvl" VARCHAR(255) DEFAULT '',
"AshearaMin" VARCHAR(255) DEFAULT '',
"AshearaMax" VARCHAR(255) DEFAULT '',
"AshearaMagicMin" VARCHAR(255) DEFAULT '',
"AshearaMagicMax" VARCHAR(255) DEFAULT '',
"AshearaMagicLvl" VARCHAR(255) DEFAULT '',
"CainMin" VARCHAR(255) DEFAULT '',
"CainMax" VARCHAR(255) DEFAULT '',
"CainMagicMin" VARCHAR(255) DEFAULT '',
"CainMagicMax" VARCHAR(255) DEFAULT '',
"CainMagicLvl" VARCHAR(255) DEFAULT '',
"HalbuMin" VARCHAR(255) DEFAULT '',
"HalbuMax" VARCHAR(255) DEFAULT '',
"HalbuMagicMin" VARCHAR(255) DEFAULT '',
"HalbuMagicMax" VARCHAR(255) DEFAULT '',
"HalbuMagicLvl" VARCHAR(255) DEFAULT '',
"MalahMin" VARCHAR(255) DEFAULT '',
"MalahMax" VARCHAR(255) DEFAULT '',
"MalahMagicMin" VARCHAR(255) DEFAULT '',
"MalahMagicMax" VARCHAR(255) DEFAULT '',
"MalahMagicLvl" VARCHAR(255) DEFAULT '',
"LarzukMin" VARCHAR(255) DEFAULT '',
"LarzukMax" VARCHAR(255) DEFAULT '',
"LarzukMagicMin" VARCHAR(255) DEFAULT '',
"LarzukMagicMax" VARCHAR(255) DEFAULT '',
"LarzukMagicLvl" VARCHAR(255) DEFAULT '',
"DrehyaMin" VARCHAR(255) DEFAULT '',
"DrehyaMax" VARCHAR(255) DEFAULT '',
"DrehyaMagicMin" VARCHAR(255) DEFAULT '',
"DrehyaMagicMax" VARCHAR(255) DEFAULT '',
"DrehyaMagicLvl" VARCHAR(255) DEFAULT '',
"JamellaMin" VARCHAR(255) DEFAULT '',
"JamellaMax" VARCHAR(255) DEFAULT '',
"JamellaMagicMin" VARCHAR(255) DEFAULT '',
"JamellaMagicMax" VARCHAR(255) DEFAULT '',
"JamellaMagicLvl" VARCHAR(255) DEFAULT '',
"Source Art" VARCHAR(255) DEFAULT '',
"Game Art" VARCHAR(255) DEFAULT '',
"Transform" INT DEFAULT '',
"InvTrans" INT DEFAULT '',
"SkipName" INT DEFAULT '',
"NightmareUpgrade" VARCHAR(255) DEFAULT '',
"HellUpgrade" VARCHAR(255) DEFAULT '',
"mindam" VARCHAR(255) DEFAULT '',
"maxdam" VARCHAR(255) DEFAULT '',
"PermStoreItem" VARCHAR(255) DEFAULT '',
"multibuy" VARCHAR(255) DEFAULT '',
"Nameable" VARCHAR(255) DEFAULT '',
"*eol" INT DEFAULT ''
);
CREATE TABLE IF NOT EXISTS "uniqueitems" (
"index" VARCHAR(255) DEFAULT '',
"version" INT DEFAULT '',
"enabled" INT DEFAULT '',
"ladder" VARCHAR(255) DEFAULT '',
"rarity" INT DEFAULT '',
"nolimit" VARCHAR(255) DEFAULT '',
"lvl" INT DEFAULT '',
"lvl req" INT DEFAULT '',
"code" VARCHAR(255) DEFAULT '',
"*type" VARCHAR(255) DEFAULT '',
"*uber" VARCHAR(255) DEFAULT '',
"carry1" VARCHAR(255) DEFAULT '',
"cost mult" INT DEFAULT '',
"cost add" INT DEFAULT '',
"chrtransform" VARCHAR(255) DEFAULT '',
"invtransform" VARCHAR(255) DEFAULT '',
"flippyfile" VARCHAR(255) DEFAULT '',
"invfile" VARCHAR(255) DEFAULT '',
"dropsound" VARCHAR(255) DEFAULT '',
"dropsfxframe" VARCHAR(255) DEFAULT '',
"usesound" VARCHAR(255) DEFAULT '',
"prop1" VARCHAR(255) DEFAULT '',
"par1" VARCHAR(255) DEFAULT '',
"min1" INT DEFAULT '',
"max1" INT DEFAULT '',
"prop2" VARCHAR(255) DEFAULT '',
"par2" VARCHAR(255) DEFAULT '',
"min2" INT DEFAULT '',
"max2" INT DEFAULT '',
"prop3" VARCHAR(255) DEFAULT '',
"par3" VARCHAR(255) DEFAULT '',
"min3" INT DEFAULT '',
"max3" INT DEFAULT '',
"prop4" VARCHAR(255) DEFAULT '',
"par4" VARCHAR(255) DEFAULT '',
"min4" INT DEFAULT '',
"max4" INT DEFAULT '',
"prop5" VARCHAR(255) DEFAULT '',
"par5" VARCHAR(255) DEFAULT '',
"min5" INT DEFAULT '',
"max5" INT DEFAULT '',
"prop6" VARCHAR(255) DEFAULT '',
"par6" VARCHAR(255) DEFAULT '',
"min6" INT DEFAULT '',
"max6" INT DEFAULT '',
"prop7" VARCHAR(255) DEFAULT '',
"par7" VARCHAR(255) DEFAULT '',
"min7" VARCHAR(255) DEFAULT '',
"max7" VARCHAR(255) DEFAULT '',
"prop8" VARCHAR(255) DEFAULT '',
"par8" VARCHAR(255) DEFAULT '',
"min8" VARCHAR(255) DEFAULT '',
"max8" VARCHAR(255) DEFAULT '',
"prop9" VARCHAR(255) DEFAULT '',
"par9" VARCHAR(255) DEFAULT '',
"min9" VARCHAR(255) DEFAULT '',
"max9" VARCHAR(255) DEFAULT '',
"prop10" VARCHAR(255) DEFAULT '',
"par10" VARCHAR(255) DEFAULT '',
"min10" VARCHAR(255) DEFAULT '',
"max10" VARCHAR(255) DEFAULT '',
"prop11" VARCHAR(255) DEFAULT '',
"par11" VARCHAR(255) DEFAULT '',
"min11" VARCHAR(255) DEFAULT '',
"max11" VARCHAR(255) DEFAULT '',
"prop12" VARCHAR(255) DEFAULT '',
"par12" VARCHAR(255) DEFAULT '',
"min12" VARCHAR(255) DEFAULT '',
"max12" VARCHAR(255) DEFAULT '',
"*eol" INT DEFAULT ''
);
CREATE TABLE IF NOT EXISTS "weapons" (
"name" VARCHAR(255) DEFAULT '',
"type" VARCHAR(255) DEFAULT '',
"type2" VARCHAR(255) DEFAULT '',
"code" VARCHAR(255) DEFAULT '',
"alternateGfx" VARCHAR(255) DEFAULT '',
"namestr" VARCHAR(255) DEFAULT '',
"version" INT DEFAULT '',
"compactsave" VARCHAR(255) DEFAULT '',
"rarity" INT DEFAULT '',
"spawnable" INT DEFAULT '',
"mindam" INT DEFAULT '',
"maxdam" INT DEFAULT '',
"1or2handed" VARCHAR(255) DEFAULT '',
"2handed" VARCHAR(255) DEFAULT '',
"2handmindam" VARCHAR(255) DEFAULT '',
"2handmaxdam" VARCHAR(255) DEFAULT '',
"minmisdam" VARCHAR(255) DEFAULT '',
"maxmisdam" VARCHAR(255) DEFAULT '',
"" VARCHAR(255) DEFAULT '',
"rangeadder" VARCHAR(255) DEFAULT '',
"speed" VARCHAR(255) DEFAULT '',
"StrBonus" INT DEFAULT '',
"DexBonus" VARCHAR(255) DEFAULT '',
"reqstr" VARCHAR(255) DEFAULT '',
"reqdex" VARCHAR(255) DEFAULT '',
"durability" INT DEFAULT '',
"nodurability" VARCHAR(255) DEFAULT '',
"level" INT DEFAULT '',
"levelreq" INT DEFAULT '',
"cost" INT DEFAULT '',
"gamble cost" INT DEFAULT '',
"magic lvl" VARCHAR(255) DEFAULT '',
"auto prefix" VARCHAR(255) DEFAULT '',
"OpenBetaGfx" VARCHAR(255) DEFAULT '',
"normcode" VARCHAR(255) DEFAULT '',
"ubercode" VARCHAR(255) DEFAULT '',
"ultracode" VARCHAR(255) DEFAULT '',
"wclass" VARCHAR(255) DEFAULT '',
"2handedwclass" VARCHAR(255) DEFAULT '',
"component" INT DEFAULT '',
"hit class" VARCHAR(255) DEFAULT '',
"invwidth" INT DEFAULT '',
"invheight" INT DEFAULT '',
"stackable" VARCHAR(255) DEFAULT '',
"minstack" VARCHAR(255) DEFAULT '',
"maxstack" VARCHAR(255) DEFAULT '',
"spawnstack" VARCHAR(255) DEFAULT '',
"flippyfile" VARCHAR(255) DEFAULT '',
"invfile" VARCHAR(255) DEFAULT '',
"uniqueinvfile" VARCHAR(255) DEFAULT '',
"setinvfile" VARCHAR(255) DEFAULT '',
"hasinv" INT DEFAULT '',
"gemsockets" INT DEFAULT '',
"gemapplytype" INT DEFAULT '',
"special" VARCHAR(255) DEFAULT '',
"useable" INT DEFAULT '',
"dropsound" VARCHAR(255) DEFAULT '',
"dropsfxframe" INT DEFAULT '',
"usesound" VARCHAR(255) DEFAULT '',
"unique" INT DEFAULT '',
"transparent" INT DEFAULT '',
"transtbl" INT DEFAULT '',
"quivered" INT DEFAULT '',
"lightradius" INT DEFAULT '',
"belt" INT DEFAULT '',
"quest" VARCHAR(255) DEFAULT '',
"questdiffcheck" VARCHAR(255) DEFAULT '',
"missiletype" INT DEFAULT '',
"durwarning" INT DEFAULT '',
"qntwarning" INT DEFAULT '',
"gemoffset" INT DEFAULT '',
"bitfield1" INT DEFAULT '',
"CharsiMin" VARCHAR(255) DEFAULT '',
"CharsiMax" VARCHAR(255) DEFAULT '',
"CharsiMagicMin" VARCHAR(255) DEFAULT '',
"CharsiMagicMax" VARCHAR(255) DEFAULT '',
"CharsiMagicLvl" VARCHAR(255) DEFAULT '',
"GheedMin" VARCHAR(255) DEFAULT '',
"GheedMax" VARCHAR(255) DEFAULT '',
"GheedMagicMin" VARCHAR(255) DEFAULT '',
"GheedMagicMax" VARCHAR(255) DEFAULT '',
"GheedMagicLvl" VARCHAR(255) DEFAULT '',
"AkaraMin" VARCHAR(255) DEFAULT '',
"AkaraMax" VARCHAR(255) DEFAULT '',
"AkaraMagicMin" VARCHAR(255) DEFAULT '',
"AkaraMagicMax" VARCHAR(255) DEFAULT '',
"AkaraMagicLvl" VARCHAR(255) DEFAULT '',
"FaraMin" VARCHAR(255) DEFAULT '',
"FaraMax" VARCHAR(255) DEFAULT '',
"FaraMagicMin" VARCHAR(255) DEFAULT '',
"FaraMagicMax" VARCHAR(255) DEFAULT '',
"FaraMagicLvl" VARCHAR(255) DEFAULT '',
"LysanderMin" VARCHAR(255) DEFAULT '',
"LysanderMax" VARCHAR(255) DEFAULT '',
"LysanderMagicMin" VARCHAR(255) DEFAULT '',
"LysanderMagicMax" VARCHAR(255) DEFAULT '',
"LysanderMagicLvl" VARCHAR(255) DEFAULT '',
"DrognanMin" VARCHAR(255) DEFAULT '',
"DrognanMax" VARCHAR(255) DEFAULT '',
"DrognanMagicMin" VARCHAR(255) DEFAULT '',
"DrognanMagicMax" VARCHAR(255) DEFAULT '',
"DrognanMagicLvl" VARCHAR(255) DEFAULT '',
"HraltiMin" VARCHAR(255) DEFAULT '',
"HraltiMax" VARCHAR(255) DEFAULT '',
"HraltiMagicMin" VARCHAR(255) DEFAULT '',
"HraltiMagicMax" VARCHAR(255) DEFAULT '',
"HraltiMagicLvl" VARCHAR(255) DEFAULT '',
"AlkorMin" VARCHAR(255) DEFAULT '',
"AlkorMax" VARCHAR(255) DEFAULT '',
"AlkorMagicMin" VARCHAR(255) DEFAULT '',
"AlkorMagicMax" VARCHAR(255) DEFAULT '',
"AlkorMagicLvl" VARCHAR(255) DEFAULT '',
"OrmusMin" VARCHAR(255) DEFAULT '',
"OrmusMax" VARCHAR(255) DEFAULT '',
"OrmusMagicMin" VARCHAR(255) DEFAULT '',
"OrmusMagicMax" VARCHAR(255) DEFAULT '',
"OrmusMagicLvl" VARCHAR(255) DEFAULT '',
"ElzixMin" VARCHAR(255) DEFAULT '',
"ElzixMax" VARCHAR(255) DEFAULT '',
"ElzixMagicMin" VARCHAR(255) DEFAULT '',
"ElzixMagicMax" VARCHAR(255) DEFAULT '',
"ElzixMagicLvl" VARCHAR(255) DEFAULT '',
"AshearaMin" VARCHAR(255) DEFAULT '',
"AshearaMax" VARCHAR(255) DEFAULT '',
"AshearaMagicMin" VARCHAR(255) DEFAULT '',
"AshearaMagicMax" VARCHAR(255) DEFAULT '',
"AshearaMagicLvl" VARCHAR(255) DEFAULT '',
"CainMin" VARCHAR(255) DEFAULT '',
"CainMax" VARCHAR(255) DEFAULT '',
"CainMagicMin" VARCHAR(255) DEFAULT '',
"CainMagicMax" VARCHAR(255) DEFAULT '',
"CainMagicLvl" VARCHAR(255) DEFAULT '',
"HalbuMin" VARCHAR(255) DEFAULT '',
"HalbuMax" VARCHAR(255) DEFAULT '',
"HalbuMagicMin" VARCHAR(255) DEFAULT '',
"HalbuMagicMax" VARCHAR(255) DEFAULT '',
"HalbuMagicLvl" VARCHAR(255) DEFAULT '',
"JamellaMin" VARCHAR(255) DEFAULT '',
"JamellaMax" VARCHAR(255) DEFAULT '',
"JamellaMagicMin" VARCHAR(255) DEFAULT '',
"JamellaMagicMax" VARCHAR(255) DEFAULT '',
"JamellaMagicLvl" VARCHAR(255) DEFAULT '',
"LarzukMin" VARCHAR(255) DEFAULT '',
"LarzukMax" VARCHAR(255) DEFAULT '',
"LarzukMagicMin" VARCHAR(255) DEFAULT '',
"LarzukMagicMax" VARCHAR(255) DEFAULT '',
"LarzukMagicLvl" VARCHAR(255) DEFAULT '',
"DrehyaMin" VARCHAR(255) DEFAULT '',
"DrehyaMax" VARCHAR(255) DEFAULT '',
"DrehyaMagicMin" VARCHAR(255) DEFAULT '',
"DrehyaMagicMax" VARCHAR(255) DEFAULT '',
"DrehyaMagicLvl" VARCHAR(255) DEFAULT '',
"MalahMin" VARCHAR(255) DEFAULT '',
"MalahMax" VARCHAR(255) DEFAULT '',
"MalahMagicMin" VARCHAR(255) DEFAULT '',
"MalahMagicMax" VARCHAR(255) DEFAULT '',
"MalahMagicLvl" VARCHAR(255) DEFAULT '',
"Source Art" VARCHAR(255) DEFAULT '',
"Game Art" VARCHAR(255) DEFAULT '',
"Transform" INT DEFAULT '',
"InvTrans" INT DEFAULT '',
"SkipName" INT DEFAULT '',
"NightmareUpgrade" VARCHAR(255) DEFAULT '',
"HellUpgrade" VARCHAR(255) DEFAULT '',
"Nameable" INT DEFAULT '',
"PermStoreItem" INT DEFAULT ''
);
COMMIT;

View File

@ -123,6 +123,13 @@ $(document).ready(function () {
y = document.getElementById('item'); y = document.getElementById('item');
y.value = x; y.value = x;
}); });
w = $('.w-select').val();
console.log(w);
$(".btnconfig").click(function () { $(".btnconfig").click(function () {
$(".ctrl-config").hide(); $(".ctrl-config").hide();
@ -434,7 +441,7 @@ $(document).ready(function () {
$(".itemlvlreq").html("Level Required: "+$(this).val()); $(".itemlvlreq").html("Level Required: "+$(this).val());
}); });
// unique item change function select
// cmd = getUniqueItem // cmd = getUniqueItem
$('.uniqueitems-select').change(function () { $('.uniqueitems-select').change(function () {

View File

@ -125,7 +125,7 @@ if ($p['wp_all'] == "1") {
} }
$checksum = swapEndianness(shell_exec("bin\d2scs.exe \"$filePath\"")); $checksum = (shell_exec("bin\d2scs.exe \"$filePath\""));
// write NEW checksum at offset 0x0C - byte 12 // write NEW checksum at offset 0x0C - byte 12
fseek($fp, 12); fseek($fp, 12);

View File

@ -0,0 +1,38 @@
<?php
error_reporting(E_ERROR | E_PARSE);
set_time_limit(-1);
ini_set('max_input_time', '-1');
ini_set('max_execution_time', '0');
session_start();
ob_start();
include "./_pdo.php";
include "./config.php";
require_once "./vendor/autoload.php";
require_once "./src/D2Functions.php";
PDO_Connect("sqlite:" . $_SESSION['modname'].".db");
$post = $_POST;
// IF record exists, UPDATE,
// ELSE new record, INSERT
if ($_POST['formtype'] == "uniqueitems") {
unset($post['formtype']);
unset($post['submit']);
unset($post['item']);
// if ladder or carry1 is 0, set empty field.
if (!$post['ladder']) {
$post['ladder'] = '';
}
if (!$post['carry1']) {
$post['carry1'] = '';
}
ddump($post);
}

View File

@ -56,7 +56,7 @@ if (!empty($_POST)) {
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$path = rtrim($_POST['path'], "\\"); $path = rtrim($_POST['path'], "\\");
$path = str_replace("\\", "\\\\", $path); $path = str_replace("\\", "\\\\", $path);
$modpath = $path;
$savePath = $path . '\\\\save\\\\'; $savePath = $path . '\\\\save\\\\';
$tbl = $path.'\\\\data\\\\local\\\\lng\\\\eng\\\\'; $tbl = $path.'\\\\data\\\\local\\\\lng\\\\eng\\\\';
@ -69,6 +69,8 @@ if (!empty($_POST)) {
PDO_Connect("sqlite:../D2Modder.db"); PDO_Connect("sqlite:../D2Modder.db");
$sql = "CREATE TABLE IF NOT EXISTS D2Modder ( $sql = "CREATE TABLE IF NOT EXISTS D2Modder (
modname VARCHAR(255), modname VARCHAR(255),
modpath VARCHAR(255),
savepath VARCHAR(255),
path VARCHAR(255), path VARCHAR(255),
tbl VARCHAR(255), tbl VARCHAR(255),
lastused INT, lastused INT,
@ -85,15 +87,15 @@ ERROR: INVALID PATH</h1></center>';
// set this mod to active mod in session // set this mod to active mod in session
$_SESSION['path'] = $path; $_SESSION['path'] = $path;
$_SESSION['tbl'] = $tbl; $_SESSION['tbl'] = $tbl;
$_SESSION['savePath'] = $savePath; $_SESSION['savepath'] = $savePath;
// Don't yell at me, security is the least of my considerations atm // Don't yell at me, security is the least of my considerations atm
// check modname in db // check modname in db
$sql = "SELECT * FROM D2Modder WHERE modname=?"; $sql = "SELECT * FROM D2Modder WHERE modname=?";
$res = PDO_FetchAll($sql, [$modname]); $res = PDO_FetchAll($sql, [$modname]);
if (empty($res)) { if (empty($res)) {
$sql = "INSERT INTO D2Modder(`modname`,`path`,`tbl`,`lastused`) VALUES(?, ?, ?, ?)"; $sql = "INSERT INTO D2Modder(`modname`,`modpath`,`savepath`,`path`,`tbl`,`lastused`) VALUES(?, ?, ?, ?, ?, ?)";
PDO_Execute($sql, [$modname, $path, $tbl, $time]); PDO_Execute($sql, [$modname, $modpath, $savePath, $path, $tbl, $time]);
} }
header("Location: /processFiles.php"); header("Location: /processFiles.php");
} }

View File

@ -65,7 +65,7 @@ class D2Files {
} }
public function getSaveFiles() { public function getSaveFiles() {
$glob = glob($_SESSION['savePath'] . '*.d2s'); $glob = glob($_SESSION['savepath'] . '*.d2s');
foreach ($glob as $g) { foreach ($glob as $g) {

View File

@ -77,4 +77,9 @@ function strtobits(string $str): string {
function swapEndianness($hex) { function swapEndianness($hex) {
return implode('', array_reverse(str_split($hex, 2))); return implode('', array_reverse(str_split($hex, 2)));
}
function modifyBit(int $n, int $p, bool $b){
return ($b ? ($n | (1 << $p)) : ($n & ~(1 << $p)) );
} }

View File

@ -434,10 +434,12 @@ class D2ItemDesc {
} }
if ($params['descfunc'] == 16) { if ($params['descfunc'] == 16) {
$sql = "SELECT skill FROM `skills` WHERE `Id`='$par'";
$aura = PDO_FetchOne($sql);
if (!$max) { if (!$max) {
$this->str = "Level $min $par Aura When Equipped "; $this->str = "Level $min $aura Aura When Equipped ";
} else { } else {
$this->str = "Level $min to $max $par Aura When Equipped "; $this->str = "Level $min to $max $aura Aura When Equipped ";
} }
} }
@ -570,7 +572,13 @@ class D2ItemDesc {
} }
if ($params['descfunc'] == 16) { if ($params['descfunc'] == 16) {
$this->str = "Level [sLvl] [skill] Aura When Equipped "; $sql = "SELECT skill FROM `skills` WHERE `Id`='$par'";
$aura = PDO_FetchOne($sql);
if (!$max) {
$this->str = "Level $min $aura Aura When Equipped ";
} else {
$this->str = "Level $min to $max $aura Aura When Equipped ";
}
} }
if ($params['descfunc'] == 17) { if ($params['descfunc'] == 17) {

View File

@ -12,7 +12,7 @@ class D2SaveFile {
$this->sData = new D2SaveFileStructureData(); $this->sData = new D2SaveFileStructureData();
$filePath = $_SESSION['savePath'] . $file; $filePath = $_SESSION['savepath'] . $file;
$fp = fopen($filePath, "rb+"); $fp = fopen($filePath, "rb+");
@ -101,7 +101,7 @@ class D2SaveFile {
$quests = null; $quests = null;
$filePath = $_SESSION['savePath'] . $file; $filePath = $_SESSION['savepath'] . $file;
$fp = fopen($filePath, "rb+"); $fp = fopen($filePath, "rb+");
foreach ($this->sData->qNorm as $k => $v) { foreach ($this->sData->qNorm as $k => $v) {
@ -143,7 +143,7 @@ class D2SaveFile {
public function getWaypointsData($file) { public function getWaypointsData($file) {
$filePath = $_SESSION['savePath'] . $file; $filePath = $_SESSION['savepath'] . $file;
$fp = fopen($filePath, "rb+"); $fp = fopen($filePath, "rb+");
$wp = null; $wp = null;

View File

@ -107,7 +107,7 @@
</select> </select>
</div> </div>
</div> </div>
<form action="/index.php" method="post"> <form action="/saveD2ModderEditorData.php" method="post">
<div class="form-group row"> <div class="form-group row">
<div class="col-2" style="background: #fec;"> <div class="col-2" style="background: #fec;">
@ -209,7 +209,7 @@
<div class="col-2" style="background: #bbb;"> <div class="col-2" style="background: #bbb;">
<p>Armor</p> <p>Armor</p>
<select class="a-select custom-select code" name="code[]" required="required"> <select class="a-select custom-select code" name="code" required="required">
<option value=""></option> <option value=""></option>
<?php <?php
foreach ($armor as $a) foreach ($armor as $a)

View File

@ -43,6 +43,9 @@
session_start(); session_start();
include "./_pdo.php"; include "./_pdo.php";
include "./config.php"; include "./config.php";
require_once 'src/D2Functions.php';
// if config db exists, connect to it and grab list of mods // if config db exists, connect to it and grab list of mods
if (file_exists(APP_DB)) { if (file_exists(APP_DB)) {
PDO_Connect("sqlite:".APP_DB); PDO_Connect("sqlite:".APP_DB);
@ -67,9 +70,14 @@ if (file_exists(APP_DB)) {
$time = time(); $time = time();
$sql = "UPDATE `D2Modder` SET `lastused`=$time WHERE modname='{$_POST['modname']}'"; $sql = "UPDATE `D2Modder` SET `lastused`=$time WHERE modname='{$_POST['modname']}'";
PDO_Execute($sql); PDO_Execute($sql);
$_SESSION['modname'] = $mod['modname']; $_SESSION['modname'] = $mod['modname'];
$_SESSION['path'] = $mod['path']; $_SESSION['path'] = $mod['path'];
$_SESSION['modpath'] = $mod['modpath'];
$_SESSION['savepath'] = $mod['savepath'];
$_SESSION['tbl'] = $mod['tbl'];
// ddump($_SESSION);
header("Location: /"); header("Location: /");
} }
} }

1
x
View File

@ -1 +0,0 @@
255D__G123456789