Project1

标题: 一个隐身的小脚本,时间倒数结束就出错 [打印本页]

作者: 木许许    时间: 2013-3-6 16:18
标题: 一个隐身的小脚本,时间倒数结束就出错
本帖最后由 木许许 于 2013-3-6 21:17 编辑

这个脚本的功能是:当主角附加12号状态时就变成半透明,并且行走速度变快,问题是当主角变成半透明时间开始倒数的时候如果按ESC调出主菜单再退出,那么时间倒数结束就会出错,求解决方法
  1. class Game_Character
  2.   attr_accessor :x
  3.   attr_accessor :y
  4.   attr_accessor :move_speed
  5.   attr_accessor   :opacity
  6. end
  7. class Scene_Map
  8.   Mspeed = 5  
  9.   Fid = 12   #变隐身的状态编号假设12
  10.   alias update_abc update
  11.   def update
  12.     update_abc
  13.     @states2 = $game_actors[1].state?(Fid) #获得1号角色是否有FID编号状态
  14.     if @states2 and @opacity != $game_player.opacity
  15.       $game_player.opacity = 100
  16.       @opacity = $game_player.opacity
  17.       if $game_system.timer_working != true
  18.         $game_system.timer_working = true   
  19.         @movespeed = $game_player.move_speed
  20.         $game_player.move_speed = Mspeed
  21.         $game_system.timer = 3 * Graphics.frame_rate
  22.       end
  23.     elsif @states2 !=true and $game_player.opacity != 255
  24.       $game_player.opacity = 255
  25.     end
  26.     if $game_system.timer_working and $game_system.timer == 0  #时间到
  27.       $game_player.move_speed = @movespeed #恢复速度
  28.       $game_actors[1].remove_state(Fid)  #消除状态
  29.       $game_system.timer_working = false #停止计时
  30.       @states2 = false
  31.     end
  32.   end  
  33. end
复制代码

作者: 弗雷德    时间: 2013-3-6 19:13
报错的不是这个脚本,是LZ的其它脚本引起的,附上报错截图,最好有范例。
作者: 木许许    时间: 2013-3-6 19:51
本帖最后由 木许许 于 2013-3-6 19:53 编辑
弗雷德 发表于 2013-3-6 19:13
报错的不是这个脚本,是LZ的其它脚本引起的,附上报错截图,最好有范例。 ...


附件在这里,新开一工程,插入以上脚本,主角变透明的倒数时段内按ESC调出主菜单然后再退出,等待时间倒数一结束就出错,如果不调出主菜单就没事

Project2.rar (187.02 KB, 下载次数: 8)


作者: 弗雷德    时间: 2013-3-6 20:10
原因找到了,一个未定义的实例变量@movespeed 引起的,俺给你改成用变量了。
Project2.rar (187.04 KB, 下载次数: 16)
搜索万兽熊最高……
作者: 木许许    时间: 2013-3-6 21:17
谢谢了,似乎把@movespeed 改成 $movespeed 也可以吧




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