| 暗黑首页 | 基础知识 | 角色职业 | 魔法技能 | 物品装备 | 妖魔鬼怪 | 经验心得 | 官方公告 |
| 秘籍修改 | 任务攻略 | 非常技术 | 场景地图 | 常见问题 | 暗黑下载 | 新手指引 | MOD 制作 |
暗黑下载
暗黑破坏神2下载
暗黑2玩家交流
暗黑破坏神2新手指引
网络版暗黑简单进入说明:
1、下载1.11B版本暗黑2
2、其他版本覆盖1.11B补丁
3、运行91D2战网注册表
4、用91D2登陆器或D2loader启动游戏,点击battle.net进入游戏
经验分享
·RR详尽流程经验分享
·FZ永久无杖key制作
·新人乘坐bus全流程注
·战网穷人KB经验分享
·战网mf和bus一体sor
·如何高效轻松八开DYKB
·有交易价值物品的Drop率
人物练法
·HOLD住全场的男人PAL
·经典法师SOR再续前缘
·打造最帅的狂乱者BAR
·穷人的的暴力熊德DUR
·暗之幽灵刹那芳华ASN
·打造最强势信心弓AMA
·追寻五环的炫目NEC
非资料片
·非资料片KD房间注意项
·91D2非资料技术贴合集1
·91D2非资料技术贴合集2
·战网FZ单人8开SOLO方法
·战网FZ物品价值之我见
·影像资料记录FZ KD历程
首页 > 物品装备
暗黑破坏神2经验获取的Bug
作者:vinceit 2017-07-24

D2C模式,即非资料片模式下,八人难度杀地狱Diablo时,如果八人结为盟友并均处在经验获取范围内,则每个人都只能获得1点经验。同样的情况还发生在D2X模式地狱难度毁灭王座二小队——Achmel The Cursed及其Minion。同样,如果八人结为盟友且处于经验获得范围内,则每杀死一只怪物,每人只能获得1点经验。
   这个Bug的产生,是因为在程序运算过程中,有一步数据格式的转换,32位→64位。而在转换过程中数值发生了非预期的变化,导致最后的程序判断失败,最终返回经验值为1. 以下为详细说明。为了说明方便,以下数据均以十六进制形式书写。

   非资料片地狱Diablo. 基础经验值为exp=844,538. (王座二小队解开者的经验值为300*51195/100*5=767925)
一、八人难度时,计算过程如下
1.经验值受人数影响调整。exp1=exp*(8+1)/2=3800420=0x0039FD64
2.exp2=exp1*(8-1)=0x0195EDBC
3.exp3=exp2*89=0x8D1FA65C
4.将32位的exp3符号扩展成64位的值。由于exp3的符号位是1,故而扩展后的前32位均为1,记为exp_Temp=0xFFFFFFFF
5.将exp_Temp同0x000000FF作逻辑与操作。最终结果为exp_Temp=0x000000FF
6.exp4=exp3+exp_Temp=0x8D1FA75B.
7.exp5=exp4/256=0xFF8D1FA7。程序中除以256的方法都是算数移位,即被除数数值往右移八位,前边空出来的八位用符号位补足。由于符号位是1,所以补入1
8.exp6=exp5+exp1=0xFFC71D0B
9.exp7=exp6/同一场景内所有玩家级别之和
————————————————————————————————————
10.exp8=exp7*当前玩家级别
11.调用经验修正函数执行经验修正
   11.1 首先进行经验封顶判断:exp9=min(exp8,0x7FFFFF)
   11.2 然后判断结果是否有误:若exp9<=0,则exp9=1,直接转入11.3。
        若exp9>0,则开始经验修正步骤。具体同Experience计算的详细流程中“二.Exp惩罚--等级差惩罚”和“三.Exp惩罚--级别惩罚”两步。
   11.3 获得最终经验值。
可以看出,在1-9步中,程序已经获得经验值exp6为负值,故而导致exp9为负值,最终经验值=1.

二、七人难度时,算法同上
1.经验值受人数影响调整。exp1=exp*(7+1)/2=3378152=0x00338BE8
2.exp2=exp1*(7-1)=0x01354770
3.exp3=exp2*89=0x6B85D5F0
4.将32位的exp3符号扩展成64位的值。由于exp3的符号位为0,所以扩展后exp_Temp=0x00000000
5.将exp_Temp同0x000000FF作逻辑与操作。最终结果为exp_Temp=0x00000000
6.exp4=exp3+exp_Temp=0x6B85D5F0
7.exp5=exp4/256=0x006B85D5. 这里用的是算数移位,由于符号位是0,所以补入0
8.exp6=exp5+exp1=0x009F11BD
9.exp7=exp6/同一场景内所有玩家级别之和
————————————————————————————
10.exp8=exp7*当前玩家级别
11.调用经验修正函数执行经验修正,获得最终经验值。
此处计算结果正常。

苏ICP备14007949号-2

暗黑2战网 | anhei2 | 暗黑破坏神2 | 暗黑战网 | 暗黑2 | 暗黑破坏神3 | 暗黑3 | | anhei3 | 暗黑2下载

Copyright © 2007-2021 91D2 Corporation, All Rights Reserved

91d2战网 版权所有