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

Project1

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

[已经解决] 有什么办法获取现在系统时间,并在对话里显示出来!

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7450
在线时间
1100 小时
注册时间
2006-7-18
帖子
572
跳转到指定楼层
1
发表于 2015-3-4 21:42:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
有什么不麻烦的方法,获得到系统现在时间,然后在对话框中显示。
文本语句里没有显示时间的,倒是可以获取时间存成变量,显示变量的方式来表现吧?或者在显示里调用某个类?

Lv5.捕梦者

梦石
0
星屑
22958
在线时间
8638 小时
注册时间
2011-12-31
帖子
3367
2
发表于 2015-3-4 21:48:11 | 只看该作者
リアル時刻の取得
使い方
イベントコマンドの「スクリプト」に書く。
nrt_year(n)  :n番の変数に年を代入
nrt_month(n)  :n番の変数に月を代入
nrt_day(n)  :n番の変数に日を代入
nrt_hour(n)  :n番の変数に時を代入
nrt_min(n)  :n番の変数に分を代入
nrt_sec(n)  :n番の変数に秒を代入
nrt_wday(n)  :n番の変数に曜日を代入

拡張機能
スクリプトにある設定項目を変更する。
・セーブ&ロード時に日数取得
SAVE_LOAD_MODE = true / false  :機能の有効 / 無効
SAVE_DAYS = n  :セーブ時に日数を入れる変数ID
LOAD_DAYS = n  :ロード時に日数を入れる変数ID
この機能を有効にすると、セーブ時とロード時に指定変数に日数が代入されます。
日数は「年が360日、月が30日、時刻は切り捨て」で換算された数で
例えば2013/11/16なら725026となります。
ロード時の日数からセーブ時の日数を引くことで
「何日後にロードしたか」が分かります。そういう機能です。

・常に月~秒までを取得
ALLWAYS_MODE = true / false  :機能の有効 / 無効
AW_MONTH = n  :月を受け取る変数ID
AW_DAY = n  :日を受け取る変数ID
AW_HOUR = n  :時を受け取る変数ID
AW_MIN = n  :分を受け取る変数ID
AW_SEC = n  :秒を受け取る変数ID
この機能を有効にすると
指定した変数に時刻が常に代入され続けます。

  1. #==============================================================================
  2. #                   「リアル時刻の取得」(ACE) ver1.0
  3. #   製作者:奈々(なな)
  4. #   へぷたなすくろーる http://heptanas.mamagoto.com/
  5. #
  6. #   ◇使用規約
  7. #   使用される場合はスクリプト作成者として「奈々」を明記して下さい。
  8. #   このスクリプトを改変したり、改変したものを配布するなどは自由ですが
  9. #   その場合も元のスクリプトの作成者として名前は載せて下さい。
  10. #
  11. #------------------------------------------------------------------------------
  12. #
  13. #   現実の時刻を(PCの時計から)変数に入れることができます。
  14. #   期間限定イベントや、某ど○ぶつの森のようなシステムにどうぞ。
  15. #   
  16. #   使い方はイベントコマンドの「スクリプト」で行います。
  17. #   nrt_year(n)   変数n番に年が入ります。
  18. #   nrt_month(n)           月
  19. #   nrt_day(n)             日
  20. #   nrt_hour(n)            時
  21. #   nrt_min(n)             分
  22. #   nrt_sec(n)             秒
  23. #   nrt_wday(n)   曜日(0が日曜、1が月曜...)
  24. #   
  25. #   また、拡張機能が2つあります。(falseをtrueに変えると有効になる)
  26. #   1つはセーブ時とロード時に日数を変数に取得する機能です。
  27. #   ロード時の日数からセーブ時の日数を引けば「何日後に再開したか」が分かります。
  28. #   
  29. #   もう1つは時刻を常に変数に取得し続ける機能です。
  30. #
  31. #==============================================================================
  32. # ◇拡張機能
  33. module Nana
  34. module Real_Time
  35.   
  36.   #セーブ&ロード時に日数取得
  37.   #日数は、一ヶ月が30日、一年が360日と換算
  38.   SAVE_LOAD_MODE = false
  39.   SAVE_DAYS = 1 #セーブ時に受け取る変数ID
  40.   LOAD_DAYS = 2 #ロード時に受け取る変数ID
  41.   
  42.   #常に月~秒までを取得
  43.   ALLWAYS_MODE = false
  44.   AW_MONTH = 1  #月を受け取る変数ID
  45.   AW_DAY = 2    #日を受け取る変数ID
  46.   AW_HOUR = 3   #時を受け取る変数ID
  47.   AW_MIN = 4    #分を受け取る変数ID
  48.   AW_SEC = 5    #秒を受け取る変数ID
  49. end
  50. end

  51. if Nana::Real_Time::SAVE_LOAD_MODE == true
  52. #==============================================================================
  53. # ■ DataManager
  54. #------------------------------------------------------------------------------
  55. #  データベースとゲームオブジェクトを管理するモジュールです。ゲームで使用する
  56. # ほぼ全てのグローバル変数はこのモジュールで初期化されます。
  57. #==============================================================================
  58. module DataManager
  59.   #--------------------------------------------------------------------------
  60.   # ○ セーブの実行
  61.   #--------------------------------------------------------------------------
  62.   def self.save_game(index)
  63.     x = Time.now
  64.     $game_variables[Nana::Real_Time::SAVE_DAYS] = x.year * 360 + x.month * 30 + x.day
  65.     begin
  66.       save_game_without_rescue(index)
  67.     rescue
  68.       delete_save_file(index)
  69.       false
  70.     end
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ○ ロードの実行
  74.   #--------------------------------------------------------------------------
  75.   def self.load_game(index)
  76.     load_game_without_rescue(index) rescue false
  77.     x = Time.now
  78.     $game_variables[Nana::Real_Time::LOAD_DAYS] = x.year * 360 + x.month * 30 + x.day
  79.   end
  80. end
  81. end

  82. if Nana::Real_Time::ALLWAYS_MODE == true
  83. #==============================================================================
  84. # ■ Scene_Base
  85. #------------------------------------------------------------------------------
  86. #  ゲーム中の全てのシーンのスーパークラスです。
  87. #==============================================================================

  88. class Scene_Base
  89.   #--------------------------------------------------------------------------
  90.   # ◎ フレーム更新
  91.   #--------------------------------------------------------------------------
  92.   alias nrt_update update
  93.   def update
  94.     nrt_update
  95.     x = Time.now
  96.     $game_variables[Nana::Real_Time::AW_MONTH] = x.month
  97.     $game_variables[Nana::Real_Time::AW_DAY] = x.day
  98.     $game_variables[Nana::Real_Time::AW_HOUR] = x.hour
  99.     $game_variables[Nana::Real_Time::AW_MIN] = x.min
  100.     $game_variables[Nana::Real_Time::AW_SEC] = x.sec
  101.   end
  102. end
  103. end

  104. #==============================================================================
  105. # ■ Game_Interpreter
  106. #------------------------------------------------------------------------------
  107. #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
  108. # Game_Troop クラス、Game_Event クラスの内部で使用されます。
  109. #==============================================================================

  110. class Game_Interpreter
  111.   #--------------------------------------------------------------------------
  112.   # ● 年を変数に代入
  113.   #--------------------------------------------------------------------------
  114.   def nrt_year(id)
  115.     x = Time.now
  116.     $game_variables[id] = x.year
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 月を変数に代入
  120.   #--------------------------------------------------------------------------
  121.   def nrt_month(id)
  122.     x = Time.now
  123.     $game_variables[id] = x.month
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● 日を変数に代入
  127.   #--------------------------------------------------------------------------
  128.   def nrt_day(id)
  129.     x = Time.now
  130.     $game_variables[id] = x.day
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● 時を変数に代入
  134.   #--------------------------------------------------------------------------
  135.   def nrt_hour(id)
  136.     x = Time.now
  137.     $game_variables[id] = x.hour
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # ● 分を変数に代入
  141.   #--------------------------------------------------------------------------
  142.   def nrt_min(id)
  143.     x = Time.now
  144.     $game_variables[id] = x.min
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ● 秒を変数に代入
  148.   #--------------------------------------------------------------------------
  149.   def nrt_sec(id)
  150.     x = Time.now
  151.     $game_variables[id] = x.sec
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # ● 曜日を変数に代入(0が日曜)
  155.   #--------------------------------------------------------------------------
  156.   def nrt_wday(id)
  157.     x = Time.now
  158.     $game_variables[id] = x.wday
  159.   end
  160. end
复制代码
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

3
发表于 2015-3-4 23:24:24 | 只看该作者
本帖最后由 VIPArcher 于 2015-3-4 23:25 编辑

变量操作 变量1 = Time.now.strftime("%H:%M:%S")
显示文字 : "现在时间是 \v[1]"

附带VA帮助文档 Time#strftime 方法

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7450
在线时间
1100 小时
注册时间
2006-7-18
帖子
572
4
 楼主| 发表于 2015-3-5 01:31:52 | 只看该作者
十分感谢!很有用!3楼的方法很简便,不过给变量赋值时不能写太长,位置不够,
Time.now.strftime("%Y年%m月%d日%H时")只能这么长,不能显示到分啊!有什么办法么!

点评

变量操作里不够写就写到事件脚本里 $game_variables[id] = Time.now.strftime啥啥啥的 自己灵活点利用  发表于 2015-3-5 10:45
回复 支持 反对

使用道具 举报

Lv4.逐梦者

【欧皇】

梦石
3
星屑
2066
在线时间
1004 小时
注册时间
2013-8-19
帖子
3486

开拓者

5
发表于 2015-3-5 13:25:56 | 只看该作者
本帖最后由 VIPArcher 于 2015-3-5 13:46 编辑
内容误导,已编辑by VIPArcher
RMXPF1帮助文档Time类

我们找到
父类Object
包含的模块Comparable
类方法Time.now
返回当前时间的 Time 对象。

看到了类方法
于是我们可以在Time.now(类方法)的后面加上
sec
返回秒。

min
返回分。

hour
返回时。

mday
返回日。

mon
返回月。

year
返回年。

wday
返回表示星期几的数字。

其中任意一个(记得在中间加上".")
如Time.now.mday代表本地时间中的“日”。

我们可以将变量赋值
  1. $game_variables[1] = Time.now.mday
复制代码
然后在文章中输入\v[1]就可以显示今天是几号了!
当然,如果你只是要条件分支的话,就不需要特意去赋值变量了。

你可能会问写不下?
请在脚本编辑器Main前面找个顺眼的地方把这段塞进去:
  1. class DingYi
  2. def mday
  3. $game_variables[1] = Time.now.mday
  4. end
  5. end
复制代码
然后在事件脚本中输入:
  1. alex=DingYi.new
  2. alex.mday
复制代码
以后遇到相同的问题请在class和最后的end中间加上
  1. def xxx
  2. 内容
  3. end
复制代码

评分

参与人数 1星屑 +131 收起 理由
VIPArcher + 131 我很赞同

查看全部评分

QQ:2223942063
Q群:365819625
贪吃方1.4
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 05:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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