生活情怀-神话暗黑-暗黑破坏神2

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2237|回复: 5
收起左侧

[修改攻略] 有关经验值Experience计算的详细流程

[复制链接]
  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 4 天

    [LV.2]石门叩响

    800

    主题

    20万

    元宝

    2363 小时

    在线时间

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    200873
    发表于 2020-1-15 05:18:22 | 显示全部楼层 |阅读模式
    By Go_Limyh (SB_GL)

    本帖出自:HOLY Clan及暗黑品网
    现在已经有很多关于经验值计算分配的帖子,但是大多是根据blizzard官方主页直接翻译的。不够详尽和准确。

    第一步:计算怪物基础exp1;
    第二步:引入游戏人数的影响—
    Exp2=基础exp1+基础exp1*(游戏内人数-1)/2;
    第三步:引入结盟因素——
    exp bonus=Exp2 * [1+89/256 * (同一区域内在Exp分配范围内结盟玩家数 - 1)];
    第四步:分享exp—
    Exp3=Exp bonus*CLVL/(同一区域内在Exp分配范围内所有玩家CLVL之和)
    第五步:个人exp获得—
    Exp=Exp3+Exp3*(神殿即50%+%exp物品提供)/100
    第六步:Exp惩罚


    注意:1.这里blizzard公布的恒定35%的partybonus是错误的,准确的说应该是每多一个玩家就多89/256≈35%;
       2.Exp分配范围为在怪物死亡地点2个屏幕以内.

    神话战网出品,必出精品!

    嫌怪物和地图素材太小???赶紧找我定制吧!!!
    QQ:281886256
    回复

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 4 天

    [LV.2]石门叩响

    800

    主题

    20万

    元宝

    2363 小时

    在线时间

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    200873
     楼主| 发表于 2020-1-15 05:18:37 | 显示全部楼层
    二.Exp惩罚--等级差惩罚
    由上经过第五步计算而分配到各个char的经验值Exp依角色等级和怪物等级差距乘一个百分比:
    5级以内100%,6-10级5-100%,10级以上5%。
    国内大部分的翻译版本到此为止,那么实际每差一级会差多少经验呢。

    见下表:
    若CLVL<25
    CLVL-MLVL   exp%
     0-5      100
     6       81
     7       62
     8       43
     9       24
    10或10以上   5

    MLVL-CLVL   exp%
     0-5      100
     6       88
       7         68
     8       36
     9       15
    10或10以上   2

    若CLVL>=25
    CLVL-MLVL   exp%
     0-5      100
     6       81
     7       62
     8       43
     9       24
    10或10以上   5

    MLVL-CLVL   exp%
    0-99            (CLVL/MLVL)

    神话战网出品,必出精品!

    嫌怪物和地图素材太小???赶紧找我定制吧!!!
    QQ:281886256
    回复

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 4 天

    [LV.2]石门叩响

    800

    主题

    20万

    元宝

    2363 小时

    在线时间

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    200873
     楼主| 发表于 2020-1-15 05:18:51 | 显示全部楼层
    三 Exp惩罚--级别惩罚
    Exp在经过等级差惩罚后,再根据人物相应的Level乘上对应的ExpRatio,进行级别惩罚

    Level   ExpRatio(单位 1/1024 )
    0      1024
    1      1024
    2      1024
    3      1024
    4      1024
    5      1024
    6      1024
    7      1024
    8      1024
    9      1024
    10    1024
    11    1024
    12    1024
    13    1024
    14    1024
    15    1024
    16    1024
    17    1024
    18    1024
    19    1024
    20    1024
    21    1024
    22    1024
    23    1024
    24    1024
    25    1024
    26    1024
    27    1024
    28    1024
    29    1024
    30    1024
    31    1024
    32    1024
    33    1024
    34    1024
    35    1024
    36    1024
    37    1024
    38    1024
    39    1024
    40    1024
    41    1024
    42    1024
    43    1024
    44    1024
    45    1024
    46    1024
    47    1024
    48    1024
    49    1024
    50    1024
    51    1024
    52    1024
    53    1024
    54    1024
    55    1024
    56    1024
    57    1024
    58    1024
    59    1024
    60    1024
    61    1024
    62    1024
    63    1024
    64    1024
    65    1024
    66    1024
    67    1024
    68    1024
    69    1024
    70    976
    71    928
    72    880
    73    832
    74    784
    75    736
    76    688
    77    640
    78    592
    79    544
    80    496
    81    448
    82    400
    83    352
    84    304
    85    256
    86    192
    87    144
    88    108
    89    81
    90    61
    91    46
    92    35
    93    26
    94    20
    95    15
    96    11
    97    8
    98    6
    99    5

    神话战网出品,必出精品!

    嫌怪物和地图素材太小???赶紧找我定制吧!!!
    QQ:281886256
    回复

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 4 天

    [LV.2]石门叩响

    800

    主题

    20万

    元宝

    2363 小时

    在线时间

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    200873
     楼主| 发表于 2020-1-15 05:19:14 | 显示全部楼层

    由此我们可做如下计算:
    SP mode
    Target=baal(H)
    Attacker=96 clvl char
    exp=4536276/99 = 45820*96 = 4398720/1024 = 4295*11 = 47245
    以上计算每步取整.

    注意:blizzard公布的级别惩罚资料只能提供一个根据Clvl经验急剧递减的信息,实际计算需要从上面的ExpRatio读取相关数据.
       Blizzard给出的那些百分比的数据是经过计算的结果.而在d2中系统是每步计算都取整的,
       所以直接按照blizzard公布的级别惩罚资料是无法准确计算出实际经验的。
    相关的FAQ:
    当两个中立玩家攻击同一个怪物的时候会如何?
      发出杀死怪物的那一次攻击的玩家将获得经验值

    在噩梦或地狱难度中死亡时经验的减少
      在噩梦或地狱难度中,你每次死亡都会失去经验值,但不论如何你的级别都不会降低。你失去的经验值将是你由当前级别到下一级别升级所需的经验的5%(噩梦难度)或10%(地狱难度)。例如,如果你在经验值为1,000,000时达到了N级,达到N+1级时需要的经验值为2,000,000,那么你死亡时减少的经验值将为 (2,000,000 - 1,000,000)的5% 或10%。
    捡回尸体时会恢复一定量的经验
      在噩梦或地狱难度中,当你死亡的时候会失去一些金币及你的尸体;在D2X的游戏里,如果你在事发当地捡回你的尸体,你会恢复所失去经验的75%(1.09中为50%--虫子注)。如果你选择了“存储并离开游戏”,你将无法取回所失去的经验。

    杀死被其他怪物复活的怪物会获得经验值吗?
      不会。

    佣兵和召唤兽会偷取你的经验值吗?
      不,使用佣兵并不会减少你的经验值。事实上,由于佣兵杀死的怪物的经验值计入你的经验值,你的经验值会有所增加。

    Nec的技能CE(尸暴)会影响以上Exp分配吗?
      不,CE和其他杀死怪物的方法和技能没有区别
    神话战网出品,必出精品!

    嫌怪物和地图素材太小???赶紧找我定制吧!!!
    QQ:281886256
    回复

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 4 天

    [LV.2]石门叩响

    800

    主题

    20万

    元宝

    2363 小时

    在线时间

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    200873
     楼主| 发表于 2020-1-15 05:19:35 | 显示全部楼层
    关于exp 封顶情况的解释

            by   Ruvanal

    在d2的各种数据计算中,对单个数据会有不同的上限。
    一般来说是4294967295(或者十六进制的FFFF FFFF)和2147483647(或者是十六进制的7FFF FFFF)。
    任何游戏计算中的中间数据都不能突破这种上限。
    Peter Hu(应该是游戏开发人员)在代码中增加了大量的检测函数以确保数据在超过最大上限的时候停留在最大值而不是造成溢出。


    由此我们来看看kb的情况:
    hell baal exp1=4536276
    8pp game下,exp2=4536276*(1+7/2)= 20413242
    考虑最多的exp bonus情况,exp3= 20413242*(1+89/256*7)=70090780
    还是远远小于2147483647,怎么解释在kb时出现的exp封顶呢?

    这是因为在游戏中,由于在十六进制表达下,除法的计算与乘法相比要消耗很多的时间。
    所以系统通常优先执行乘法运算,然后将部分除法的除数相乘后再做一次总的除法,从而减少游戏计算的时间。
    只有一种情况例外,即除数是2的若干次方的情况下。此时在十六进制意义下相除只是简单的右移。


    回头再来看游戏对于kb exp的计算。
    monstats.txt
    hell difficulty Baal, Exp(H)=6460
    monlevel.txt
    L-XP(H) for a level 99=70221
    所以hell baal exp1=6460*70221%=4536276

    但是再考虑到上面所说的情况,真实的计算过程应该是
    6460*70221=453627660,而除以100的计算被推后。
    如果在exp计算中起作用的上限是7FFF FFFF(2147483647)的话,是可以在3-4 pp game中达到的。
    因为在exp计算中,真正的上限和乘除法的计算序列是未知的,所以无法准确的得出不同情况下kb的exp封顶人数。
    神话战网出品,必出精品!

    嫌怪物和地图素材太小???赶紧找我定制吧!!!
    QQ:281886256
    回复

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 4 天

    [LV.2]石门叩响

    800

    主题

    20万

    元宝

    2363 小时

    在线时间

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    200873
     楼主| 发表于 2020-1-15 05:19:50 | 显示全部楼层
    关于pet经验的获得:
    一个级别为X的pet杀死某怪物所得的经验等于同级别的玩家杀死该怪物应该获得的经验值。
    玩家或者玩家的随从(如nec的骷髅,dru的狼)杀死怪物时,pet 获得经验为应得经验的1/3。
    盟友杀死怪物时,pet不会获得经验。
    pet一次最多只能获得从当前级别升级所需的全部经验的1/64。
    pet升级所需经验计算
    experience_function(level) = (Exp/Lvl) * (level+1) * level ^ 2
    其中level为pet当前级别:
    Exp/Lvl可在下表中对应查找(CF hireling.txt)

                                Normal Nightmare Hell
    Rogue Scout, Fire             100      110    120
    Rogue Scout, Ice              105      115    125
    Desert Warrior                110      120    130
    Eastern Sorceror, Fire        110      120    130
    Eastern Sorceror, Lightning   110      120    130
    Eastern Sorceror, Cold        120      130    140
    Barbarian                     120      130    140

    由此我们可以看到除了力量,敏捷,技能级别等等因素之外,从普通雇佣的pet比地狱雇佣的pet的另一好处:升级所需的exp少(不过,从低级升到跟地狱难度佣兵相当的等级需要大量的时间)

    〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓分割线〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

    关于佣兵的exp,之前karon的资料


    引用:
    发信人:cata
    -----------

    雇佣兵经验获得的计算

    假设一个雇佣兵(Hireling)从(h-1)级升到h级需要经验为△Exp,那么
    △Exp=h^2×(h+1)×M - (h-1)^2×h×M
    =( 3×h^2 - h )×M
    其中M为某种Hireling对应的参数,M直接影响到佣兵升级的快慢,M越大,要的经验越多.
    现将各种类型的佣兵对应的M列表如下:
    ====================================================
    M值 Normal NightMare Hell
    ----------------------------------------------------
    act1 fire mm 100 110 120
    act1 cold mm 105 115 125
    act2 warrior 110 120 130
    act3 fire pet 110 120 130
    act3 cold pet 120 130 140
    act3 light pet 110 120 130
    act5 barbarian 120 130 140
    ====================================================
    可以看出normal难度佣兵的M值最小,所以每升1级所需要的经验也越少,升级就越快.同样
    对于act1 mm,fire的要比cold的升级快.


    如果在n人游戏中杀死一个怪物(基础经验值为E),那么会有多少经验分到佣兵头上?

    1.按游戏人数计算出这个怪物的实际经验值E(n),E(n)是E的百分之多少如下所示:
    ================================
    Player monster_Exp
    1 100%
    2 175%
    3 250%
    4 325%
    5 375%
    6 400%
    7 425%
    8 450%
    ================================
    比如在7pp game,那么这个怪物被杀死给出的经验是E(7)=E*425%
    那么这个E(n)值将如何分配给佣兵?再往下看......

    2.如果这个怪物是被Player所杀,那么E(n)要除以3.如果是被佣兵自己或是Player的
    minion(例如golem,revive,wolf,valkyrie等等),那么保留原值E(n).如果被其他人或其
    佣兵或minion杀掉,那么E(n)变成0,佣兵什么也分不到.
    如果佣兵分到了,不论是1/3还是全值,继续往下看......

    3.等级惩罚.同样,一个90级的pet杀掉1级的怪物是不可能拿到全值E(n)的,佣兵经验获得
    的等级惩罚规则和Player一样,在此从略.(想知道算法的看精华区x-)

    4.等级惩罚后剩下的值也未必全能被佣兵得到,游戏将检测这个值是否大于△Exp/64,如
    果大于则佣兵最后得到的经验只能是△Exp/64.
    也就是说,佣兵获得经验有△Exp/64的上限,即一个佣兵从(h-1)级升到h级最少也要杀掉
    64只怪物.

    以前有种"佣兵得经验与游戏人数无关"的错误说法,究其原因就是很多情况下1 pp game
    的怪物经验值已经大于或接近△Exp/64了.
    神话战网出品,必出精品!

    嫌怪物和地图素材太小???赶紧找我定制吧!!!
    QQ:281886256
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|神话暗黑 ( 陕ICP备18004004号-1 )

    GMT+8, 2026-1-25 17:23 , Processed in 0.104698 second(s), 22 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表