예제 #1
0
function itemmix($mlist, $itemselect = -1)
{
    global $log, $mode, $gamecfg, $name, $nosta, $gd, $name, $nick;
    global $itm1, $itm2, $itm3, $itm4, $itm5, $itm6, $itms1, $itms2, $itms3, $itms4, $itms5, $itms6, $itme1, $itme2, $itme3, $itme4, $itme5, $itme6, $club, $wd;
    global $itmk1, $itmk2, $itmk3, $itmk4, $itmk5, $itmk6, $itmsk1, $itmsk2, $itmsk3, $itmsk4, $itmsk5, $itmsk6;
    global $syncn, $synck, $synce, $syncs, $syncsk, $sync, $reqname, $star;
    global $cmd;
    $mlist2 = array_unique($mlist);
    if (count($mlist) != count($mlist2)) {
        $log .= '相同道具不能进行合成!<br>';
        $mode = 'itemmix';
        return;
    }
    if (count($mlist) < 2) {
        $log .= '至少需要2个道具才能进行合成!';
        $mode = 'itemmix';
        return;
    }
    $issyncro = false;
    $isntsyn = false;
    $isoverlay = false;
    $isntove = false;
    $star = 0;
    $reqname = '';
    $tzname = '';
    $ostar = 0;
    $mixitem = array();
    foreach ($mlist as $val) {
        if (strlen(${'itmk' . $val}) >= 4 && strpos(${'itmsk' . $val}, 'J') !== false) {
            $isoverlay = true;
            break;
        }
    }
    foreach ($mlist as $val) {
        if (!${'itm' . $val}) {
            $log .= '所选择的道具不存在!';
            $mode = 'itemmix';
            return;
        }
        $mitm = ${'itm' . $val};
        foreach (array('/锋利的/', '/电气/', '/毒性/', '/-改$/') as $value) {
            $mitm = preg_replace($value, '', $mitm);
        }
        $mixitem[] = $mitm;
        if (strlen(${'itmk' . $val}) < 4) {
            $isntove = true;
            if ($isoverlay == true) {
                $log .= "<span class=\"red\">超量失败!所有素材消失!说明写这段代码的人还是一个有良知,明是非的中国人!</span><br>";
                addnews($now, 'mixfail', $nick . ' ' . $name, $itm0);
                foreach ($mlist as $val) {
                    ${'itm' . $val} = ${'itmk' . $val} = ${'itmsk' . $val} = '';
                    ${'itme' . $val} = ${'itms' . $val} = 0;
                }
                return;
            }
        } else {
            if ($isoverlay == false) {
                $ostar = substr(${'itmk' . $val}, 2, 2);
            }
        }
        if ($isoverlay == true) {
            if (strlen(${'itmk' . $val}) < 4 || substr(${'itmk' . $val}, 2, 2) != $ostar && $ostar != 0) {
                $log .= "<span class=\"red\">超量失败!所有素材消失!说明写这段代码的人还是一个有良知,明是非的中国人!</span><br>";
                addnews($now, 'mixfail', $nick . ' ' . $name, $itm0);
                foreach ($mlist as $val) {
                    ${'itm' . $val} = ${'itmk' . $val} = ${'itmsk' . $val} = '';
                    ${'itme' . $val} = ${'itms' . $val} = 0;
                }
                return;
            }
            $ostar = substr(${'itmk' . $val}, 2, 2);
            continue;
        } else {
            if (strlen(${'itmk' . $val}) >= 4 && strpos(${'itmsk' . $val}, 'J') !== false) {
                if (substr(${'itmk' . $val}, 2, 2) != $ostar) {
                    $log .= "<span class=\"red\">超量失败!所有素材消失!说明写这段代码的人还是一个有良知,明是非的中国人!</span><br>";
                    addnews($now, 'mixfail', $nick . ' ' . $name, $itm0);
                    foreach ($mlist as $val) {
                        ${'itm' . $val} = ${'itmk' . $val} = ${'itmsk' . $val} = '';
                        ${'itme' . $val} = ${'itms' . $val} = 0;
                    }
                    return;
                }
                $isoverlay = true;
                $ostar = substr(${'itmk' . $val}, 2, 2);
            }
        }
        if ($issyncro == true) {
            if (strlen(${'itmk' . $val}) < 4 && $isntsyn == false) {
                $log .= "<span class=\"red\">同调失败!所有素材消失!真是大快人心啊!</span><br>";
                addnews($now, 'mixfail', $nick . ' ' . $name, $itm0);
                foreach ($mlist as $val) {
                    ${'itm' . $val} = ${'itmk' . $val} = ${'itmsk' . $val} = '';
                    ${'itme' . $val} = ${'itms' . $val} = 0;
                }
                return;
            }
            if (strpos(${'itmsk' . $val}, 's') !== false) {
                $log .= "<span class=\"red\">同调失败!所有素材消失!真是大快人心啊!</span><br>";
                addnews($now, 'mixfail', $nick . ' ' . $name, $itm0);
                foreach ($mlist as $val) {
                    ${'itm' . $val} = ${'itmk' . $val} = ${'itmsk' . $val} = '';
                    ${'itme' . $val} = ${'itms' . $val} = 0;
                }
                return;
            }
            $star += substr(${'itmk' . $val}, 2, 2);
            $reqname .= ${'itm' . $val} . '_';
        } else {
            if (strpos(${'itmsk' . $val}, 's') !== false) {
                if ($isntsyn == false) {
                    $issyncro = true;
                    $star += substr(${'itmk' . $val}, 2, 2);
                    $tzname = ${'itm' . $val};
                    continue;
                } else {
                    $log .= "<span class=\"red\">同调失败!所有素材消失!真是大快人心啊!</span><br>";
                    addnews($now, 'mixfail', $nick . ' ' . $name, $itm0);
                    foreach ($mlist as $val) {
                        ${'itm' . $val} = ${'itmk' . $val} = ${'itmsk' . $val} = '';
                        ${'itme' . $val} = ${'itms' . $val} = 0;
                    }
                    return;
                }
            }
            if (strlen(${'itmk' . $val}) >= 4) {
                $star += substr(${'itmk' . $val}, 2, 2);
                $reqname .= ${'itm' . $val} . '_';
            } else {
                $isntsyn = true;
            }
        }
    }
    //overlay
    if ($isoverlay == true) {
        $file1 = config('overlay', $gamecfg);
        $olist = openfile($file1);
        $num = count($olist) - 1;
        $nnum = sizeof($mixitem);
        $sync = -1;
        $syncn = $synck = $synce = $syncs = $syncsk = array();
        for ($i = 0; $i <= $num; $i++) {
            $t = explode(',', $olist[$i]);
            if ($t[5] != $ostar || $t[6] != $nnum) {
                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) {
            $log .= "<span class=\"red\">超量失败!所有素材消失!说明写这段代码的人还是一个有良知,明是非的中国人!</span><br>";
            foreach ($mlist as $val) {
                ${'itm' . $val} = ${'itmk' . $val} = ${'itmsk' . $val} = '';
                ${'itme' . $val} = ${'itms' . $val} = 0;
            }
            addnews($now, 'mixfail', $nick . ' ' . $name, $itm0);
            return;
        }
        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];
                $tk = $syncn[$i] . '_' . $synck[$i] . '_' . $synce[$i] . '_' . $syncs[$i] . '_' . $syncsk[$i] . '_-1_';
                $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;\">";
        } else {
            $i = (int) $itemselect;
            if ($i < 0 || $i > $sync) {
                $mode = 'command';
                return;
            }
            foreach ($mlist as $val) {
                ${'itm' . $val} = ${'itmk' . $val} = ${'itmsk' . $val} = '';
                ${'itme' . $val} = ${'itms' . $val} = 0;
            }
            $tk = $syncn[$i] . '_' . $synck[$i] . '_' . $synce[$i] . '_' . $syncs[$i] . '_' . $syncsk[$i] . '_-1_';
            include_once GAME_ROOT . './include/game/special.func.php';
            syncro($tk);
            $mode = 'command';
        }
        return;
    }
    //syncro
    if ($issyncro == true && $isntsyn == false) {
        $sync = -1;
        $syncn = $synck = $synce = $syncs = $syncsk = array();
        $file = config('synitem', $gamecfg);
        $slist = openfile($file);
        $num = count($slist) - 1;
        for ($i = 0; $i <= $num; $i++) {
            $t = explode(',', $slist[$i]);
            $rnum = count($t) - 8;
            $tn = $t[0];
            $tk = $t[1];
            $te = $t[2];
            $ts = $t[3];
            $tsk = $t[4];
            $tstar = $t[5];
            if ($star != $tstar) {
                continue;
            }
            if ($t[6] != '-1' && strpos($tzname, $t[6]) === false) {
                continue;
            }
            $isok = true;
            for ($j = 1; $j <= $rnum; $j++) {
                if ($t[7 + $j - 1] != '-1' && strpos($reqname, $t[7 + $j - 1]) === false) {
                    $isok = false;
                    break;
                }
            }
            if ($isok == false) {
                continue;
            }
            $sync++;
            $syncn[$sync] = $tn;
            $synck[$sync] = $tk;
            $synce[$sync] = $te;
            $syncs[$sync] = $ts;
            $syncsk[$sync] = $tsk;
        }
        if ($sync == -1) {
            $log .= "<span class=\"red\">同调失败!所有素材消失!真是大快人心啊!</span><br>";
            foreach ($mlist as $val) {
                ${'itm' . $val} = ${'itmk' . $val} = ${'itmsk' . $val} = '';
                ${'itme' . $val} = ${'itms' . $val} = 0;
            }
            addnews($now, 'mixfail', $nick . ' ' . $name, $itm0);
            return;
        }
        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];
                $tk = $syncn[$i] . '_' . $synck[$i] . '_' . $synce[$i] . '_' . $syncs[$i] . '_' . $syncsk[$i] . '_' . $star . '_';
                $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;\">";
        } else {
            $i = (int) $itemselect;
            if ($i < 0 || $i > $sync) {
                $mode = 'command';
                return;
            }
            foreach ($mlist as $val) {
                ${'itm' . $val} = ${'itmk' . $val} = ${'itmsk' . $val} = '';
                ${'itme' . $val} = ${'itms' . $val} = 0;
            }
            $tk = $syncn[$i] . '_' . $synck[$i] . '_' . $synce[$i] . '_' . $syncs[$i] . '_' . $syncsk[$i] . '_1_';
            include_once GAME_ROOT . './include/game/special.func.php';
            syncro($tk);
            $mode = 'command';
        }
        return;
    }
    include_once config('mixitem', $gamecfg);
    $mixflag = false;
    foreach ($mixinfo as $minfo) {
        if (!array_diff($mixitem, $minfo['stuff']) && !array_diff($minfo['stuff'], $mixitem) && count($mixitem) == count($minfo['stuff'])) {
            $mixflag = true;
            break;
        }
    }
    $itmstr = '';
    foreach ($mixitem as $val) {
        $itmstr .= $val . ' ';
    }
    $itmstr = substr($itmstr, 0, -1);
    if (!$mixflag) {
        $log .= "<span class=\"yellow\">{$itmstr}</span>不能合成!<br>";
        $mode = 'itemmix';
    } else {
        foreach ($mlist as $val) {
            itemreduce('itm' . $val);
        }
        global $itm0, $itmk0, $itme0, $itms0, $itmsk0;
        list($itm0, $itmk0, $itme0, $itms0, $itmsk0) = $minfo['result'];
        $log .= "<span class=\"yellow\">{$itmstr}</span>合成了<span class=\"yellow\">{$minfo['result'][0]}</span><br>";
        //var_dump($minfo['result'][0]);
        addnews($now, 'itemmix', $nick . ' ' . $name, $itm0);
        //if($club == 5) { $wd += 2; }
        //else { $wd+=1; }
        $wd += 1;
        if (strpos($itmk0, 'WD') === 0 && $club == 5 && $itms0 !== $nosta) {
            $itms0 = ceil($itms0 * 1.5);
        } elseif (strpos($itmk0, 'H') === 0 && $club == 16 && $itms0 !== $nosta) {
            $itms0 = ceil($itms0 * 2);
        } elseif (($itmk0 == 'EE' || $itmk0 == 'ER') && $club == 7) {
            $itme0 *= 5;
        }
        //elseif(($itm0 == '移动PC' || $itm0 == '广域生命探测器') && ($club == 7)){ $itme0 *= 3; }
        //检查成就
        include_once GAME_ROOT . './include/game/achievement.func.php';
        check_mixitem_achievement($name, $itm0);
        itemget();
    }
    return;
}
예제 #2
0
파일: main.php 프로젝트: winddramon/dts
function itemmix($mlist, $itemselect = -1)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player', 'logger', 'itemmix'));
    $mlist2 = array_unique($mlist);
    if (count($mlist) != count($mlist2)) {
        $log .= '相同道具不能进行合成!<br>';
        $mode = 'itemmix';
        return;
    }
    if (count($mlist) < 2) {
        $log .= '至少需要2个道具才能进行合成!';
        $mode = 'itemmix';
        return;
    }
    $mixitem = array();
    foreach ($mlist as $val) {
        if (!${'itm' . $val}) {
            $log .= '所选择的道具不存在!';
            $mode = 'itemmix';
            return;
        }
        $mitm = ${'itm' . $val};
        foreach (array('/锋利的/', '/电气/', '/毒性/', '/-改$/') as $value) {
            $mitm = preg_replace($value, '', $mitm);
        }
        $mitm = str_replace('钉棍棒', '棍棒', $mitm);
        $mixitem[] = $mitm;
    }
    $mixflag = false;
    foreach ($mixinfo as $minfo) {
        if (count($mixitem) == count($minfo['stuff'])) {
            $t1 = $mixitem;
            $t2 = $minfo['stuff'];
            sort($t1);
            sort($t2);
            $flag = 1;
            for ($i = 0; $i < count($t1); $i++) {
                if ($t1[$i] != $t2[$i]) {
                    $flag = 0;
                    break;
                }
            }
            if ($flag) {
                $mixflag = true;
                break;
            }
        }
    }
    $itmstr = '';
    foreach ($mixitem as $val) {
        $itmstr .= $val . ' ';
    }
    $itmstr = substr($itmstr, 0, -1);
    if (!$mixflag) {
        $log .= "<span class=\"yellow\">{$itmstr}</span>不能合成!<br>";
        ob_clean();
        template(MOD_ITEMMIX_ITEMMIX);
        $cmd = ob_get_contents();
        ob_clean();
    } else {
        foreach ($mlist as $val) {
            itemreduce('itm' . $val);
        }
        $itm0 = $minfo['result'][0];
        $itmk0 = $minfo['result'][1];
        $itme0 = $minfo['result'][2];
        $itms0 = $minfo['result'][3];
        if (isset($minfo['result'][4])) {
            $itmsk0 = $minfo['result'][4];
        } else {
            $itmsk0 = '';
            $minfo['result'][4] = '';
        }
        itemmix_success();
    }
    return;
}