public static function eftarray($md5, $items, $victimID = 0) { $Cache = Cache::get($md5 . 'eftarray'); if ($Cache) { return $Cache; } // EFT / Fitting Wheel $eftarray['high'] = array(); // high $eftarray['mid'] = array(); // mid $eftarray['low'] = array(); // low $eftarray['rig'] = array(); // rig $eftarray['drone'] = array(); // drone $eftarray['sub'] = array(); // sub $eftammo['high'] = array(); // high ammo $eftammo['mid'] = array(); // mid ammo foreach ($items as $itm) { if (!isset($itm['inContainer'])) { $itm['inContainer'] = 0; } if ($victimID >= 2100000000 && $victimID <= 2999999999.0) { $itm['flagName'] = Info::getGroupName(Info::getGroupID($itm['typeID'])); } elseif (!isset($itm['flagName'])) { $itm['flagName'] = Info::getFlagName($itm['flag']); } if ($itm['flagName'] == 'Infantry Modules') { $itm['flagName'] = 'Mid Slots'; } if ($itm['flagName'] == 'Infantry Weapons') { $itm['flagName'] = 'High Slots'; } if ($itm['flagName'] == 'Infantry Equipment') { $itm['flagName'] = 'Low Slots'; } if ($itm['flag'] == 89) { $slot = Db::queryField('select coalesce(valueInt, valueFloat) slot from ccp_dgmTypeAttributes where typeID = :typeID and attributeID = 331', 'slot', array(':typeID' => $itm['typeID'])); if ($slot <= 5 && $slot >= 1) { $itm['flagName'] = 'High Slots'; $itm['flag'] = 27 + ($slot - 1); } elseif ($slot > 5 && $slot <= 10) { $itm['flagName'] = 'Low Slots'; $itm['flag'] = 11 + ($slot - 6); } $itm['fittable'] = 1; } if (!isset($itm['flag']) || $itm['flag'] == 0) { if ($itm['flagName'] == 'High Slots') { $itm['flag'] = 27; } if ($itm['flagName'] == 'Mid Slots') { $itm['flag'] = 19; } if ($itm['flagName'] == 'Low Slots') { $itm['flag'] = 11; } } $key = $itm['typeName'] . '|' . $itm['flagName']; if (isset($itm['flagName'])) { if ($itm['fittable'] && $itm['inContainer'] == 0) { // not ammo or whatever $repeats = @$itm['quantityDropped'] + @$itm['quantityDestroyed']; $i = 0; while ($i < $repeats) { if ($itm['flagName'] == 'High Slots') { high: if (isset($eftarray['high'][$itm['flag']])) { $itm['flag'] = $itm['flag'] + 1; goto high; } $eftarray['high'][$itm['flag']][] = array('typeName' => $itm['typeName'], 'typeID' => $itm['typeID']); } if ($itm['flagName'] == 'Mid Slots') { mid: if (isset($eftarray['mid'][$itm['flag']])) { $itm['flag'] = $itm['flag'] + 1; goto mid; } $eftarray['mid'][$itm['flag']][] = array('typeName' => $itm['typeName'], 'typeID' => $itm['typeID']); } if ($itm['flagName'] == 'Low Slots') { low: if (isset($eftarray['low'][$itm['flag']])) { $itm['flag'] = $itm['flag'] + 1; goto low; } $eftarray['low'][$itm['flag']][] = array('typeName' => $itm['typeName'], 'typeID' => $itm['typeID']); } if ($itm['flagName'] == 'Rigs') { rigs: if (isset($eftarray['rig'][$itm['flag']])) { $itm['flag'] = $itm['flag'] + 1; goto rigs; } $eftarray['rig'][$itm['flag']][] = array('typeName' => $itm['typeName'], 'typeID' => $itm['typeID']); } if ($itm['flagName'] == 'SubSystems') { subs: if (isset($eftarray['sub'][$itm['flag']])) { $itm['flag'] = $itm['flag'] + 1; goto subs; } $eftarray['sub'][$itm['flag']][] = array('typeName' => $itm['typeName'], 'typeID' => $itm['typeID']); } ++$i; } } else { if ($itm['flagName'] == 'Drone Bay') { $eftarray['drone'][$itm['flag']][] = array('typeName' => $itm['typeName'], 'typeID' => $itm['typeID'], 'qty' => @$itm['quantityDropped'] + @$itm['quantityDestroyed']); } } } } // Ammo shit foreach ($items as $itm) { if (!isset($itm['inContainer'])) { $itm['inContainer'] = 0; } if ($itm['inContainer'] == 0 && !$itm['fittable'] && isset($itm['flagName'])) { // possibly ammo if ($itm['flagName'] == 'High Slots') { // high slot ammo $eftarray['high'][$itm['flag']][] = array('typeName' => $itm['typeName'], 'typeID' => $itm['typeID'], 'charge' => true); } if ($itm['flagName'] == 'Mid Slots') { // mid slot ammo $eftarray['mid'][$itm['flag']][] = array('typeName' => $itm['typeName'], 'typeID' => $itm['typeID'], 'charge' => true); } if ($itm['flagName'] == 'Low Slots') { // mid slot ammo $eftarray['low'][$itm['flag']][] = array('typeName' => $itm['typeName'], 'typeID' => $itm['typeID'], 'charge' => true); } } } foreach ($eftarray as $key => $value) { if (sizeof($value)) { asort($value); $eftarray[$key] = $value; } else { unset($eftarray[$key]); } } Cache::set($md5 . 'eftarray', $eftarray); return $eftarray; }
function eftarray($md5, $items, $victimID = 0) { $Cache = Cache::get($md5 . "eftarray"); if ($Cache) { return $Cache; } // EFT / Fitting Wheel $eftarray["high"] = array(); // high $eftarray["mid"] = array(); // mid $eftarray["low"] = array(); // low $eftarray["rig"] = array(); // rig $eftarray["drone"] = array(); // drone $eftarray["sub"] = array(); // sub $eftammo["high"] = array(); // high ammo $eftammo["mid"] = array(); // mid ammo foreach ($items as $itm) { if ($victimID >= 2100000000 && $victimID <= 2999999999) { $itm["flagName"] = Info::getGroupName(Info::getGroupID($itm["typeID"])); } else { if (!isset($itm["flagName"])) { $itm["flagName"] = Info::getFlagName($itm["flag"]); } } if ($itm["flagName"] == "Infantry Modules") { $itm["flagName"] = "Mid Slots"; } if ($itm["flagName"] == "Infantry Weapons") { $itm["flagName"] = "High Slots"; } if ($itm["flagName"] == "Infantry Equipment") { $itm["flagName"] = "Low Slots"; } if (!isset($itm["flag"]) || $itm["flag"] == 0) { if ($itm["flagName"] == "High Slots") { $itm["flag"] = 27; } if ($itm["flagName"] == "Mid Slots") { $itm["flag"] = 19; } if ($itm["flagName"] == "Low Slots") { $itm["flag"] = 11; } } $key = $itm["typeName"] . "|" . $itm["flagName"]; if (isset($itm["flagName"])) { if ($itm["fittable"] && $itm["inContainer"] == 0) { $repeats = $itm["qtyDropped"] + $itm["qtyDestroyed"]; $i = 0; while ($i < $repeats) { if ($itm["flagName"] == "High Slots") { high: if (isset($eftarray["high"][$itm["flag"]])) { $itm["flag"] = $itm["flag"] + 1; goto high; } $eftarray["high"][$itm["flag"]][] = array("typeName" => $itm["typeName"], "typeID" => $itm["typeID"]); } if ($itm["flagName"] == "Mid Slots") { mid: if (isset($eftarray["mid"][$itm["flag"]])) { $itm["flag"] = $itm["flag"] + 1; goto mid; } $eftarray["mid"][$itm["flag"]][] = array("typeName" => $itm["typeName"], "typeID" => $itm["typeID"]); } if ($itm["flagName"] == "Low Slots") { low: if (isset($eftarray["low"][$itm["flag"]])) { $itm["flag"] = $itm["flag"] + 1; goto low; } $eftarray["low"][$itm["flag"]][] = array("typeName" => $itm["typeName"], "typeID" => $itm["typeID"]); } if ($itm["flagName"] == "Rigs") { rigs: if (isset($eftarray["rig"][$itm["flag"]])) { $itm["flag"] = $itm["flag"] + 1; goto rigs; } $eftarray["rig"][$itm["flag"]][] = array("typeName" => $itm["typeName"], "typeID" => $itm["typeID"]); } if ($itm["flagName"] == "SubSystems") { subs: if (isset($eftarray["sub"][$itm["flag"]])) { $itm["flag"] = $itm["flag"] + 1; goto subs; } $eftarray["sub"][$itm["flag"]][] = array("typeName" => $itm["typeName"], "typeID" => $itm["typeID"]); } $i++; } } else { if ($itm["flagName"] == "Drone Bay") { $eftarray["drone"][$itm["flag"]][] = array("typeName" => $itm["typeName"], "typeID" => $itm["typeID"], "qty" => $itm["qtyDropped"] + $itm["qtyDestroyed"]); } } } } // Ammo shit foreach ($items as $itm) { if ($itm["inContainer"] == 0 && !$itm["fittable"] && isset($itm["flagName"])) { if ($itm["flagName"] == "High Slots") { // high slot ammo $eftarray["high"][$itm["flag"]][] = array("typeName" => $itm["typeName"], "typeID" => $itm["typeID"], "charge" => true); } if ($itm["flagName"] == "Mid Slots") { // mid slot ammo $eftarray["mid"][$itm["flag"]][] = array("typeName" => $itm["typeName"], "typeID" => $itm["typeID"], "charge" => true); } } } foreach ($eftarray as $key => $value) { if (sizeof($value)) { asort($value); $eftarray[$key] = $value; } else { unset($eftarray[$key]); } } Cache::set($md5 . "eftarray", $eftarray); return $eftarray; }