战斗伤害日志

战斗伤害日志

为游戏文件日志DragonAge_1.log添加战斗日志功能:(命中几率掷骰、暴击几率掷骰、侧翼加成、目标按难度缩放后的抗性与防御、武器伤害掷骰、属性掷骰、护甲掷骰、抗性)

模组制作者资源和教程

适用对象:

- 希望更深入理解战斗机制,并在战斗中获取更丰富反馈的玩家和模组制作者。

免责声明:日志输出不会显示在游戏内——它会出现在游戏的日志文件中,路径为 c:\Users[用户名]\Documents\BioWare\Dragon Age\Logs\DragonAge_1.log
(您需要在(暂停)游戏时切换窗口来阅读,理想情况是使用两台显示器,一台显示游戏窗口,另一台显示 .log 文件编辑器/阅读器。)

Notepad++ 是记事本的绝佳替代品,也是周围最好的免费文本编辑器之一,拥有许多强大且实用的功能。虽然该程序默认未设置为实时监控文件变化,但只需稍作设置更改,即可实现该行为。当您通常在 Notepad++ 中打开一个文件,而文件内容被外部程序修改时,会弹出一个窗口提示“此文件已被其他程序修改。是否要重新加载?”。每次文件更新时都会显示此弹窗。如果关闭此提示,文件将在每次更新时自动静默重新加载。在 Notepad++ 中,前往 设置 > 偏好设置 > 杂项,勾选“静默更新”和“更新后滚动到最后一行”选项。第二个选项是可选的,它会在文件每次更新并重新加载后滚动到文件末尾。

功能说明:

- 在 ..\Logs\DragonAge_1.log 文件中启用大量调试消息(消息量巨大,因此您需要在每次游戏/测试后手动清理该文件,以防其无限膨胀)。
- 分步显示武器伤害计算过程。
- 显示目标属性:等级、最大生命值、防御、护甲,以及受难度影响的抗性(物理、精神、魔法和元素)。
- 位移骰子 掷骰
- 暴击几率骰子 掷骰
- 命中几率骰子 掷骰
- 法杖法术威力骰子 掷骰
- 护甲骰子 掷骰
- 利用弱点骰子 掷骰
- 偷窃骰子 掷骰
- 物理与精神抗性 掷骰(或缺失)
- 魔法抗性骰子 掷骰(或缺失)
- 元素伤害加成计算
- 元素伤害抗性计算
- 应用毒素效果 掷骰
- 以及更多调试信息...

安装方法:

- 将 combatlog.zip 解压到 override 文件夹("c:\Users[用户名]\Documents\BioWare\Dragon Age\packages\core\override")
- 将 ECLog.ini 文件解压到游戏安装目录("..\steamapps\common\Dragon Age Ultimate Edition\bin_ship")

输出示例:

[code]
Script combat_h.GetAttackResult 攻击者暴击几率:10.742096 = ( 攻击者近战或远程暴击属性 3.000000 + 武器上 CTC 2.200000 + 来自勇气的 CTC 0 ) * 侧袭 CTC 倍率 2.065788. 攻击者: gen00fl_alistair. 目标: lot120cr_soldier2_cut_2
Script combat_h.GetAttackResult 攻击者攻击力:136.828934 = (54 + 攻击者攻击属性:77.500000 + onWeaponAttack:0.000000 + fBonus(脚本):0.000000 + 侧袭加成:5.328939 (- 射程惩罚:0.000000)). 攻击者: gen00fl_alistair. 目标: lot120cr_soldier2_cut_2
Script combat_h.GetAttackResult 目标防御:58.500000 = 目标防御属性 58.500000 + 目标对远程攻击的加成 [仅限远程] 1.500000 + 低难度加成 0.000000. 攻击者: gen00fl_alistair. 目标: lot120cr_soldier2_cut_2
Script combat_h.GetAttackResult 暴击/命中 骰子 掷骰: 暴击骰 掷骰:86.886200 vs 暴击几率 =:10.742096 命中骰 掷骰:9.213538 vs 命中几率 = (攻击力 - 防御) =:78.328934. 攻击者: gen00fl_alistair. 目标: lot120cr_soldier2_cut_2
Script combat_h.GetAttackResult 目标属性:等级:5.000000 最大生命值:191.600006 伤害缩放脆弱性:1.000000 精神抗性:8.000000 物理抗性:21.000000 火焰抗性:5.000000 冰霜抗性:5.000000 闪电抗性:5.000000 自然抗性:5.000000 灵魂抗性:5.000000 魔法抗性:5.000000. 攻击者: gen00fl_alistair. 目标: lot120cr_soldier2_cut_2
Script [combat_damage] 武器伤害区间 gen_im_wep_mel_lsw_war: 材料缩放基础值:7.700000 至 (材料缩放基础值) * 伤害范围:11.550000 abilityForceMaxDamage:0
Script [combat_damage] 武器伤害 掷骰 gen_im_wep_mel_lsw_war:= 7.700000 + 随机数(3.850000) = 10.516855
Script [combat_damage] 缩放武器掷骰 = 武器掷出的伤害或人类徒手 (无随机数!) = 10.516855
Script [combat_damage] 属性加成 = fDmg:16.000000
Script [combat_damage] 主手 非双持 掷骰 随机数(fDmg * 50%, fDmg * 75%):9.076815
Script [combat_damage] 属性修正值:1.000000
Script [combat_damage] 缩放属性掷骰 = 掷出的属性加成 * 属性修正值:9.076815
Script [combat_damage] 难度加成:0.000000
Script [combat_damage] 暴击/背刺前伤害 = 缩放武器掷骰 + 缩放属性掷骰 + 难度加成 19.593670
Script [combat_damage] 护甲 0.7 + 0.3 掷骰 = 5.880000 + 随机数(2.520000) = 7.481350
Script [combat_damage] 攻击者护甲穿透:2.442857
Script [combat_damage] 护甲减免后的伤害 f伤害 - 最大值(0.0f, f护甲 - f护甲穿透) = 14.555177
Script [combat_damage] 伤害 += 添加角色属性伤害加成:2.400000 = 16.955177
Script [combat_damage] 伤害 += 添加条件伤害加成 (碎击和血狂) 0.000000 = 16.955177
Script [combat_damage] 等级缩放:1.000000
Script [combat_damage] 伤害 *= 伤害缩放;噩梦难度下 缩放伤害 > 16 :1.000000 = 16.955177
Script combat_h.GetAttackDamage 目标属性:等级:5.000000 最大生命值:191.600006 伤害缩放脆弱性:1.000000 精神抗性:8.000000 物理抗性:21.000000 火焰抗性:5.000000 冰霜抗性:5.000000 闪电抗性:5.000000 自然抗性:5.000000 灵魂抗性:5.000000 魔法抗性:5.000000. 攻击者: gen00fl_alistair. 目标: lot120cr_soldier2_cut_2
Script [combat_performattack] 武器基础速度:2.000000 修正:-0.100000 效果:1.000000
Script combat_h.Combat_PerformAttack 攻击结果:1 = COMMAND_RESULT_HIT. 攻击者: gen00fl_alistair. 目标: lot120cr_soldier2_cut_2
Script [combat_h.HandleCommandAttack] 近战攻击持续时间设置为 1.899999976
[/code]


[code]
Script [gen00fl_morrigan::rules_core.EVENT_TYPE_COMMAND_PENDING] 受控队友正在攻击 - 清除队伍攻击命令
Script combat_h.HandleCommandAttack 开始。攻击者:gen00fl_morrigan。目标:lot120cr_soldier2_cut_2
Script [combat_damage] 武器伤害区间 gen_im_wep_mag_sta_mgc:材料缩放基础值:4.800000 至 (材料缩放基础值) * 伤害范围:4.800000 abilityForceMaxDamage:0
Script [combat_damage] 武器伤害 掷骰 gen_im_wep_mag_sta_mgc:= 4.800000 + 随机数(0.000000) = 4.800000
Script [combat_damage] 缩放武器掷骰 = 武器掷出的伤害 4.800000
Script [combat_damage] 法杖伤害加成 1.000000
Script [combat_damage] 秘法专注 1.000000
Script [combat_damage] 法术威力 * 0.25 5.000000
Script [combat_damage] 法术威力组件 = 法术威力 * 0.25 * 法杖伤害加成 * 秘法专注 = 5.000000
Script [combat_damage] 法术威力组件 * 0.75 + 随机数(法术威力组件 * 0.25) 掷骰 = 4.386044
Script [combat_damage] 法杖伤害 武器掷骰 + 法术威力组件掷骰 = 9.186045
Script [core_h.GetCreatureRangedDrawSpeed] gen00fl_morrigan 的拔箭/施法速度是 0.100000 修正值是:0.000000 武器 (gen_im_wep_mag_sta_mgc):0.100000
Script combat_h.Combat_PerformAttack 攻击结果:1 = COMMAND_RESULT_HIT. 攻击者:gen00fl_morrigan. 目标:lot120cr_soldier2_cut_2
Script [combat_h.HandleCommandAttack] 远程瞄准循环持续时间设置为 0.100000001
[/code]


[code]
Script [sys_itemprop_h.ItemProp_DoEffect] 命中处理 nType = 1013
Script [effect_damage_h.Effects_ApplyInstantEffectDamage] 伤害: 2.000000000 标志:0x00000400 技能:0, 当前生命值:183
Script [effect_damage_h.IsDamageAllowed] 结果:1
Script [effect_damage_h] 应用元素伤害加成 2.000000 * 1.000000 = 2.000000
Script [sys_resistances_h.ResistDamage] lot120cr_soldier2_cut_2 抵抗 2.000000 点由玩家造成的伤害 类型 3 抗性值:0.050000: 1.900000
Script [effect_damage_h.Effects_ApplyInstantEffectDamage] 伤害: 1.899999976 标志:0x00000400 设置生命值为: 181.791732788
Script >> STATS V0.017 << 玩家 | 总造成伤害 = 11109.152344
Script [effect_damage_h.ApplyInstantEffectDamage] 伤害: 1.899999976
[/code]

[code]
Script [ability_h.DoRunSpellScript] 为技能运行法术脚本:100021 类型=3
Script [ability_h.DoRunSpellScript] 法术脚本 = skill_stealing.ncs
Script [skill_stealing.EVENT_TYPE_SPELLSCRIPT_IMPACT] 偷窃 (100021)
Script [skill_stealing] 使用偷窃技能。
Script [skill_stealing] 目标是生物。den200cr_ignacio
Script [skill_stealing] bStolenFrom = 0
Script [skill_stealing] nStealingRank = 4
Script [skill_stealing] bCasterCombat = 0
Script [skill_stealing] bTargetCombat = 0
Script [skill_stealing] 窃贼智力修正 = 46.000000
Script [skill_stealing] 窃贼偷窃技能 = 66.000000
Script [skill_stealing] 窃贼潜行技能 = 66.000000
Script 获取等级:17.000000
Script 获取等级:16.000000
Script [skill_stealing] 目标精神抗性 = 34.000000
Script [skill_stealing] 目标带等级 = 54.000000
Script [skill_stealing] 目标带等级 ( 16 vs 17 ) = 56.000000
Script [skill_stealing] 目标带战斗状态 = 56.000000
Script [skill_stealing] 窃贼偷窃 掷骰 窃贼得分 *= (0.8 + 随机数(0.4)) 52.830620
Script [UI_DisplayMessage 3503 0x00ffffff] 偷窃失败!
Script >> STATS V0.017 << 偷窃失败次数 = 12.000000
Script [core_h.GetCreatureFlag] 标志:0x00000008 值:0x00000000 结果:0
Script 获取剧情 [gen00pt_stealing] [STEALING_DEN_INFAMY] = [0]
Script 设置剧情 [gen00pt_stealing] [STEALING_DEN_INFAMY] -> [1]
Script 获取剧情 [gen00pt_stealing] [STEALING_DEN_KYLON_GUARD_SPOKE] = [0]
[/code]