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

Project1

 找回密码
 注册会员
搜索
楼主: zhanghao
打印 上一主题 下一主题

改下八云紫的时间脚本

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
180 小时
注册时间
2008-2-6
帖子
92
11
 楼主| 发表于 2009-2-7 22:03:33 | 只看该作者
不是很急。尽量快就行了,谢谢再谢谢
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
289
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

12
发表于 2009-2-7 22:04:50 | 只看该作者
以下引用zhanghao于2009-2-7 14:03:33的发言:

不是很急。尽量快就行了,谢谢再谢谢


大概三天后就回家了。~~~~~

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
180 小时
注册时间
2008-2-6
帖子
92
13
 楼主| 发表于 2009-2-11 20:40:02 | 只看该作者
顶起这个贴子,希望某某人不要忘记诺言

以下引用楼下zh99998于2009-2-11 12:43:56(善于用编辑,怕被扣分)的发言:

从QQ上看貌似八云大人今天已经回家了^0^

太好了!

以下引用zh99998于2009-2-11 12:43:56的发言:(再次善用编辑)

问一下楼主用的什么查错脚本……


[本贴由作者于 2009-2-11 12:45:22 最后编辑]


snstar2006给我的一个范例里的,不知道是什么,直接用了
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
614
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

14
发表于 2009-2-11 20:43:56 | 只看该作者
问一下楼主用的什么查错脚本……
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

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

贵宾

15
发表于 2009-2-11 21:14:34 | 只看该作者
这个:【vx】错误脚本详细提示和添加错误日志
搜索一下就有了,柳之一写的
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
614
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

16
发表于 2009-2-11 21:23:25 | 只看该作者
谢……
流星大人有空的时候帮忙看下我的RTP路径的问题OK?

(啊,楼主不要踹我啊~~)
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
289
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

17
发表于 2009-2-11 21:34:05 | 只看该作者
测试啊测试,今晚再写吧~~~~现在好忙~~~

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
289
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

18
发表于 2009-2-11 22:23:54 | 只看该作者
小小的连贴一下,脚本完成。

  1. #==============================================================================
  2. #                            ■ 时间系统
  3. #------------------------------------------------------------------------------
  4. #                             by 八云 紫
  5. #==============================================================================

  6. #==============================================================================
  7. # ■ Time_byz
  8. #------------------------------------------------------------------------------
  9. #  定义 时间相关的 信息。
  10. #==============================================================================

  11. module Time_byz
  12.   #--------------初始化定义---------------
  13.   #  起始时间 [秒,分,时,日,月,  年]
  14.   INIT_TIME = [55,58,23,28,02,2008]
  15.   #--------------时间格式定义-------------
  16.   # 时间流失方式
  17.   # true.. 按帧数的倍数流失;false.. 按现实时间流失
  18.   TIME_MODULE = true
  19.   #---------------速度定义----------------
  20.   # 流失速度(越大速度越慢)
  21.   TIME_SPEED = 60
  22.   # 流失速度单位
  23.   # 1..时;2..分;3..秒;4..日
  24.   TIME_UNIT = 4
  25.   
  26.   #---------------事件定义----------------
  27.   TIME_EVENT = {
  28.     # 事件的起始条件就是时间,但是时间的格式要与起始时间的相同。
  29.     # 事件使用的是 公共事件,为了避免使用太多的公共事件,所以增加变量操作,
  30.     # 以便于在相同的公共事件里可以使用条件分歧。
  31.     # [秒,分,时,日,月,  年] => [变量ID,变量改变后的值,公共事件ID],
  32.       [00,59,23,28,02,2008] => [1, 1, 1],
  33.   }  # 这个不要去掉
  34.   
  35.   #---------------窗口定义----------------
  36.   WINDOW_X = 0
  37.   WINDOW_Y = 0
  38.   
  39. =begin

  40.   ---------------------------------------
  41.              时间间隔的判断
  42.   ---------------------------------------
  43.   1. 首先需要先定义一个计时器
  44.     $game_system.set_byz_timer(id)
  45.     其中的 id 可以是任何数字,字符串。
  46.   2. 然后在需要计算时间间隔的地方使用 条件分歧 里的脚本, 里面可以写上
  47.     $game_system.after_time(id) > 5
  48.     这里的 id 要和定义的时候一致。 这个的意思是 时间经过 5秒后.....
  49.    
  50. =end
  51. end
  52.   
  53. #==============================================================================
  54. # ■ Game_System
  55. #------------------------------------------------------------------------------
  56. #  处理系统附属数据的类。也可执行诸如交通工具、 BGM 等管理之类的功能。
  57. # 本类的实例请参考$game_system 。
  58. #==============================================================================

  59. class Game_System
  60.   #--------------------------------------------------------------------------
  61.   # ● 定义实例变量
  62.   #--------------------------------------------------------------------------  
  63.   attr_accessor :time_now
  64.   attr_accessor :byz_timer
  65.   attr_accessor :run_time
  66.   #--------------------------------------------------------------------------
  67.   # ● 初始化对像
  68.   #--------------------------------------------------------------------------  
  69.   alias old_initialize initialize
  70.   def initialize
  71.     if Time_byz::TIME_MODULE
  72.       year = Time_byz::INIT_TIME[5];
  73.       mon  = Time_byz::INIT_TIME[4];
  74.       day  = Time_byz::INIT_TIME[3];
  75.       hour = Time_byz::INIT_TIME[2];
  76.       min  = Time_byz::INIT_TIME[1];
  77.       sec  = Time_byz::INIT_TIME[0];
  78.       @time_now = Time.local(year, mon, day, hour, min, sec);
  79.     else
  80.       @time_now = Time.new;
  81.     end
  82.     @byz_timer = [];
  83.     @run_time = true;
  84.     old_initialize
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● 增加时间
  88.   #--------------------------------------------------------------------------  
  89.   def add_time(unit)
  90.     case unit
  91.     when 4
  92.       @time_now += 3600 * 24;
  93.     when 3
  94.       @time_now += 1;
  95.     when 2
  96.       @time_now += 60;
  97.     when 1
  98.       @time_now += 3600;
  99.     end
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 设定时间计时器
  103.   #--------------------------------------------------------------------------  
  104.   def set_byz_timer(id)
  105.     @byz_timer[id] = @time_now;
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 计算时间 (秒数)
  109.   #--------------------------------------------------------------------------
  110.   def after_time(id)
  111.     return 0 if @byz_timer[id] == nil;
  112.     return @time_now - @byz_timer[id];
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 返回时间[秒,分,时,日,月, 年, 星期]
  116.   #--------------------------------------------------------------------------  
  117.   def return_time(type, array_time)
  118.     logo = 6;
  119.     now_time = [];
  120.     loop do
  121.       counts_the_power = type /(10 ** logo);
  122.       type %= 10 ** logo;
  123.       if counts_the_power == 1;
  124.         case logo
  125.         when 6
  126.           times = @time_now.sec;
  127.         when 5
  128.           times = @time_now.min;
  129.         when 4
  130.           times = @time_now.hour;
  131.         when 3
  132.           times = @time_now.mday;
  133.         when 2
  134.           times = @time_now.mon;
  135.         when 1
  136.           times = @time_now.year;
  137.         when 0
  138.           times = @time_now.wday;
  139.         end
  140.         now_time.push(times);
  141.       end
  142.       logo -= 1;
  143.       break if logo < 0;
  144.     end
  145.     return now_time == array_time;
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ● 时间跳跃 1..时;2..分;3..秒
  149.   #--------------------------------------------------------------------------
  150.   def bound_times(type, number)
  151.     case type
  152.     when 3
  153.       @time_now += number;
  154.     when 2
  155.       @time_now += 60 * number;
  156.     when 1
  157.       @time_now += 3600 * number;
  158.     end
  159.   end
  160. end
  161. #==============================================================================
  162. # ■ Window_Byz_Time
  163. #------------------------------------------------------------------------------
  164. #  调试画面、个别显示开关及变量的窗口。
  165. #==============================================================================

  166. class Window_Byz_Time < Window_Base
  167.   #--------------------------------------------------------------------------
  168.   # ● 初始化对像
  169.   #     x      : 窗口 X 座标
  170.   #     y      : 窗口 Y 座标
  171.   #--------------------------------------------------------------------------
  172.   def initialize(x, y)
  173.     super(x, y, 170, 87);
  174.     if Time_byz::TIME_MODULE
  175.       @time_speed = Time_byz::TIME_SPEED;
  176.     else
  177.       @time_speed = 60;
  178.     end
  179.     @time = @time_speed - 1;
  180.     refresh;
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ● 刷新
  184.   #--------------------------------------------------------------------------
  185.   def refresh
  186.     return unless $game_system.run_time;
  187.     @time += 1;
  188.     if @time_speed == @time;
  189.       $game_system.add_time(Time_byz::TIME_UNIT);
  190.       draw_time($game_system.time_now);
  191.       event_run;
  192.       @time = 0;
  193.     end
  194.   end
  195.   #--------------------------------------------------------------------------
  196.   # ● 描绘
  197.   #--------------------------------------------------------------------------
  198.   def draw_time(time)
  199.     self.contents.clear;
  200.     text = $game_system.time_now.strftime("%X")
  201.     self.contents.draw_text(0, 0, 105, WLH, text, 2);
  202.     text = $game_system.time_now.strftime("%Y年%m月%d日");
  203.     self.contents.draw_text(0, 32, 170, WLH, text);
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # ● 启动事件
  207.   #--------------------------------------------------------------------------
  208.   def event_run
  209.     array = ($game_system.time_now.to_a)[0,6];
  210.     if Time_byz::TIME_EVENT[array] != nil
  211.       unless !$scene.is_a?(Scene_Map) or $game_message.visible or $game_temp.in_battle
  212.         variables_id     = Time_byz::TIME_EVENT[array][0];
  213.         variables_number = Time_byz::TIME_EVENT[array][1];
  214.         commonevent_id   = Time_byz::TIME_EVENT[array][2];
  215.         $game_variables[variables_id] = variables_number;
  216.         $game_temp.common_event_id = commonevent_id;
  217.       end
  218.     end
  219.   end
  220. end
  221. #==============================================================================
  222. # ■ Scene_Map
  223. #------------------------------------------------------------------------------
  224. #  处理地图画面的类。
  225. #==============================================================================

  226. class Scene_Map < Scene_Base
  227.   
  228.   alias old_start start
  229.   #--------------------------------------------------------------------------
  230.   # ● 开始处理
  231.   #--------------------------------------------------------------------------
  232.   def start
  233.     old_start;
  234.     @time_window = Window_Byz_Time.new(Time_byz::WINDOW_X, Time_byz::WINDOW_Y);
  235.   end
  236.   alias old_terminate terminate
  237.   #--------------------------------------------------------------------------
  238.   # ● 结束处理
  239.   #--------------------------------------------------------------------------
  240.   def terminate
  241.     old_terminate;
  242.     @time_window.dispose;
  243.   end
  244.   alias old_update update
  245.   #--------------------------------------------------------------------------
  246.   # ● 更新画面
  247.   #--------------------------------------------------------------------------
  248.   def update
  249.     old_update;
  250.     @time_window.refresh;
  251.   end
  252. end
复制代码


用法:

   1.判断时间
   调用函数: $game_system.return_time(标志, 判断的时间)
   用法:
     按照 [秒,分,时,日,月, 年, 星期] 的顺序设置 标准 。 比如 要判断 年月,就这么写
[秒,分,时,日,月, 年, 星期]
  0  0  0  0  1   1   0         所以, 标志就是 0000110 。
     然后 判断的时间 写上要判断的具体时间 上例就是 [5, 2009], 注意,一定要用  [] 括起来。

   2.时间流动暂停开关
   改变 $game_system.run_time 的值就可以了。
   true:  流动  
   false: 暂停

   2.时间快进
   调用函数: $game_system.bound_times(标志, 数值)
   用法:标志有三个值, 1..时;2..分;3..秒
         数值 是要跳跃的数值
   例:  $game_system.bound_times(1, 8)
   说明:时间快进到8小时以后~~
版主对此帖的评论:『连贴扣分』,积分『-10』。这些被扣积分的一半会用于对本帖正确答案的悬赏。

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
180 小时
注册时间
2008-2-6
帖子
92
19
 楼主| 发表于 2009-2-12 01:42:31 | 只看该作者
脚本很强大,但貌似您理解错了.....我想要的是问下事件就跳到明天的某个特定时间。(如9点睡觉,跳到明天6点。10点睡也是跳到明天6点)
如果实在太忙,就等您有空时再做吧。我的不急。
P.S.:我不是伸手党,脚本太难了
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
289
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

20
发表于 2009-2-12 01:47:51 | 只看该作者
这样啊,让吾改改好了~~~

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-22 21:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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