function strike_finish(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } if (\skillbase\skill_query(27, $pa) && check_unlocked27($pa) && $pa['is_hit']) { eval(import_module('skill27', 'armor', 'wound', 'logger')); if ($pa['bskill'] == 26) { $target = $armor_equip_list; if (\skillbase\skill_getvalue(26, 'lvl', $pa)) { $damage = 2; } else { $damage = 3; } } else { $target = array($armor_equip_list[rand(0, count($armor_equip_list) - 1)]); $damage = 0; if (in_array('u', \attrbase\get_ex_attack_array($pa, $pd, $active))) { $damage += 1; } if (in_array('f', \attrbase\get_ex_attack_array($pa, $pd, $active))) { $damage += 2; } } if ($damage > 0) { foreach ($target as $key) { if (in_array($key, $armor_equip_list) && isset($pd[$key . 'e']) && $pd[$key . 'e'] > 0) { //有防具 $pa['attack_wounded_' . substr($key, 2)] += $damage; } else { if (!\skillbase\skill_query(6, $pd)) { if ($active) { $log .= '流火技能' . $infname['u'] . '了敌人!'; } else { $log .= '你被敌人的流火技能' . $infname['u'] . '了!'; } \wound\get_inf('u', $pd); } } } } } $chprocess($pa, $pd, $active); }
function check_ex_inf_infliction(&$pa, &$pd, $active, $key) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'ex_dmg_att', 'wound', 'logger')); //判定造成异常状态 $inf_rate = calculate_ex_inf_rate($pa, $pd, $active, $key) + get_ex_inf_rate_modifier($pa, $pd, $active, $key); $inf_dice = rand(0, 99); if ($inf_dice < $inf_rate) { $infkey = array_search($ex_inf[$key], $infskillinfo); if ($active) { $log .= "并造成{$pd['name']}{$infname[$infkey]}了!"; } else { $log .= "并造成你{$infname[$infkey]}了!"; } \wound\get_inf($infkey, $pd); addnews($now, 'inf', $pa['name'], $pd['name'], $infkey); } }
function search_area() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'map', 'player', 'logger')); if ($weather == 13) { $damage = round($mhp / 12) + rand(0, 20); $hp -= $damage; $log .= "被<span class=\"blue\">冰雹</span>击中,生命减少<span class=\"red\">{$damage}</span>点!<br>"; if ($hp <= 0) { $state = 17; \player\update_sdata(); $sdata['selflag'] = 1; \player\kill($sdata, $sdata); return; } } else { if ($weather == 14) { $dice = rand(0, 9); if ($dice == 0 && strpos($inf, 'e') === false) { $log .= "空气中充斥着的<span class=\"linen\">狂暴电磁波</span>导致你<span class=\"yellow\">身体麻痹</span>了!<br>"; \wound\get_inf('e'); } elseif ($dice == 1 && strpos($inf, 'w') === false) { $log .= "空气中充斥着的<span class=\"linen\">狂暴电磁波</span>导致你<span class=\"grey\">混乱</span>了!<br>"; \wound\get_inf('w'); } else { $log .= "空气中充斥着狂暴的电磁波……<br>"; } } else { if ($weather == 15) { $dice = rand(0, 9); if ($dice == 0) { $mhpdown = rand(4, 8); if ($mhp > $mhpdown) { $log .= "空气中弥漫着的<span class=\"green\">放射性尘埃</span>导致你的生命上限减少了<span class=\"red\">{$mhpdown}</span>点!<br>"; $mhp -= $mhpdown; if ($hp > $mhp) { $hp = $mhp; } } } else { $log .= "空气中弥漫着放射性尘埃……<br>"; } } else { if ($weather == 16) { $dice = rand(0, 9); if ($dice == 0) { $defdown = rand(3, 6); if ($def > $defdown) { $log .= "高强度的<span class=\"purple\">紫外线照射</span>导致你的防御力减少了<span class=\"red\">{$defdown}</span>点!<br>"; $def -= $defdown; } } elseif ($dice == 1 && strpos($inf, 'u') === false) { $log .= "高强度的<span class=\"purple\">紫外线照射</span>导致你<span class=\"red\">烧伤</span>了!<br>"; \wound\get_inf('u'); } else { $log .= "高强度的紫外线灼烧着大地……<br>"; } } } } } $chprocess(); }
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) { if (strpos($itmk, '2') === 2) { $damage = round($itme * 2); } elseif (strpos($itmk, '1') === 2) { $damage = round($itme * 1.5); } else { $damage = round($itme); } if (defined('MOD_WOUND')) { \wound\get_inf('p'); } $hp -= $damage; $playerflag = 0; if ($itmsk && is_numeric($itmsk)) { $playerflag = 1; } $selflag = 0; if ($playerflag && $itmsk == $pid) { $selflag = 1; } if ($playerflag) { $wdata = \player\fetch_playerdata_by_pid($itmsk); $wprefix = '<span class="yellow">' . $wdata['name'] . '</span>'; if ($selflag) { $wprefix = '你自己'; } $log .= "糟糕,<span class=\"yellow\">{$itm}</span>中被{$wprefix}掺入了毒药!你受到了<span class=\"dmg\">{$damage}</span>点伤害!<br>"; addnews($now, 'poison', $name, $wdata['name'], $itm); if (!$selflag) { send_poison_enemylog($itm, $itmsk); } } else { $log .= "糟糕,<span class=\"yellow\">{$itm}</span>有毒!你受到了<span class=\"dmg\">{$damage}</span>点伤害!<br>"; } if ($hp <= 0) { $state = 26; \player\update_sdata(); if ($playerflag && !$selflag) { $sdata['bid'] = $itmsk; $log .= "你被<span class=\"red\">" . $wdata['name'] . "</span>毒死了!"; } else { if ($playerflag) { $sdata['bid'] = $itmsk; $wdata =& $sdata; $log .= "你被毒死了!"; } else { $wdata =& $sdata; $sdata['sourceless'] = 1; $log .= "你被毒死了!"; } } $wdata['attackwith'] = $itm; $killmsg = \player\kill($wdata, $sdata); if (isset($sdata['sourceless'])) { unset($sdata['sourceless']); } if ($killmsg) { $log .= "<span class=\"yellow\">{$wdata['name']}对你说:“{$killmsg}”</span><br>"; } if ($playerflag && !$selflag) { \player\player_save($wdata); } \player\player_save($sdata); \player\load_playerdata($sdata); } \itemmain\itms_reduce($theitem); return; } if ((strpos($itmk, 'Y') === 0 || strpos($itmk, 'Z') === 0) && $itm == '毒药') { include template(MOD_POISON_POISON); $cmd = ob_get_contents(); ob_clean(); return; } $chprocess($theitem); }
function search_area() { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys', 'map', 'player', 'logger')); if ($weather == 13) { deal_hailstorm_weather_damage(); if ($hp <= 0) { return; } } else { if ($weather == 14) { $dice = rand(0, 9); if ($dice == 0 && strpos($inf, 'e') === false) { $log .= "空气中充斥着的<span class=\"linen\">狂暴电磁波</span>导致你<span class=\"yellow\">身体麻痹</span>了!<br>"; \wound\get_inf('e'); } elseif ($dice == 1 && strpos($inf, 'w') === false) { $log .= "空气中充斥着的<span class=\"linen\">狂暴电磁波</span>导致你<span class=\"grey\">混乱</span>了!<br>"; \wound\get_inf('w'); } else { $log .= "空气中充斥着狂暴的电磁波……<br>"; } } else { if ($weather == 15) { $dice = rand(0, 9); if ($dice == 0) { $mhpdown = rand(4, 8); if ($mhp > $mhpdown) { $log .= "空气中弥漫着的<span class=\"green\">放射性尘埃</span>导致你的生命上限减少了<span class=\"red\">{$mhpdown}</span>点!<br>"; $mhp -= $mhpdown; if ($hp > $mhp) { $hp = $mhp; } } } else { $log .= "空气中弥漫着放射性尘埃……<br>"; } } else { if ($weather == 16) { $dice = rand(0, 9); if ($dice == 0) { $defdown = rand(3, 6); if ($def > $defdown) { $log .= "高强度的<span class=\"purple\">紫外线照射</span>导致你的防御力减少了<span class=\"red\">{$defdown}</span>点!<br>"; $def -= $defdown; } } elseif ($dice == 1 && strpos($inf, 'u') === false) { $log .= "高强度的<span class=\"purple\">紫外线照射</span>导致你<span class=\"red\">烧伤</span>了!<br>"; \wound\get_inf('u'); } else { $log .= "高强度的紫外线灼烧着大地……<br>"; } } } } } $chprocess(); }
function post_traphit_events(&$pa, &$pd, $tritm, $damage) { if (eval(__MAGIC__)) { return $___RET_VALUE; } $chprocess(); eval(import_module('player', 'logger', 'ex_dmg_att', 'wound')); if (strpos($tritm['itm'], '毒性') !== false) { \wound\get_inf('p'); $log .= "敌人的陷阱还使你{$infname['p']}了!<br>"; } if (strpos($tritm['itm'], '电气') !== false) { \wound\get_inf('e'); $log .= "敌人的陷阱还使你{$infname['e']}了!<br>"; } }