查看: 1554|回复: 2

[已经解决] 关于延时自动关闭开关脚本的问题

[复制链接]
梦石
0
星屑
50
在线时间
130 小时
注册时间
2008-8-12
回帖
117
发表于 2013-1-4 12:18:24 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 兔毛鹿 于 2013-1-9 13:28 编辑

以下脚本的功能是延时关闭开关,当1~20号其中一个开关打开后,过5秒时间自动关闭,问题是当打开某开关还未关闭时就存盘退出,然后再读取这个开关就一直处于打开状态了,能否在存档读取后判断:如果有1~20编号内的开关打开,就重头计时,5秒后关闭?


[pre lang="ruby" line="1"]class Game_Switches
  #--------------------------------------------------------------------------
  # ● 设置开关
  #     switch_id : 开关 ID
  #     value     : ON (true) / OFF (false)
  #--------------------------------------------------------------------------
  def []=(switch_id, value)
    if switch_id <= 5000
      @data[switch_id] = value
    end
    if value
      for i in 1..20
        if switch_id == i
          switch_off_after(i, 5)
        end
      end
    end
  end
  def switch_off_after(switch_id, sec)
    Thread.new {
      cnt = 0
      while cnt < sec
        sleep 1
        cnt += 1
      end
      self[switch_id] = false
    }
  end
end[/pre]
Tomorrow
梦石
0
星屑
50
在线时间
130 小时
注册时间
2008-8-12
回帖
117
 楼主| 发表于 2013-1-8 13:39:46 | 显示全部楼层
怎么不能翻页了
Tomorrow
回复

使用道具 举报

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
回帖
1296
发表于 2013-1-8 14:23:15 | 显示全部楼层
  1. class Scene_Load
  2.   alias fucker_read_save_data read_save_data
  3.   def read_save_data(file)
  4.     fucker_read_save_data(file)
  5.     for i in 1..20        
  6.       if $game_switches[i]        
  7.         $game_switches.switch_off_after(i, 5)        
  8.       end      
  9.     end
  10.   end
  11. end
复制代码

评分

参与人数 1梦石 +1 收起 理由
hcm + 1 认可答案

查看全部评分

好歹当年也当过大魔王过,orz
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部