Example #1
0
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']);
}
Example #2
0
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();
}