function check_physical_def_attr(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('ex_phy_def', 'logger')); if (isset($def_kind[$pa['wep_kind']])) { $ex_def_array = \attrbase\get_ex_def_array($pa, $pd, $active); if (in_array($def_kind[$pa['wep_kind']], $ex_def_array) || in_array('A', $ex_def_array)) { if (check_ex_phy_def_proc($pa, $pd, $active)) { if ($active) { $log .= "<span class=\"yellow\">{$pd['name']}的装备使你的攻击伤害减半了!</span><br>"; } else { $log .= "<span class=\"yellow\">你的装备使{$pa['name']}的攻击伤害减半了!</span><br>"; } return array(0.5); } else { if ($active) { $log .= "<span class=\"yellow\">{$pd['name']}的装备没能发挥攻击伤害减半的效果!</span><br>"; } else { $log .= "<span class=\"yellow\">你的装备没能发挥攻击伤害减半的效果!</span><br>"; } return array(); } } } return array(); }
function check_dmg_def_attr(&$pa, &$pd, $active) { //判定伤害制御 if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('logger')); if (in_array('h', \attrbase\get_ex_def_array($pa, $pd, $active))) { //$dmg_dice = rand(1950,2050); $dmg_dice = 1997; if ($pa['dmg_dealt'] > $dmg_dice) { $proc_rate = get_dmg_def_proc_rate($pa, $pd, $active); $dice = rand(0, 99); if ($dice < $proc_rate) { if ($active) { $log .= "在{$pd['name']}的装备的作用下,攻击伤害被限制了!<br>"; } else { $log .= "在你的装备的作用下,攻击伤害被限制了!<br>"; } $pa['dmg_dealt'] = $dmg_dice; } else { if ($active) { $log .= "{$pd['name']}的装备没能发挥限制攻击伤害的效果!<br>"; } else { $log .= "你的装备没能发挥限制攻击伤害的效果!<br>"; } } } } }
function check_ex_dmg_nullify(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('ex_dmg_att', 'logger')); $ex_att_array = \attrbase\get_ex_attack_array($pa, $pd, $active); $ex_def_array = \attrbase\get_ex_def_array($pa, $pd, $active); //有属性攻击才进入判断 $flag = 0; $exnum = 0; foreach ($ex_attack_list as $key) { if (in_array($key, $ex_att_array)) { $flag = 1; $exnum++; } } if ($flag && in_array('b', $ex_def_array)) { $proc_rate = get_ex_dmg_nullify_proc_rate($pa, $pd, $active); $dice = rand(0, 99); if ($dice < $proc_rate) { $log .= "<span class=\"red\">属性攻击的力量完全被防具吸收了!</span>只造成了<span class=\"red\">{$exnum}</span>点伤害!<br>"; $pa['ex_dmg_dealt'] = $exnum; $pd['exdmg_nullify_success'] = 1; return 1; } else { $log .= "纳尼?防具使属性攻击无效化的属性竟然失效了!<br>"; return 0; } } return 0; }
function check_physical_nullify(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('logger')); $ex_def_array = \attrbase\get_ex_def_array($pa, $pd, $active); if (in_array('B', $ex_def_array)) { $proc_rate = get_ex_phy_nullify_proc_rate($pa, $pd, $active); $dice = rand(0, 99); if ($dice < $proc_rate) { if ($active) { $log .= "<span class=\"yellow\">你的攻击完全被{$pd['name']}的装备吸收了!</span><br>"; } else { $log .= "<span class=\"yellow\">{$pa['name']}的攻击完全被你的装备吸收了!</span><br>"; } $pd['physical_nullify_success'] = 1; } else { if ($active) { $log .= "纳尼?{$pd['name']}的装备使攻击无效化的属性竟然失效了!<br>"; } else { $log .= "纳尼?你的装备使攻击无效化的属性竟然失效了!<br>"; } } } return array(); }
function check_ex_single_dmg_def_attr(&$pa, &$pd, $active, $key) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('ex_dmg_att', 'ex_dmg_def', 'logger')); $r = 1; if (isset($def_kind[$key])) { $ex_def_array = \attrbase\get_ex_def_array($pa, $pd, $active); if (in_array($def_kind[$key], $ex_def_array) || in_array('a', $ex_def_array)) { if (check_ex_dmg_def_proc($pa, $pd, $active, $key)) { $log .= "{$exdmgname[$key]}被防具防御了!"; $r = 0.5; $pd['ex_dmg_' . $key . '_defend_success'] = 1; } else { $log .= "属性防御装备没能发挥应有的作用!"; } } } return $r; }