铩羽 发表于 2009-7-3 21:14:54

RMXP游戏进行时的同步计时

http://www.66rpg.com/uploads/200907/s_1246624830S2VdAXFn.jpg游戏进行时的同步计时




这套系统使用在我的游戏中的,除了下面的脚本(把它insert到main前面),还需要三个步骤。
第一,创建一个开关【游戏开始】(叫其他名字也可以)
第二,创建一个公共事件,名字随便。其他内容如上面的图片(黑线划掉的部分除外,重要的是红线圈出的内容),如果看不清,请打开附件。
第三,在游戏开始的时候打开开关【游戏开始】
运行游戏就能达到效果。下面脚本中的变量id也可以随便调,只要自己知道,方便就好。
该系统可以用来制作游戏中任何与时间挂钩的任务,时间等。可无限延伸。
由于这是直接从我的游戏中取出来的,可能直接应用性不是太强,而且和我以前发布的时间显示系统是一套的。如果要使用,请自己修改,很方便,同时请注明本人版权。
此外希望各位前辈多多指点。
#==============================================================================
# ■ Game_Time
#------------------------------------------------------------------------------
#  与游戏时间计算有关的类,本游戏变量及开关之间的相互转换也包含在内。
# 这个类的实例请参考$game_time 。
#==============================================================================
class Game_Time
attr_accessor :clocktime
attr_accessor :daytime
attr_accessor :monthtime
attr_accessor :yeartime
def initialize
    @clocktime = 0
    @daytime = 0
    @monthtime = 0
    @yeartime = 0
    refresh
end
def refresh
#-------------------------------------------------------------------------------------------------
# 以下[]内为游戏内变量id,用来在游戏进行中增减时间。
#--------------------------------------------------------------------------------------------------
    @clocktime = $game_variables * 10# 可在游戏中增减时辰数
    @daytime = $game_variables * 120   # 可在游戏中增减天数
    @monthtime = $game_variables * 3600   # 可在游戏中增减月数
    @yeartime = $game_variables * 43200# 可在游戏中增减年数
    @total_sec =Graphics.frame_count / Graphics.frame_rate
   
    time = clocktime + daytime + monthtime + yeartime + @total_sec
    if time >= 2592000
      time -= 2592000
    elsif time <= 0
      time = 1
    end
#-------------------------------------------------------------------------------------------------
# 以下[]内为游戏内变量id,用来在游戏进行中调用时间。
#--------------------------------------------------------------------------------------------------
    $game_variables = time / 10 % 12# 可在游戏中调用时辰数
    $game_variables = time / 120 % 30 # 可在游戏中调用天数
    $game_variables = time / 3600 % 12# 可在游戏中调用月数
    $game_variables = time / 43200   # 可在游戏中调用年数
end
   
def update
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
end
end

secondsen 发表于 2009-7-8 09:35:13

应该提醒别人,93~100 号的变量不要 更改

我建议这个脚本中不要用$game_variables,个人建议而已。。。
页: [1]
查看完整版本: RMXP游戏进行时的同步计时