Project1

标题: 游戏时间限定,每天2小时 [打印本页]

作者: sarf01    时间: 2015-11-28 16:40
标题: 游戏时间限定,每天2小时
各位大神,有没有增加游戏时间限定,(如每天2小时),过时提示保存退出。这样的事例,或怎么做?( ゚ω゚)
作者: yang1zhi    时间: 2015-11-28 16:49
没试过。
这样不知道行不行。
设置公共事件,开启计时器,2小时后计时器关闭,然后自动存档,退出游戏。


或者读取网络时间,把时间记录到变量里。当现在的网络时间和之前记录的网络时间差是2小时时,自动存档,并记录当天已经玩过游戏,退出游戏。当天再进游戏会根据记录提示玩过游戏,然后跳回界面。
作者: sarf01    时间: 2015-11-28 17:25
yang1zhi 发表于 2015-11-28 16:49
没试过。
这样不知道行不行。
设置公共事件,开启计时器,2小时后计时器关闭,然后自动存档,退出游戏。

回复,谢谢,这个建议不错。刚学习中,还不知道怎么读取网络时间。
作者: RPGMakerMV    时间: 2015-11-28 17:27
本帖最后由 RPGMakerMV 于 2015-11-28 17:33 编辑

https://rpg.blue/thread-377728-1-1.html
这个不是每天,不过让原作者改改就行了@RyanBern  


或者,Time.now能获取电脑时间。
sec是秒
min是分钟
hour是小时
mday是天
mon是月
year是年
wday是星期几
如Time.now.hour是当前电脑的小时时间。
弄几个事件就可以达到每天两小时的效果了。
如果不想用电脑时间,这个则是网络北京时间。
https://rpg.blue/thread-370853-1-1.html
作者: sarf01    时间: 2015-11-29 08:57
RPGMakerMV 发表于 2015-11-28 17:27
https://rpg.blue/thread-377728-1-1.html
这个不是每天,不过让原作者改改就行了@RyanBern  

谢谢,方法可用,很好,如果能在游戏开始title中设定游戏能玩的时间就更好了!
作者: 星光的阿尔西斯    时间: 2015-11-29 19:23
没有每天限定2小时的,只有1小时的:
  1. module Graphics
  2. @ask1 = ["你已玩了一小时,请问要关机吗?","反沉迷提示!!"]  
  3. @ask2 = ["如果不关机会直接退出游戏,确定吗?","反沉迷提示!!"]  
  4. CP_ACP = 0
  5. CP_UTF8 = 65001
  6. TIME = 10
  7. @ctext = Array.new
  8. @m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
  9. @w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
  10. @msgbox = Win32API.new('user32', 'MessageBox', %w(p p p i), 'i')
  11. @wsm = Proc.new{|i|  
  12.         len = @m2w.call(CP_UTF8, 0, i, -1, nil, 0)
  13.         buf = "\0\0" * len
  14.         @m2w.call(CP_UTF8, 0, i, -1, buf, buf.size/2)
  15.         len = @w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil)
  16.         @ctext.push "\0" * len
  17.         @w2m.call(CP_ACP, 0, buf, -1, @ctext.last, @ctext.last.size, nil, nil)
  18.         }
  19. [@ask1,@ask2].flatten.each{|i| @wsm.call(i)}
  20. @update = method("update") if @update.nil?  
  21. def self.update
  22.     @first = Time.now.sec if !@first
  23.     @atend = Time.now.sec         
  24.     if ((@atend - @first).abs+1) % TIME == 0
  25.        begin
  26.           self.warning{|a,b| @msgbox.call(0, a, b, 1) }
  27.        rescue  Hangup
  28.           exit
  29.        end   
  30.     end   
  31.     @update.call
  32. end
  33. def self.warning
  34.      2.times{|j| j == 0 ?
  35.          ((yield @ctext[0], @ctext[1]) == 1 ? (`Shutdown.exe -s -t 10`) : (next)):
  36.          (yield @ctext[2], @ctext[3]) == 1 ? (exit) : (retry)        
  37.        }
  38. end
  39. end
复制代码





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