From 2afcceaefbc2a1e68c44680c1328e454a4511057 Mon Sep 17 00:00:00 2001 From: Sarjuuk Date: Tue, 21 Jul 2015 23:21:10 +0200 Subject: [PATCH] Heirlooms * fixed expected structure of ScalingStatValues (js-scaling heirlooms should be working again) * weapons are now properly assigned ranged- or melee-dps need to rerun: php aowow --build=itemScaling --- includes/shared.php | 2 +- setup/tools/filegen/itemScaling.func.php | 19 +++++++++++++------ static/js/basic.js | 6 +++--- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/includes/shared.php b/includes/shared.php index 9b5ce531..1c6e0a46 100644 --- a/includes/shared.php +++ b/includes/shared.php @@ -1,6 +1,6 @@ select('SELECT *, Id AS ARRAY_KEY FROM dbc_scalingstatvalues'); - foreach ($data as &$row) - { - $row = array_values($row); - array_splice($row, 0, 1); - } + /* so the javascript expects a slightly different structure, than the dbc provides .. f*** it + e.g. + dbc - 80: 97 97 56 41 210 395 878 570 120 156 86 112 108 220 343 131 73 140 280 527 1171 2093 + expected - 80: 97 97 56 131 41 210 395 878 1570 120 156 86 112 108 220 343 0 0 73 140 280 527 1171 2093 + */ + $fields = Util::$ssdMaskFields; + array_walk($fields, function(&$v, $k) { + $v = $v ?: '0 AS idx'.$k; // NULL => 0 (plus some index so we can have 2x 0) + }); + + $data = DB::Aowow()->select('SELECT Id AS ARRAY_KEY, '.implode(', ', $fields).' FROM dbc_scalingstatvalues'); + foreach ($data as &$d) + $d = array_values($d); // strip indizes return CFG_DEBUG ? debugify($data) : Util::toJSON($data); } diff --git a/static/js/basic.js b/static/js/basic.js index 392177f1..32c864d6 100644 --- a/static/js/basic.js +++ b/static/js/basic.js @@ -1266,7 +1266,7 @@ $WH.g_setJsonItemLevel = function (json, level) { scaleMask = 0x04001F, armorMask = 0xF801E0, damageMask = 0x007E00, - spelPwrMask = 0x008000, + splPwrMask = 0x008000, meleeMask = 0x001400; for (var i = 0; i < 24; ++i) { @@ -1281,7 +1281,7 @@ $WH.g_setJsonItemLevel = function (json, level) { else if (mask & damageMask && damageColumn < 0) { damageColumn = i; } - else if (mask & spelPwrMask && splPwrColumn < 0) { + else if (mask & splPwrMask && splPwrColumn < 0) { splPwrColumn = i; } } @@ -1306,7 +1306,7 @@ $WH.g_setJsonItemLevel = function (json, level) { if (damageColumn >= 0) { var damageRange = (json.scaflags & meleeMask ? 0.2 : 0.3), - damageType = (json.mledps ? "mle": "rgd"); + damageType = (json.scaflags & meleeMask ? "mle": "rgd"); json.dps = json[damageType + "dps"] = $WH.g_convertScalingFactor(level, damageColumn); json.dmgmin = json[damageType + "dmgmin"] = Math.floor(json.dps * json.speed * (1 - damageRange));