Project1

标题: Game_Battler 1下加了个分歧,战斗时出错了 [打印本页]

作者: id人格分裂症    时间: 2008-9-27 18:53
标题: Game_Battler 1下加了个分歧,战斗时出错了
彩色这一行出错了

  #--------------------------------------------------------------------------
  # ● 获取物理防御
  #--------------------------------------------------------------------------
  def pdef
    if @actor_id > 9
      n = base_pdef
      for i in @states
        n *= $data_states.pdef_rate / 100.0
      end
      return Integer(n)
    else
      n = base_pdef + (base_dex/10) + @dex_plus.to_i
      for i in @states
        n *= $data_states.pdef_rate / 100.0
      end
      return Integer(n)
    end  
  end


[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 塑望    时间: 2008-9-27 18:58
if @actor_id > 9
这个是定义角色号的...提示可以自己修改
作者: 浩气青天    时间: 2008-9-27 19:02
沉默,收我为徒吧!{/se}
作者: 塑望    时间: 2008-9-27 19:03
以下引用浩气青天于2008-9-27 11:02:34的发言:

沉默,收我为徒吧!

{/fn} PIA飞..活动一次都不参加还报名
作者: hitlerson    时间: 2008-9-27 19:12
活動有V得嘛,我參加
作者: 八云紫    时间: 2008-9-27 19:14
出错原因是 @actor_id 为 nil 。


作者: 塑望    时间: 2008-9-27 19:14
以下引用hitlerson于2008-9-27 11:12:10的发言:

活動有V得嘛,我參加

请允许刷水一次...大大 就要这样的大大参加..帮你报上
作者: 浩气青天    时间: 2008-9-27 19:15
我参了啊。报名的前一晚救了4队员出来。{/cy}那啥,昨晚来不及了,就没去到,嘿嘿{/cy}你就教我点点的脚本防身都好啊。
作者: id人格分裂症    时间: 2008-9-27 19:23
以下引用八云紫于2008-9-27 11:14:13的发言:

出错原因是 @actor_id 为 nil 。




请教在Game_Battler 1里怎么以角色的编号数为分歧呢
作者: 八云紫    时间: 2008-9-27 19:27
case @actor_id
when 1

when 2


不过,前提是 @actor_id 不能为 nil
作者: id人格分裂症    时间: 2008-9-27 19:59
改成下面这样,Game_Battler 3又出错了{/pz}

  def pdef
    case @actor_id
    when 6..99
      n = base_pdef
      for i in @states
        n *= $data_states.pdef_rate / 100.0
      end
      return Integer(n)
    when 1..5
      n = base_pdef + (base_dex/10) + @dex_plus.to_i
      for i in @states
        n *= $data_states.pdef_rate / 100.0
      end
      return Integer(n)
    end  
  end



作者: 八云紫    时间: 2008-9-27 20:00
@actor_id 依旧是 nil 吧。

根本原因没解决。 是不是 初始化的时候, 参数传太大了。
作者: id人格分裂症    时间: 2008-9-27 20:10
新建一缺省的工程,把数字改小也一样出错

  def pdef
    case @actor_id
    when 2..8
      n = base_pdef# + (base_dex/10) + @dex_plus.to_i
      for i in @states
        n *= $data_states.pdef_rate / 100.0
      end
      return Integer(n)
    when 1
      n = base_pdef + (base_dex/10) + @dex_plus.to_i
      for i in @states
        n *= $data_states.pdef_rate / 100.0
      end
      return Integer(n)
    end  
  end
作者: 八云紫    时间: 2008-9-27 20:12
$data_states.pdef_rate 为 nil 。

请把脚本都发上来。
作者: id人格分裂症    时间: 2008-9-27 20:22
直接传工程吧{/fd}

http://rpg.blue/upload_program/goods/Project6_102946908.rar
作者: hitlerson    时间: 2008-9-27 20:33
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取物理防御
  3.   #--------------------------------------------------------------------------
  4.   def pdef
  5.     case @actor_id.to_i
  6.     when 2..8
  7.       n = base_pdef # + (base_dex/10) + @dex_plus.to_i
  8.       for i in @states
  9.         n *= $data_states[i].pdef_rate / 100.0
  10.       end
  11.       return Integer(n)
  12.     when 1
  13.       n = base_pdef + (base_dex/10) + @dex_plus.to_i
  14.       for i in @states
  15.         n *= $data_states[i].pdef_rate / 100.0
  16.       end
  17.       return Integer(n)
  18.     when 0
  19.       n = base_pdef + (base_dex/10) + @dex_plus.to_i
  20.       for i in @states
  21.         n *= $data_states[i].pdef_rate / 100.0
  22.       end
  23.       return Integer(n)
  24.     end
  25.   end
复制代码

  1.   #--------------------------------------------------------------------------
  2.   # ● 初始化对像
  3.   #--------------------------------------------------------------------------
  4.   def initialize(actor_id=0)
  5.     @actor_id = actor_id
  6.     @battler_name = ""
复制代码


Game_Actor的
  1.   #--------------------------------------------------------------------------
  2.   # ● 初始化对像
  3.   #     actor_id : 角色 ID
  4.   #--------------------------------------------------------------------------
  5.   def initialize(actor_id)
  6.     super(actor_id)
复制代码



OK???

PS:敵人沒有傳參數過去,所以。。。設置個actor——id的默認值 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: id人格分裂症    时间: 2008-9-27 20:47
谢谢!Game_Actor中的 super() 不要了?

  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     actor_id : 角色 ID
  #--------------------------------------------------------------------------
  def initialize(actor_id)
    super()
    setup(actor_id)
  end


作者: hitlerson    时间: 2008-9-27 20:49
super()讓他傳遞個actor_id過去啊,不然你怎么辦啊

super() 改成 super(actor_id)
就是這樣
作者: id人格分裂症    时间: 2008-9-27 21:04
之前写成setup(actor_id)没问题,改成super(actor_id)就出错啦


作者: hitlerson    时间: 2008-9-27 21:51
super() 改成 super(actor_id)
setup(actor_id)不要去掉啊




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