Esempio n. 1
0
function itemmix($mlist, $itemselect = -1)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player', 'logger', 'itemmix'));
    $last_star = -1;
    $num = 0;
    foreach ($mlist as $val) {
        $mitm = ${'itm' . $val};
        foreach (array('/锋利的/', '/电气/', '/毒性/', '/-改$/') as $value) {
            $mitm = preg_replace($value, '', $mitm);
        }
        $mitm = str_replace('钉棍棒', '棍棒', $mitm);
        $mixitem[] = $mitm;
        $z = ${'itmk' . $val};
        $star = 0;
        for ($i = 0; $i < strlen($z); $i++) {
            if ('0' <= $z[$i] && $z[$i] <= '9') {
                $star = $star * 10 + (int) $z[$i];
            }
        }
        if ($star == 0) {
            return $chprocess($mlist, $itemselect);
        }
        //所有道具都有星数
        if ($last_star == -1) {
            $last_star = $star;
            $num = 1;
        } else {
            if ($star != $last_star) {
                //所有星数必须相同
                return $chprocess($mlist, $itemselect);
            } else {
                $num++;
            }
        }
        if (strpos(${'itmsk' . $val}, 'J') === false) {
            return $chprocess($mlist, $itemselect);
        }
        //必须均为超量素材
    }
    if ($last_star == -1) {
        return $chprocess($mlist, $itemselect);
    }
    $file = __DIR__ . '/config/overlay.config.php';
    $olist = openfile($file);
    $n = count($olist);
    $sync = -1;
    $syncn = $synck = $synce = $syncs = $syncsk = array();
    for ($i = 0; $i < $n; $i++) {
        $t = explode(',', $olist[$i]);
        if ($t[5] != $last_star || $t[6] != $num) {
            continue;
        }
        $sync++;
        $syncn[$sync] = $t[0];
        $synck[$sync] = $t[1];
        $synce[$sync] = $t[2];
        $syncs[$sync] = $t[3];
        $syncsk[$sync] = $t[4];
    }
    //无满足条件的超量结果,失败
    if ($sync == -1) {
        return $chprocess($mlist, $itemselect);
    }
    if ($itemselect == -1) {
        $mask = 0;
        foreach ($mlist as $k) {
            if (1 <= $k && $k <= 6) {
                $mask |= 1 << (int) $k - 1;
            }
        }
        $cmd .= '<input type="hidden" id="mode" name="mode" value="itemmain">';
        $cmd .= '<input type="hidden" id="command" name="command" value="itemmix">';
        $cmd .= '<input type="hidden" id="mixmask" name="mixmask" value="' . $mask . '">';
        $cmd .= '<input type="hidden" id="itemselect" name="itemselect" value="999">';
        $cmd .= "请选择超量结果<br><br>";
        for ($i = 0; $i <= $sync; $i++) {
            $tn = $syncn[$i];
            $cmd .= "<input type=\"button\" class=\"cmdbutton\"  style=\"width:200\" value=\"" . $tn . "\" onclick=\"\$('itemselect').value='" . $i . "';postCmd('gamecmd','command.php');this.disabled=true;\">";
        }
        $cmd .= "<input type=\"button\" class=\"cmdbutton\"  style=\"width:200\" value=\"返回\" onclick=\"postCmd('gamecmd','command.php');this.disabled=true;\">";
        return;
    } else {
        $i = (int) $itemselect;
        if ($i < 0 || $i > $sync) {
            $mode = 'command';
            return;
        }
        foreach ($mlist as $val) {
            \itemmix\itemreduce('itm' . $val);
        }
        $itm0 = $syncn[$i];
        $itmk0 = $synck[$i];
        $itme0 = $synce[$i];
        $itms0 = $syncs[$i];
        $itmsk0 = $syncsk[$i];
        addnews($now, 'overmix', $name, $itm0);
        \itemmain\itemget();
        $mode = 'command';
        return;
    }
    $chprocess($mlist, $itemselect);
}
Esempio n. 2
0
function itemmix($mlist, $itemselect = -1)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player', 'logger', 'itemmix'));
    $sks_count = 0;
    $sum_star = 0;
    $mixitem = array();
    foreach ($mlist as $val) {
        $mitm = ${'itm' . $val};
        foreach (array('/锋利的/', '/电气/', '/毒性/', '/-改$/') as $value) {
            $mitm = preg_replace($value, '', $mitm);
        }
        $mitm = str_replace('钉棍棒', '棍棒', $mitm);
        $mixitem[] = $mitm;
        $z = ${'itmk' . $val};
        $star = 0;
        for ($i = 0; $i < strlen($z); $i++) {
            if ('0' <= $z[$i] && $z[$i] <= '9') {
                $star = $star * 10 + (int) $z[$i];
            }
        }
        if ($star == 0) {
            return $chprocess($mlist, $itemselect);
        }
        //所有道具都有星数
        $sum_star += $star;
        if (strpos(${'itmsk' . $val}, 's') !== false) {
            $sks_count++;
        }
    }
    //恰有一个调整属性
    if ($sks_count != 1) {
        return $chprocess($mlist, $itemselect);
    }
    $file = __DIR__ . '/config/sync.config.php';
    $slist = openfile($file);
    $num = count($slist);
    $sync = -1;
    $syncn = $synck = $synce = $syncs = $syncsk = array();
    for ($i = 0; $i < $num; $i++) {
        $t = explode(',', $slist[$i]);
        $tn = $t[0];
        $tk = $t[1];
        $te = $t[2];
        $ts = $t[3];
        $tsk = $t[4];
        $tstar = $t[5];
        $treq = $t[6];
        //检查星数是否符合
        if ($sum_star != $tstar) {
            continue;
        }
        //检查是否满足了要求的合成来源
        $lis = explode('+', $treq);
        $flag = 1;
        foreach ($lis as $key) {
            if ($key != '') {
                if (!in_array($key, $mixitem)) {
                    $flag = 0;
                    break;
                }
            }
        }
        if (!$flag) {
            continue;
        }
        $sync++;
        $syncn[$sync] = $tn;
        $synck[$sync] = $tk;
        $synce[$sync] = $te;
        $syncs[$sync] = $ts;
        $syncsk[$sync] = $tsk;
    }
    //无满足条件的同调结果,失败
    if ($sync == -1) {
        return $chprocess($mlist, $itemselect);
    }
    if ($itemselect == -1) {
        $mask = 0;
        foreach ($mlist as $k) {
            if (1 <= $k && $k <= 6) {
                $mask |= 1 << (int) $k - 1;
            }
        }
        $cmd .= '<input type="hidden" id="mode" name="mode" value="itemmain">';
        $cmd .= '<input type="hidden" id="command" name="command" value="itemmix">';
        $cmd .= '<input type="hidden" id="mixmask" name="mixmask" value="' . $mask . '">';
        $cmd .= '<input type="hidden" id="itemselect" name="itemselect" value="999">';
        $cmd .= "请选择同调结果<br><br>";
        for ($i = 0; $i <= $sync; $i++) {
            $tn = $syncn[$i];
            $cmd .= "<input type=\"button\" class=\"cmdbutton\"  style=\"width:200\" value=\"" . $tn . "\" onclick=\"\$('itemselect').value='" . $i . "';postCmd('gamecmd','command.php');this.disabled=true;\">";
        }
        $cmd .= "<input type=\"button\" class=\"cmdbutton\"  style=\"width:200\" value=\"返回\" onclick=\"postCmd('gamecmd','command.php');this.disabled=true;\">";
        return;
    } else {
        $i = (int) $itemselect;
        if ($i < 0 || $i > $sync) {
            $mode = 'command';
            return;
        }
        foreach ($mlist as $val) {
            \itemmix\itemreduce('itm' . $val);
        }
        $itm0 = $syncn[$i];
        $itmk0 = $synck[$i];
        $itme0 = $synce[$i];
        $itms0 = $syncs[$i];
        $itmsk0 = $syncsk[$i];
        addnews($now, 'syncmix', $name, $itm0);
        \itemmain\itemget();
        $mode = 'command';
        return;
    }
    $chprocess($mlist, $itemselect);
}