永恒之柱吧 关注:18,874贴子:196,200
  • 4回复贴,共1

力量 感知 敏捷 分配与对物理攻击的影响

取消只看楼主收藏回复

自古一楼不言事


IP属地:安徽1楼2018-06-11 20:56回复
    力量、敏捷、感知
    一、前提:
    1. 2代版本1.1
    2. 只计算单独一种情况下,其他的 带入具体系数 以此类推。
    二、公式:
    1.命中,这里取100次攻击,roll 100 产生 1~100各出现一次(因为每个都是1%概率,1万亿次攻击 一乘一除最后结果一样)
    2.累计100次伤害,除以100,算出每次攻击伤害的平均值。
    3.dps=(每次攻击的伤害)/(每次攻击的所用时间)
    这里设 ,X 为 命中减去防御的值(感知影响),Y 为 力量影响值,Z 为敏捷影响值。
    其中Xc为技能或装备的精准加值,Yc(含直接加伤)、Zrc(含装备加减成速度)、Zac同理。
    当0<= X + Xc<=30时,
    100次攻击累计伤害的基础值 :dmg_base=(30 - X - Xc)* 0 + 20 * graze_function + 50 *(1+0.03Y + Yc)+ (X + Xc) * (1.55 + 0.03Y + Yc)
    单次攻击伤害:dmg=(dmg_base)*(dmg_roll)/100
    单次攻击时间:t=t_recovery_base/recovery_speed + t_action_base/action_speed=t_recovery_base/(1 + 0.03Z + Zrc)+t_action_base/(1+0.03Z+Zac)
    最终通用公式:
    dps=dmg/t=[(30 - X - Xc)* 0 + 20 * graze_function + 50 *(1+0.03Y + Yc)+ (X + Xc) * (1.55 + 0.03Y + Yc)] * [(dmg_roll)/100]/ [t_recovery_base/(1 + 0.03Z + Zrc)+t_action_base/(1+0.03Z+Zac)]
    其中
    1.graze_function 当(-1+0.03Y+Yc)为正值时为(0.03Y+Yc),负值时转为1/(2-0.03Y-Yc)
    2.其他大部分采用 正值算法,因为出现负的情况非常少(比如 命中 但是伤害加成值为负等情况)。
    三、问题
    1.不同bd 不同装备,Xc、Yc、Zrc、Zac 系数不同
    2.X、Y、Z、dps 为四维,没法画图展现,这里只从极值 最大值 简单计算下
    ---------------------------------------------------------------------------------------------------------------------------------------
    情况一 裸体白板
    系数说明
    1.Xc、Yc、Zrc、Zac 暂且设为0,graze_function 为 1/(2-0.03Y-Yc) 因为白板不可能加出44点力量值。
    2.0<= X <=30,等级相当的正常情况下。
    3.设 dmg_roll=20,t_recovery_base=4,t_action_base=0.8;
    系数设定
    graze_function = 1/(2-0.03Y-Yc)
    Xc=0;
    Yc=0;
    Zrc=0;
    Zac=0;
    t_action_base=0.8;
    t_recovery_base=4;
    约束条件
    -7<=X<=10;
    -7<=Y<=10;
    -7<=Z<=10;
    X+Y+Z=20;
    计算:略
    结果:
    str=
    7.322183754791489
    per=
    2.678977201900436
    dex=
    9.998834870309832
    maxVal=
    4.168446968589194
    --------------------------------------------------------------------------------------------------------------------------------------
    情况二 白板 双持(含有双持加成 双武器战斗风格)
    系数设定
    graze_function = 1/(2-0.03Y-Yc)
    Xc=0;
    Yc=0;
    Zrc=0.429+0.176;
    Zac=0;
    t_action_base=0.5;
    t_recovery_base=3;
    约束条件
    同上
    结果:
    str=
    9.999954232346251
    per=
    8.061944115581415
    dex=
    1.938099191159896
    maxVal=
    8.054968061497240
    --------------------------------------------------------------------------------------------------------------------------------------
    情况三 白板 单手
    系数设定
    graze_function = 1/(2-0.03Y-Yc)
    Xc=12;
    Yc=0;
    Zrc=;
    Zac=0;
    t_action_base=0.8;
    t_recovery_base=4;
    约束条件
    同上
    结果:
    str=
    9.999998298686778
    per=
    2.354658139736921e-06
    dex=
    9.999999146993291
    maxVal=
    5.360588175188809
    -------------------------------------------------------------------------------------------------------------------
    情况四 双持 魂刃 + 游荡 20级 带装备

    系数设定
    graze_function =(0.03Y+Yc)
    Xc=3(装备感知) + 5 (匕首额外带5)+ 10(致盲技能)= 18;(传奇装备+15精准,不累计在内)
    Yc=0.25(致盲)+0.6(偷袭)+0.5(致死)+0.2(吸能之鞭)+0.2(呕吐锥 疯狂醉汉)+0.6(传奇武器)= 2.35;
    Zrc=0.1(黑刃兜帽)+0.2(呕吐锥 疯狂醉汉)+ (0.05+0.03)(安格尔的敏捷之触)+ (0.15-0.03)(朗姆酒) + (-0.2 + 0.111)异端皮革 + 0.429(双持)+ 0.176(双武器姿态)= 1.016;
    Zac=0.1(黑刃兜帽)+0.2(呕吐锥 疯狂醉汉)+ (0.05+0.03)(安格尔的敏捷之触)+ (0.15-0.03)(朗姆酒)= 0.5;
    t_action_base=0.5;
    t_recovery_base=3;
    约束条件
    同上
    结果:
    str=
    2.176585404444776e-07
    per=
    9.999999836168605
    dex=
    9.999999892658657
    maxVal=
    41.154027387397889
    很明显,伤害加成都2.35,力量那10点真是毛毛雨。
    ---------------------------------------------------------------------------------------------------------------
    可以看出在后期,属性在物理攻击上的收益,基本上可有可无。
    最后 如果错误,欢迎 指正与讨论


    IP属地:安徽2楼2018-06-11 20:57
    收起回复
      2025-07-31 03:37:10
      广告
      不感兴趣
      开通SVIP免广告
      %%
      clc;clear;
      syms X Y Z Xc Yc Zrc Zac t_recovery_base t_action_base
      dmg_roll=20;
      graze_function1 = (0.03*Y+Yc);
      %graze_function2 = 1/(2-0.03*Y-Yc);
      dmg_base = (30 - X - Xc)* 0 + 20 * graze_function1 + 50 *(1+0.03*Y + Yc)+ (X + Xc) * (1.55 + 0.03*Y + Yc);
      dmg=(dmg_base)*(dmg_roll)/100;
      t=t_recovery_base/(1 + 0.03*Z + Zrc) + t_action_base/(1+0.03*Z+Zac);
      dps=dmg/t
      %%
      % 白板
      clc;clear;
      syms Xc Yc Zrc Zac t_recovery_base t_action_base
      Xc=0;
      Yc=0;
      Zrc=0;
      Zac=0;
      t_action_base=0.8;
      t_recovery_base=4;
      dps_fuction = @(x)((-1)*((3*x(2))/10 + 10*Yc - 4/((3*x(2))/100 + Yc - 2) + ((x(1) + Xc)*((3*x(2))/100 + Yc + 31/20))/5 + 10)/(t_action_base/((3*x(3))/100 + Zac + 1) + t_recovery_base/((3*x(3))/100 + Zrc + 1)));
      lb = [-3,-3,-3];
      ub = [10,10,10];
      A = [1,1,1];
      b = [20];
      Aeq = [];
      beq = [];
      x0 = [7,3,10];
      [x,fval] = fmincon(dps_fuction,x0,A,b,Aeq,beq,lb,ub);
      disp('str=')
      disp(x(2))
      disp('per=')
      disp(x(1))
      disp('dex=')
      disp(x(3))
      disp('maxVal=')
      disp(-fval)
      %%
      % 神装
      clc;clear;
      syms Xc Yc Zrc Zac t_recovery_base t_action_base
      Xc=18;
      Yc=2.35;
      Zrc=1.016;
      Zac=0.5;
      t_action_base=0.5;
      t_recovery_base=3;
      dps_fuction = @(x)((-1)*((21*x(2))/50 + 14*Yc + ((x(1) + Xc)*((3*x(2))/100 + Yc + 31/20))/5 + 10)/(t_action_base/((3*x(3))/100 + Zac + 1) + t_recovery_base/((3*x(3))/100 + Zrc + 1)));
      lb = [-3,-3,-3];
      ub = [10,10,10];
      A = [1,1,1];
      b = [20];
      Aeq = [];
      beq = [];
      x0 = [7,3,10];
      [x,fval] = fmincon(dps_fuction,x0,A,b,Aeq,beq,lb,ub);
      disp('str=')
      disp(x(2))
      disp('per=')
      disp(x(1))
      disp('dex=')
      disp(x(3))
      disp('maxVal=')
      disp(-fval)


      IP属地:安徽7楼2018-06-11 21:39
      回复
        没啥结论,基本就是缺什么补什么 做平衡点。但是 力量在后期(装备) ,由于装备加成太高,导致加力量收益太低。
        四维 切片图,我后面再补。


        IP属地:安徽13楼2018-06-11 22:28
        回复(4)
          情况一(纯白板)的图

          情况二(白板 双持)

          情况三(白板 单手)

          情况四(20级 双持 魂刃 游荡 带装备)的图


          IP属地:安徽21楼2018-06-12 21:35
          回复(7)