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

Project1

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

[原创发布] 全局时间变量(仿牧场物语?)更新为2.0 增加昼夜系统

 关闭 [复制链接]

Lv1.梦旅人

穿越一季:朔

梦石
0
星屑
50
在线时间
333 小时
注册时间
2007-4-11
帖子
5369

贵宾

跳转到指定楼层
1
发表于 2009-5-19 07:48:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 塑望 于 2009-7-3 12:52 编辑

效果:年,月,天,时,分,秒全部可以挂上变量 直接可以在如11点11分11秒开启某事件


默认是50号开关 开启/关闭 时间窗口



效果图


2009.05.19更新日志:
  1,直接可以在脚本定义所有内容。初始时间只需在地图定义个变量数值即可,因为算法已经代入到脚本里。修改运算幅度是脚本39行
  2,优化下。初始时间为星期一.0点0分0秒.添加日期功能(如年,月)自行添加

2009.07.03更新日志:
  1,添加昼夜版.往下拉


直接MAIN前插入
  1. #--------------------------------------------------------------------------
  2.   # 使用方法:打开50号(默认)开启时间功能,关闭50号则窗口关闭
  3.   #
  4.   # 如当周六晚8点 某商店才会开门(某事件在指定时间触发)
  5.   #
  6.   #定义时间算法在脚本39行
  7.   #                                       66RPG 沉默一秒钟(塑望)
  8.   #                                       Blog:hi.baidu.com/yuilife
  9.   #转载请保留以上信息
  10.   #--------------------------------------------------------------------------
  11. class Window_Time < Window_Base
  12.   
  13.   $时间窗口开关 = 50 #时间的开关
  14.   #----------以上为开关----------#
  15.   #----------以下为变量----------#
  16.   $天 = 49 #天的变量
  17.   $时 = 48 #时的变量
  18.   $分 = 47 #分的变量
  19.   $秒 = 46 #秒的变量
  20.   
  21.   #--------------------------------------------------------------------------
  22.   # ● 初始化对像
  23.   #--------------------------------------------------------------------------
  24.   def initialize
  25.     super(0, 0, 250, 55) #窗口坐标以及大小
  26.     self.contents = Bitmap.new(width - 32, height - 32)
  27.     self.opacity = 0
  28.     refresh
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 刷新  
  32.   #--------------------------------------------------------------------------
  33.   def refresh
  34.     if $game_switches[$时间窗口开关]
  35.     self.opacity = 255
  36.     self.contents.font.color = system_color
  37.     self.contents.font.size = 18

  38.          $game_variables[$秒] += 0.2#日期运算速度这里改.秒的运算

  39.    if $game_variables[$秒] >= 60
  40.      $game_variables[$秒] = 0
  41.      $game_variables[$分] += 1
  42.    end
  43.    
  44.    if $game_variables[$分] >= 60
  45.      $game_variables[$分] = 0
  46.      $game_variables[$时] += 1
  47.    end
  48.    
  49.    if $game_variables[$时] >= 24
  50.      $game_variables[$时] = 0
  51.      $game_variables[$天] += 1
  52.    end
  53.       if $game_variables[$天] >= 8
  54.      $game_variables[$天] = 1
  55.    end
  56.   self.contents.clear
  57.     if $game_variables[$时] >= 0 and $game_variables[$时] <= 12
  58.       self.contents.draw_text(4, -2, 120, 32, "AM")
  59.     elsif $game_variables[$时] >= 12 and $game_variables[$时] <= 24
  60.       self.contents.draw_text(4, -2, 120, 32, "PM")
  61.     end
  62.     self.contents.font.color = system_color
  63.     text = sprintf("星期"+"%01d  %02d:%02d:%02d", $game_variables[$天], $game_variables[$时], $game_variables[$分], $game_variables[$秒])
  64.     self.contents.font.color = normal_color
  65.     self.contents.draw_text(0, -2, 250, 32, text, 1)
  66.   else
  67.    self.contents.clear
  68.     self.opacity = 0
  69.   end
  70. end
  71. #--------------------------------------------------------------------------
  72.   # ● 刷新画面
  73.   #--------------------------------------------------------------------------
  74.   def update
  75.     super
  76.       refresh
  77.   end
  78. end
  79. #以下请无视 =_=
  80. class Scene_Map
  81.   #--------------------------------------------------------------------------
  82.   # ● 主处理
  83.   #--------------------------------------------------------------------------
  84.   def main
  85.     # 生成活动块
  86.     @spriteset = Spriteset_Map.new
  87.     # 生成信息窗口
  88.     @message_window = Window_Message.new
  89.     @time_window = Window_Time.new
  90.     $game_variables[$天] = 1
  91.     # 执行过渡
  92.     Graphics.transition
  93.     # 主循环
  94.     loop do
  95.       # 刷新游戏画面
  96.       Graphics.update
  97.       # 刷新输入信息
  98.       Input.update
  99.       # 刷新画面
  100.       update
  101.       # 如果画面切换的话就中断循环
  102.       if $scene != self
  103.         break
  104.       end
  105.     end
  106.     # 准备过渡
  107.     Graphics.freeze
  108.     # 释放活动块
  109.     @spriteset.dispose
  110.     # 释放信息窗口
  111.     @message_window.dispose
  112.     @time_window.dispose
  113.     # 标题画面切换中的情况下
  114.     if $scene.is_a?(Scene_Title)
  115.       # 淡入淡出画面
  116.       Graphics.transition
  117.       Graphics.freeze
  118.     end
  119.   end

  120. alias timedate_update update
  121. def update
  122.   @time_window.update
  123.    timedate_update
  124. end
  125. end
复制代码
工程(714KB):http://rpg.blue/upload_program/d ... ��作_123119477.rar(工程保留.不过里面脚本为事件关联算法.即在公共事件里定义时间算法.不推荐伸手党使用.伸手党自行复制以上脚本)

------------------------------
以下为昼夜版
----------------------------------
  1. #--------------------------------------------------------------------------
  2.   # 使用方法:打开50号(默认)开启时间功能,关闭50号则窗口关闭
  3.   #
  4.   #
  5.   #
  6.   #
  7.   #                                       66RPG 沉默一秒钟(塑望)
  8.   #                                       Blog:hi.baidu.com/yuilife
  9.   #(加入昼夜系统版。2.0版)
  10.   #转载请保留以上信息
  11.   #--------------------------------------------------------------------------
  12. class Window_Time < Window_Base
  13.   
  14.   $时间窗口开关 = 50 #时间的开关
  15.   #----------以上为开关----------#
  16.   #----------以下为变量----------#
  17.   $天 = 49 #天的变量
  18.   $时 = 48 #时的变量
  19.   $分 = 47 #分的变量
  20.   $秒 = 46 #秒的变量

  21.   $白天 = Tone.new(0,0,0,0)#白天的色调值
  22.   $晚上 = Tone.new(-100,-100,-100,0)#夜晚的色调值

  23.   HOUSE_ID = [2,3,4,5,6] #进入指定地图(ID)后不改变色调(天气).可以进行修改或添加
  24.   
  25.   #--------------------------------------------------------------------------
  26.   # ● 初始化对像
  27.   #--------------------------------------------------------------------------
  28.   def initialize
  29.     super(0, 0, 250, 55) #窗口坐标以及大小
  30.     self.contents = Bitmap.new(width - 32, height - 32)
  31.     self.opacity = 0
  32.     @id = $game_map.map_id
  33.     refresh
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 刷新  
  37.   #--------------------------------------------------------------------------
  38.   def refresh
  39.     if $game_switches[$时间窗口开关]
  40.     self.opacity = 255
  41.     self.contents.font.color = system_color
  42.     self.contents.font.size = 18
  43.          $game_variables[$秒] += 0.1#日期速度
  44.    if $game_variables[$秒] >= 60
  45.      $game_variables[$秒] = 0
  46.      $game_variables[$分] += 1
  47.    end
  48.    
  49.    if $game_variables[$分] >= 60
  50.      $game_variables[$分] = 0
  51.      $game_variables[$时] += 1
  52.    end
  53.    
  54.    if $game_variables[$时] >= 24
  55.      $game_variables[$时] = 0
  56.      $game_variables[$天] += 1
  57.    end
  58.       if $game_variables[$天] >= 8
  59.      $game_variables[$天] = 1
  60.    end
  61.     self.contents.clear  
  62.     if $game_variables[$时] >= 0 and $game_variables[$时] <= 12
  63.       $game_screen.start_tone_change($白天,0)
  64.       self.contents.draw_text(4, -2, 120, 32, "AM")
  65.     elsif $game_variables[$时] >= 12 and $game_variables[$时] <= 24
  66.       $game_screen.start_tone_change($晚上,0)
  67.       self.contents.draw_text(4, -2, 120, 32, "PM")
  68.     end
  69.     if HOUSE_ID.include?($game_map.map_id)
  70.         $game_screen.start_tone_change($白天,0)
  71.       end  
  72.     self.contents.font.color = system_color
  73.     text = sprintf("星期"+"%01d  %02d:%02d:%02d", $game_variables[$天], $game_variables[$时], $game_variables[$分], $game_variables[$秒])
  74.     self.contents.font.color = normal_color
  75.     self.contents.draw_text(0, -2, 250, 32, text, 1)
  76.   else
  77. self.contents.clear
  78.     self.opacity = 0
  79.   end
  80. end
  81. #--------------------------------------------------------------------------
  82.   # ● 刷新画面
  83.   #--------------------------------------------------------------------------
  84.   def update
  85.     super
  86.       refresh
  87.   end
  88. end
  89. #以下请无视 =_=
  90. class Scene_Map
  91.   #--------------------------------------------------------------------------
  92.   # ● 主处理
  93.   #--------------------------------------------------------------------------
  94.   def main
  95.     # 生成活动块
  96.     @spriteset = Spriteset_Map.new
  97.     # 生成信息窗口
  98.     @message_window = Window_Message.new
  99.     @time_window = Window_Time.new
  100.     $game_variables[$天] = 1
  101.     # 执行过渡
  102.     Graphics.transition
  103.     # 主循环
  104.     loop do
  105.       # 刷新游戏画面
  106.       Graphics.update
  107.       # 刷新输入信息
  108.       Input.update
  109.       # 刷新画面
  110.       update
  111.       # 如果画面切换的话就中断循环
  112.       if $scene != self
  113.         break
  114.       end
  115.     end
  116.     # 准备过渡
  117.     Graphics.freeze
  118.     # 释放活动块
  119.     @spriteset.dispose
  120.     # 释放信息窗口
  121.     @message_window.dispose
  122.     @time_window.dispose
  123.     # 标题画面切换中的情况下
  124.     if $scene.is_a?(Scene_Title)
  125.       # 淡入淡出画面
  126.       Graphics.transition
  127.       Graphics.freeze
  128.     end
  129.   end

  130. alias timedate_update update
  131. def update
  132.   @time_window.update
  133.    timedate_update
  134. end
  135. end
  136. #end
复制代码
6R复活?别扯淡了.

柳柳一旦接手66RPG,我果断呵呵啊。

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
2
发表于 2009-5-19 08:19:14 | 只看该作者
沙发一个,事件自由度创造极高!


其实之前就想写一个跟这个相关的脚本,
只是因为懒的写就没写了@_@

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6865
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

3
发表于 2009-5-21 20:37:56 | 只看该作者
这个应该是养成、精英类游戏用的吧
RPG感觉不怎么用得上{/bz}
说起年月日
我突然想起以前的三国类的策略类游戏
好像还没见过有人用RM做这类的游戏。。。











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

穿越一季:朔

梦石
0
星屑
50
在线时间
333 小时
注册时间
2007-4-11
帖子
5369

贵宾

4
 楼主| 发表于 2009-5-22 06:28:19 | 只看该作者
以下引用后知后觉于2009-5-21 12:37:56的发言:

这个应该是养成、精英类游戏用的吧
RPG感觉不怎么用得上
说起年月日
我突然想起以前的三国类的策略类游戏
好像还没见过有人用RM做这类的游戏。。。

不一定是养成等类的吧。RPG方面的都可以用。不过与时间挂钩的游戏都会要人命
6R复活?别扯淡了.

柳柳一旦接手66RPG,我果断呵呵啊。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

5
发表于 2009-5-23 02:10:44 | 只看该作者
又想起以前做的牧场物语了…… - -

话说那个脚本单纯就是为了显示用的吧?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

天壤

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-7-18
帖子
1435
6
发表于 2009-5-24 02:01:47 | 只看该作者
不错也。。。。不知道可不可以读取电脑时间的脚本。。。
时隔多年。我还是觉得66才是我的家。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

穿越一季:朔

梦石
0
星屑
50
在线时间
333 小时
注册时间
2007-4-11
帖子
5369

贵宾

7
 楼主| 发表于 2009-5-24 05:07:48 | 只看该作者
以下引用虚幻死神于2009-5-23 18:01:47的发言:

不错也。。。。不知道可不可以读取电脑时间的脚本。。。

最初的版本的确是与现实一样.

不过..挂个变量后.如果有个商店周六才开门,而玩家星期天的玩这个游戏... ...{/gg}
6R复活?别扯淡了.

柳柳一旦接手66RPG,我果断呵呵啊。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
97
8
发表于 2009-8-5 20:05:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
97
9
发表于 2009-8-5 20:06:35 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
382
在线时间
235 小时
注册时间
2009-2-13
帖子
470
10
发表于 2009-8-6 11:54:23 | 只看该作者
能否定义在某天发生事件呢?
那些人,那些事,等到明白了,也就无所谓了。
我博客:http://blog.sina.com.cn/gy963
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-2 04:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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