| 赞 | 168  | 
 
| VIP | 6 | 
 
| 好人卡 | 208 | 
 
| 积分 | 225 | 
 
| 经验 | 137153 | 
 
| 最后登录 | 2025-4-1 | 
 
| 在线时间 | 8598 小时 | 
 
 
 
 
 
Lv5.捕梦者 
	- 梦石
 - 0 
 
        - 星屑
 - 22509 
 
        - 在线时间
 - 8598 小时
 
        - 注册时间
 - 2011-12-31
 
        - 帖子
 - 3361
 
 
 
 | 
	
 本帖最后由 tseyik 于 2013-1-17 19:36 编辑  
 
ゲーム内時間管理脚本 
 
- #==============================================================================
 
 - # ■ RGSS3 ゲーム内時間管理 Ver1.00 by 星潟
 
 - #------------------------------------------------------------------------------
 
 - # ゲーム内にゲーム内時間を追加すると共に
 
 - #「夜明け」・「朝」・「昼」・「夕方」・「夜」・「深夜」の概念を追加します。
 
 - # なお、時間経過はマップ上でのみ計算されます。
 
 - # イベント中は時間経過を行わせないようにする機能等もあります。
 
 - #
 
 - # また、時間操作のイベントコマンド「スクリプト」で使用できるコマンドに
 
 - #「time_control(a,b,c,d)」が追加されます。 
 
 - # aには"+"か"-"か"="の何れかを入れてください。
 
 - # bには0から23までの数(時間)、
 
 - # cには0から59までの数(分)、
 
 - # dにも0から59までの数(秒)を入れてください。
 
 - # 
 
 - # aに"+"を入れた場合、現在時間から指定した時間分、時間が経過します。
 
 - # aに"-"を入れた場合、現在時間から指定した時間分、時間が巻戻ります。
 
 - # ("+"と"-"で午前0時を跨いだ場合、日数変数を指定しているとその変数も変化します)
 
 - # aに"="を入れた場合、現在時間を無視してその時間ぴったりに変更されます。
 
 - # 
 
 - # 使用例
 
 - # time_control("+",1,30,25)
 
 - # 現在時間+1時間30分25秒
 
 - # 
 
 - # time_control("-",1,30,25)
 
 - # 現在時間+1時間30分25秒
 
 - #
 
 - # time_control("=",19,43,22)
 
 - # 現在時間を19時43分22秒にする
 
 - # 
 
 - #============================================================================== 
 
 - module TIME_SCHEDULE
 
 -   
 
 -   #フレーム更新毎の時間経過量
 
 -   #100で1秒。6000で1分。360000で1時間。
 
 -   PLUS    = 100
 
 -   
 
 -   #ゲーム開始時の1日の中の時間経過量(0~8639999で指定)
 
 -   #経過量8640000到達で1日経過し、リセットされて0に戻る。
 
 -   START   = 3600000
 
 -   
 
 -   #イベント実行中でも問答無用で時間を経過させるか?
 
 -   #true 経過させる false 経過させない
 
 -   INTPRT  = false
 
 -   
 
 -   #時間経過による色調変更を行うか
 
 -   #true 行う false 行わない
 
 -   COLOR = true
 
 -   
 
 -   #時間変化を強制停止するスイッチ番号の指定(増加も減少も無効化)
 
 -   #0 強制停止機能の無効化 1~ 該当のスイッチがONの時、時間変化停止
 
 -   SWITCH = 1000
 
 -   
 
 -   #時間経過による色調補正を実行しないマップの
 
 -   #マップ名(表示しない方)に記入するキーワード。
 
 -   MAP  = "UMD"
 
 -   
 
 -   #特定の変数に対し、常に時間帯の区分を代入し続けるか?
 
 -   #0 代入しない 1~ 指定した数字のIDの変数に代入し続ける。
 
 -   #代入された数字の対応は以下の通り
 
 -   #0……夜明け
 
 -   #1……朝
 
 -   #2……昼
 
 -   #3……夕方
 
 -   #4……夜
 
 -   #5……深夜
 
 -   VAR1     = 4
 
 -   
 
 -   #特定の変数に対し、常に現在何時かを代入し続けるか?
 
 -   #(0で機能を無効化)
 
 -   VAR2     = 5
 
 -   
 
 -   #特定の変数に対し、常に現在何分かを代入し続けるか?
 
 -   #(0で機能を無効化)
 
 -   VAR3     = 6
 
 -   
 
 -   #特定の変数に対し、常に現在何秒かを代入し続けるか?
 
 -   #(0で機能を無効化)
 
 -   VAR4     = 7
 
 -   
 
 -   #ゲーム中にプレイヤーに見える形で日付を表す変数を用意していて
 
 -   #なおかつ日数の経過で自動的に変数を変えたい場合、ここにその変数番号を記入
 
 -   #(0で機能を無効化)
 
 -   VAR5     = 8
 
 -   
 
 -   #色調変化速度(1~小数点以下で設定)
 
 -   SPEED   = 0.1
 
 -   
 
 -   #夜明け時間設定(デフォルト 午前4時~)
 
 -   Dawn    = 1440000
 
 -   
 
 -   #夜明け色調(R, G, B, alpha)
 
 -   DaC     = [0, 0, 50, 100]
 
 -   
 
 -   #朝時間設定(デフォルト 午前5時30分~)
 
 -   Morning = 1980000
 
 -   
 
 -   #朝色調(R, G, B, alpha)
 
 -   MoC     = [0, 0, 0, 15]
 
 -   
 
 -   #昼時間設定(デフォルト 正午~)
 
 -   Noon    = 4320000
 
 -   
 
 -   #昼色調(R, G, B, alpha)
 
 -   NoC     = [0, 0, 0, 0]
 
 -   
 
 -   #夕方時間設定(デフォルト 午後16時30分~)
 
 -   Evening = 5940000
 
 -   
 
 -   #夕方色調(R, G, B, alpha)
 
 -   EvC     = [50, 0, 0, 150]
 
 -   
 
 -   #夜時間設定(デフォルト 午後18時30分~)
 
 -   Night   = 6660000
 
 -   
 
 -   #夜色調(R, G, B, alpha)
 
 -   NiC     = [0, 0, 50, 200]
 
 -   
 
 -   #深夜時間設定(デフォルト 深夜0時~)
 
 -   MNight  = 0
 
 -   
 
 -   #深夜色調(R, G, B, alpha)
 
 -   MNC     = [0, 0, 75, 225]
 
 -   
 
 - end
 
 - #==============================================================================
 
 - # ■ Game_Party
 
 - #------------------------------------------------------------------------------
 
 - #  パーティを扱うクラスです。所持金やアイテムなどの情報が含まれます。このクラ
 
 - # スのインスタンスは $game_party で参照されます。
 
 - #==============================================================================
 
  
- class Game_Party < Game_Unit
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 公開インスタンス変数
 
 -   #--------------------------------------------------------------------------
 
 -   attr_accessor :time                    # 時間管理
 
 -   attr_accessor :time_mode               # 時間帯データ
 
 -   attr_accessor :day_red                 # R
 
 -   attr_accessor :day_green               # G
 
 -   attr_accessor :day_blue                # B
 
 -   attr_accessor :day_alpha               # alpha
 
 -   attr_accessor :daytimeview_force_change# ビューポート強制更新フラグ
 
 -   #--------------------------------------------------------------------------
 
 -   # ● オブジェクト初期化
 
 -   #--------------------------------------------------------------------------
 
 -   alias initialize_time initialize
 
 -   def initialize
 
 -     initialize_time
 
 -     [url=home.php?mod=space&uid=134219]@Time[/url] = TIME_SCHEDULE::START
 
 -     if [url=home.php?mod=space&uid=134219]@Time[/url] < TIME_SCHEDULE::Morning && @time >= TIME_SCHEDULE::Dawn 
 
 -       @time_mode = 0
 
 -       dr = TIME_SCHEDULE::DaC[0]
 
 -       dg = TIME_SCHEDULE::DaC[1]
 
 -       db = TIME_SCHEDULE::DaC[2]
 
 -       da = TIME_SCHEDULE::DaC[3]
 
 -     elsif @time < TIME_SCHEDULE::Noon && @time >= TIME_SCHEDULE::Morning
 
 -       @time_mode = 1
 
 -       dr = TIME_SCHEDULE::MoC[0]
 
 -       dg = TIME_SCHEDULE::MoC[1]
 
 -       db = TIME_SCHEDULE::MoC[2]
 
 -       da = TIME_SCHEDULE::MoC[3]
 
 -     elsif @time < TIME_SCHEDULE::Evening && @time >= TIME_SCHEDULE::Noon
 
 -       @time_mode = 2
 
 -       dr = TIME_SCHEDULE::Noc[0]
 
 -       dg = TIME_SCHEDULE::Noc[1]
 
 -       db = TIME_SCHEDULE::Noc[2]
 
 -       da = TIME_SCHEDULE::Noc[3]
 
 -     elsif @time < TIME_SCHEDULE::Night && @time >= TIME_SCHEDULE::Evening
 
 -       @time_mode = 3
 
 -       dr = TIME_SCHEDULE::EvC[0]
 
 -       dg = TIME_SCHEDULE::EvC[1]
 
 -       db = TIME_SCHEDULE::EvC[2]
 
 -       da = TIME_SCHEDULE::EvC[3]
 
 -     elsif @time < TIME_SCHEDULE::MNight or @time >= TIME_SCHEDULE::Night
 
 -       @time_mode = 4
 
 -       dr = TIME_SCHEDULE::NiC[0]
 
 -       dg = TIME_SCHEDULE::NiC[1]
 
 -       db = TIME_SCHEDULE::NiC[2]
 
 -       da = TIME_SCHEDULE::NiC[3]
 
 -     elsif @time < TIME_SCHEDULE::Dawn or @time >= TIME_SCHEDULE::MNight
 
 -       @time_mode = 5
 
 -       dr = TIME_SCHEDULE::MNC[0]
 
 -       dg = TIME_SCHEDULE::MNC[1]
 
 -       db = TIME_SCHEDULE::MNC[2]
 
 -       da = TIME_SCHEDULE::MNC[3]
 
 -     end
 
 -     @day_red = dr
 
 -     @day_green = dg
 
 -     @day_blue = db
 
 -     @day_alpha = da
 
 -   end
 
 - end
 
 - class Game_Map
 
 -   #--------------------------------------------------------------------------
 
 -   # ● フレーム更新
 
 -   #     main : インタプリタ更新フラグ
 
 -   #--------------------------------------------------------------------------
 
 -   alias update_time update
 
 -   def update(main = false)
 
 -     update_time(main)
 
 -     return if TIME_SCHEDULE::SWITCH > 0 && $game_switches[TIME_SCHEDULE::SWITCH] == true
 
 -     return if TIME_SCHEDULE::INTPRT == false && @interpreter.running?
 
 -     ts_update_base
 
 -   end
 
 -   def ts_update_base
 
 -     $game_party.time += TIME_SCHEDULE::PLUS
 
 -     if $game_party.time >= 8640000
 
 -       $game_variables[TIME_SCHEDULE::VAR5] += 1 if TIME_SCHEDULE::VAR5 > 0
 
 -       $game_party.time = 0
 
 -     end
 
 -     ts_update
 
 -   end
 
 -   def ts_update
 
 -     time_data = $game_party.time
 
 -     if time_data < TIME_SCHEDULE::Morning && time_data >= TIME_SCHEDULE::Dawn
 
 -       if $game_party.time_mode != 0
 
 -         $game_party.time_mode = 0
 
 -       end
 
 -     elsif time_data < TIME_SCHEDULE::Noon && time_data >= TIME_SCHEDULE::Morning
 
 -       if $game_party.time_mode != 1
 
 -         $game_party.time_mode = 1
 
 -       end
 
 -     elsif time_data < TIME_SCHEDULE::Evening && time_data >= TIME_SCHEDULE::Noon
 
 -       if $game_party.time_mode != 2
 
 -         $game_party.time_mode = 2
 
 -       end
 
 -     elsif time_data < TIME_SCHEDULE::Night && time_data >= TIME_SCHEDULE::Evening
 
 -       if $game_party.time_mode != 3
 
 -         $game_party.time_mode = 3
 
 -       end
 
 -     elsif time_data < TIME_SCHEDULE::MNight or time_data >= TIME_SCHEDULE::Night
 
 -       if $game_party.time_mode != 4
 
 -         $game_party.time_mode = 4
 
 -       end
 
 -     elsif time_data < TIME_SCHEDULE::Dawn or time_data >= TIME_SCHEDULE::MNight
 
 -       if $game_party.time_mode != 5
 
 -         $game_party.time_mode = 5
 
 -       end
 
 -     end
 
 -     $game_variables[TIME_SCHEDULE::VAR1] = $game_party.time_mode if TIME_SCHEDULE::VAR1 > 0
 
 -     $game_variables[TIME_SCHEDULE::VAR2] = $game_party.time / 100 / 60 / 60 if TIME_SCHEDULE::VAR2 > 0
 
 -     $game_variables[TIME_SCHEDULE::VAR3] = $game_party.time / 100 / 60 % 60 if TIME_SCHEDULE::VAR3 > 0
 
 -     $game_variables[TIME_SCHEDULE::VAR4] = $game_party.time / 100 % 60 if TIME_SCHEDULE::VAR4 > 0
 
 -   end
 
 - end
 
 - class Spriteset_Map
 
 -   #--------------------------------------------------------------------------
 
 -   # ● ビューポートの作成
 
 -   #--------------------------------------------------------------------------
 
 -   alias create_viewports_daytime create_viewports
 
 -   def create_viewports
 
 -     create_viewports_daytime
 
 -     create_daytime_viewports
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 時間経過で変化するビューポートの作成
 
 -   #--------------------------------------------------------------------------
 
 -   def create_daytime_viewports
 
 -     @viewport_daytime = Viewport.new
 
 -     @viewport_daytime.z = 150
 
 -     return if TIME_SCHEDULE::COLOR == false
 
 -     @viewport_daytime.color.set($game_party.day_red, $game_party.day_green, $game_party.day_blue, $game_party.day_alpha)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● ビューポートの解放
 
 -   #--------------------------------------------------------------------------
 
 -   alias dispose_viewports_daytime dispose_viewports
 
 -   def dispose_viewports
 
 -     dispose_viewports_daytime
 
 -     @viewport_daytime.dispose
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 天候の更新
 
 -   #--------------------------------------------------------------------------
 
 -   alias update_weather_daytime update_weather
 
 -   def update_weather
 
 -     update_weather_daytime
 
 -     update_daytime
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 時間による画面の更新
 
 -   #--------------------------------------------------------------------------
 
 -   def update_daytime
 
 -     return if TIME_SCHEDULE::COLOR == false
 
 -     if $data_mapinfos[$game_map.map_id].name.include?(TIME_SCHEDULE::MAP)
 
 -       @viewport_daytime.color.set(0, 0, 0, 0)
 
 -       $game_party.daytimeview_force_change = true
 
 -       return
 
 -     end
 
 -     dacd = TIME_SCHEDULE::DaC
 
 -     mocd = TIME_SCHEDULE::MoC
 
 -     nocd = TIME_SCHEDULE::NoC
 
 -     evcd = TIME_SCHEDULE::EvC
 
 -     nicd = TIME_SCHEDULE::NiC
 
 -     mncd = TIME_SCHEDULE::MNC
 
 -     spd = TIME_SCHEDULE::SPEED
 
 -     case $game_party.time_mode
 
 -     when 0
 
 -       rdn = dacd[0]
 
 -       gdn = dacd[1]
 
 -       bdn = dacd[2]
 
 -       adn = dacd[3]
 
 -     when 1
 
 -       rdn = mocd[0]
 
 -       gdn = mocd[1]
 
 -       bdn = mocd[2]
 
 -       adn = mocd[3]
 
 -     when 2
 
 -       rdn = nocd[0]
 
 -       gdn = nocd[1]
 
 -       bdn = nocd[2]
 
 -       adn = nocd[3]
 
 -     when 3
 
 -       rdn = evcd[0]
 
 -       gdn = evcd[1]
 
 -       bdn = evcd[2]
 
 -       adn = evcd[3]
 
 -     when 4
 
 -       rdn = nicd[0]
 
 -       gdn = nicd[1]
 
 -       bdn = nicd[2]
 
 -       adn = nicd[3]
 
 -     when 5
 
 -       rdn = mncd[0]
 
 -       gdn = mncd[1]
 
 -       bdn = mncd[2]
 
 -       adn = mncd[3]
 
 -     end
 
 -     if $game_party.daytimeview_force_change == true
 
 -       @viewport_daytime.color.set(rdn, gdn, bdn, adn)
 
 -       $game_party.daytimeview_force_change = false
 
 -     else
 
 -       rdo = @viewport_daytime.color.red
 
 -       gdo = @viewport_daytime.color.green
 
 -       bdo = @viewport_daytime.color.blue
 
 -       ado = @viewport_daytime.color.alpha
 
 -       if rdo > rdn
 
 -         rd = rdo - spd
 
 -       elsif rdo < rdn
 
 -         rd = rdo + spd
 
 -       else
 
 -         rd = rdo
 
 -       end
 
 -       if gdo > gdn
 
 -         gd = gdo - spd
 
 -       elsif rdo < gdn
 
 -         gd = gdo + spd
 
 -       else
 
 -         gd = gdo
 
 -       end
 
 -       if bdo > bdn
 
 -         bd = bdo - spd
 
 -       elsif bdo < bdn
 
 -         bd = bdo + spd
 
 -       else
 
 -         bd = bdo
 
 -       end
 
 -       if ado > adn
 
 -         ad = ado - spd
 
 -       elsif rdo < adn
 
 -         ad = ado + spd
 
 -       else
 
 -         ad = ado
 
 -       end
 
 -       $game_party.day_red = rd
 
 -       $game_party.day_green = gd
 
 -       $game_party.day_blue = bd
 
 -       $game_party.day_alpha = ad
 
 -       @viewport_daytime.color.set(rd, gd, bd, ad)
 
 -     end
 
 -   end
 
 - end
 
 - class Game_Interpreter
 
 -   def time_control(n1,n2,n3,n4)
 
 -     return if TIME_SCHEDULE::SWITCH > 0 && $game_switches[TIME_SCHEDULE::SWITCH] == true
 
 -     tcd = tcd(n2,n3,n4)
 
 -     if n1 == "+"
 
 -       data = tcd + $game_party.time
 
 -       if data >= 8640000
 
 -         data = data - 8640000
 
 -         $game_variables[TIME_SCHEDULE::VAR5] += 1 if TIME_SCHEDULE::VAR5 > 0
 
 -       end
 
 -     elsif n1 == "-"
 
 -       data = $game_party.time - tcd
 
 -       if 0 > data
 
 -         data = data + 8640000
 
 -         $game_variables[TIME_SCHEDULE::VAR5] -= 1 if TIME_SCHEDULE::VAR5 > 0
 
 -       end
 
 -     elsif n1 == "="
 
 -       data = tcd
 
 -     else
 
 -       return
 
 -     end
 
 -     $game_party.time = data
 
 -     $game_map.ts_update
 
 -     $game_party.daytimeview_force_change = true
 
 -   end
 
 -   def tcd(nd1,nd2,nd3)
 
 -     data = 0
 
 -     data += nd1 * 60 * 60 * 100
 
 -     data += nd2 * 60 * 100
 
 -     data += nd3 * 100
 
 -     return data
 
 -   end
 
 - end
 
  复制代码 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |