function player_damaged_enemy(&$pa, &$pd, $active) { if (eval(__MAGIC__)) { return $___RET_VALUE; } $dmg = $pa['dmg_dealt']; eval(import_module('logger')); //获取最终伤害修正系数,类似物理伤害修正系数,这里返回的是一个数组 if ($dmg > 0) { $multiplier = get_final_dmg_multiplier($pa, $pd, $active); } else { $multiplier = array(); } if (isset($pa['physical_dmg_dealt']) && $dmg > 0 && $dmg != $pa['physical_dmg_dealt'] || $dmg > 0 && count($multiplier) > 0) { $fin_dmg = $dmg; $mult_words = ''; foreach ($multiplier as $key) { $fin_dmg = $fin_dmg * $key; $mult_words .= "×{$key}"; } $fin_dmg = round($fin_dmg); if ($fin_dmg < 1) { $fin_dmg = 1; } if ($mult_words == '') { $log .= "<span class=\"yellow\">造成的总伤害:<span class=\"red\">{$dmg}</span>。</span><br>"; } else { $log .= "<span class=\"yellow\">造成的总伤害:</span>{$dmg}{$mult_words}=<span class=\"red\">{$fin_dmg}</span><span class=\"yellow\">。</span><br>"; } $pa['dmg_dealt'] = $fin_dmg; } //应用对总伤害的修正 //先应用降低类,后应用提高类 apply_total_damage_modifier_down($pa, $pd, $active); apply_total_damage_modifier_up($pa, $pd, $active); //扣血并更新最高伤害 apply_damage($pa, $pd, $active); eval(import_module('sys')); if (!$pa['type'] && $pa['dmg_dealt'] > $hdamage) { $hdamage = $pa['dmg_dealt']; $hplayer = $pa['name']; \sys\save_combatinfo(); } //发log if (!$active) { if ($pa['is_counter']) { $pa['battlelog'] .= "对其做出了<span class=\"yellow\">{$pa['dmg_dealt']}</span>点反击。<br>"; } else { $pa['battlelog'] .= "你对其做出<span class=\"yellow\">{$pa['dmg_dealt']}</span>点攻击,"; } } else { if ($pa['is_counter']) { $pd['battlelog'] .= "受到其<span class=\"yellow\">{$pa['dmg_dealt']}</span>点反击。<br>"; } else { $pd['battlelog'] .= "你受到其<span class=\"yellow\">{$pa['dmg_dealt']}</span>点攻击,"; } } //发伤害新闻 post_damage_news($pa, $pd, $active, $pa['dmg_dealt']); }
function addnoise($where, $typ, $pid1 = -1, $pid2 = -1) { if (eval(__MAGIC__)) { return $___RET_VALUE; } eval(import_module('sys')); $noisetime = $now; $noisepls = $where; $noisemode = $typ; $noiseid = $pid1; $noiseid2 = $pid2; \sys\save_combatinfo(); }