function activate76() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('skill76', 'player', 'logger', 'sys')); \player\update_sdata(); if (!\skillbase\skill_query(76) || !check_unlocked76($sdata)) { $log .= '你没有这个技能!<br>'; return; } $st = check_skill76_state($sdata); if ($st == 0) { $log .= '你不能使用这个技能!<br>'; return; } if ($st == 1) { $log .= '你已经发动过这个技能了!<br>'; return; } if ($st == 2) { $log .= '技能冷却中!<br>'; return; } \skillbase\skill_setvalue(76, 'lastuse', $now); $rage = 100; addnews(0, 'bskill76', $name); $log .= '<span class="lime">技能「充能」发动成功。</span><br>'; }
function kill(&$pa, &$pd) { if (eval(__MAGIC__)) { return $___RET_VALUE; } $chprocess($pa, $pd); eval(import_module('sys', 'logger')); if (in_array($pd['state'], array(20, 21, 22, 23, 24, 25, 27, 29))) { if (\skillbase\skill_query(58, $pd) && (int) \skillbase\skill_getvalue(58, 'r', $pd) == 0) { \skillbase\skill_setvalue(58, 'r', '1', $pd); if ($pd['state'] == 27 && !$pd['sourceless']) { $log .= "<span class=\"lime\">但是,由于你及时按下了BOMB键,你原地满血复活了!</span><br>"; $w_log = "<span class=\"lime\">但是,由于{$pd['name']}及时按下了BOMB键,其原地满血复活了!</span><br>"; \logger\logsave($pa['pid'], $now, $w_log, 'b'); } else { //击杀复活提示将接管player_kill_enemy进行 } $pd['state'] = 0; $pd['hp'] = $pd['mhp']; $pd['skill58_flag'] = 1; if ($pd['type'] == 0) { $alivenum++; } save_gameinfo(); addnews($now, 'revival', $pd['name']); //满血复活时加成效果(这个其实是技能“新生”的内容,但直接做在一起好了) $pd['mhp'] += $pd['lvl'] * 2; $pd['hp'] += $pd['lvl'] * 2; $pd['def'] += $pd['lvl'] * 5; } } }
function gamestateupdate() { if (eval(__MAGIC__)) { return $___RET_VALUE; } $chprocess(); eval(import_module('sys', 'gameflow_combo')); if ($gamestate < 40 && $gamestate >= 30 && $alivenum <= $combolimit) { //判定进入连斗条件1:停止激活时玩家数少于特定值 $gamestate = 40; addnews($now, 'combo'); systemputchat($now, 'combo'); } elseif ($gamestate < 40 && $gamestate >= 20 && $combonum && $deathnum >= $combonum) { //判定进入连斗条件2:死亡人数超过特定公式计算出的值 $real_combonum = $deathlimit + ceil($validnum / $deathdeno) * $deathnume; if ($deathnum >= $real_combonum) { $gamestate = 40; addnews($now, 'combo'); systemputchat($now, 'combo'); } else { $combonum = $real_combonum; addnews($now, 'comboupdate', $combonum, $deathnum); systemputchat($now, 'comboupdate', $combonum); } } }
function strike_prepare(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } if ($pa['bskill'] != 440) { return $chprocess($pa, $pd, $active); } if (!\skillbase\skill_query(440, $pa) || !check_unlocked440($pa)) { eval(import_module('logger')); $log .= '你尚未解锁这个技能!'; $pa['bskill'] = 0; } else { eval(import_module('sys', 'skill440')); $l = \skillbase\skill_getvalue(440, 'lastuse', $pa); if ($pd['type'] == 0 && $now - $l >= $skill440_cd) { eval(import_module('logger')); if ($active) { $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「父爱」!</span><br>"; } else { $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「父爱」!</span><br>"; } \skillbase\skill_setvalue(440, 'lastuse', $now, $pa); $pd['skill440_flag'] = 1; addnews(0, 'bskill440', $pa['name'], $pd['name']); } else { if ($active) { eval(import_module('logger')); $log .= '因对方非玩家或其他原因而未发动技能。<br>'; } $pa['bskill'] = 0; } } $chprocess($pa, $pd, $active); }
function antiAFK($timelimit = 0) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'gameflow_antiafk')); if (empty($timelimit)) { $timelimit = $antiAFKertime; } $timelimit *= 60; $deadline = $now - $timelimit; $result = $db->query("SELECT * FROM {$tablepre}players WHERE type=0 AND endtime < '{$deadline}' AND hp>'0' AND state<'10'"); while ($al = $db->fetch_array($result)) { $afkerlist[$al['pid']] = array('name' => $al['name'], 'pls' => $al['pls']); } if (empty($afkerlist)) { return; } foreach ($afkerlist as $kid => $kcontent) { $db->query("UPDATE {$tablepre}players SET hp='0',state='32' WHERE pid='{$kid}' AND type='0' AND hp>'0' AND state<'10'"); if ($db->affected_rows()) { addnews($now, 'death32', $kcontent['name'], '', $kcontent['pls']); $alivenum--; $deathnum++; } } save_gameinfo(); return; }
function strike_prepare(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } if ($pa['bskill'] != 60) { return $chprocess($pa, $pd, $active); } if (!\skillbase\skill_query(60, $pa) || !check_unlocked60($pa)) { eval(import_module('logger')); $log .= '你尚未解锁这个技能!'; $pa['bskill'] = 0; } else { $rcost = get_rage_cost60($pa); if ($pa['rage'] >= $rcost) { eval(import_module('logger')); if ($active) { $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「恐惧」!</span><br>"; } else { $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「恐惧」!</span><br>"; } $pa['rage'] -= $rcost; $pa['skill60_flag'] = floor((1 - min(1, $pd['hp'] / $pd['mhp'])) * 100); addnews(0, 'bskill60', $pa['name'], $pd['name']); } else { if ($active) { eval(import_module('logger')); $log .= '怒气不足或其他原因不能发动。<br>'; } $pa['bskill'] = 0; } } $chprocess($pa, $pd, $active); }
function strike_prepare(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } if ($pa['bskill'] != 253) { return $chprocess($pa, $pd, $active); } if (!\skillbase\skill_query(253, $pa) || !check_unlocked253($pa)) { eval(import_module('logger')); $log .= '你尚未解锁这个技能!'; $pa['bskill'] = 0; } else { $rcost = get_rage_cost253($pa); if ($pa['rage'] >= $rcost) { eval(import_module('logger')); if ($active) { $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「天威」!</span><br>"; } else { $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「天威」!</span><br>"; } $pa['rage'] -= $rcost; addnews(0, 'bskill253', $pa['name'], $pd['name']); $pd['old_hp'] = $pd['hp']; //记录战斗开始时的hp,用于判定返还怒气 } else { if ($active) { eval(import_module('logger')); $log .= '怒气不足或其他原因不能发动。<br>'; } $pa['bskill'] = 0; } } $chprocess($pa, $pd, $active); }
function strike_prepare(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } if ($pa['bskill'] != 75) { return $chprocess($pa, $pd, $active); } if (!\skillbase\skill_query(75, $pa) || !check_unlocked75($pa)) { eval(import_module('logger')); $log .= '你尚未解锁这个技能!'; $pa['bskill'] = 0; } else { eval(import_module('sys', 'skill75')); $l = \skillbase\skill_getvalue(75, 'lastuse', $pa); if ($now - $l >= $skill75_cd && $pa['wep_kind'] == 'K') { eval(import_module('logger')); if ($active) { $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「剑心」!</span><br>"; } else { $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「剑心」!</span><br>"; } \skillbase\skill_setvalue(75, 'lastuse', $now, $pa); addnews(0, 'bskill75', $pa['name'], $pd['name']); } else { if ($active) { eval(import_module('logger')); $log .= '冷却时间未到或其他原因不能发动。<br>'; } $pa['bskill'] = 0; } } $chprocess($pa, $pd, $active); }
function strike_prepare(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } if ($pa['bskill'] != 36) { return $chprocess($pa, $pd, $active); } if (!\skillbase\skill_query(36, $pa) || !check_unlocked36($pa)) { eval(import_module('logger')); $log .= '你尚未解锁这个技能!'; $pa['bskill'] = 0; } else { $rcost = get_rage_cost36($pa); if ($pa['rage'] >= $rcost && $pa['wepk'] == 'WP') { eval(import_module('logger')); if ($active) { $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「偷袭」!</span><br>"; } else { $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「偷袭」!</span><br>"; } $pa['rage'] -= $rcost; addnews(0, 'bskill36', $pa['name'], $pd['name']); } else { if ($active) { eval(import_module('logger')); $log .= '怒气不足或其他原因不能发动。<br>'; } $pa['bskill'] = 0; } } $chprocess($pa, $pd, $active); }
function activate261() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('skill261', 'player', 'logger', 'sys', 'itemmain')); \player\update_sdata(); if (!\skillbase\skill_query(261) || !check_unlocked261($sdata)) { $log .= '你没有这个技能!<br>'; return; } $st = check_skill261_state($sdata); if ($st == 0) { $log .= '你不能使用这个技能!<br>'; return; } if ($st == 2) { $log .= '你已经使用过这个技能了!<br>'; return; } \skillbase\skill_setvalue(261, 'lastuse', $now); $wp = $wp + $wp; addnews(0, 'bskill261', $name); $log .= '<span class="red">技能「决战」发动成功。</span><br>'; }
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 add_once_area($atime) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'map')); if ($gamestate > 10 && $now > $atime) { $plsnum = sizeof($plsinfo) - 1; $areanum += $areaadd; for ($x = 0; $x <= $areanum; $x++) { if ($x > $plsnum) { continue; } add_new_killarea($arealist[$x], $atime); } if ($areanum >= $plsnum) { $areaaddlist = array_slice($arealist, $areanum - $areaadd + 1); $areanum = $plsnum; } else { if ($hack > 0) { $hack--; } $areaaddlist = array_slice($arealist, $areanum - $areaadd + 1, $areaadd); movehtm(); } addnews($atime, 'addarea', $areaaddlist, $weather); systemputchat($atime, 'areaadd', $areaaddlist); check_addarea_gameover($atime); } else { return; } }
function activate232() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('skill232', 'player', 'logger', 'sys')); \player\update_sdata(); if (!\skillbase\skill_query(232) || !check_unlocked232($sdata)) { $log .= '你没有这个技能!<br>'; return; } $st = check_skill232_state($sdata); if ($st == 0) { $log .= '你不能使用这个技能!<br>'; return; } if ($st == 2) { $log .= '技能冷却中!<br>'; return; } \skillbase\skill_setvalue(232, 'lastuse', $now); $clv = \skillbase\skill_getvalue(232, 'lvl'); $sc = $shieldgain[$clv]; if ($hp < $mhp + $sc) { $hp = $mhp + $sc; } addnews(0, 'bskill232', $name); $log .= '<span class="lime">技能「力场」发动成功。</span><br>'; }
function activate247() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('skill247', 'player', 'logger', 'sys')); \player\update_sdata(); if (!\skillbase\skill_query(247) || !check_unlocked247($sdata)) { $log .= '你没有这个技能!<br>'; return; } $st = check_skill247_state($sdata); if ($st == 0) { $log .= '你不能使用这个技能!<br>'; return; } if ($st == 1) { $log .= '你已经发动过这个技能了!<br>'; return; } if ($st == 2) { $log .= '技能冷却中!<br>'; return; } $trapitem = array('itm' => '毒性【AC大逃杀革新企划书】', 'itmk' => 'TO', 'itme' => get_skill247_trap_eff(), 'itms' => 2, 'itmsk' => ''); addnews(0, 'bskill247', $name); \trap\trap_use($trapitem); \trap\trap_use($trapitem); $log .= '<span class="lime">技能「挖坑」发动成功。</span><br>'; \skillbase\skill_setvalue(247, 'lastuse', $now); }
function strike_prepare(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } if ($pa['bskill'] != 46) { return $chprocess($pa, $pd, $active); } if (!\skillbase\skill_query(46, $pa) || !check_unlocked46($pa)) { eval(import_module('logger')); $log .= '你尚未解锁这个技能!'; $pa['bskill'] = 0; } else { $remtime = (int) get_remaintime46($pa); if ($remtime >= 1) { eval(import_module('logger')); if ($active) { $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「暴打」!</span><br>"; } else { $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「暴打」!</span><br>"; } $remtime--; \skillbase\skill_setvalue(46, 'rmtime', $remtime, $pa); $pd['skill46_flag'] = 1; addnews(0, 'bskill46', $pa['name'], $pd['name']); } else { if ($active) { eval(import_module('logger')); $log .= '怒气不足或其他原因不能发动。<br>'; } $pa['bskill'] = 0; } } $chprocess($pa, $pd, $active); }
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 lottery_dohook($hookname, $args) { global $session; switch ($hookname) { case "newday": $numbers = get_module_setting("todaysnumbers"); $n = $numbers; output("`n`@Today's lottery numbers are `^%s-%s-%s-%s`0`n", $n[0], $n[1], $n[2], $n[3]); $roundnum = get_module_setting("roundnum"); $pround = get_module_pref("roundnum"); if ($roundnum > $pround) { if (get_module_pref("pick") === $numbers) { $prize = get_module_setting("prize"); if ($prize > "" && $pround < $roundnum) { rawoutput("<font size='+1'>"); output("`\$You won today's lottery!`0`n"); rawoutput("</font>"); output("`\$The jackpot is `^^%s`\$ gold, money that has been deposited in to your bank account!`n", $prize); $session['user']['goldinbank'] += $prize; debuglog("won {$prize} gold on lottery"); addnews("`@%s`@ won `^%s`@ gold in the lottery!`0", $session['user']['name'], $prize); } } set_module_pref("pick", ""); } break; case "newday-runonce": $numbers = array(); for ($i = 0; $i < 4; $i++) { $numbers[$i] = e_rand(0, 9); } sort($numbers); set_module_setting("todaysnumbers", join("", $numbers)); $sql = "SELECT count(*) AS c FROM " . db_prefix("module_userprefs") . " WHERE modulename='lottery' AND setting='pick' AND value='" . join("", $numbers) . "'"; $result = db_query($sql); $row = db_fetch_assoc($result); if ($row['c'] > 0) { //split the jackpot among winners. $prize = round(get_module_setting("currentjackpot") / $row['c'], 0); set_module_setting("prize", $prize); set_module_setting("currentjackpot", get_module_setting("basepot")); set_module_setting("howmany", $row['c']); } else { //the jackpot rolls over. set_module_setting("prize", 0); set_module_setting("howmany", 0); } set_module_setting("roundnum", get_module_setting("roundnum") + 1); break; case "inn": addnav("Things to do"); addnav(array("%s`0's Lottery", getsetting('barkeep', '`tCedrik')), "runmodule.php?module=lottery&op=store"); break; } return $args; }
function gamestate_start_game() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys')); $gamestate = 20; addnews($starttime, 'newgame', $gamenum); systemputchat($starttime, 'newgame'); }
function kill(&$pa, &$pd) { if (eval(__MAGIC__)) { return $___RET_VALUE; } $chprocess($pa, $pd); eval(import_module('sys', 'logger')); if (in_array($pd['state'], array(20, 21, 22, 23, 24, 25, 27, 29))) { if (\skillbase\skill_query(427, $pd)) { if ($pa['type'] == 88 || $pa['type'] == 1) { $log .= "<span class=\"linen\">都告诉你了,对某些NPC无效……快去死吧。</span><br>"; return; } \skillbase\skill_setvalue(427, 'r', '1', $pd); if ($pd['state'] == 27 && !$pd['sourceless']) { $log .= "<span class=\"lime\">但是,由于你及时按下了BOMB键,你原地满血复活了!</span><br>"; $w_log = "<span class=\"lime\">但是,由于{$pd['name']}及时按下了BOMB键,其原地满血复活了!</span><br>"; \logger\logsave($pa['pid'], $now, $w_log, 'b'); } else { //击杀复活提示将接管player_kill_enemy进行 } $pd['state'] = 0; $pd['hp'] = $pd['mhp']; $pd['skill427_flag'] = 1; $deathnum--; if ($pd['type'] == 0) { $alivenum++; } save_gameinfo(); if (\skillbase\skill_query(424, $pd)) { $clv = \skillbase\skill_getvalue(424, 'lvl', $pd); $clv = $clv - 2; if ($clv < 0) { $clv = 0; } \skillbase\skill_setvalue(424, 'lvl', $clv, $pd); } //陷阱杀人得技能点一起放在这里 if ($pd['state'] == 27) { $pa['skillpoint'] += 2; if (\skillbase\skill_query(424, $pa)) { $clv = \skillbase\skill_getvalue(424, 'lvl', $pa); $clv++; \skillbase\skill_setvalue(424, 'lvl', $clv, $pa); } } addnews($now, 'revival', $pd['name']); } } }
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 post_damage_news(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } $d = $pa['dmg_dealt']; $p1 = $pa['name']; $p2 = $pd['name']; eval(import_module('sys')); if ($d >= 100 && $d < 150) { $words = "{$p1}对{$p2}做出了{$d}点的攻击,一定是有练过。"; } elseif ($d >= 150 && $d < 200) { $words = "{$p1}拿了什么神兵?{$p2}被打了{$d}滴血。"; } elseif ($d >= 200 && $d < 250) { $words = "{$p1}简直不是人!{$p2}瞬间被打了{$d}点伤害。"; } elseif ($d >= 250 && $d < 300) { $words = "{$p1}发出会心一击!{$p2}损失了{$d}点生命!"; } elseif ($d >= 300 && $d < 400) { $words = "{$p1}使出浑身解数奋力一击!{$d}点伤害!{$p2}还安好吗?"; } elseif ($d >= 400 && $d < 500) { $words = "{$p1}使出武器中内藏的力量!可怜的{$p2}受到了{$d}点的伤害!"; } elseif ($d >= 500 && $d < 600) { $words = "{$p1}眼色一变使出绝招!{$p2}招架不住,生命减少{$d}点!"; } elseif ($d >= 600 && $d < 750) { $words = "{$p1}手中的武器闪耀出七彩光芒!{$p2}招架不住,生命减少{$d}点!"; } elseif ($d >= 750 && $d < 1000) { $words = "{$p1}受到天神的加护,打出惊天动地的一击——{$p2}被打掉{$d}点生命值!"; } elseif ($d >= 1000 && $d < 5000) { $words = "{$p1}燃烧自己的生命得到了不可思议的力量!【{$d}】点的伤害值,没天理啊……{$p2}的HP足够么?"; } elseif ($d >= 5000 && $d < 10000) { $words = "{$p1}超越自己的极限爆发出了震天动地的力量!在【{$d}】点的伤害后,{$p2}化作了一颗流星!"; } elseif ($d >= 10000 && $d < 50000) { $words = "{$p1}运转百万匹周天,吐气扬声,一道霸气的光束过后,在【{$d}】点的伤害下,{$p2}还活着么?"; } elseif ($d >= 50000 && $d < 200000) { $words = "{$p1}已然和手中的武器成为一体!随着一声令大地崩塌的长啸,{$p2}吃下了【{$d}】点的伤害!"; } elseif ($d >= 200000 && $d < 500000) { $words = "天空一道惊雷划过,{$p1}站在战场上,而{$p2}因为受到了【{$d}】点的伤害现在已经不见踪影!"; } elseif ($d >= 500000) { $words = "将{$p2}击飞出【{$d}】的{$p1}业已经天下无敌!"; } else { $words = ''; } if ($words) { addnews(0, 'damage', $words); } return; }
function peerpressure_runevent($type) { global $session; $session['user']['specialinc'] = "module:peerpressure"; // For translation reasons, you cannot really substitute in his/her // since the gender can change other things if ($session['user']['sex']) { addnews("`&%s`7 heroically decided to seek out `@The Green Dragon`7 with cheers of encouragement from her peers ringing in her ears.", $session['user']['name']); } else { addnews("`&%s`7 heroically decided to seek out `@The Green Dragon`7 with cheers of encouragement from his peers ringing in his ears.", $session['user']['name']); } output("`2Wandering the village, going about your business, you are suddenly surrounded by a group of villagers."); output("They wonder why such an experienced adventurer as yourself hasn't slain a dragon yet."); output("You mutter some embarrassed excuses but they aren't listening."); output("They crowd around you closer, and lift you up on their shoulders."); $isforest = 0; $vloc = modulehook('validforestloc', array()); foreach ($vloc as $i => $l) { if ($session['user']['location'] == $l) { $isforest = 1; break; } } if ($isforest || count($vloc) == 0) { output("`n`nCheering your name the whole way, they carry you into the forest, and right to the mouth of a cave outside the town!`n`n"); } else { $key = array_rand($vloc); output("`n`nCheering your name the whole way, they carry you far into the forest, and right to the mouth of a cave outside the town of %s!`n`n", $key); $session['user']['location'] = $key; } output("Still cheering your name, they put you down and eagerly wait for you to enter and slay that dragon.`n`n"); output("You know that you'd never live it down if you tried to back out now."); output("Swallowing your fear as best you can, you enter the cave."); if (is_module_active("dragonplace")) { addnav("Enter the cave", "runmodule.php?module=dragonplace&op=cave"); } else { addnav("Enter the cave", "dragon.php?nointro=1"); } $session['user']['specialinc'] = ""; checkday(); //increment buffs, newday buffs, and heal... and probably throw people off in general $session['user']['specialinc'] = "module:peerpressure"; apply_buff('peerpressure', array("name" => "`2Heroic Valor", "rounds" => 20, "atkmod" => 1 + get_module_pref("dayspast") / 100, "defmod" => 1 + get_module_pref("dayspast") / 100, "startmsg" => "`2You fight bravely, considering the pressure you're under.", "wearoff" => "`@The Green Dragon`2 has beaten and burnt the bravery out of you.", "schema" => "module-peerpressure")); }
function ss_sing($sn) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'map', 'logger')); $r = $arte; if ($ss >= $r) { $ss -= $r; $log .= "消耗<span class=\"yellow\">{$r}</span>点歌魂,歌唱了<span class=\"yellow\">{$noiseinfo[$sn]}</span>。<br>"; } else { $log .= "需要<span class=\"yellow\">{$r}</span>歌魂才能唱这首歌!<br>"; return; } if ($sn == "Alicemagic") { $log .= "♪你說過在哭泣之後應該可以破涕而笑♪<br>\n\t\t\t\t\t\t♪我們的旅行 我不會忘♪<br>\n\t\t\t\t\t\t♪施展魔法 為了不再失去 我不會說再見♪<br>\n\t\t\t\t\t\t♪再次踏出腳步之時 將在某一天到來♪<br>"; $db->query("INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('0','{$now}','{$name}','{$plsinfo}','♪你說過在哭泣之後應該可以破涕而笑♪')"); $db->query("UPDATE {$tablepre}players SET def=def+30 WHERE `pls` ={$pls} AND hp>0 AND type=0 "); $def += 30; if (defined('MOD_NOISE')) { \noise\addnoise($pls, $sn, -1, -1); } addnews($now, 'song', $name, $plsinfo[$pls], $sn); return; } elseif ($sn == "Crow Song") { $log .= "♪从这里找一条路♪<br>\n\t\t\t\t\t\t♪找到逃离的生路♪<br>\n\t\t\t\t\t\t♪奏响激烈的摇滚♪<br>\n\t\t\t\t\t\t♪盯紧遥远的彼方♪<br>\n\t\t\t\t\t\t♪在这个连呼吸都难以为继的都市中♪<br>"; $db->query("INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('0','{$now}','{$name}','{$plsinfo}','♪从这里找一条路♪')"); $db->query("UPDATE {$tablepre}players SET att=att+30 WHERE `pls` ={$pls} AND hp>0 AND type=0 "); $att += 30; if (defined('MOD_NOISE')) { \noise\addnoise($pls, $sn, -1, -1); } addnews($now, 'song', $name, $plsinfo[$pls], $sn); return; } elseif ($sn == "KARMA") { $log .= "■<br>"; $rp = 0; addnews($now, 'song', $name, $plsinfo[$pls], $sn); return; } return; }
function duel($time = 0, $keyitm = '') { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player')); if ($gamestate < 30) { return 30; } elseif ($gamestate >= 50) { return 51; } else { $time = $time == 0 ? $now : $time; $gamestate = 50; save_gameinfo(); addnews($time, 'duelkey', $name, $keyitm); addnews($time, 'duel'); systemputchat($time, 'duel'); return 50; } }
function lovers_dohook($hookname, $args) { global $session; $partner = get_partner(); switch ($hookname) { case "newday": set_module_pref("seenlover", 0); if ($session['user']['marriedto'] == 4294967295.0) { $dk = $session['user']['dragonkills']; // 0.7 seemed to be a perfect balance of no loss of charm. // 1.0 was too much. $dk = max(1, round(0.85 * sqrt($dk), 0)); $charmloss = e_rand(1, $dk); $session['user']['charm'] -= $charmloss; output("`n`%You're married, so there's no reason to keep up that perfect image, and you let yourself go a little today ( You lose `\$%s charmpoint(s)`%).`n", $charmloss); if ($session['user']['charm'] <= 0) { output("`bWhen you wake up, you find a note next to you, reading`n`5Dear %s`5,`n", $session['user']['name']); output("Despite many great kisses, I find that I'm simply no longer attracted to you the way I used to be.`n`n"); output("Call me fickle, call me flakey, but I need to move on."); output("There are other warriors in the land, and I think some of them are really hot."); output("So it's not you, it's me, etcetera etcetera.`n`n"); output("No hard feelings, Love,`n%s`b`n", $partner); addnews("`\$%s`\$ has left %s`\$ to pursue \"other interests.\"`0", $partner, $session['user']['name']); $session['user']['marriedto'] = 0; $session['user']['charm'] = 0; } } break; case "inn": addnav("Things to do"); if ($session['user']['sex'] == SEX_MALE) { addnav(array("F?Flirt with %s", $partner), "runmodule.php?module=lovers&op=flirt"); addnav(array("Chat with %s", translate_inline(getsetting("bard", "`^Seth"))), "runmodule.php?module=lovers&op=chat"); } else { addnav(array("F?Flirt with %s", $partner), "runmodule.php?module=lovers&op=flirt"); addnav(array("Gossip with %s", translate_inline(getsetting("barmaid", "`%Violet"))), "runmodule.php?module=lovers&op=chat"); } break; } return $args; }
function strike_prepare(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } if ($pa['bskill'] != 47) { return $chprocess($pa, $pd, $active); } if (!\skillbase\skill_query(47, $pa) || !check_unlocked47($pa)) { eval(import_module('logger')); $log .= '你尚未解锁这个技能!'; $pa['bskill'] = 0; } else { $rcost = get_rage_cost47($pa); if ($pa['rage'] >= $rcost && $pa['wep_kind'] == 'C') { eval(import_module('logger')); if ($active) { $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「花雨」!</span><br>"; } else { $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「花雨」!</span><br>"; } $pa['rage'] -= $rcost; addnews(0, 'bskill47', $pa['name'], $pd['name']); eval(import_module('ex_dmg_att')); $lis = array(); foreach ($ex_attack_list as $key) { if ($key != 'f' && $key != 'k' && $key != 'd') { array_push($lis, $key); } } $pa['skill47_flag'] = $lis[rand(0, count($lis) - 1)]; } else { if ($active) { eval(import_module('logger')); $log .= '怒气不足或其他原因不能发动。<br>'; } $pa['bskill'] = 0; } } $chprocess($pa, $pd, $active); }
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_uee($itmn = 0) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'logger')); $itm =& ${'itm' . $itmn}; $itmk =& ${'itmk' . $itmn}; $itme =& ${'itme' . $itmn}; $itms =& ${'itms' . $itmn}; $itmsk =& ${'itmsk' . $itmn}; if (!$itms) { $log .= '此道具不存在,请重新选择。<br>'; $mode = 'command'; return; } if (!$itme) { $log .= "<span class=\"yellow\">{$itm}</span>已经没电,请寻找<span class=\"yellow\">电池</span>充电。<br>"; $mode = 'command'; return; } $hack_dice = rand(0, 99); $hack_proc = calculate_hack_proc_rate(); if ($hack_dice < $hack_proc) { $hack = 1; $log .= '入侵禁区控制系统成功了!全部禁区都被解除了!<br>'; \map\movehtm(); addnews($now, 'hack', $name); save_gameinfo(); } else { $log .= '可是,入侵禁区控制系统失败了……<br>'; } $itme--; $log .= "消耗了<span class=\"yellow\">{$itm}</span>的电力。<br>"; if ($itme <= 0) { $log .= "<span class=\"red\">{$itm}</span>的电池耗尽了。"; } post_hack_events($itmn); return; }
function check_trapdef_proc() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'trap', 'logger')); $proc_rate = calculate_trapdef_proc_rate(); $dice = rand(0, 99); if ($dice < $proc_rate) { //迎击触发 if ($playerflag) { addnews($now, 'trapdef', $name, $trname, $itm0); if (!$selflag) { $w_log = "<span class=\"yellow\">{$name}触发了你设置的陷阱{$itm0},但是没有受到任何伤害!</span><br>"; \logger\logsave($itmsk0, $now, $w_log, 'b'); } } $log .= "糟糕,你触发了{$trperfix}陷阱<span class=\"yellow\">{$itm0}</span>!<br>不过,身上装备着的自动迎击系统启动了!<span class=\"yellow\">在迎击功能的保护下你毫发无伤。</span><br>"; return 1; } return 0; }
function upgrade62() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('skill62', 'player', 'logger')); \player\update_sdata(); if (!\skillbase\skill_query(62) || !check_unlocked62($sdata)) { $log .= '你没有这个技能!<br>'; return; } $clv = (int) \skillbase\skill_getvalue(62, 't'); if ($clv == 0) { $log .= '发动次数达到了上限。<br>'; return; } \skillbase\skill_setvalue(62, 't', $clv - 1); $mhp += 50; $hp += 50; addnews(0, 'bskill62', $name); $log .= '发动成功。<br>'; }