无标题文档
 当前位置:魔兽世界 >> 老资料

伤害和治疗产生原理及程序模拟

更新时间:2008-1-28 18:25:52  参与评论  我要投稿  进入论坛

  需要的条件有:随机函数f(x)(从0-1之间随机取值的函数);致命几率为K;伤害或治疗的数值为S1-S2;

  目标的减伤或减弱治疗效果系数为M。

  首先来讨论可以产生致命效果的法术和物理攻击的数值产生原理:

  第一步先判定是否出致命:随机数Z=f(x)

  当Z不大于K时,出致命数值

  当Z大于K时,出普通数值

  第二步计算数值:

  普通数值S3=[S1+(S2-S1)*f(x)]*(1-M)*其他修正(存在的话)

  致命数值S4=S3*致命倍率

  既当Z大于K时,最终数值S=S3;当Z不大于K时,S=S4。

  对于持续性伤害和治疗法术,每隔若干秒产生的伤害或治疗为C。则S=C*(1-M)*其他修正(存在的话)

  下面我们来举例说明:某猎人31/20/0天赋,远程致命几率为16.11%,远程伤害无状态为315-387(实际战斗还包括雄鹰和印记产生的伤害),武器速度2.9,攻击的目标减伤40%。本人编程不好,只能用QB模拟下。

  K=0.1611

  M=0.4

  S1=315+(110+113)*2.9/14

  S2=387+(110+113)*2.9/14

  Z=RND

  S3=[S1+(S2-S1)*RND]*(1-0.4)

  S4=S3*2.6

  IF Z<=K THEN S=S4

  IF Z>K THEN S=S3

  PRINT FIX(S)

  每自动射击一次,触发程序一次。对于法术,奥射S1=S2=奥术伤害。瞄准和多重S1,S2还要加上额外伤害。

  本人二区迷雾之海-云淡风轻公会-暗夜猎人剑精灵


相关文章

 
站内搜索:
最佳言论