Project1

标题: 两段小脚本的冲突 [打印本页]

作者: 乱摸阿弥陀佛    时间: 2009-5-22 23:46
标题: 两段小脚本的冲突
原脚本插在MAIN之前运行没问题,自己瞎整合,加入了彩色部分之后进游戏就出错了,请高手指正怎么整合

出错信息为:undefiner method "include?"for false:falseClass




class Game_Character
attr_accessor :x
attr_accessor :y
attr_accessor :move_speed
attr_accessor   :opacity
end
class Scene_Map
Sid = 21  #被吸的状态编号,假设是1
Mspeed = 3  #被吸的速度,越大越快,1-6
  alias update_abc update
  def update
    update_abc
    @states = $game_actors[1].state?(Sid) #获得1号角色状态
    if @states   
      $game_player.x = $game_map.events[7].x
      $game_player.y = $game_map.events[7].y
      if $game_system.timer_working != true
        $game_system.timer_working = true     
       @movespeed = $game_player.move_speed
       $game_player.move_speed =  Mspeed #速度
        $game_system.timer = 5 * Graphics.frame_rate
      end
    end
    if $game_system.timer_working and
      $game_system.timer == 0  #时间到
      $game_player.move_speed = @movespeed #恢复速度
      $game_actors[1].remove_state(Sid)  #消除状态
      $game_system.timer_working = false #停止计时
      @states = false
    end
  end
  alias :state_main :main
  def main
    @states = $game_actors[1].states #获得1号角色状态
    state_main
  end
  alias :state_update :update
  def update
    if not @states.include?(50) and @opacity != 255
    $game_player.opacity = 255
    state_update
    return
  end
  for i in [email protected] - 1
    if @states == 50 and         
      @opacity != $game_player.opacity  
      $game_player.opacity = 100     
      @opacity = $game_player.opacity
    end
  end
    state_update
  end
  
end [LINE]1,#dddddd[/LINE]此贴于 2009-5-24 10:40:55 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 后知后觉    时间: 2009-5-23 00:16
def main
   @states = $game_actors[1].states #获得1号角色状态

你自己在下面再加一行
p @states
就可以看到你生成的这个东西是个什么类的对象了
你出的错误提示是falseClass
说明你生成的这个对象并不是角色的状态数组
要学会用p去找问题根源,弄清楚对象是什么类的
作者: 乱摸阿弥陀佛    时间: 2009-5-23 00:23
那应该怎么改啊?两个脚本只取其一就不会出错,合一起就不行了


作者: 66rpg学习    时间: 2009-5-23 00:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: 66rpg学习    时间: 2009-5-23 01:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: 乱摸阿弥陀佛    时间: 2009-5-24 18:53
以下引用66rpg学习于2009-5-22 16:46:32的发言:

# if not @states.include?(50) 这句 什么意思?

这2段脚本不放在一起就不这么多麻烦了

if $data_actors[1].state?(50)
#上面一句 就代码 主角是否重了 50号状态? true else false!!...




彩色脚本部分是中50号状态让角色半透明,但是去除状态之后角色没有恢复原来的不透明状态,

所以if not @states.include?(50) 这句的意思是如果角色不包含50号状态就恢复原来的透明度...整合之后1是隐身状态?
作者: 66rpg学习    时间: 2009-5-24 18:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: 乱摸阿弥陀佛    时间: 2009-5-24 19:03
谢谢!我再追加200




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