Project1

标题: 请教下法术伤害... [打印本页]

作者: 无心孤云    时间: 2009-2-7 03:58
标题: 请教下法术伤害...
我想法术伤害定义为:
法术伤害=法术威力+施法者魔力+施法者攻击力/2-受术者法防-受术者物防/2

在脚本里我改的乱七八糟不知道该怎么改下去了...很多地方都不知道是啥意思...请前辈帮我改正下...谢谢...

  1.       # 计算威力
  2.       power = skill.power + user.int + user.atk / 2 * skill.atk_f / 100
  3.       if power > 0
  4.         power -= self.pdef * skill.pdef_f / 200
  5.         power -= self.mdef * skill.mdef_f / 200
  6.         power = [power, 0].max
  7.       end
  8.       # 计算倍率
  9.       rate = 0
  10.       rate += (user.str * skill.str_f / 100)
  11.       rate += (user.dex * skill.dex_f / 100)
  12.       rate += (user.agi * skill.agi_f / 100)
  13.       rate += (user.int * skill.int_f / 100)
  14.       # 计算基本伤害
  15.       self.damage = power + rate - self.mdef + self.pdef / 2
复制代码

作者: 片羽樱    时间: 2009-2-7 04:23
下面的rate是那些相关度(就是“某某F”那些)的加成。
你那个公式没有把那些相关度考虑进去(当然可以也可以)。
问题是最后那段,又减了一次魔防,而且变成了加上物防的一半。那这样会造成物防越高反而魔法损血越多,应该是漏了括号吧。

嗯,按照你所说的那个公式的话
直接这样:
power = skill.power + user.int + user.atk / 2
power -= self.mdef
power -= self.pdef / 2
power = [power, 0].max
self.damage = power

这样的话那些相关度什么的都没作用了,而且公式写死了,如果要有物理系技能也改变不了了。 [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 无心孤云    时间: 2009-2-7 05:24
请问前辈.
如果这么改的话
那技能上的魔防和物防是不是不用再设置和考虑呢???
skill.pdef_f
skill.mdef_f
这俩个
作者: 无心孤云    时间: 2009-2-7 05:26
就是我弄的是要弄个武侠的RPG
本身就是只有物理技能的...那公式是不是改成前辈帮我改的那样就可以了呢?
作者: 片羽樱    时间: 2009-2-7 05:40
你也可以把那rate相关内容还放着,最后写成
self.damage = power + rate
之类的(不一定要这样加,自己发挥)。
这样数据库里那些某某F也都有用。公式最好是多在数据库里战斗测试下。有些公式就有问题,例如RMXP默认那普通攻击的公式就有点问题,当攻击者攻999、力999,中招者防999时能打出48000左右的夸张伤害
作者: 无心孤云    时间: 2009-2-7 05:44
普通攻击的公式我为了方便直接改成了...自己攻击-对方防御...
atk = [attacker.atk, 0].max
      self.damage = atk - self.pdef

请前辈告诉我下...象前辈那么改的话技能上的魔防和物防是不是不用再设置和考虑呢???
skill.pdef_f
skill.mdef_f

作者: 片羽樱    时间: 2009-2-7 05:47
呃,上面已经有power -= 魔防和物防的1/2了,如果底下再写的话,不就又减了一次了啦。
-----------------------------------
貌似写错……
确实是应该把self.pdef乘上skill.pdef_f的,魔防同。
P.S.别叫什么前辈,我也就一新手而已,因为最近就在改伤害公式所以才对这块熟一点啦。
作者: 无心孤云    时间: 2009-2-7 06:45
那请问前辈我到底该怎么把这几个加上去呢{/ll}
我自己弄我怕混错{/ll}
再麻烦前辈次...谢谢{/ll}
作者: 片羽樱    时间: 2009-2-8 02:39
按你顶楼的公式的话大致上可以这样
power = skill.power + user.int * skill.int_f / 100 + user.atk * skill.atk_f / 200
power -= self.mdef * skill.mdef / 100
power -= self.pdef * skill.pdef / 200
power = [power, 0].max
rate = 0
rate += (user.str * skill.str_f / 100)
rate += (user.dex * skill.dex_f / 100)
rate += (user.agi * skill.agi_f / 100)
rate += (user.int * skill.int_f / 100)

#最后你得想个办法把power和rate结合起来变成最终伤害self.damage。不建议相加,这样这几种能力影响太小,也不建议相乘,不然影响太大。这个还是你自己想一下吧。
作者: 无心孤云    时间: 2009-2-8 04:10
额....最后这步我想了几下都没什么好解决公式....按前辈说的话觉得如何才比较好呢/????{/gg}
作者: 片羽樱    时间: 2009-2-8 04:45
要不先相乘然后除以一个常数。或者把rate乘以一个常数后再加power。
作者: 无心孤云    时间: 2009-2-8 05:13
前辈...我发现按我那个公式的话...把技能的四个rate相关属性都设置成100.在敌人和主角的数值都设置到999这个最大数的时候...
攻击出来的数字也很可观啊....好象每个rate +=....就是一千啊...反而是上面的power的数值很小.....是不是我这个公式不平衡呢....
作者: 片羽樱    时间: 2009-2-8 05:35
都说了别喊前辈,我哪算得上……

可以在角色和敌人能力设置里仔细设定即可。
例如,工具默认的上限是999,你不一定非按着他的来。你可以设自己的角色在99级时能力只有255之类的。同样敌人的能力也不用说最终BOSS非要一堆999才像最终BOSS。
作者: 无心孤云    时间: 2009-6-12 08:00
说的也是....我要继续测试测试.我把前辈(不叫前辈叫啥呀....)给的公式改成了..

power = skill.power + user.int + user.atk * skill.atk_f / 200
      if power > 0
        power -= self.pdef * skill.pdef_f / 200
        power -= self.mdef * skill.mdef_f / 200
        power = [power, 0].max
rate = 0
      rate += (user.str * skill.str_f / 100)
      rate += (user.dex * skill.dex_f / 100)
      rate += (user.agi * skill.agi_f / 100)
      rate += (user.int * skill.int_f / 100)
      self.damage = power + rate

因为按前辈那个的话...如果技能忘记设置skill.int_f值的话.就白浪费了角色的魔力值了...
改成这样好象明显点...也不会出现如果skill.int_f为100时出现的值太大...

有前辈(还是不知道不叫前辈该叫啥...)指导我终于那个什么什么顿开啊....到时候测试测试就好了...谢谢前辈.希望后面我的问题前辈也多多上心哈...{/hx}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1