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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: zero2
打印 上一主题 下一主题

RM电子钟的屏蔽问题

 关闭 [复制链接]

Lv3.寻梦者

梦石
1
星屑
916
在线时间
101 小时
注册时间
2006-3-27
帖子
1081
11
发表于 2007-7-12 07:16:23 | 只看该作者
不知道API里面有没有监视系统时间修改的

API达人来看看也许可以

另外不知道附加一个高精度记时器来检测过去的时间,判断下是否合理来决定是否正常运行,不知道是否可行
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1707
在线时间
3039 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

12
发表于 2007-7-12 07:26:42 | 只看该作者
你还记得美兽殿的测试程序事件么?
p1=time.now
程序
p2=time.now
p p2 - p1
这样就可以输出程序运行时间……如果赋值给变量的话……就……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
4 小时
注册时间
2006-5-12
帖子
447
13
 楼主| 发表于 2007-7-12 11:21:57 | 只看该作者
{/fd}没听明白,请说全一点,谢谢!!
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
675
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

14
发表于 2007-7-12 11:36:02 | 只看该作者
精灵的意思是说,作一个参照变量,当发现玩家改变系统时间时,就做出适当处理
比如说,用後备的另一个变量来显示时间,或是弹出警告等
参考:http://rpg.blue/web/htm/news769.htm

。。。还是乾脆用变量作一个时间系统比较方便

忽然有个邪恶的想法{/cy},如果发现玩家改变系统时间,就把菜单和存档禁止,让他一路无存档通关{/dy}{/tx}{/qiao}{/kl}
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
4 小时
注册时间
2006-5-12
帖子
447
15
 楼主| 发表于 2007-7-12 15:23:40 | 只看该作者
呵呵呵!懂了!!{/cy}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
4 小时
注册时间
2006-5-12
帖子
447
16
 楼主| 发表于 2007-7-12 17:07:35 | 只看该作者
我又有想法拉:
那个snstar2006说的参考:http://rpg.blue/web/htm/news769.htm
这个东西我不会用,能说明一下吗?
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
675
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

17
发表于 2007-7-13 16:50:01 | 只看该作者
叁考的那个只是因为与你所说的类似
那个脚本是来测试玩家是否有开类似金山游侠之类的加速器

其实就像前面所说的那种算法
只是我们要要记录的是时间,而那个脚本记录的是游戏速度
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
4 小时
注册时间
2006-5-12
帖子
447
18
 楼主| 发表于 2007-7-13 17:06:23 | 只看该作者
怎么改,我是脚本盲{/pz}
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
675
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

19
发表于 2007-7-14 14:56:38 | 只看该作者
晕~~
说起来容易,作出来难 (竟然给我频频跳出『不要修改系统时间』)

只好用另一种方法了,把系统时间带入变数, 然後变数以与系统时间同等速度增加
说起来乾脆直接用变数好了~~{/pz}

直接替换之前我给出的真实时间脚本
  1. #================================================================================#
  2. #****Window_Time                                                                 #
  3. #--------------------------------------------------------------------------------#
  4. #    显示时间的窗口类                                                            #
  5. #================================================================================#
  6. class Window_Time < Window_Base
  7.   #----------------------#
  8.   #*初始化对象           #
  9.   #----------------------#
  10.   def initialize
  11.    
  12.     $time_date_running = 7                   #真实时间视窗显示/不显示
  13.     $real_time_format = 8                    #真实时间的模式开关编号
  14.     $hour = 2                                #小时的变量ID
  15.     $time_range = 3                          #纪录时段的变量ID
  16.     $check_system_time = false

  17.     #设定窗口
  18.     super(0, 425, 320, 55)
  19.     self.contents = Bitmap.new(width - 32, height - 32)
  20.     self.opacity = 255
  21.    
  22.     $game_switches[$real_time_format] = true  #真实时间12小时制
  23.     $game_switches[$time_date_running] = true
  24.    
  25.     #刷新窗口
  26.     refresh
  27.   end # end def initialize
  28.   #----------------------#
  29.   #*刷新                 #
  30.   #----------------------#
  31.   def refresh
  32.     self.contents.clear
  33.     self.contents.font.size = 18
  34.    
  35.     if $check_system_time == false
  36.       @time = Time.now
  37.       @time_sec = @time.sec
  38.       @time_min = @time.min
  39.       @time_hour = @time.hour
  40.       @time_day = @time.day
  41.       @time_month = @time.month
  42.       @time_year = @time.year
  43.       $check_system_time = true
  44.     end
  45.    
  46.     #让检查时间的变数与系统时间同步计算
  47.     @total_sec = Graphics.frame_count
  48.     if @total_sec % 2400 == 0
  49.       @time_min += 1
  50.     end
  51.     if @time_min >= 61
  52.       @time_hour += 1
  53.       @time_min = 1
  54.     end
  55.     if @time_hour >= 24
  56.       @time_day += 1
  57.       @time_hour = 1
  58.     end
  59.     @time_year % 4 == 0 ? feb_max = 29 : feb_max = 28
  60.     month_max = [nil,31, feb_max, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][@time_month]
  61.     if @time_day >= month_max + 1
  62.       @time_month += 1
  63.       @time_day = 1
  64.     end
  65.     if @time_month >= 13
  66.       @time_year += 1
  67.       @time_month = 1
  68.     end
  69.         
  70.     self.contents.clear
  71.     self.contents.font.size = 22
  72.    
  73.     if $game_switches[$real_time_format] == true
  74.       if @time_hour >= 12
  75.         @time_hour -= 12
  76.         text = "PM"
  77.       else
  78.         text = "AM"
  79.       end # end if
  80.     else
  81.       text = ""
  82.     end # end if
  83.    
  84.     self.contents.draw_text(224, -5, 128, 32, text)
  85.     self.contents.draw_text(4, -5, 128, 32, @time_year.to_s + "年")
  86.     self.contents.draw_text(78, -5, 128, 32, @time_month.to_s + "月")
  87.     self.contents.draw_text(116, -5, 128, 32, @time_day.to_s + "日")
  88.     self.contents.draw_text(160, -5, 128, 32, @time_hour.to_s + " :" + @time_min.to_s)
  89.       
  90.     weektxt = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"][@time.wday]
  91.     self.contents.draw_text(480, -5, 128, 32, weektxt)
  92.    
  93.    
  94.     #时段控制
  95.     $game_variables[$hour] = @time.hour #注意是"."
  96.     case $game_variables[$hour]
  97.     when 8
  98.       $game_variables[$time_range] = 1 #上午
  99.     when 12
  100.       $game_variables[$time_range] = 2 #中午
  101.     when 13
  102.       $game_variables[$time_range] = 3 #下午
  103.     when 17
  104.       $game_variables[$time_range] = 4 #傍晚
  105.     when 19
  106.       $game_variables[$time_range] = 5 #晚上
  107.     end

  108.   end # end def refresh

  109.   #----------------------#
  110.   #*刷新画面             #
  111.   #----------------------#
  112.   def update
  113.     super
  114.     refresh
  115.   end # end def update

  116. end# end class Window_time

  117. #================================================================================#
  118. #****Scene_Map                                                                   #
  119. #--------------------------------------------------------------------------------#
  120. #    处理地图画面的类别。                                                        #
  121. #================================================================================#
  122. class Scene_Map
  123.   #--------------------------------------------------------------------------
  124.   # ● 主处理
  125.   #--------------------------------------------------------------------------
  126.   alias timedate_main main
  127.   def main
  128.     # 产生活动区块
  129.     @spriteset = Spriteset_Map.new
  130.     # 产生讯息视窗
  131.     @message_window = Window_Message.new
  132.     # 产生时间视窗
  133.     @time_window = Window_Time.new
  134.     if $game_switches[$time_date_running] == false
  135.       @time_window.visible = false
  136.     end # end if
  137.     # 执行过渡
  138.     Graphics.transition
  139.     # 主循环
  140.     loop do
  141.       # 更新游戏画面
  142.       Graphics.update
  143.       # 更新输入讯息
  144.       Input.update
  145.       # 更新画面
  146.       update
  147.       # 如果画面切换的话就中断循环
  148.       if $scene != self
  149.         break
  150.       end # end if
  151.     end # end loop
  152.     # 准备过渡
  153.     Graphics.freeze
  154.     # 释放活动区块
  155.     @spriteset.dispose
  156.     # 释放讯息视窗
  157.     @message_window.dispose
  158.     # 释放时间视窗
  159.     @time_window.dispose
  160.     # 标题画面切换中的情况下
  161.     if $scene.is_a?(Scene_Title)
  162.       # 淡入淡出画面
  163.       Graphics.transition
  164.       Graphics.freeze
  165.     end # end if
  166.   end # end def main
  167.   
  168.   alias timedate_update update
  169.   def update
  170.    
  171.     #如果时间日期功能开关为OFF则不显示时间视窗
  172.     if $game_switches[$time_date_running] == false
  173.       @time_window.visible = false
  174.     else
  175.       @time_window.visible = true
  176.     end # end if

  177.     @time_window.refresh
  178.     timedate_update
  179.   end # end def update
  180. end #end class Scene_Map
复制代码


由於带入系统时间只在 initialize发生
所以当玩家更改系统时间时不会被更新
作息的开关也就不会被影响
不过还是有个破绽,就是如果玩家关闭游戏重新进入的话
时间就会被update
不过这也是没办法的事~~
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-9-22 07:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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