Project1

标题: 脚本问题 [打印本页]

作者: kaze    时间: 2007-7-3 05:58
标题: 脚本问题
这段脚本哪错了?

module RPG
class Enemy
   def name
     name = @name.split(/,/)[0]
     return name != nil ? name : ""
   end
   def kaze_steal
     treasure = @name.split(/,/)[1]
     return treasure.to_s
   end
end
class Scene_kazesteal
  def main
    for enemy in $game_troop.enemies
      if enemy.state?(20)
        $game_party.gain_item(@kaze_steal,1)  #好象是这里错了,但怎么改?
      end
    end   
  end
end


对了,忘了说,调试我用的事件脚本是$Scene = Scene_kazesteal.new
这是我从sailcat的四格掉宝衍生的偷盗技能 [LINE]1,#dddddd[/LINE]本贴由论坛斑竹幻の飞鱼认可答案,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
作者: kaze    时间: 2007-7-3 05:58
标题: 脚本问题
这段脚本哪错了?

module RPG
class Enemy
   def name
     name = @name.split(/,/)[0]
     return name != nil ? name : ""
   end
   def kaze_steal
     treasure = @name.split(/,/)[1]
     return treasure.to_s
   end
end
class Scene_kazesteal
  def main
    for enemy in $game_troop.enemies
      if enemy.state?(20)
        $game_party.gain_item(@kaze_steal,1)  #好象是这里错了,但怎么改?
      end
    end   
  end
end


对了,忘了说,调试我用的事件脚本是$Scene = Scene_kazesteal.new
这是我从sailcat的四格掉宝衍生的偷盗技能 [LINE]1,#dddddd[/LINE]本贴由论坛斑竹幻の飞鱼认可答案,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
作者: 精灵使者    时间: 2007-7-3 06:00
@kaze_steal……what's this ? 你定义过么?没定义过的变量不允许使用的。
作者: kaze    时间: 2007-7-3 06:03
有这个
def kaze_steal

作者: 幻の飞鱼    时间: 2007-7-3 06:12
我在那个悬赏帖子里和你回了

@kaze_steal这个东西写在你自己的类class Scene_kazesteal


是读不到类class Enemy里的kaze_steal的

作者: kaze    时间: 2007-7-3 06:16
对啊
所以说怎么做啊
原谅天资愚笨的kaze,说详细点吧
作者: kaze    时间: 2007-7-4 06:05
24小时了自顶下吧
作者: 亿万星辰    时间: 2007-7-4 06:11
@kaze_steal
这个东西是变量,作用范围在当前实例的生存期内
kaze_steal
这个是方法,作用范围同样是在实例的生存期内

你的错误就在于扩大了变量的作用范围,依照你现在的写法,@kaze_steal是那个SceneXXX的变量,并非enemy的,正确的方法
应该是先将enemy.kaze_steal赋值给@kaze_steal,或者直接通过前者调用 [LINE]1,#dddddd[/LINE]系统信息:本贴由版主幻の飞鱼认可为正确答案,66RPG感谢您的热情解答~
作者: kaze    时间: 2007-7-4 06:17
module RPG
class Enemy
  def name
    name = @name.split(/,/)[0]
    return name != nil ? name : ""
  end
  def kaze_steal
    treasure = @name.split(/,/)[1]
    @kaze_steal = treasure
    return
  end
end
class Scene_kazesteal
def main
   for enemy in $game_troop.enemies
     if enemy.state?(20)
       $game_party.gain_item($Enemy.@kaze_steal,1)  
     end
   end   
end
end
这样子吗?

作者: 亿万星辰    时间: 2007-7-8 00:29
你看一下 state? 这个状态判断方法是如何调用的,要用类的实例进行调用




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