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

Project1

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

战斗系统的问题

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

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-12-3
帖子
93
跳转到指定楼层
1
发表于 2008-12-7 23:17:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv1.梦旅人

今、空を見上げ

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-8-11
帖子
2022
2
发表于 2008-12-8 00:07:25 | 只看该作者
  1. ]#--------------------------------------------------------------------------
  2.   # ● 计算普通攻击造成的伤害
  3.   #     attacker : 攻击者
  4.   #    结果代入 @hp_damage。
  5.   #--------------------------------------------------------------------------
  6.   def make_attack_damage_value(attacker)
  7.     damage = attacker.atk * 4 - self.def * 2        # 基本计算
  8.     damage = 0 if damage < 0                        # 减少为 0
  9.     damage *= elements_max_rate(attacker.element_set)   # 修正属性
  10.     damage /= 100
  11.     if damage == 0                                  # 伤害为 0
  12.       damage = rand(2)                              # 1/2 概率为伤害 1
  13.     elsif damage > 0                                # 伤害为正数
  14.       @critical = (rand(100) < attacker.cri)        # 判断会心一击
  15.       @critical = false if prevent_critical         # 防止会心一击?
  16.       damage *= 3 if @critical                      # 会心一击修正
  17.     end
  18.     damage = apply_variance(damage, 20)             # 分散
  19.     damage = apply_guard(damage)                    # 防御修正
  20.     @hp_damage = damage                             # HP 伤害
  21.   end
复制代码

这里是计算普通攻击伤害的地方.以
伤害 = 攻击*4 - 防御*2

我打圣火徽章的时候,敌人受到的伤害是(我的攻击-敌人防御),如果我的攻击小于敌人防御,伤害值一律为1
这个问题很好解决

damage = attacker.atk  - self.def
if damage == 0                              
  damage = 1                                    

只用改这2句就行

然后是 物理技能对人的伤害计算是
伤害 = 基本伤害
+ (使用特技(或物品)的攻撃力 × 4 × 打撃関係度 ÷ 100)
+ (使用特技(或物品)的精神力 × 2 × 精神関係度 ÷ 100)
- (对象防御力 × 2 × 打撃関係度 ÷ 100)
- (对象精神力 × 1 × 精神関係度 ÷ 100)

这里是F1里的内容

以下是经过修改的脚本
直接替换进Game_Battler里的同样的地方就可以
  1. #--------------------------------------------------------------------------
  2.   # ● 计算普通攻击造成的伤害
  3.   #     attacker : 攻击者
  4.   #    结果代入 @hp_damage。
  5.   #--------------------------------------------------------------------------
  6.   def make_attack_damage_value(attacker)
  7.     damage = attacker.atk  - self.def               # 基本计算
  8.     damage = 0 if damage < 0                        # 减少为 0
  9.     damage *= elements_max_rate(attacker.element_set)   # 修正属性
  10.     damage /= 100
  11.     if damage == 0                                  # 伤害为 0
  12.       damage = 1                                    # 伤害为 1
  13.     elsif damage > 0                                # 伤害为正数
  14.       @critical = (rand(100) < attacker.cri)        # 判断会心一击
  15.       @critical = false if prevent_critical         # 防止会心一击?
  16.       damage *= 3 if @critical                      # 会心一击修正
  17.     end
  18.     damage = apply_variance(damage, 20)             # 分散
  19.     damage = apply_guard(damage)                    # 防御修正
  20.     @hp_damage = damage                             # HP 伤害
  21.   end
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
做任何事,都不要为自己找借口。任何事都不存在困难的借口。你只有3个字“做得到”
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-12-3
帖子
93
3
 楼主| 发表于 2008-12-8 00:15:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-9 02:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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