设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2420|回复: 10
打印 上一主题 下一主题

伤害公式的问题?

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-12-6
帖子
79
跳转到指定楼层
1
发表于 2007-6-30 16:24:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-12-6
帖子
79
2
 楼主| 发表于 2007-6-30 16:24:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1707
在线时间
3039 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

3
发表于 2007-6-30 17:19:05 | 只看该作者
    if hit_result == true
      # 计算基本伤害
      atk = [attacker.atk - self.pdef / 2, 0].max
      self.damage = atk * (20 + attacker.str) / 20
attacker.atk:攻击人的攻击力 self.pdef 我方的物理防御(如果为负值则加血,所以不能为负值。所以使用了和0一起取最大值的计算。
上边的atk不就是下面的atk么?上边结果带入下边的公式,然后attacker.str是攻击者的力量值
也就是说,攻击力与敌人的攻击力、敌人的力量和自己的防御有关。
明白了么? [LINE]1,#dddddd[/LINE]系统信息:本贴由版主幻の飞鱼认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

圣魔

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-1-12
帖子
3395
4
发表于 2007-7-1 00:14:57 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1707
在线时间
3039 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

5
发表于 2007-7-1 00:23:11 | 只看该作者
    hit_result = (rand(100) < attacker.hit)
看来他是把一个100的随机数和他的命中率相比较了。如果大于就是false,小于就是true……这样,命中率为100的肯定会是true,如果不命中的话就不执行下边的if,那么self.damage就成了nil,正好满足了miss的条件。
我写的东西上边的一句就是。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

翔于天壤之人<

梦石
0
星屑
50
在线时间
1 小时
注册时间
2006-10-10
帖子
708
6
发表于 2007-7-1 00:26:00 | 只看该作者
拜托了,偶也有个问题....
如果设定成-
伤害=攻击力+力量-敌人防御
魔法伤害=攻击力+魔力-敌人魔力/2
就是说3攻击力,2力量,敌人防御2
3+2-2=3
这个要怎么改动...改了半天..不见好T-T
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1707
在线时间
3039 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

7
发表于 2007-7-1 00:29:27 | 只看该作者
这个……参见上边二楼的说明(那个地方是物理伤害问题)。特技伤害是受4个f影响的,你只要调整4个f的值就行。
(也就是技能下面的力量、灵巧、敏捷、魔力f和防御f、魔防f)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2007-2-18
帖子
2464
8
发表于 2007-7-1 01:16:19 | 只看该作者
  1. RPGXP 默认的战斗系统,采用以下的计算式。

  2. 攻击方角色表示为 A,被攻击方角色以 B 表示。

  3. 第一命中率判定普通攻击
  4. 第一命中率 = A 当前状态下的命中率 %
  5. 技能攻击
  6. 攻击力 F 为 1 以上(物理攻击)
  7. 第一命中率 = 技能的命中率 × A 当前状态下的命中率 % ÷ 100
  8. 攻击力 F 为 0(物理攻击以外)
  9. 第一命中率 = 技能的命中率
  10. 使用物品
  11. 第一命中率 = 物品的命中率
  12. A 在正常状态下的命中率为 100。
  13. 必杀机率判定普通攻击
  14. 必杀率 = 4 × A 的灵巧 ÷ B 的速度
  15. 技能攻击
  16. 必杀率 = 0
  17. 使用物品
  18. 必杀率 = 0
  19. 必杀率即奋力一击(通常会使敌方常受到较大的损伤)发生的机率,如果必杀率为 4 则表示每 4 个回合就出现一次奋力一击。
  20. 伤害计算普通攻击
  21. 威力 = A 的攻击力 - (B 的物理防御 ÷ 2)
  22. 放大率 = 20 + A 的力量
  23. 分散度 = 15
  24. 威力的最小值:0
  25. 技能攻击
  26. 技能的威力值为正数
  27. 威力 = 技能的威力
  28. + (A 的攻击力 × 技能的攻击力 F ÷ 100)
  29. - (B 的物理防御 × 技能的物理防御 F ÷ 200)
  30. - (B 的魔法防御 × 技能的魔法防御 F ÷ 200)

  31. 威力的最小值:0
  32. 技能的威力值为负数
  33. 威力 = 技能的威力
  34. 放大率 = 20
  35. + (A 的力量 × 技能的力量 F ÷ 100)
  36. + (A 的灵巧 × 技能的灵巧 F ÷ 100)
  37. + (A 的速度 × 技能的速度 F ÷ 100)
  38. + (A 的魔力 × 技能的魔力 F ÷ 100)
  39. 分散度 = 技能的分散度
  40. 使用物品
  41. HP 回复量为负数
  42. 威力 = - HP 回复量
  43. - (B 的物理防御 × 物品的物理防御 F ÷ 20)
  44. - (B 的魔法防御 × 物品的魔法防御 F ÷ 20)

  45. 威力的最小值:0
  46. HP 回复量为正数
  47. 威力 = - HP 回复量
  48. 放大率 = 20
  49. 分散度 = 物品的分散度
  50. 伤害 = 威力 × 放大率 ÷ 20 × 属性修正 × 必杀修正 × 防御修正 ( ± 分散度 %)


  51. 属性修正:有攻击属性时,在 B 的属性有效度中选择最弱的进行修正,修正值如下。
  52. A:200%,B:150%,C:100%,D:50%,E:0%,F:-100%
  53. 另外,攻击属性符合 B 防具的防御属性的,伤害减半,修正值为 1/2。
  54. 有多个相同防御属性的,减半效果要叠加。
  55. 必杀修正:伤害值为正数,奋力一击发动时修正值为 2。
  56. 防御修正:伤害值为正数,B 防御时修正值为 1/2。
  57. 第二命中率判定伤害值为正数
  58. B 为正常状态
  59. 回避力 = 8 × B 的速度 ÷ A 的灵巧 + B 的回避修正
  60. 普通攻击
  61. 第二命中率 = 100 - 回避力
  62. 技能攻击
  63. 第二命中率 = 100 -(回避力 × 技能的回避 F ÷ 100)
  64. 使用物品
  65. 第二命中率 = 100
  66. B 附加有「不能回避攻击」状态
  67. 第二命中率 = 100
  68. 伤害值为负数(回复)
  69. 第二命中率 = 100
  70. 逃跑成功率逃跑成功率 =50 × 角色的速度平均值 ÷ 敌人的速度平均值
复制代码
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1597
在线时间
529 小时
注册时间
2007-4-6
帖子
455
9
发表于 2007-7-1 01:41:45 | 只看该作者
以下引用红世之徒于2007-6-30 16:26:00的发言:

拜托了,偶也有个问题....
如果设定成-
伤害=攻击力+力量-敌人防御
魔法伤害=攻击力+魔力-敌人魔力/2
就是说3攻击力,2力量,敌人防御2
3+2-2=3
这个要怎么改动...改了半天..不见好T-T


     atk = attacker.atk + self.str    #攻击力算法(武器攻击力+力量)
     self.damage = atk - self.pdef    #伤害计算(攻击力-总防御)

魔法伤害计算:
      # 计算威力
      power = skill.power + user.atk * skill.atk_f / 100 #总威力等于技能威力+攻击力
      if power > 0
        power -= self.pdef * skill.pdef_f / 200      
        #如果技能里添了100,那么就减总防御的50%
        power -= self.mdef * skill.mdef_f / 200
        #如果技能里添了100,那么就减总魔法防御的50%
#上面这段是如果威力大于0,如果你技能里设置了防御100%,魔法防御100% 那么总威力就减去
-防御/2-魔法防御/2。如果只件魔法防御的话,技能里就不要设置防御100%。
        power = [power, 0].max
      end
      # 计算倍率
      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              
      #魔法伤害计算(总威力(这里的总威力是已经减去防御的威力) + 属性)
神魔幻想S3-苍穹境界   已经完成
下载地址:https://pan.quark.cn/s/451cba6a50a5
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2006-2-21
帖子
79
10
发表于 2007-7-1 05:22:03 | 只看该作者
依然是复杂的要命,真是的,直接 "攻击力-防御力=伤害" 多好,既简单又合理。
[
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-9-21 13:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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