设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1783|回复: 5
打印 上一主题 下一主题

[已经过期] 游戏时间限定,每天2小时

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2015-7-26
帖子
25
跳转到指定楼层
1
发表于 2015-11-28 16:40:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
各位大神,有没有增加游戏时间限定,(如每天2小时),过时提示保存退出。这样的事例,或怎么做?( ゚ω゚)

点评

哎,玩个RM游戏还要被加防沉迷,以后打BOSS的时候大概还会跳出林子聪要你一起跟他打传奇吧……  发表于 2015-11-28 17:07
Q

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

2
发表于 2015-11-28 16:49:14 | 只看该作者
没试过。
这样不知道行不行。
设置公共事件,开启计时器,2小时后计时器关闭,然后自动存档,退出游戏。


或者读取网络时间,把时间记录到变量里。当现在的网络时间和之前记录的网络时间差是2小时时,自动存档,并记录当天已经玩过游戏,退出游戏。当天再进游戏会根据记录提示玩过游戏,然后跳回界面。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2015-7-26
帖子
25
3
 楼主| 发表于 2015-11-28 17:25:00 | 只看该作者
yang1zhi 发表于 2015-11-28 16:49
没试过。
这样不知道行不行。
设置公共事件,开启计时器,2小时后计时器关闭,然后自动存档,退出游戏。

回复,谢谢,这个建议不错。刚学习中,还不知道怎么读取网络时间。
Q
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
134 小时
注册时间
2015-11-7
帖子
549
4
发表于 2015-11-28 17:27:38 | 只看该作者
本帖最后由 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2015-7-26
帖子
25
5
 楼主| 发表于 2015-11-29 08:57:32 | 只看该作者
RPGMakerMV 发表于 2015-11-28 17:27
https://rpg.blue/thread-377728-1-1.html
这个不是每天,不过让原作者改改就行了@RyanBern  

谢谢,方法可用,很好,如果能在游戏开始title中设定游戏能玩的时间就更好了!
Q
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
66 小时
注册时间
2015-4-1
帖子
14
6
发表于 2015-11-29 19:23:32 | 只看该作者
没有每天限定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
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-3 04:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表