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; }
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; }