function apply_attack_exp_gain(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } $chprocess($pa, $pd, $active); eval(import_module('lvlctl')); if ($pa['physical_dmg_dealt'] <= 0 && \skillbase\skill_query(213, $pa) && check_unlocked213($pa) && $pa['wep_kind'] == 'D') { //如果没有伤害,则获得1点经验 \lvlctl\getexp(1, $pa); } }
function trap_use(&$theitem) { if (eval(__MAGIC__)) { return $___RET_VALUE; } if (\skillbase\skill_query(19)) { eval(import_module('player')); $wd += rand(1, 2); \lvlctl\getexp(rand(1, 2)); } $chprocess($theitem); }
function apply_attack_exp_gain(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } $chprocess($pa, $pd, $active); //不命中没有经验 eval(import_module('lvlctl')); if ($pa['physical_dmg_dealt'] > 0 && \skillbase\skill_query(226, $pa) && check_unlocked226($pa)) { \lvlctl\getexp(1, $pa); } }
function act() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'map', 'player', 'logger', 'metman', 'input', 'weapon')); if ($mode == 'combat') { if ($command == 'back') { if (\skillbase\skill_query(437) && check_unlocked437()) { ${$skillinfo[substr($wepk, 1, 1)]} += 3; \lvlctl\getexp(2); } } } $chprocess(); }
function itemmix_success() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player')); if (\skillbase\skill_query(431)) { $wp += 3; $wk += 3; $wc += 3; $wf += 3; $wg += 3; $wd += 2; \lvlctl\getexp(3); } $chprocess(); }
function player_kill_enemy(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } if (\skillbase\skill_query(64, $pa) && check_unlocked64($pa)) { eval(import_module('weapon')); if ($pa['bskill'] == 60) { $arr = array(0, 1, 2, 3); } else { $arr = array(rand(0, 3)); } for ($i = 0; $i <= 3; $i++) { if (in_array($i, $arr)) { $dice = rand(3, 5); if ($i == 0) { //命体上限 $pa['mhp'] += $dice; $pa['msp'] += $dice; } if ($i == 1) { //经验值 \lvlctl\getexp($dice, $pa); } if ($i == 2) { //全系熟练 foreach (array_unique(array_values($skillinfo)) as $key) { $pa[$key] += $dice; } } if ($i == 3) { //基础攻防 $pa['att'] += $dice; $pa['def'] += $dice; } } } } $chprocess($pa, $pd, $active); }
function trap_use(&$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']; $trapk = str_replace('TN', 'TO', $itmk); $db->query("INSERT INTO {$tablepre}maptrap (itm, itmk, itme, itms, itmsk, pls) VALUES ('{$itm}', '{$trapk}', '{$itme}', '1', '{$pid}', '{$pls}')"); $log .= "设置了陷阱<span class=\"red\">{$itm}</span>。<br>小心,自己也很难发现。<br>"; \lvlctl\getexp(1); $wd++; \itemmain\itms_reduce($theitem); }
function player_kill_enemy(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } $chprocess($pa, $pd, $active); if ($pa['bskill'] == 71) { eval(import_module('logger')); $expgain = calculate_skill71_expgain($pa, $pd, $active); if ($active) { $log .= '<span class="yellow">「解构」使你获得了额外' . $expgain . '点经验!</span><br>'; } else { $log .= '<span class="yellow">「解构」使敌人获得了额外' . $expgain . '点经验!</span><br>'; } \lvlctl\getexp($expgain, $pa); } }
function apply_attack_exp_gain(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('lvlctl')); if ($pa['physical_dmg_dealt'] > 0) { //有伤害才获得经验 \lvlctl\getexp(calculate_attack_exp_gain($pa, $pd, $active), $pa); } }
function itemuse_um(&$theitem) { if (eval(__MAGIC__)) { return $___RET_VALUE; } $itm =& $theitem['itm']; $itmk =& $theitem['itmk']; $itme =& $theitem['itme']; $itms =& $theitem['itms']; $itmsk =& $theitem['itmsk']; eval(import_module('player', 'weapon', 'logger', 'lvlctl')); $log .= "你服用了<span class=\"red\">{$itm}</span>。<br>"; if (strpos($itmk, 'MA') === 0) { $att_min = 200; $att_limit = 500; $dice = rand(-5, 5); if ($att < $att_min) { $mefct = $itme; } elseif ($att < $att_limit) { $mefct = round($itme * (1 - ($att - $att_min) / ($att_limit - $att_min))); } else { $mefct = 0; } /* if ($mefct < 5) { if ($mefct < $dice) { $mefct = - $dice; } } */ $att += $mefct; $mdname = "基础攻击力"; } elseif (strpos($itmk, 'MD') === 0) { $def_min = 200; $def_limit = 500; $dice = rand(-5, 5); if ($def < $def_min) { $mefct = $itme; } elseif ($def < $def_limit) { $mefct = round($itme * (1 - ($def - $def_min) / ($def_limit - $def_min))); } else { $mefct = 0; } /* if ($mefct < 5) { if ($mefct < $dice) { $mefct = - $dice; } } */ $def += $mefct; $mdname = "基础防御力"; } elseif (strpos($itmk, 'ME') === 0) { $lvlup_objective = $itme / 10; $mefct = round($baseexp * 2 * $lvlup_objective + rand(0, 5)); $mdname = "经验值"; //经验值增加最后加,因为log的次序关系 } elseif (strpos($itmk, 'MS') === 0) { $mefct = $itme; $sp += $mefct; $msp += $mefct; $mdname = "体力上限"; } elseif (strpos($itmk, 'MH') === 0) { $mefct = $itme; $hp += $mefct; $mhp += $mefct; $mdname = "生命上限"; } elseif (strpos($itmk, 'MV') === 0) { $skill_minimum = 60; $skill_limit = 600; $skcnt = 0; $ws_sum = 0; foreach (array_unique(array_values($skillinfo)) as $key) { $skcnt++; $ws_sum += ${$key}; } $dice = rand(-10, 10); if ($ws_sum < $skill_minimum * $skcnt) { $mefct = $itme; } elseif ($ws_sum < $skill_limit * $skcnt) { $mefct = round(calc_skillbook_value($ws_sum - $skill_minimum * $skcnt, $itme)); } else { $mefct = 0; } /* if ($mefct < 10) { if ($mefct < $dice) { $mefct = - $dice; } } */ foreach (array_unique(array_values($skillinfo)) as $key) { ${$key} += $mefct; } $mdname = "全系熟练度"; } if ($mefct > 0) { $log .= "身体里有种力量涌出来!<br>你的{$mdname}提高了<span class=\"yellow\">{$mefct}</span>点!<br>"; } elseif ($mefct == 0) { $log .= "已经很强了,却还想靠药物继续强化自己,是不是太贪心了?<br>你的能力没有任何提升。<br>"; } else { $mefct = -$mefct; $log .= "已经很强了,却还想靠药物继续强化自己,是不是太贪心了?<br>你贪婪的行为引发了药物的副作用!<br>你的{$mdname}下降了<span class=\"red\">{$mefct}</span>点!<br>"; } if (strpos($itmk, 'ME') === 0) { \lvlctl\getexp($mefct); } \itemmain\itms_reduce($theitem); }
function gemming($t1, $t2) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'player', 'itemmain', 'logger')); if ($t1 != 'wep' && $t1 != 'arb' && $t1 != 'arh' && $t1 != 'ara' && $t1 != 'arf') { $log .= '你只能给你的武器/防具增加属性。<br>'; $mode = 'command'; return; } $itm =& ${$t1}; $itmk =& ${$t1 . 'k'}; $itme =& ${$t1 . 'e'}; $itms =& ${$t1 . 's'}; $itmsk =& ${$t1 . 'sk'}; if ($t1 == 'wep' || !$itme || !$itms) { if ($itmk == 'WN') { $log .= '你试图改造你的武器,但是你没有装备武器。<br>'; $mode = 'command'; return; } } else { if ($itms <= 0 && $itms != $nosta) { $log .= '本防具不存在,请重新选择。<br>'; $mode = 'command'; return; } } if (\itemmain\count_itmsk_num($itmsk) >= 6) { $log .= '你选择的物品属性数目已达到6个属性的上限,无法改造!<br>'; $mode = 'command'; return; } $t2 = (int) $t2; if ($t2 < 1 || $t2 > 6) { $log .= '你选择的宝石/方块不存在,请重新选择。<br>'; $mode = 'command'; return; } $gem =& ${'itm' . $t2}; $gemk =& ${'itmk' . $t2}; $geme =& ${'itme' . $t2}; $gems =& ${'itms' . $t2}; $gemsk =& ${'itmsk' . $t2}; if ($gems <= 0 && $gems != $nosta) { $log .= '你选择的宝石/方块不存在,请重新选择。<br>'; $mode = 'command'; return; } $buff = array(); if ($gem == '红色方块') { //火焰 if ($t1 == 'wep') { $buff = array(array(35, 'u')); } else { $buff = array(array(65, 'P'), array(35, 'U')); } } else { if ($gem == '黄色方块') { //重辅 if ($t1 == 'wep') { $buff = array(array(100, 'c')); } else { $buff = array(array(65, 'D'), array(35, 'c')); } } else { if ($gem == '蓝色方块') { //冻气 if ($t1 == 'wep') { $buff = array(array(35, 'i')); } else { $buff = array(array(65, 'G'), array(35, 'I')); } } else { if ($gem == '绿色方块') { //带毒 if ($t1 == 'wep') { $buff = array(array(35, 'p')); } else { $buff = array(array(65, 'K'), array(35, 'q')); } } else { if ($gem == '金色方块') { //电击 if ($t1 == 'wep') { $buff = array(array(35, 'e')); } else { $buff = array(array(65, 'C'), array(35, 'E')); } } else { if ($gem == '银色方块') { //音波 if ($t1 == 'wep') { $buff = array(array(35, 'w')); } else { $buff = array(array(65, 'F'), array(35, 'W')); } } else { if ($gem == '红宝石方块') { //火焰/灼焰 if ($t1 == 'wep') { $buff = array(array(65, 'u'), array(35, 'f')); } else { $buff = array(array(100, 'U')); } } else { if ($gem == '蓝宝石方块') { //冻气/冰华 if ($t1 == 'wep') { $buff = array(array(65, 'i'), array(35, 'k')); } else { $buff = array(array(100, 'I')); } } else { if ($gem == '绿宝石方块') { if ($t1 == 'wep') { $buff = array(array(15, 'u'), array(15, 'i'), array(15, 'p'), array(15, 'e'), array(15, 'w'), array(6, 'f'), array(6, 'k'), array(6, 'n'), array(6, 'N'), array(1, 'd')); } else { $buff = array(array(15, 'C'), array(15, 'D'), array(15, 'F'), array(15, 'G'), array(15, 'K'), array(15, 'P'), array(3, 'A'), array(3, 'a'), array(4, 'H')); } } else { if ($gem == '水晶方块') { //连击/HP制御 if ($t1 == 'wep') { $buff = array(array(1, 'r')); } else { $buff = array(array(5, 'H')); } } else { if ($gem == '黑色方块') { //贯穿 if ($t1 == 'wep') { $buff = array(array(5, 'n')); } else { $buff = array(array(5, 'm')); } } else { if ($gem == '白色方块') { //冲击 if ($t1 == 'wep') { $buff = array(array(5, 'N')); } else { $buff = array(array(5, 'M')); } } else { $log .= "你的物品不是合法的宝石或方块。<br>请参阅帮助获得所有合法的宝石或方块及它们的对应改造属性的列表。<br>"; $mode = 'command'; return; } } } } } } } } } } } } $dice = rand(1, 100); $flag = 0; $log .= "你将<span class=\"yellow\">{$gem}</span>镶嵌到了<span class=\"yellow\">{$itm}</span>上。<br>"; $lb = 10; $ub = 20; if (strpos($gem, '宝石') !== false) { $lb = round($lb * 1.75); $ub = round($ub * 1.75); } //宝石强化效果更高 foreach ($buff as $value) { if ($dice <= $value[0]) { $flag = 1; gemming_itme_buff($itm, $itmk, $itme, $itms, $itmsk, $lb, $ub); $log .= "同时,你的装备<span class=\"yellow\">{$itm}</span>还获得了“<span class=\"yellow\">{$itemspkinfo[$value[1]]}</span>”属性!<br>"; include_once GAME_ROOT . './include/news.func.php'; addnews(0, 'gemming', $name, $gem, $itm, $itemspkinfo[$value[1]]); if (strpos($itmsk, $value[1]) === false) { $itmsk .= $value[1]; } break; } else { $dice -= $value[0]; } } $expgain = rand(4, 7); if (!$flag) { $lb = round($lb / 2); $ub = round($ub / 2); gemming_itme_buff($itm, $itmk, $itme, $itms, $itmsk, $lb, $ub); $log .= "但是你的装备并没有获得额外属性。看起来技术还不过关的样子。<span class=\"yellow\">你决定痛定思痛,总结经验。</span><br>"; $rage += rand(5, 15); $rage = min($rage, 100); $expgain = rand(7, 11); } \lvlctl\getexp($expgain); $gems--; $log .= "消耗了一枚{$gem}。<br>"; if ($gems <= 0) { $log .= "{$gem}用完了。<br>"; $gem = ''; $gemk = ''; $gems = 0; $geme = 0; $gemsk = ''; } $mode = 'command'; }