赞 | 0 |
VIP | 17 |
好人卡 | 0 |
积分 | 1 |
经验 | 1022914 |
最后登录 | 2017-2-4 |
在线时间 | 10 小时 |
Lv1.梦旅人 月下可怜人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 10 小时
- 注册时间
- 2005-11-23
- 帖子
- 4085
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
可以让游戏执行固定时间后运行一个程序,提醒玩家要注意休息,
TIME是设定间隔时间,以秒为单位,默认10秒,如果想设为半小时,改为1800即可。
- module Graphics
-
- @ask1 = ["你已玩了一小时,请问要关机吗?","反沉迷提示!!"]
- @ask2 = ["如果不关机会直接退出游戏,确定吗?","反沉迷提示!!"]
- CP_ACP = 0
- CP_UTF8 = 65001
- TIME = 10
- @ctext = Array.new
- @m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
- @w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
- @msgbox = Win32API.new('user32', 'MessageBox', %w(p p p i), 'i')
- @wsm = Proc.new{|i|
- len = @m2w.call(CP_UTF8, 0, i, -1, nil, 0)
- buf = "\0\0" * len
- @m2w.call(CP_UTF8, 0, i, -1, buf, buf.size/2)
- len = @w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil)
- @ctext.push "\0" * len
- @w2m.call(CP_ACP, 0, buf, -1, @ctext.last, @ctext.last.size, nil, nil)
- }
- [@ask1,@ask2].flatten.each{|i| @wsm.call(i)}
-
- @update = method("update") if @update.nil?
- def self.update
- @first = Time.now.sec if !@first
- @atend = Time.now.sec
- if ((@atend - @first).abs+1) % TIME == 0
- begin
- self.warning{|a,b| @msgbox.call(0, a, b, 1) }
- rescue Hangup
- exit
- end
- end
- @update.call
- end
-
- def self.warning
- 2.times{|j| j == 0 ?
- ((yield @ctext[0], @ctext[1]) == 1 ? (`Shutdown.exe -s -t 10`) : (next)):
- (yield @ctext[2], @ctext[3]) == 1 ? (exit) : (retry)
- }
- end
- end
复制代码 |
|