查看: 3538|回复: 4

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

[复制链接]
梦石
0
星屑
8009
在线时间
1320 小时
注册时间
2006-7-18
回帖
459
发表于 2015-3-4 21:42:04 | 显示全部楼层 |阅读模式

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

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

×
有什么不麻烦的方法,获得到系统现在时间,然后在对话框中显示。
文本语句里没有显示时间的,倒是可以获取时间存成变量,显示变量的方式来表现吧?或者在显示里调用某个类?
梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 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
复制代码
回复

使用道具 举报

无限の剣制

梦石
0
星屑
10450
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2015-3-4 23:24:24 | 显示全部楼层
本帖最后由 VIPArcher 于 2015-3-4 23:25 编辑

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

附带VA帮助文档 Time#strftime 方法
strftime(format)
返回时间,转化为 format 格式字符串。format 格式字符串可指定下面的格式:

%A

星期(Sunday、Monday、 ... )

%a

星期简称(Sun、Mon、 ... )

%B

月份(January、February、 ...)

%b

月份简称(Jan、Feb、 ... )

%c

时间和日期

%d

一月日期(01~31)

%H

一日时间,24 小时制(00~23)

%I

一日时间,12 小时制(01~12)

%j

一年日计数(001~366)

%M

分(00~59)

%m

一年月份(01~12)

%p

AM 或 PM

%S

秒(00~60,60 代表闰秒)

%U

一年星期计数,第一个星期从第一个星期天开始算起(00~53)

%W

一年星期计数,第一个星期从第一个星期一开始算起(00~53)

%w

一星期日子(0~6, 0 代表星期天)

%X

时间

%x

日期

%Y

年,4 位数

%y

年,2 位数(00~99)

%Z

时区

%%

% 符号本身

评分

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

查看全部评分

回复

使用道具 举报

梦石
0
星屑
8009
在线时间
1320 小时
注册时间
2006-7-18
回帖
459
 楼主| 发表于 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
回复

使用道具 举报

【欧皇】

梦石
3
星屑
2055
在线时间
1004 小时
注册时间
2013-8-19
回帖
3040

开拓者

发表于 2015-3-5 13:25:56 | 显示全部楼层
本帖最后由 VIPArcher 于 2015-3-5 13:46 编辑

内容误导,已编辑by VIPArcher进入RMXP(注意是XP,va没有),按下F1,搜索Time,进入Time主题。

RMXPF1帮助文档Time类
Time
时间的类。

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

方法self + other
返回 self 之后 other 秒钟的那个时间。

self - other
若 other 是 Time 对象的话,就以 Float 形式返回这二者间的时间差,单位是秒。若 other 是数值时,就返回 self 之前 other 秒钟的那个时间。

self <=> other
时间的比较。other 必需是 Time 对象或数值。若是数值的话,就把它当做自起算时间以来经过的秒数,然后进行比较。

strftime(format)
按照 formatt 字符串的模式,将时间变为字符串,并返回结果。format 字符串可以使用下列形式。

%A

星期几的名称(Sunday,Monday ... )

%a

星期几的简称(Sun,Mon ... )

%B

月の名称 (January, February ... )

%b

月份的名称(Jan,Feb ... )

%c

日期和时间

%d

日期(01-31)

%H

24 时制的小时(00-23)

%I

12 时制的小时(00-11)

%j

一年中的第几天(001-366)

%M

分钟(00-59)

%m

表示月份的数字(01-12)

%p

上午/下午(AM/PM)

%S

秒钟(00-60)(60是闰秒)

%U

表示周的数字。以第一个星期天作为第一周的开始(00-53)

%W

表示周的数字。以第一个星期一作为第一周的开始(00-53)

%w

表示星期几的数字。星期天是 0(0-6)

%X

时刻

%x

日期

%Y

表示公历年份的数字

%y

公历年份的后两位数字(00-99)

%Z

时区

%%

% 本身

sec
返回秒。

min
返回分。

hour
返回时。

mday
返回日。

mon
返回月。

year
返回年。

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

我们找到
父类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
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部