function activate430() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('skill430', 'player', 'logger', 'sys', 'itemmain')); \player\update_sdata(); if (!\skillbase\skill_query(430) || !check_unlocked430($sdata)) { $log .= '你没有这个技能!<br>'; return; } $st = check_skill430_state($sdata); if ($st == 0) { $log .= '你不能使用这个技能!<br>'; return; } if ($st == 2) { $log .= '技能冷却中!<br>'; return; } \skillbase\skill_setvalue(430, 'lastuse', $now); $file = GAME_ROOT . "./include/modules/base/itemmain/config/mapitem.config.php"; //真是丑陋! $itemlist = openfile($file); $in = sizeof($itemlist); $i = rand(1, $in - 1); list($iarea, $imap, $inum, $iname, $ikind, $ieff, $ista, $iskind) = explode(',', $itemlist[$i]); $itm0 = $iname; $itme0 = $ieff; $itms0 = $ista; $itmsk0 = $iskind; $itmk0 = $ikind; addnews(0, 'bskill430', $name, $iname); \itemmain\itemget(); }
function itemuse(&$theitem) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'itemmain', 'logger')); $itm =& $theitem['itm']; $itmk =& $theitem['itmk']; $itme =& $theitem['itme']; $itms =& $theitem['itms']; $itmsk =& $theitem['itmsk']; if (strpos($itmk, 'p') === 0) { $log .= "你打开了<span class=\"yellow\">{$itm}</span>。<br>"; $file = __DIR__ . '/config/present.config.php'; $plist = openfile($file); $rand = rand(0, count($plist) - 1); list($in, $ik, $ie, $is, $isk) = explode(',', $plist[$rand]); $itm0 = $in; $itmk0 = $ik; $itme0 = $ie; $itms0 = $is; $itmsk0 = $isk; addnews($now, 'present', $name, $itm, $in); \itemmain\itms_reduce($theitem); \itemmain\itemget(); return; } elseif (strpos($itmk, 'ygo') === 0) { $log .= "你打开了<span class=\"yellow\">{$itm}</span>。<br>"; $file = __DIR__ . '/config/ygobox.config.php'; $plist1 = openfile($file); $rand1 = rand(0, count($plist1) - 1); list($in, $ik, $ie, $is, $isk) = explode(',', $plist1[$rand1]); $itm0 = $in; $itmk0 = $ik; $itme0 = $ie; $itms0 = $is; $itmsk0 = $isk; addnews($now, 'present', $name, $itm, $in); \itemmain\itms_reduce($theitem); \itemmain\itemget(); return; } elseif (strpos($itmk, 'fy') === 0) { $log .= "你打开了<span class=\"yellow\">{$itm}</span>。<br>"; $file = __DIR__ . '/config/fybox.config.php'; $plist1 = openfile($file); $rand1 = rand(0, count($plist1) - 1); list($in, $ik, $ie, $is, $isk) = explode(',', $plist1[$rand1]); $itm0 = $in; $itmk0 = $ik; $itme0 = $ie; $itms0 = $is; $itmsk0 = $isk; addnews($now, 'present', $name, $itm, $in); \itemmain\itms_reduce($theitem); \itemmain\itemget(); return; } $chprocess($theitem); }
function itemuse_urt(&$theitem) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'map', 'itemmain', 'logger')); $itm =& $theitem['itm']; $itmk =& $theitem['itmk']; $itme =& $theitem['itme']; $itms =& $theitem['itms']; $itmsk =& $theitem['itmsk']; if ($itmk == 'RT') { //传送道具的效果判定区 //首先是传送器效果,0~98为固定传送,99为随机传送 if (!is_numeric($itmsk)) { $log .= "这个传送器好像已经坏掉了……<br>"; } elseif ($itmsk == 99) { if ($hack) { $rpls = rand(0, sizeof($plsinfo) - sizeof($hidden_arealist) - 1); } else { $rpls = rand($areanum + 1, sizeof($plsinfo) - sizeof($hidden_arealist) - 1); } $pls = $arealist[$rpls]; } else { $pls = $itmsk; } //然后是不同的log和是否赠送固定的返程道具,log根据道具名判定,没有则为默认log,有提供固定返程道具或者不给返程的把flag改成true,固定给的直接在log下面加道具类型,记得加itemget() $fix_return_flag = false; if ($itm == '测试用传送器') { $log .= "你biu的一下就被传送到了{$plsinfo[$pls]}。<br>"; } elseif ($itm == '安全(?)传送装置') { $log .= "你被{$itm}传送到了{$plsinfo[$pls]},不管怎么说到底还是活下来了!所以还算安全……吧?<br>"; $fix_return_flag = true; } else { $log .= "你被{$itm}传送到了{$plsinfo[$pls]},顺便还获得了一个返程道具,真是太划算了!<br>"; } //最后是默认赠送的返程道具 if (!$fix_return_flag) { $itm0 = '安全(?)传送装置'; $itmk0 = 'RT'; $itme0 = 1; $itms0 = 1; $itmsk0 = 99; \itemmain\itemget(); } \itemmain\itms_reduce($theitem); } }
function itemmix_success() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'logger')); $log .= "<span class=\"yellow\">{$itmstr}</span>合成了<span class=\"yellow\">{$itm0}</span><br>"; addnews($now, 'itemmix', $name, $itm0); $wd += 1; if (strpos($itmk0, 'H') === 0 && $club == 16 && $itms0 !== $nosta) { $itms0 = ceil($itms0 * 2); } elseif (($itmk0 == 'EE' || $itmk0 == 'ER') && $club == 7) { $itme0 *= 5; } \itemmain\itemget(); }
function activate420() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('skill420', 'player', 'logger', 'sys', 'itemmain')); \player\update_sdata(); if (!\skillbase\skill_query(420) || !check_unlocked420($sdata)) { $log .= '你没有这个技能!<br>'; return; } $st = check_skill420_state($sdata); if ($st == 0) { $log .= '你不能使用这个技能!<br>'; return; } if ($st == 2) { $log .= '技能冷却中!<br>'; return; } if ($skillpoint < 2) { $log .= '你的技能点不足!<br>'; return; } $skillpoint = $skillpoint - 2; \skillbase\skill_setvalue(420, 'lastuse', $now); addnews(0, 'bskill420', $name); $r = rand(0, 9); if ($r == 9) { $log .= '<span class="yellow">“咕咕咕!”</span><span class="lime">技能「结晶」发动……成功?</span><br>'; } else { $log .= '<span class="lime">技能「结晶」发动成功。</span><br>'; } $nl = array('红色方块', '黄色方块', '蓝色方块', '绿色方块', '金色方块', '银色方块', '水晶方块', '黑色方块', '白色方块', '黄鸡方块'); $itm0 = $nl[$r]; $itme0 = 1; $itms0 = 1; $itmsk0 = ''; $itmk0 = 'X'; \itemmain\itemget(); }
function itemuse(&$theitem) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'logger')); $itm =& $theitem['itm']; $itmk =& $theitem['itmk']; $itme =& $theitem['itme']; $itms =& $theitem['itms']; $itmsk =& $theitem['itmsk']; if ($itmk == 'U') { $trapresult = $db->query("SELECT * FROM {$tablepre}maptrap WHERE pls = '{$pls}' AND itme>='{$itme}'"); $trpnum = $db->num_rows($trapresult); if ($trpnum > 0) { $itemno = rand(0, $trpnum - 1); $db->data_seek($trapresult, $itemno); $mi = $db->fetch_array($trapresult); $deld = $mi['itm']; $delp = $mi['tid']; $db->query("DELETE FROM {$tablepre}maptrap WHERE tid='{$delp}'"); $log .= "远方传来一阵爆炸声,伟大的<span class=\"yellow\">{$itm}</span>用生命和鲜血扫除了<span class=\"yellow\">{$deld}</span>。<br><span class=\"red\">实在是大快人心啊!</span><br>"; } else { $log .= "你使用了<span class=\"yellow\">{$itm}</span>,但是没有发现陷阱。<br>"; } \itemmain\itms_reduce($theitem); return; } elseif (strpos($itmk, 'Y') === 0 || strpos($itmk, 'Z') === 0) { if ($itm == '御神签') { $log .= "使用了<span class=\"yellow\">{$itm}</span>。<br>"; divining(); \itemmain\itms_reduce($theitem); return; } elseif ($itm == '凸眼鱼') { eval(import_module('corpse')); $tm = $now - $corpseprotect; //尸体保护 $db->query("UPDATE {$tablepre}players SET weps='0',arbs='0',arhs='0',aras='0',arfs='0',arts='0',itms0='0',itms1='0',itms2='0',itms3='0',itms4='0',itms5='0',itms6='0',money='0' WHERE hp <= 0 AND endtime <= {$tm}"); $cnum = $db->affected_rows(); addnews($now, 'corpseclear', $name, $cnum); $log .= "使用了<span class=\"yellow\">{$itm}</span>。<br>突然刮起了一阵怪风,吹走了地上的{$cnum}具尸体!<br>"; \itemmain\itms_reduce($theitem); return; } elseif ($itm == '■DeathNote■') { include template('deathnote'); $cmd = ob_get_contents(); ob_clean(); $log .= '你翻开了■DeathNote■<br>'; return; } elseif ($itm == '游戏解除钥匙') { $state = 6; $url = 'end.php'; \sys\gameover($now, 'end3', $name); } elseif ($itm == '『C.H.A.O.S』') { $flag = false; $log .= "一阵强光刺得你睁不开眼。<br>强光逐渐凝成了光球,你揉揉眼睛,发现包裹里的东西全都不翼而飞了。<br>"; for ($i = 1; $i <= 6; $i++) { global ${'itm' . $i}, ${'itmk' . $i}, ${'itme' . $i}, ${'itms' . $i}, ${'itmsk' . $i}; $itm =& ${'itm' . $i}; $itmk =& ${'itmk' . $i}; $itme =& ${'itme' . $i}; $itms =& ${'itms' . $i}; $itmsk =& ${'itmsk' . $i}; if ($itm == '黑色发卡') { $flag = true; } $itm = ''; $itmk = ''; $itme = 0; $itms = 0; $itmsk = ''; } $karma = $rp * $killnum - $def + $att; $f1 = false; //『G.A.M.E.O.V.E.R』itmk:Y itme:1 itms:1 itmsk:zxZ if ($ss >= 600 && $killnum <= 15) { $itm0 = '『T.E.R.R.A』'; $itmk0 = 'Y'; $itme0 = 1; $itms0 = 1; $itmsk0 = 'z'; include_once GAME_ROOT . './include/game/itemmain.func.php'; \itemmain\itemget(); $f1 = true; } if ($karma <= 2000) { $itm0 = '『A.Q.U.A』'; $itmk0 = 'Y'; $itme0 = 1; $itms0 = 1; $itmsk0 = 'x'; include_once GAME_ROOT . './include/game/itemmain.func.php'; \itemmain\itemget(); $f1 = true; } if ($flag == true) { $itm0 = '『V.E.N.T.U.S』'; $itmk0 = 'Y'; $itme0 = 1; $itms0 = 1; $itmsk0 = 'Z'; include_once GAME_ROOT . './include/game/itemmain.func.php'; \itemmain\itemget(); $f1 = true; } if ($f1 == false) { $itm0 = '『S.C.R.A.P』'; $itmk0 = 'Y'; $itme0 = 1; $itms0 = 1; include_once GAME_ROOT . './include/game/itemmain.func.php'; \itemmain\itemget(); } } elseif ($itm == '『G.A.M.E.O.V.E.R』') { $state = 6; $url = 'end.php'; \sys\gameover($now, 'end7', $name); } elseif ($itm == '杏仁豆腐的ID卡') { $duelstate = \gameflow_duel\duel($now, $itm); if ($duelstate == 50) { $log .= "<span class=\"yellow\">你使用了{$itm}。</span><br><span class=\"evergreen\">“干得不错呢,看来咱应该专门为你清扫一下战场……”</span><br><span class=\"evergreen\">“所有的NPC都离开战场了。好好享受接下来的杀戮吧,祝你好运。”</span>——林无月<br>"; $itm = $itmk = $itmsk = ''; $itme = $itms = 0; } elseif ($duelstate == 51) { $log .= "你使用了<span class=\"yellow\">{$itm}</span>,不过什么反应也没有。<br><span class=\"evergreen\">“咱已经帮你准备好舞台了,请不要要求太多哦。”</span>——林无月<br>"; } else { $log .= "你使用了<span class=\"yellow\">{$itm}</span>,不过什么反应也没有。<br><span class=\"evergreen\">“表演的时机还没到呢,请再忍耐一下吧。”</span>——林无月<br>"; } return; } elseif ($itm == '奇怪的按钮') { $button_dice = rand(1, 10); if ($button_dice < 5) { $log .= "你按下了<span class=\"yellow\">{$itm}</span>,不过好像什么都没有发生!"; $itm = $itmk = $itmsk = ''; $itme = $itms = 0; } elseif ($button_dice < 8) { $state = 6; $url = 'end.php'; \sys\gameover($now, 'end5', $name); } else { $log .= '好像什么也没发生嘛?<br>咦,按钮上的标签写着什么?“危险,勿触”……?<br>'; $log .= '呜哇,按钮爆炸了!<br>'; $state = 30; \player\update_sdata(); $sdata['sourceless'] = 1; $sdata['attackwith'] = ''; \player\kill($sdata, $sdata); \player\player_save($sdata); \player\load_playerdata($sdata); } return; } else { if (substr($itm, 0, strlen('提示纸条')) == '提示纸条') { if ($itm == '提示纸条A') { $log .= '你读着纸条上的内容:<br>“执行官其实都是幻影,那个红暮的身上应该有召唤幻影的玩意。”<br>“用那个东西然后打倒幻影的话能用游戏解除钥匙出去吧。”<br>'; } elseif ($itm == '提示纸条B') { $log .= '你读着纸条上的内容:<br>“我设下的灵装被残忍地清除了啊……”<br>“不过资料没全部清除掉。<br>用那个碎片加上传奇的画笔和天然属性……”<br>“应该能重新组合出那个灵装。”<br>'; } elseif ($itm == '提示纸条C') { $log .= '你读着纸条上的内容:<br>“小心!那个叫红暮的家伙很强!”<br>“不过她太依赖自己的枪了,有什么东西能阻挡那伤害的话……”<br>'; } elseif ($itm == '提示纸条D') { $log .= '你读着纸条上的内容:<br>“我不知道另外那个孩子的底细。如果我是你的话,不会随便乱惹她。”<br>“但是她貌似手上拿着符文册之类的东西。”<br>“也许可以利用射程优势?!”<br>“你知道的,法师的射程都不咋样……”'; } elseif ($itm == '提示纸条E') { $log .= '你读着纸条上的内容:<br>“生存并不能靠他人来喂给你知识,”<br>“有一套和元素有关的符卡的公式是没有出现在帮助里面的,用逻辑推理好好推理出正确的公式吧。”<br>“金木水火土在这里都能找到哦~”<br>'; } elseif ($itm == '提示纸条F') { $log .= '你读着纸条上的内容:<br>“喂你真的是全部买下来了么……”<br>“这样的提示纸条不止这六种,其他的纸条估计被那两位撒出去了吧。”<br>“总之祝你好运。”<br>'; } elseif ($itm == '提示纸条G') { $log .= '你读着纸条上的内容:<br>“上天保佑,”<br>“请不要在让我在模拟战中被击坠了!”<br>“空羽 上。”<br>'; } elseif ($itm == '提示纸条H') { $log .= '你读着纸条上的内容:<br>“在研究施设里面出了大事的SCP竟然又输出了新的样本!”<br>“按照董事长的意见就把这些家伙当作人体试验吧!”<br>署名看不清楚……<br>'; } elseif ($itm == '提示纸条I') { $log .= '你读着纸条上的内容:<br>“嗯……”<br>“制作神卡所用的各种认证都可以在商店里面买到。”<br>“其实卡片真的有那么强大的力量么?”<br>'; } elseif ($itm == '提示纸条J') { $log .= '你读着纸条上的内容:<br>“知道么?”<br>“果酱面包果然还是甜的好,哪怕是甜的生姜也能配制出如地雷般爆炸似的美味。”<br>“祝你好运。”<br>'; } elseif ($itm == '提示纸条K') { $log .= '你读着纸条上的内容:<br>“水符?”<br>“你当然需要水,然后水看起来是什么颜色的?”<br>“找一个颜色类似的东西合成就有了吧。”<br>'; } elseif ($itm == '提示纸条L') { $log .= '你读着纸条上的内容:<br>“木符?”<br>“你当然需要树叶,然后说到树叶那是什么颜色?”<br>“找一个颜色类似的东西合成就有了吧。”<br>'; } elseif ($itm == '提示纸条M') { $log .= '你读着纸条上的内容:<br>“火符?”<br>“你当然需要找把火,然后说到火那是什么颜色?”<br>“找一个颜色类似的东西合成就有了吧。”<br>'; } elseif ($itm == '提示纸条N') { $log .= '你读着纸条上的内容:<br>“土符?”<br>“说到土那就是石头吧,然后说到石头那是什么颜色?”<br>“找一个颜色类似的东西合成就有了吧。”<br>'; } elseif ($itm == '提示纸条P') { $log .= '你读着纸条上的内容:<br>“金符?这个的确很绕人……”<br>“说到金那就是炼金,然后这是21世纪了,炼制一个金色方块需要什么?”<br>“总之祝你好运。”<br>'; } elseif ($itm == '提示纸条Q') { $log .= '你读着纸条上的内容:<br>“据说在另外的空间里面;”<br>“一个吸血鬼因为无聊就在她所居住的地方洒满了大雾,”<br>“真任性。”<br>'; } elseif ($itm == '提示纸条R') { $log .= '你读着纸条上的内容:<br>“知道么,”<br>“东方幻想乡这作游戏里面EXTRA的最终攻击”<br>“被老外们称作『幻月的Rape Time』,当然对象是你。”<br>'; } elseif ($itm == '提示纸条S') { $log .= '你读着纸条上的内容:<br>“土水符?”<br>“哈哈哈那肯定是需要土和水啦,可能还要额外的素材吧。”<br>“总之祝你好运。”<br>'; } elseif ($itm == '提示纸条T') { $log .= '你读着纸条上的内容:<br>“我一直对虚拟现实中的某些迹象很在意……”<br>“这种未名的威压感是怎么回事?”<br>“总之祝你好运。”<br>'; } elseif ($itm == '提示纸条U') { $log .= '你读着纸条上的内容:<br>“纸条啥的……”<br>“希望这张纸条不会成为你的遗书。”<br>“总之祝你好运。”<br>'; } else { $log .= '你打开了纸条,发现是一张白纸。<br>'; } return; } elseif ($itm == '仪水镜') { $log .= '水面上映出了你自己的脸,你仔细端详着……<br>'; if ($rp < 40) { $log .= '你的脸看起来十分白皙。<br>'; } elseif ($rp < 200) { $log .= '你的脸看起来略微有点黑。<br>'; } elseif ($rp < 550) { $log .= '你的脸上貌似笼罩着一层黑雾。<br>'; } elseif ($rp < 1200) { $log .= '你的脸已经和黑炭差不多了,赶快去洗洗!<br>'; } elseif ($rp < 5499) { $log .= '你印堂漆黑,看起来最近要有血光之灾!<br>'; } elseif ($rp > 5500) { $log .= '水镜中已经黑的如墨一般了。<br>希望你的H173还在……<br>'; } else { $log .= '你的脸从水镜中消失了。<br>'; } return; } elseif ($itm == '风祭河水') { $slv_dice = rand(1, 20); if ($slv_dice < 8) { $log .= "你一口干掉了<span class=\"yellow\">{$itm}</span>,不过好像什么都没有发生!"; $itm = $itmk = $itmsk = ''; $itme = $itms = 0; } elseif ($slv_dice < 16) { $rp = $rp - 10 * $slv_dice; $log .= "你感觉身体稍微轻了一点点。<br>"; $itm = $itmk = $itmsk = ''; $itme = $itms = 0; } elseif ($slv_dice < 20) { $rp = 0; $log .= "你头晕脑胀地躺到了地上,<br>感觉整个人都被救济了。<br>你努力着站了起来。<br>"; $wp = $wk = $wg = $wc = $wd = $wf = 100; $itm = $itmk = $itmsk = ''; $itme = $itms = 0; } else { $log .= '你头晕脑胀地躺到了地上,<br>感觉整个人都被救济了。<br>'; $log .= '然后你失去了意识。<br>'; $state = 35; \player\update_sdata(); $sdata['sourceless'] = 1; $sdata['attackwith'] = ''; \player\kill($sdata, $sdata); \player\player_save($sdata); \player\load_playerdata($sdata); } return; } elseif ($itm == '水果刀') { $flag = false; for ($i = 1; $i <= 6; $i++) { foreach (array('香蕉', '苹果', '西瓜') as $fruit) { if (strpos(${'itm' . $i}, $fruit) !== false && strpos(${'itm' . $i}, '皮') === false && (strpos(${'itmk' . $i}, 'H') === 0 || strpos(${'itmk' . $i}, 'P') === 0)) { if ($wk >= 120) { $log .= "练过刀就是好啊。你娴熟地削着果皮。<br><span class=\"yellow\">{${'itm' . $i}}</span>变成了<span class=\"yellow\">★残骸★</span>!<br>咦为什么会出来这种东西?算了还是不要吐槽了。<br>"; ${'itm' . $i} = '★残骸★'; ${'itme' . $i} *= rand(2, 4); ${'itms' . $i} *= rand(3, 5); $flag = true; $wk++; } else { $log .= "想削皮吃<span class=\"yellow\">{${'itm' . $i}}</span>,没想到削完发现只剩下一堆果皮……<br>手太笨拙了啊。<br>"; ${'itm' . $i} = str_replace($fruit, $fruit . '皮', ${'itm' . $i}); ${'itmk' . $i} = 'TN'; ${'itms' . $i} *= rand(2, 4); $flag = true; $wk++; } break; } } if ($flag == true) { break; } } if (!$flag) { $log .= '包裹里没有水果。<br>'; } else { $dice = rand(1, 5); if ($dice == 1) { $log .= "<span class=\"red\">{$itm}</span>变钝了,无法再使用了。<br>"; $itm = $itmk = $itmsk = ''; $itme = $itms = 0; } } return; } elseif (strpos($itm, 'RP回复设备') !== false) { $rp = 0; $log .= "你使用了<span class=\"yellow\">{$itm}</span>。你的RP归零了。<br>"; return; } } } $chprocess($theitem); }
function getcorpse($item) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'logger')); $corpseid = strpos($action, 'corpse') === 0 ? str_replace('corpse', '', $action) : str_replace('pacorpse', '', $action); if (!$corpseid || strpos($action, 'corpse') === false) { $log .= '<span class="yellow">你没有遇到尸体,或已经离开现场!</span><br>'; $action = ''; $mode = 'command'; return; } $result = $db->query("SELECT * FROM {$tablepre}players WHERE pid='{$corpseid}'"); if (!$db->num_rows($result)) { $log .= '对方不存在!<br>'; $action = ''; $mode = 'command'; return; } //$edata = $db->fetch_array($result); $edata = \player\fetch_playerdata_by_pid($corpseid); if ($edata['hp'] > 0) { $log .= '对方尚未死亡!<br>'; $action = ''; $mode = 'command'; return; } elseif ($edata['pls'] != $pls) { $log .= '对方跟你不在同一个地图!<br>'; $action = ''; $mode = 'command'; return; } if ($item == 'wep') { $itm0 = $edata['wep']; $itmk0 = $edata['wepk']; $itme0 = $edata['wepe']; $itms0 = $edata['weps']; $itmsk0 = $edata['wepsk']; $edata['wep'] = $edata['wepk'] = $edata['wepsk'] = ''; $edata['wepe'] = $edata['weps'] = 0; } elseif (strpos($item, 'ar') === 0) { $itm0 = $edata[$item]; $itmk0 = $edata[$item . 'k']; $itme0 = $edata[$item . 'e']; $itms0 = $edata[$item . 's']; $itmsk0 = $edata[$item . 'sk']; $edata[$item] = $edata[$item . 'k'] = $edata[$item . 'sk'] = ''; $edata[$item . 'e'] = $edata[$item . 's'] = 0; } elseif (strpos($item, 'itm') === 0) { $itmn = substr($item, 3, 1); $itm0 = $edata['itm' . $itmn]; $itmk0 = $edata['itmk' . $itmn]; $itme0 = $edata['itme' . $itmn]; $itms0 = $edata['itms' . $itmn]; $itmsk0 = $edata['itmsk' . $itmn]; $edata['itm' . $itmn] = $edata['itmk' . $itmn] = $edata['itmsk' . $itmn] = ''; $edata['itme' . $itmn] = $edata['itms' . $itmn] = 0; } elseif ($item == 'money') { $money += $edata['money']; $log .= '获得了金钱 <span class="yellow">' . $edata['money'] . '</span>。<br>'; $edata['money'] = 0; \player\player_save($edata); $action = ''; $mode = 'command'; return; } elseif ($item == 'destroy') { $edata['weps'] = 0; $edata['arbs'] = 0; $edata['arhs'] = 0; $edata['aras'] = 0; $edata['arfs'] = 0; $edata['arts'] = 0; $edata['itms0'] = 0; $edata['itms1'] = 0; $edata['itms2'] = 0; $edata['itms3'] = 0; $edata['itms4'] = 0; $edata['itms5'] = 0; $edata['itms6'] = 0; $edata['money'] = 0; $edata['state'] = 16; \player\player_save($edata); $log .= '尸体成功销毁!'; $action = ''; $mode = 'command'; return; } else { $mode = 'command'; $action = ''; return; } \player\player_save($edata); if (!$itms0 || !$itmk0 || $itmk0 == 'WN' || $itmk0 == 'DN') { $log .= '该物品不存在!'; } else { \itemmain\itemget(); } $action = ''; $mode = 'command'; return; }
function itembuy($item, $shop, $bnum = 1) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'map', 'player', 'logger', 'itemmain')); $shopiteminfo = get_shopiteminfo($item); $price = $shopiteminfo['price']; if ($price < 0) { $log .= '要购买的道具不存在!<br><br>'; $mode = 'command'; return; } $bnum = (int) $bnum; $cost = calculate_shop_itembuy_cost($price, $bnum); //list($num,$price,$iname,$ikind,$ieff,$ista,$isk) = explode(',',$iteminfo); if ($shopiteminfo['num'] <= 0) { $log .= '此物品已经售空!<br><br>'; $mode = 'command'; return; } elseif ($bnum <= 0) { $log .= '购买数量必须为大于0的整数。<br><br>'; $mode = 'command'; return; } elseif ($bnum > $shopiteminfo['num']) { $log .= '购买数量必须小于存货数量。<br><br>'; $mode = 'command'; return; } elseif ($money < $cost) { $log .= '你的钱不够,不能购买此物品!<br><br>'; $mode = 'command'; return; } elseif (!preg_match('/^(WC|WD|WF|Y|B|C|TN|GB|H|P|V|M|X|p|ygo)/', $shopiteminfo['itmk']) && $bnum > 1) { $log .= '此物品一次只能购买一个。<br><br>'; $mode = 'command'; return; } elseif ($shopiteminfo['area'] > $areanum / $areaadd) { $log .= '此物品尚未开放出售!<br><br>'; $mode = 'command'; return; } $inum = $shopiteminfo['num'] - $bnum; $sid = $shopiteminfo['sid']; $db->query("UPDATE {$tablepre}shopitem SET num = '{$inum}' WHERE sid = '{$sid}'"); $money -= $cost; addnews($now, 'itembuy', $name, $iteminfo['item']); $log .= "购买成功。"; $itm0 = $shopiteminfo['item']; $itmk0 = $shopiteminfo['itmk']; $itme0 = $shopiteminfo['itme']; $itms0 = $shopiteminfo['itms'] * $bnum; $itmsk0 = $shopiteminfo['itmsk']; \itemmain\itemget(); return; }
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); }
function getcorpse_action(&$edata, $item) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'logger')); if ($item == 'wep') { $itm0 = $edata['wep']; $itmk0 = $edata['wepk']; $itme0 = $edata['wepe']; $itms0 = $edata['weps']; $itmsk0 = $edata['wepsk']; $edata['wep'] = $edata['wepk'] = $edata['wepsk'] = ''; $edata['wepe'] = $edata['weps'] = 0; } elseif (strpos($item, 'ar') === 0) { $itm0 = $edata[$item]; $itmk0 = $edata[$item . 'k']; $itme0 = $edata[$item . 'e']; $itms0 = $edata[$item . 's']; $itmsk0 = $edata[$item . 'sk']; $edata[$item] = $edata[$item . 'k'] = $edata[$item . 'sk'] = ''; $edata[$item . 'e'] = $edata[$item . 's'] = 0; } elseif (strpos($item, 'itm') === 0) { $itmn = substr($item, 3, 1); $itm0 = $edata['itm' . $itmn]; $itmk0 = $edata['itmk' . $itmn]; $itme0 = $edata['itme' . $itmn]; $itms0 = $edata['itms' . $itmn]; $itmsk0 = $edata['itmsk' . $itmn]; $edata['itm' . $itmn] = $edata['itmk' . $itmn] = $edata['itmsk' . $itmn] = ''; $edata['itme' . $itmn] = $edata['itms' . $itmn] = 0; } elseif ($item == 'money') { $money += $edata['money']; $log .= '获得了金钱 <span class="yellow">' . $edata['money'] . '</span>。<br>'; $edata['money'] = 0; \player\player_save($edata); $action = ''; $mode = 'command'; return; } elseif ($item == 'destroy') { $edata['weps'] = 0; $edata['arbs'] = 0; $edata['arhs'] = 0; $edata['aras'] = 0; $edata['arfs'] = 0; $edata['arts'] = 0; $edata['itms0'] = 0; $edata['itms1'] = 0; $edata['itms2'] = 0; $edata['itms3'] = 0; $edata['itms4'] = 0; $edata['itms5'] = 0; $edata['itms6'] = 0; $edata['money'] = 0; $edata['state'] = 16; \player\player_save($edata); $log .= '尸体成功销毁!'; $action = ''; $mode = 'command'; return; } else { $mode = 'command'; $action = ''; return; } if (!$itms0 || !$itmk0 || $itmk0 == 'WN' || $itmk0 == 'DN') { $log .= '该物品不存在!'; } else { \itemmain\itemget(); } $action = ''; $mode = 'command'; }
function change_trap($i, $cway) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'itemmain', 'logger', 'remakegun')); if ($pls != 31) { $log .= "<span class='red'>该地区不存在陷阱改造工作台,请重新输入指令。</span><br>"; return; } if (!is_numeric($i) || !$i || $i > 6 || $i < 1 || ${'itmk' . $i} !== 'WD' && $cway == 'dtt' || strpos(${'itmk' . $i}, 'T') === false && $cway == 'ttd') { $log .= "<span class='red'>要改造的陷阱或爆炸物选择错误,请重新输入指令。</span><br>"; return; } if ($cway !== 'dtt' && $cway !== 'ttd') { $log .= "<span class='red'>改造方式选择错误,请重新输入指令。</span><br>"; return; } $citm['itm'] =& ${'itm' . $i}; $citm['itmk'] =& ${'itmk' . $i}; $citm['itme'] =& ${'itme' . $i}; $citm['itms'] =& ${'itms' . $i}; $citm['itmsk'] =& ${'itmsk' . $i}; if (strpos($citm['itm'], '便携式') !== false || strpos($citm['itm'], '埋设式') !== false) { $log .= "<span class='red'>该道具已被改造过,不可重复改造!</span><br>"; return; } $change_succ_obbs = round($wd * 0.35); $log .= "你将要改造的易爆品放在了工作台上,开始小心翼翼的拆解它……<br>"; $log .= "…………<br>"; if ($cway == 'ttd') { if (rand(1, 100) <= $change_succ_obbs) { $log .= "<span class='yellow'>“呼……”</span><br>完成了手中精密的工作,你如释重负般长吁了一口气。<br>这样看来,陷阱的改造工作就<span class='red'>顺利完成</span>了!<br>"; if (strpos($citm['itmk'], 'TNc') !== false) { $itm0 = '便携式' . $citm['itm']; $itmk0 = 'WD'; $itme0 = round(32675 * (rand(85, 135) / 100)); $itms0 = '∞'; $itmsk0 = 'nxd'; } else { $itm0 = '便携式' . $citm['itm']; $itmk0 = 'WD'; $itme0 = round($citm['itme'] * (rand(85, 135) / 100)); $itms0 = $citm['itms']; $itmsk0 = 'd'; } addnews($now, 'ct_succ', $name, $citm['itm'], '陷阱', '爆炸物'); } else { $fail_dmg = strpos($citm['itmk'], 'TNc') !== false ? round(32675 * (rand(55, 95) / 100)) : round($citm['itme'] * (rand(55, 95) / 100)); $log .= "正当你谨慎的拆开道具的外壳时,你听到了“滴”的一声……<br>在下一个瞬间,你就被爆炸带来的巨大冲击力掀翻在地。<br><span class='yellow'>在猛烈的爆炸中,你受到了<span class='red'>{$fail_dmg}</span>点伤害!</span><br>"; if ($hp > $fail_dmg) { $hp -= $fail_dmg; } else { $hp = 0; $state = 98; \player\update_sdata(); $sdata['sourceless'] = 1; $sdata['attackwith'] = ''; \player\kill($sdata, $sdata); \player\player_save($sdata); \player\load_playerdata($sdata); } addnews($now, 'ct_fail', $name, $citm['itm'], '陷阱', '爆炸物', $fail_dmg); } \itemmain\itms_reduce($citm, 1); if ($itms0) { \itemmain\itemget(); } } elseif ($cway == 'dtt') { if (rand(1, 100) <= $change_succ_obbs) { $log .= "<span class='yellow'>“呼……”</span><br>完成了手中精密的工作,你如释重负般长吁了一口气。<br>这样看来,爆炸物的改造工作就<span class='red'>顺利完成</span>了!<br>"; $itm0 = '埋设式' . $citm['itm']; $itmk0 = 'TN'; $itme0 = $citm['itms'] > 5 || $citm['itms'] == '∞' ? round($citm['itme'] * 5) : round($citm['itme'] * $citm['itms']); $itms0 = 1; $itmsk0 = ''; addnews($now, 'ct_succ', $name, $citm['itm'], '爆炸物', '陷阱'); } else { $fail_dmg = round($citm['itme'] * (rand(55, 95) / 100)); $log .= "正当你谨慎的拆开道具的外壳时,你听到了“滴”的一声……<br>在下一个瞬间,你就被爆炸带来的巨大冲击力掀翻在地。<br><span class='yellow'>在猛烈的爆炸中,你受到了<span class='red'>{$fail_dmg}</span>点伤害!</span><br>"; if ($hp > $fail_dmg) { $hp -= $fail_dmg; addnews($now, 'ct_fail', $name, $citm['itm'], '爆炸物', '陷阱', $fail_dmg); } else { $hp = 0; $state = 98; \player\update_sdata(); $sdata['sourceless'] = 1; $sdata['attackwith'] = ''; \player\kill($sdata, $sdata); \player\player_save($sdata); \player\load_playerdata($sdata); } } \itemmain\itms_reduce($citm, 1); if ($itms0) { \itemmain\itemget(); } } else { return; } }
function itemdepot_load($i) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'logger', 'itemmain', 'itemdepot')); if ($pls != 19) { $log .= "<span class='red'>你所在的位置没有仓库功能,如果存在BUG,请告知管理员。</span><br>"; return; } if ($money < $loaditem_cost) { $log .= "<span class='red'>你身上的钱不足以支付取出道具的保管费……卧槽竟然二次收费,奸商啊!</span><br>"; return; } $idpt = change_itemdepot('decode', $itemdepot); $idpt_num = sizeof($idpt); if (!is_numeric($i) || $i > $max_saveitem_num || $i < 0 || $idpt[$i]['itms'] <= 0 && $idpt[$i]['itms'] !== '∞') { $log .= "<span class='red'>要取出的道具信息错误,请返回重新输入。</span><br>"; return; } $money -= $loaditem_cost; $itm0 = $idpt[$i]['itm']; $itmk0 = $idpt[$i]['itmk']; $itme0 = $idpt[$i]['itme']; $itms0 = $idpt[$i]['itms']; $itmsk0 = $idpt[$i]['itmsk']; unset($idpt[$i]); $log .= "你成功将道具<span class='yellow'>{$itm0}</span>从仓库中取了出来!<br>同时你也不得不支付了保管费<span class='yellow'>{$loaditem_cost}</span>元……你感觉自己的心在滴血。<br>"; addnews($now, 'itemdepot_load', $name, $itm0); \itemmain\itemget(); sort($idpt); $idpt = change_itemdepot('encode', $idpt); $itemdepot = $idpt; \player\player_save(\player\fetch_playerdata_by_pid($pid)); }
function itemuse(&$theitem) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'itemmain', 'logger')); $itm =& $theitem['itm']; $itmk =& $theitem['itmk']; $itme =& $theitem['itme']; $itms =& $theitem['itms']; $itmsk =& $theitem['itmsk']; if (strpos($itmk, 'p') === 0) { //现在所有的礼物盒类道具都应该使用类别'p',依靠属性来判断究竟是什么礼物盒 //每个属性对应的文件名 $p_arr = array('^999^' => 'present', '^998^' => 'ygobox', '^997^' => 'fybox', '^996^' => 'ugabox', '^995^' => 'ugcbox'); //这样写的问题就是,礼盒的属性里不能再有其他内容了,否则就会爆炸,保险起见加一个判定 $pi_flag = false; foreach (array_keys($p_arr) as $p_sk) { $isk = \itemmain\get_itmsk_array($itmsk); if (in_array($p_sk, $isk) && sizeof($isk) == 1) { $pi_flag = true; } } if (!$pi_flag) { $log .= "这个盒子看起来已经坏掉了,还是扔了吧。<br>"; return; } $p_path = '/config/' . $p_arr[$isk[0]] . '.config.php'; $log .= "你打开了<span class=\"yellow\">{$itm}</span>。<br>"; $file = __DIR__ . $p_path; $plist = openfile($file); $rand = rand(0, count($plist) - 1); list($in, $ik, $ie, $is, $isk) = explode(',', $plist[$rand]); $itm0 = $in; $itmk0 = $ik; $itme0 = $ie; $itms0 = $is; $itmsk0 = $isk; addnews($now, 'present', $name, $itm, $in); \itemmain\itms_reduce($theitem); \itemmain\itemget(); return; } /*elseif(strpos ( $itmk, 'ygo' ) === 0){ $log.="你打开了<span class=\"yellow\">$itm</span>。<br>"; $file = __DIR__.'/config/ygobox.config.php'; $plist1 = openfile($file); $rand1 = rand(0,count($plist1)-1); list($in,$ik,$ie,$is,$isk) = explode(',',$plist1[$rand1]); $itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk; addnews($now,'present',$name,$itm,$in); \itemmain\itms_reduce($theitem); \itemmain\itemget(); return; } elseif(strpos ( $itmk, 'fy' ) === 0){ $log.="你打开了<span class=\"yellow\">$itm</span>。<br>"; $file = __DIR__.'/config/fybox.config.php'; $plist1 = openfile($file); $rand1 = rand(0,count($plist1)-1); list($in,$ik,$ie,$is,$isk) = explode(',',$plist1[$rand1]); $itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk; addnews($now,'present',$name,$itm,$in); \itemmain\itms_reduce($theitem); \itemmain\itemget(); return; } elseif(strpos ( $itmk, 'GA' ) === 0){ $log.="你打开了<span class=\"yellow\">$itm</span>。<br>"; $file = __DIR__.'/config/ugabox.config.php'; $plist1 = openfile($file); $rand1 = rand(0,count($plist1)-1); list($in,$ik,$ie,$is,$isk) = explode(',',$plist1[$rand1]); $itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk; addnews($now,'present',$name,$itm,$in); \itemmain\itms_reduce($theitem); \itemmain\itemget(); return; } elseif(strpos ( $itmk, 'GC' ) === 0){ $log.="你打开了<span class=\"yellow\">$itm</span>。<br>"; $file = __DIR__.'/config/ugcbox.config.php'; $plist1 = openfile($file); $rand1 = rand(0,count($plist1)-1); list($in,$ik,$ie,$is,$isk) = explode(',',$plist1[$rand1]); $itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk; addnews($now,'present',$name,$itm,$in); \itemmain\itms_reduce($theitem); \itemmain\itemget(); return; }*/ $chprocess($theitem); }
function remake_gun_result($r_way, $i) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'itemmain', 'logger', 'remakegun')); if ($r_way !== 'r_local' && $r_way !== 'r_item') { $log .= "<span class='red'>改造方式选择错误,请重新输入指令。</span><br>"; return; } if ($r_way == 'r_local' && $pls != 28) { $log .= "<span class='red'>该地区不存在改造工作台,请重新输入指令。</span><br>"; return; } if (!is_numeric($i) || !$i || $i > 6 || $i < 1 || ${'itmk' . $i} !== 'RG' || ${'itms' . $i} <= 0) { $log .= "<span class='red'>要使用的枪械配件选择错误,请重新输入指令。</span><br>"; return; } if ($wepk !== 'WG' && $wepk !== 'WJ' && $wepk !== 'WDG' && $wepk !== 'WGK') { $log .= "<span class='red'>你所装备的武器不是远程武器或重型枪械,无法对其进行改造!</span><br>"; return; } $log .= "你小心翼翼的将枪械拆开,开始对内部的复杂结构进行改造……<br>"; $log .= "…………<br>"; $rgi['itm'] =& ${'itm' . $i}; $rgi['itmk'] =& ${'itmk' . $i}; $rgi['itme'] =& ${'itme' . $i}; $rgi['itms'] =& ${'itms' . $i}; $rgi['itmsk'] =& ${'itmsk' . $i}; $rg_sk = \itemmain\get_itmsk_array($rgi['itmsk']); $wep_sk = \itemmain\get_itmsk_array($wepsk); $rg_sk_num = sizeof($rg_sk); $wep_sk_num = sizeof($wep_sk); if ($rg_sk_num && $wep_sk_num) { $merge_sk = array_intersect($rg_sk, $wep_sk); $merge_flag = false; if (sizeof($merge_sk) > 0) { $merge_flag = true; $merge_effect = 0; } } if ($rg_sk_num) { $rg_sk_rarity = 0; foreach ($rg_sk as $rg_skey => $rg_skinfo) { if (in_array($rg_skinfo, $merge_sk) && $merge_flag) { $merge_effect += in_array($rg_skinfo, array_keys($sk_rarity)) ? $sk_rarity[$rg_skinfo] : 1; unset($rg_sk[$rg_skey]); } else { $rg_sk_rarity += in_array($rg_skinfo, array_keys($sk_rarity)) ? $sk_rarity[$rg_skinfo] : 1; } } if ($rg_sk_rarity <= 25) { $rg_sk_rarity *= 0.75; } elseif ($rg_sk_rarity > 25 && $rg_sk_rarity <= 40) { $rg_sk_rarity *= 0.8; } elseif ($rg_sk_rarity > 40 && $rg_sk_rarity <= 55) { $rg_sk_rarity *= 0.85; } elseif ($rg_sk_rarity > 55 && $rg_sk_rarity <= 70) { $rg_sk_rarity *= 0.9; } else { $rg_sk_rarity *= 1; } } if ($wep_sk_num) { $wep_sk_rarity = 0; foreach ($wep_sk as $wep_skey => $wep_skinfo) { $wep_sk_rarity += in_array($wep_skinfo, array_keys($sk_rarity)) ? $sk_rarity[$wep_skinfo] : 1; } if ($wep_sk_rarity <= 25) { $wep_sk_rarity *= 0.85; } elseif ($wep_sk_rarity > 25 && $wep_sk_rarity <= 40) { $wep_sk_rarity *= 0.8; } elseif ($wep_sk_rarity > 40 && $wep_sk_rarity <= 55) { $wep_sk_rarity *= 0.75; } elseif ($wep_sk_rarity > 55 && $wep_sk_rarity <= 70) { $wep_sk_rarity *= 0.7; } else { $wep_sk_rarity *= 0.6; } } $changesucc_obbs_max = $r_way == 'r_local' ? 99 : 75; $base_changesucc_obbs = 0; if ($wg <= 100) { $base_changesucc_obbs = $wg * 0.28; } elseif ($wg > 100 && $wg <= 200) { $base_changesucc_obbs = 28 + ($wg - 100) * 0.22; } elseif ($wg > 200 && $wg <= 300) { $base_changesucc_obbs = 50 + ($wg - 200) * 0.18; } elseif ($wg > 300 && $wg <= 400) { $base_changesucc_obbs = 68 + ($wg - 300) * 0.14; } else { $base_changesucc_obbs = 82 + ($wg - 400) * 0.1; } $base_changesucc_obbs = min($changesucc_obbs_max, $base_changesucc_obbs); $r_effect_obbs = ($r_itme + $merge_effect) / 25; $r_skrarity_obbs = $rg_sk_rarity; $wep_skrarity_obbs = $wep_sk_rarity; $final_changesucc_obbs = ceil($base_changesucc_obbs - $r_effect_obbs - $r_skrarity_obbs - $wep_skrarity_obbs); $final_changesucc_obbs = max(1, $final_changesucc_obbs); if (rand(1, 100) <= $final_changesucc_obbs) { $log .= "<span class='yellow'>“呼……”</span><br>完成了手中精密的工作,你如释重负般长吁了一口气。<br>这样看来,枪械改造的工作<span class='red'>顺利完成</span>了!<br>你掂了掂手中的爱枪,感觉它变得更顺手了。<br>"; $add_sk = implode("", $rg_sk); $add_effect = $rgi['itme'] + $merge_effect; $wepsk .= $add_sk; $wepe += $add_effect; $log .= "<br><span class='yellow'>你的武器<span class='lime'>【{$wep}】</span>在经过<span class='lime'>【{$rgi['itm']}】</span>的改造后发生了如下改变:</span><br>"; if ($add_effect > 0) { $log .= "<span class='yellow'>效果提高 -> <span class='red'>{$add_effect}</span></span><br>"; } if (sizeof($rg_sk) > 0) { $log .= "<span class='yellow'>属性增加 -> </span>"; foreach ($rg_sk as $n_rg_sk => $i_rg_sk) { $log .= "<span class='red'>【{$itemspkinfo[$i_rg_sk]}】 </span>"; } $log .= "<br><br>"; } addnews($now, 'remake_succ', $name, $rgi['itm'], $wep); } else { $log .= "虽然你尽可能让自己小心的操作,但还是由于一个小失误弄坏了精密的配件。<br>这样看来,枪械改造的工作<span class='red'>彻底失败</span>了。<br>虽然如此,你还是把枪械部件的残骸收了起来。<br>"; $basic_down_effect = round($rg_sk_rarity) + rand(1, 5); $down_effect = $wepe - $basic_down_effect <= 0 ? $wepe - 1 : $basic_down_effect; $wepe -= $down_effect; if (rand(1, 100) <= round($rg_sk_rarity / 10) && strpos($wepsk, 'o') === false) { $log .= "而且由于你的粗心大意,对你的枪械造成了<span class='red'>不可挽回的损害</span>!<br>看来它的寿命被极大的缩短了……<br>"; $down_sk = 'o'; $wepsk .= $down_sk; } $log .= "<br><span class='yellow'>你的武器<span class='lime'>【{$wep}】</span>在经过<span class='lime'>【{$rgi['itm']}】</span>的改造后发生了如下改变:</span><br>"; if ($down_effect >= 0) { $log .= "<span class='yellow'>效果降低 -> <span class='red'>{$down_effect}</span></span><br>"; } if ($down_sk) { $log .= "<span class='yellow'>属性增加 -> <span class='red'>【一发】</span></span><br><br>"; } $itm0 = '一堆废铁'; $itmk0 = 'X'; $itme0 = round($rg_sk_rarity) + $rgi['itme']; $itms0 = 1; $itmsk0 = ''; addnews($now, 'remake_fail', $name, $rgi['itm'], $wep); } \itemmain\itms_reduce($rgi); if ($itms0) { \itemmain\itemget(); } }
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); }
function gamesysctl_copyhack() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'itemmain', 'logger')); $have_it_flag = false; foreach (array(1, 2, 3, 4, 5, 6) as $i) { if (${'itm' . $i} == '便携式控制中心子端' && ${'itms' . $i} > 0) { $have_it_flag = true; break; } } if ($have_it_flag) { $log .= "当你提交了操作后,一个大大的error出现在了画面上,虽然你是一个不讲鹰语的爱国者,但是“错误”这个单词你还是认识的。<br><span class='yellow'>画面下方的错误原因中写着:检测到你身上已携带有子端,不可重复获得。</span><br>"; return; } $log .= "当你提交了操作后,一个<span class='yellow'>方形的黑色金属盒</span>从控制台下方的凹陷处弹射出来,你将它接到了手中。<br>控制台的界面上似乎有关于它的介绍与操作说明,但你还没来得及看,控制台就因<span class='red'>能源不足</span>而自动休眠了……<br>"; $itm0 = '便携式控制中心子端'; $itmk0 = 'EC'; $itme0 = 1; $itms0 = 1; foreach (array(1, 2, 3, 4, 5, 6) as $i) { if (${'itm' . $i} == '能量核心' && ${'itms' . $i} > 0) { $core['itme'] =& ${'itme' . $i}; $core['itms'] =& ${'itms' . $i}; $core['itm'] =& ${'itm' . $i}; $core['itmk'] =& ${'itmk' . $i}; $core['itmsk'] =& ${'itmsk' . $i}; \itemmain\itms_reduce($core); break; } } \itemmain\itemget(); }