左右分栏
战网首页
封禁账号自查
注册游戏账号
游戏密码找回
社区服务
银行
道具中心
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
角色技能模拟器
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
网站首页
战网论坛
暗黑2下载
战网注册表
增值服务办理
战网交易集市
战网聊天室
暗黑2资料库
帖子
用户
版块
帖子
搜索
91D2战网官方QQ群: 〖 一群:907473582 〗 〖 二群:289990050 〗 〖 三群:6713328 〗
91D2战网-暗黑破坏神2-暗黑2战网
>
『 暗黑资料库 』
>
AR/DEF及命中检测计算公式
发帖
回复
返回列表
新帖
2220
阅读
0
回复
AR/DEF及命中检测计算公式
[复制链接]
上一主题
下一主题
离线
铃铛
UID:83661
注册时间
2009-08-31
最后登录
2021-02-27
在线时间
3431小时
发帖
59624
搜Ta的帖子
精华
4
金钱
6311
91币
0
信誉
0
访问TA的空间
加好友
用道具
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
发帖
59624
金钱
6311
91币
0
信誉
0
资产
0 IST
在线时间
3431 小时
注册时间
2009-08-31
最后登录
2021-02-27
加关注
发消息
只看楼主
倒序阅读
使用道具
楼主
发表于: 2010-11-20 14:25:26
AR/DEF及命中检测计算公式
解析者: Myrdinn
译注者: Louis-J
本帖出自
[url=
]http://til.sggo.cn/]
光耀者-混沌要塞
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
分割线
〓〓〓〓〓〓〓〓〓〓〓〓〓
前言:
Tohit Functions(v1.11)
,是
Myrdinn
于2005年8月在v1.11刚升级时通过对汇编程序的hardcoded解析而完成的,之所以没有第一时间编译过来,是因为之前
Tommi Gustafsson
编撰的To Hit Calculations(v1.10) -
http://web.archive.org/web/20070208035654/users.tkk.fi/~tgustafs/tohit.html
-已经很全面了,且v1.11除了在个别程序段有些小变动外,基本没有什么改变。
昨天又翻了下,发现其中有些小改变还是很有趣的(哪些小地方改变了,大家自己看下去发现-o-),且有些地方很有测试的价值。当然,对想了解Tohit具体流程的玩家来说,也有一定的参考价值。
Myrdinn
在几个英文/法文网站发这个帖子时,并没有给出程序段而是直接给出了解析结果,而我找不到这个Functions的地址具体在哪,所以没能更深入地了解具体的运行。
带*的基本都是我加的注释,难免有疏漏或错误的地方。
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
分割线
〓〓〓〓〓〓〓〓〓〓〓〓〓
1) Defence Rating(DR): 防御值
1a) 玩家
DR1 = [(armorclass+basedefense)+(armorclass+basedefense)×item_armor_percent%]×Armor_override_percent
*armorclass: 装备提供的总防御值
*basedefense: int(Dexterity/4)
*item_armor_percent%: 提升防御值的%,包括各种技能、非防具上的(如武器Ribcracker Quarterstaff上的,技能holyshield、各种冰甲等)
*Armor_override_percent: =0,特指Bar的Berserk技能
DR2 = DR1 + Def Vs Missile,Def Vs Melee
*可以看到,如果在使用Berserk技能时,如果装备提供Def Vs Missile或Def Vs Melee,此时的防御值并不是我们所想象的那样为0。
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
分割线
〓〓〓〓〓〓〓〓〓〓〓〓〓
Myrdinn
没有给出Monster的DR解析,不过,我相信大家都知道具体的计算过程,下面仅给出简单的公式。
1b) 怪物
DR2 = AC_MonStats.txt×AC%_MonLvl.txt×(1+Other%)
*other%: 如Stone Skin属性
1c) 佣兵
DR2 = [Defense + int[△Hlvl×(Def/Lvl)] + int(Dexterity/4) + Item_Defense]×(1+Other%)
*Defense: 基础等级的防御值(CF Hireling.txt)
*△Hlvl: 与基础等级的等级差
*Def/Lvl: 防御/等级因子(CF Hireling.txt)
*Dexterity: 敏捷,包括自身和装备提供的
*Item_Defense: 装备提供的防御
*Other%: 非装备提供的防御%
1d) 玩家的各种Minion
可以从Skills.txt,MonStats.txt中得到各种Minion的具体防御值,当然如女武神、影子等可以通过装备/技能(如Shadow使用魔影斗篷)得到提升,不一一赘述。
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
分割线
〓〓〓〓〓〓〓〓〓〓〓〓〓
2) Attack Rating: 攻击准确率
2a) 玩家
①AR1 = Dexterity×5 + Tohit - (35) + ToHitFactor(CF Charstats.txt)
*Tohit: 直接加的AR,即+x to attack rating属性
②调用ITD和Fractional Target AC程序段
ITD
仅对怪物有效
如果目标品质 = 0A,则无效
如果目标是eBoss(CF Monstat.txt),则无效
如果目标是佣兵,则无效
*0A的范围不能确定,应该是超级金怪(CF superuniques.txt)和随机金怪以及对
冠军
级Champion怪物。
*关于ITD的被作用对象,会另文讨论,v1.10时
Myrdinn
对此做过hardcoded的程序解析,我有空会试着做下v1.11b的解析。
Fractional AC
-Target Defense X%(即如ETH Rune):
如果目标为玩家(可能包括玩家的minions和summoner)、佣兵或者eBoss怪物,则效果减半
上限为100%
DR = DR2 - DR2 × (X/100)
*这里
Myrdinn
可能漏看了些程序段,如的-def(如Inner Sight,-X to target defense per hit)和-%def(Skill)(如Cloak of Shadows/Battle Cry/Conviction等);
实际计算时-def为: armorclass = armorclass-def
-%def(Skill): armorclass+basedefense = (armorclass+basedefense) - (armorclass+basedefense)×%def(Skill)
Monster Specifics AR%: 对特定怪物的AR%奖励
如果怪物为Demon,则AR%(Skill) = AR%(Skill) + item_demon_tohit
如果怪物为Undead,则AR%(Skill) = AR%(Skill) + item_Undead_tohit
*item_demon_tohit: +X To Attack Rating Against Vs Demon
*item_Undead_tohit: +X To Attack Rating Against Vs Demon
*是的,以上都算AR%,而不是+AR —— 这个测试验证起来比较简单
是否为Attack ranged范围攻击
如果是,则忽略AR%(Mastery)
*AR%(Mastery): Bar的各种武器掌握,Asn的爪掌握
所以如Bar的Double Throw,Asn的Blade Fury/Blade Sentinel不能从其Weapon Mastery上的AR%属性处得到AR%加成 —— 这个我之前在
Ranged Attack Skills上的Attack Rating% bonuses
中已经做过测试验证
③
AR% = AR%(Mastery + Skill + item_tohit_percent + attack_vs_montype + item_demon_tohit + item_Undead_tohit)
AR%(Mastery): Bar的各种武器掌握,Asn的爪掌握
AR%(Skill): 技能提供的AR%,如Blessed Aim/Enchant
AR%(item_tohit_percent): 装备提供的AR%
AR%(attack_vs_montype): 对不同怪物类型提升的AR%奖励
AR%(item_demon_tohit): 前面已经解释过
AR%(item_Undead_tohit): 前面已经解释过
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
分割线
〓〓〓〓〓〓〓〓〓〓〓〓〓
2b) 怪物
AR = ToHit + Tohit(Skill) + 5×Dexterity
*ToHit: Monster: TH_MonStats.txt×TH%_MonLvl.txt;
Mercenary: [AR + int[△Hlvl×(AR/Lvl)],CF Hireling.txt;
Play's Minion: CF Skills.txt & MonStats.txt,不一一赘述
*Tohit(Skill): 技能上直接加的AR
*5×Dexterity: 此处应该是指Mercenary(佣兵也属于怪物的一种),
Myrdinn
认为此处的敏捷是指装备提供的,佣兵自身的敏捷不算在内,但我认为如防御计算一样,自身和装备提供的敏捷都参与计算;
Play's Minion(如Asn的Shadow自身提供的,Shadow/Valkyrie装备提供的)是否能从敏捷上得到加成未能确定 —— 也许需要测试验证,但是忒有难度了
AR% = item_tohit_percent (No Skill Bonus)
*item_tohit_percent: 装备上的AR%,此处应该是指Mercenary、Asn的Shadow、Ama的Valkyrie等
*No skill Bonus: 技能上的AR%,这个有点晕,雇主或结盟成员的技能上(如Blessed Aim/Fanaticism/Heart of Wolverine)提供的AR%对佣兵,Nec的骷髅等都是没有用的?
即便如Duriel的Jab,ACT2 Pet本身的Jab/Blessed Aim都不能得到AR%加成?
怪物自身的Blessed Aim/Fanaticism等特殊属性的AR%也是没作用的?
或者说上面AR中的Tohit(Skill),这个已经是经过AR%(Skill)提升后的AR
——需要做些测试验证
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
分割线
〓〓〓〓〓〓〓〓〓〓〓〓〓
2c) 最终攻击准确率
Final AR = AR + AR×(AR%/100)
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
分割线
〓〓〓〓〓〓〓〓〓〓〓〓〓
3) ToHit Formula: 命中率公式
检测参数
如果DR<0,则AR = AR - DR且DR = 0,*即Tohit% = 2 × [ALVL / (ALVL + DLVL)] × 100
如果AR<0,则DR = DR - AR且AR = 0,*即命中率为下限5%
如果DR<0,则AR = AR - DR(如果AR和DR都<0,将进行二次检测),*即Tohit% = 2 × [ALVL / (ALVL + DLVL)] × 100
*如检测到防守者为Running状态,则跳过ToHit%程序,即100%命中。
命中率公式
Tohit% = 2 × [ALVL / (ALVL + DLVL)] × 100 × [AR / (AR + DR)]
ALVL: 攻击者等级
DLVL: 防守者等级
AR: 攻击者的最终攻击准确率
DR: 防守者的最终防御值
命中率下限为5%,上限为95%
击中后
攻击者调用PMH子程序段
防守者调用Block/Evade等子程序段
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
分割线
〓〓〓〓〓〓〓〓〓〓〓〓〓
共
条评分
回复
举报
发帖
回复
返回列表
https://bbs.91d2.cn
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
隐藏
快速跳转
〖 暗黑破坏神综合讨论大区 〗
『 暗黑综合讨论区 』
『 新人培训区 』
『 增值服务/特色系统专区 』
『 技术资源区 』
〖 暗黑破坏神FZ/HC/PVP区 〗
『 非资料片讨论区 』
『 非资料片物品交易/拍卖区 』
『 PVP专区 』
『 专家模式讨论区 』
〖 暗黑破坏神物品交易大区 〗
『 物品估价区 』
『 物品交易区 』
『 物品拍卖区 』
『 极品博物馆 』
〖 暗黑资料/活动/技术大区 〗
『 赛事活动专区 』
『 天使辅助专区 』
『 暗黑文化专区 』
『 暗黑资料库 』
『 人物角色区 』
『 凭水相逢 』
〖 暗黑破坏神2重制版:狱火重生专区 〗
『 暗黑2重制版讨论区 』
『 暗黑2重制版交易区 』
『 暗黑2重制版拍货区 』
〖 战队/部落/联盟 〗
『 TOP战队 』
『 BT战队 』
『 IF战队 』
『 DX弟兄联盟军团 』
『 部落级战队联盟专区 』
『 战队综合管理区 』
〖 暗黑战网管理办公室 〗
『 战网游戏事务/投诉专区 』
『 论坛(BBS)人事/投诉专区 』
『 论坛管理办公室 』
关闭
关闭
选中
1
篇
全选