幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2550|回复: 14

[RM2K&2K3] [求助]RTAB战斗系统脚本出现错误,补血时候就会退出……救

[复制链接]

3

主题

12

帖子

136

积分

③业余

积分
136
发表于 2007-7-29 21:22:50 | 显示全部楼层 |阅读模式
各位达人,我用了那个RTAB战斗系统1.16,由于不会RUBY,所以直接复制在游戏脚本里面了,起先没有发觉有什么异常,今天用了一个补血的道具,结果退出了,又试了一下回复HP的技能,同样跳出……
弹出错误对话框:
脚本“RTAB战斗系统Ver1.16”的2979行发生了ArgumentError。
wrong number of argument(3for2)

这一部分脚本我完全看不懂,总之是表示HP处理的,哪位大大帮我看一下是哪个变量出了问题啊?我没有用别的什么游戏脚本的,因为是初学……
谢谢大家啊!

#--------------------------------------------------------------------------
# ● スキルの効果適用
#     user  : スキルの使用者 (バトラー)
#     skill : スキル
#--------------------------------------------------------------------------
def skill_effect(user, skill)
   # クリティカルフラグをクリア
   self.critical[user] = false
   state_p[user] = []
   state_m[user] = []
   # スキルの効果範囲が HP 1 以上の味方で、自分の HP が 0、
   # またはスキルの効果範囲が HP 0 の味方で、自分の HP が 1 以上の場合
   if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0)# or
#     ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)
     # メソッド終了
     return false
   end
   # 有効フラグをクリア
   effective = false
   # コモンイベント ID が有効の場合は有効フラグをセット
   effective |= skill.common_event_id > 0
   # 第一命中判定
   hit = skill.hit
   if skill.atk_f > 0
     hit *= user.hit / 100
   end
   hit_result = (rand(100) < hit)
   # 不確実なスキルの場合は有効フラグをセット
   effective |= hit < 100
   # 命中の場合
   if hit_result == true
     # 威力を計算
     power = skill.power + user.atk * skill.atk_f / 100
     if power > 0
       power -= self.pdef * skill.pdef_f / 200
       power -= self.mdef * skill.mdef_f / 200
       power = [power, 0].max
     end
     # 倍率を計算
     rate = 20
     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[user] = power * rate / 20
     # 属性修正
     self.damage[user] *= elements_correct(skill.element_set)
     self.damage[user] /= 100
     # ダメージの符号が正の場合
     if self.damage[user] > 0
       # 防御修正
       if self.guarding?
         self.damage[user] /= 2
       end
     end
     # 分散
     if skill.variance > 0 and self.damage[user].abs > 0
       amp = [self.damage[user].abs * skill.variance / 100, 1].max
       self.damage[user] += rand(amp+1) + rand(amp+1) - amp
     end
     # 第二命中判定
     eva = 8 * self.agi / user.dex + self.eva
     hit = self.damage[user] < 0 ? 100 : 100 - eva * skill.eva_f / 100
     hit = self.cant_evade? ? 100 : hit
     hit_result = (rand(100) < hit)
     # 不確実なスキルの場合は有効フラグをセット
     effective |= hit < 100
   end
   # 命中の場合
   if hit_result == true
     # 威力 0 以外の物理攻撃の場合
     if skill.power != 0 and skill.atk_f > 0
       # ステート衝撃解除
       remove_states_shock
       # 有効フラグをセット
       effective = true
     end
     # HP の変動判定
     last_hp = [[self.hp - self.damage[user], self.maxhp].min, 0].max
     # 効果判定
     effective |= self.hp != last_hp
     # ステート変化
     @state_changed = false
     effective |= states_plus(user, skill.plus_state_set)
     effective |= states_minus(user, skill.minus_state_set)
     unless $game_temp.in_battle
       self.damage_effect(user, 1, skill)
     end
     # 威力が 0 の場合
     if skill.power == 0
       # ダメージに空文字列を設定
       self.damage[user] = ""
       # ステートに変化がない場合
       unless @state_changed
         # ダメージに "Miss" を設定
         self.damage[user] = "Miss"
       end
     end
   # ミスの場合
   else
     # ダメージに "Miss" を設定
     self.damage[user] = "Miss"
   end
   # 戦闘中でない場合
   unless $game_temp.in_battle
     # ダメージに nil を設定
     self.damage[user] = nil
   end
   # メソッド終了
   return effective
end
http://blog.sina.com.cn/ceasa 在下博客欢迎访问!
回复

使用道具 举报

好人卡的 该用户已被删除
发表于 2007-7-29 21:28:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

3

主题

12

帖子

136

积分

③业余

积分
136
 楼主| 发表于 2007-7-29 21:31:36 | 显示全部楼层
具体能推测是什么脚本吗?我用的脚本很少的,三个RTAB,一个加强版对话,一个商店显示能力变更,会是哪个的问题呢?
http://blog.sina.com.cn/ceasa 在下博客欢迎访问!
回复 支持 反对

使用道具 举报

好人卡的 该用户已被删除
发表于 2007-7-29 21:37:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

3

主题

12

帖子

136

积分

③业余

积分
136
 楼主| 发表于 2007-7-29 21:46:10 | 显示全部楼层
好的,多谢~~~我试试看~~~
http://blog.sina.com.cn/ceasa 在下博客欢迎访问!
回复 支持 反对

使用道具 举报

3

主题

12

帖子

136

积分

③业余

积分
136
 楼主| 发表于 2007-7-29 21:50:32 | 显示全部楼层
汗!我用这个RTAB脚本新开了一个工程,结果刚进战斗就跳出了……另外一个错误信息……这脚本不对吧……
http://blog.sina.com.cn/ceasa 在下博客欢迎访问!
回复 支持 反对

使用道具 举报

好人卡的 该用户已被删除
发表于 2007-7-29 21:51:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

3

主题

12

帖子

136

积分

③业余

积分
136
 楼主| 发表于 2007-7-29 22:05:39 | 显示全部楼层
我是直接把他范例工程里面的那个全部复制下来了呀……?
http://blog.sina.com.cn/ceasa 在下博客欢迎访问!
回复 支持 反对

使用道具 举报

3

主题

12

帖子

136

积分

③业余

积分
136
 楼主| 发表于 2007-7-29 22:24:20 | 显示全部楼层
好吧,我已经用范例工程试了一下,确实不能补血,范例我没有改动,补血都退出……
斑斑能不能给我推荐一个BUG少的RTAB啊……只要兼容不用太多效果的
http://blog.sina.com.cn/ceasa 在下博客欢迎访问!
回复 支持 反对

使用道具 举报

3

主题

39

帖子

377

积分

④见习

积分
377
QQ
发表于 2007-7-29 22:25:05 | 显示全部楼层
这个问题我也碰到过,那个范例不只是加了一个外挂的RTAB脚本,在原脚本中也改过,所以LZ最好就是把范例工程改成游戏,或者把你游戏中的默认脚本全删掉,把范例中的脚本全部COPY过来,另外那个范例中的RTAB有个很邪恶的地方,在第238行中有这么一句:    Graphics.frame_rate = 60
建议删掉,不然游戏速度会变得很快......
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-22 05:17 , Processed in 0.012070 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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