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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: a000b1745
打印 上一主题 下一主题

[已经解决] 關於一個日夜系統. 求VX版轉VA用...

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
11
发表于 2013-1-7 14:31:05 | 只看该作者
我个人没用过,不过看脚本中的说明,应该是用 GameTime::change(time) 吧,
脚本说 time 值不能大于 1440,1440/60 = 24,也就是1440分钟了,
所以八小时就是 60*8=480,设 GameTime::change(480) 应该可以。

点评

如果是 -480 就是往前八小时。  发表于 2013-1-7 14:32
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
552
在线时间
464 小时
注册时间
2009-10-11
帖子
407
12
 楼主| 发表于 2013-1-8 02:03:48 | 只看该作者
那可以設定地圖ID002. 不受日夜的畫面顏色控制,或是進入地圖ID003時,讓時間暫停嗎??
另外我想在06:00加入一個開關001,18:00加入另一個開關002,可行嗎?

点评

研究出來了. j433463大大的腳本裡面 設定"GameTime::change(+480)"就可以往後8小時 再把一個變量代入"$game_time" 那個變量就可以來製作開關了!!   发表于 2013-1-9 23:32
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2012-2-19
帖子
8
13
发表于 2013-2-9 19:00:00 | 只看该作者
a000b1745 发表于 2013-1-8 02:03
那可以設定地圖ID002. 不受日夜的畫面顏色控制,或是進入地圖ID003時,讓時間暫停嗎??
另外我想在06:00加入 ...

请问要怎么用那个变量制作开关?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22152
在线时间
8583 小时
注册时间
2011-12-31
帖子
3362
14
发表于 2013-2-9 20:54:50 | 只看该作者
本帖最后由 tseyik 于 2013-2-9 21:20 编辑

時間管理
# 事件「脚本」使用的命令操作時間
#「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秒

#地図名(不表示那個)記入下述關鍵字。
  MAP  = "UMD"
時間計算方法:
設定中PLUS指定(予設100=1秒)
事件実行計不計時間?
INTPRT  = false(不計)
強制指定時間的開関(設定的開関on(時間変化停止))
SWITCH = 1000
其他設定可看脚本
#

  1. #==============================================================================
  2. # ■ RGSS3 ゲーム内時間管理 Ver1.00 by 星潟
  3. #------------------------------------------------------------------------------
  4. # ゲーム内にゲーム内時間を追加すると共に
  5. #「夜明け」・「朝」・「昼」・「夕方」・「夜」・「深夜」の概念を追加します。
  6. # なお、時間経過はマップ上でのみ計算されます。
  7. # イベント中は時間経過を行わせないようにする機能等もあります。
  8. #
  9. # また、時間操作のイベントコマンド「スクリプト」で使用できるコマンドに
  10. #「time_control(a,b,c,d)」が追加されます。
  11. # aには"+"か"-"か"="の何れかを入れてください。
  12. # bには0から23までの数(時間)、
  13. # cには0から59までの数(分)、
  14. # dにも0から59までの数(秒)を入れてください。
  15. #
  16. # aに"+"を入れた場合、現在時間から指定した時間分、時間が経過します。
  17. # aに"-"を入れた場合、現在時間から指定した時間分、時間が巻戻ります。
  18. # ("+"と"-"で午前0時を跨いだ場合、日数変数を指定しているとその変数も変化します)
  19. # aに"="を入れた場合、現在時間を無視してその時間ぴったりに変更されます。
  20. #
  21. # 使用例
  22. # time_control("+",1,30,25)
  23. # 現在時間+1時間30分25秒
  24. #
  25. # time_control("-",1,30,25)
  26. # 現在時間+1時間30分25秒
  27. #
  28. # time_control("=",19,43,22)
  29. # 現在時間を19時43分22秒にする
  30. #
  31. #==============================================================================
  32. module TIME_SCHEDULE
  33.   
  34.   #フレーム更新毎の時間経過量
  35.   #100で1秒。6000で1分。360000で1時間。
  36.   PLUS    = 100
  37.   
  38.   #ゲーム開始時の1日の中の時間経過量(0~8639999で指定)
  39.   #経過量8640000到達で1日経過し、リセットされて0に戻る。
  40.   START   = 3600000
  41.   
  42.   #イベント実行中でも問答無用で時間を経過させるか?
  43.   #true 経過させる false 経過させない
  44.   INTPRT  = false
  45.   
  46.   #時間経過による色調変更を行うか
  47.   #true 行う false 行わない
  48.   COLOR = true
  49.   
  50.   #時間変化を強制停止するスイッチ番号の指定(増加も減少も無効化)
  51.   #0 強制停止機能の無効化 1~ 該当のスイッチがONの時、時間変化停止
  52.   SWITCH = 1000
  53.   
  54.   #時間経過による色調補正を実行しないマップの
  55.   #マップ名(表示しない方)に記入するキーワード。
  56.   MAP  = "UMD"
  57.   
  58.   #特定の変数に対し、常に時間帯の区分を代入し続けるか?
  59.   #0 代入しない 1~ 指定した数字のIDの変数に代入し続ける。
  60.   #代入された数字の対応は以下の通り
  61.   #0……夜明け
  62.   #1……朝
  63.   #2……昼
  64.   #3……夕方
  65.   #4……夜
  66.   #5……深夜
  67.   VAR1     = 4
  68.   
  69.   #特定の変数に対し、常に現在何時かを代入し続けるか?
  70.   #(0で機能を無効化)
  71.   VAR2     = 5
  72.   
  73.   #特定の変数に対し、常に現在何分かを代入し続けるか?
  74.   #(0で機能を無効化)
  75.   VAR3     = 6
  76.   
  77.   #特定の変数に対し、常に現在何秒かを代入し続けるか?
  78.   #(0で機能を無効化)
  79.   VAR4     = 7
  80.   
  81.   #ゲーム中にプレイヤーに見える形で日付を表す変数を用意していて
  82.   #なおかつ日数の経過で自動的に変数を変えたい場合、ここにその変数番号を記入
  83.   #(0で機能を無効化)
  84.   VAR5     = 8
  85.   
  86.   #色調変化速度(1~小数点以下で設定)
  87.   SPEED   = 0.1
  88.   
  89.   #夜明け時間設定(デフォルト 午前4時~)
  90.   Dawn    = 1440000
  91.   
  92.   #夜明け色調(R, G, B, alpha)
  93.   DaC     = [0, 0, 50, 100]
  94.   
  95.   #朝時間設定(デフォルト 午前5時30分~)
  96.   Morning = 1980000
  97.   
  98.   #朝色調(R, G, B, alpha)
  99.   MoC     = [0, 0, 0, 15]
  100.   
  101.   #昼時間設定(デフォルト 正午~)
  102.   Noon    = 4320000
  103.   
  104.   #昼色調(R, G, B, alpha)
  105.   NoC     = [0, 0, 0, 0]
  106.   
  107.   #夕方時間設定(デフォルト 午後16時30分~)
  108.   Evening = 5940000
  109.   
  110.   #夕方色調(R, G, B, alpha)
  111.   EvC     = [50, 0, 0, 150]
  112.   
  113.   #夜時間設定(デフォルト 午後18時30分~)
  114.   Night   = 6660000
  115.   
  116.   #夜色調(R, G, B, alpha)
  117.   NiC     = [0, 0, 50, 200]
  118.   
  119.   #深夜時間設定(デフォルト 深夜0時~)
  120.   MNight  = 0
  121.   
  122.   #深夜色調(R, G, B, alpha)
  123.   MNC     = [0, 0, 75, 225]
  124.   
  125. end
  126. #==============================================================================
  127. # ■ Game_Party
  128. #------------------------------------------------------------------------------
  129. #  パーティを扱うクラスです。所持金やアイテムなどの情報が含まれます。このクラ
  130. # スのインスタンスは $game_party で参照されます。
  131. #==============================================================================

  132. class Game_Party < Game_Unit
  133.   #--------------------------------------------------------------------------
  134.   # ● 公開インスタンス変数
  135.   #--------------------------------------------------------------------------
  136.   attr_accessor :time                    # 時間管理
  137.   attr_accessor :time_mode               # 時間帯データ
  138.   attr_accessor :day_red                 # R
  139.   attr_accessor :day_green               # G
  140.   attr_accessor :day_blue                # B
  141.   attr_accessor :day_alpha               # alpha
  142.   attr_accessor :daytimeview_force_change# ビューポート強制更新フラグ
  143.   #--------------------------------------------------------------------------
  144.   # ● オブジェクト初期化
  145.   #--------------------------------------------------------------------------
  146.   alias initialize_time initialize
  147.   def initialize
  148.     initialize_time
  149.     [url=home.php?mod=space&uid=134219]@Time[/url] = TIME_SCHEDULE::START
  150.     if [url=home.php?mod=space&uid=134219]@Time[/url] < TIME_SCHEDULE::Morning && [url=home.php?mod=space&uid=134219]@Time[/url] >= TIME_SCHEDULE::Dawn
  151.       @time_mode = 0
  152.       dr = TIME_SCHEDULE::DaC[0]
  153.       dg = TIME_SCHEDULE::DaC[1]
  154.       db = TIME_SCHEDULE::DaC[2]
  155.       da = TIME_SCHEDULE::DaC[3]
  156.     elsif [url=home.php?mod=space&uid=134219]@Time[/url] < TIME_SCHEDULE::Noon && [url=home.php?mod=space&uid=134219]@Time[/url] >= TIME_SCHEDULE::Morning
  157.       @time_mode = 1
  158.       dr = TIME_SCHEDULE::MoC[0]
  159.       dg = TIME_SCHEDULE::MoC[1]
  160.       db = TIME_SCHEDULE::MoC[2]
  161.       da = TIME_SCHEDULE::MoC[3]
  162.     elsif [url=home.php?mod=space&uid=134219]@Time[/url] < TIME_SCHEDULE::Evening && @time >= TIME_SCHEDULE::Noon
  163.       @time_mode = 2
  164.       dr = TIME_SCHEDULE::Noc[0]
  165.       dg = TIME_SCHEDULE::Noc[1]
  166.       db = TIME_SCHEDULE::Noc[2]
  167.       da = TIME_SCHEDULE::Noc[3]
  168.     elsif @time < TIME_SCHEDULE::Night && @time >= TIME_SCHEDULE::Evening
  169.       @time_mode = 3
  170.       dr = TIME_SCHEDULE::EvC[0]
  171.       dg = TIME_SCHEDULE::EvC[1]
  172.       db = TIME_SCHEDULE::EvC[2]
  173.       da = TIME_SCHEDULE::EvC[3]
  174.     elsif @time < TIME_SCHEDULE::MNight or @time >= TIME_SCHEDULE::Night
  175.       @time_mode = 4
  176.       dr = TIME_SCHEDULE::NiC[0]
  177.       dg = TIME_SCHEDULE::NiC[1]
  178.       db = TIME_SCHEDULE::NiC[2]
  179.       da = TIME_SCHEDULE::NiC[3]
  180.     elsif @time < TIME_SCHEDULE::Dawn or @time >= TIME_SCHEDULE::MNight
  181.       @time_mode = 5
  182.       dr = TIME_SCHEDULE::MNC[0]
  183.       dg = TIME_SCHEDULE::MNC[1]
  184.       db = TIME_SCHEDULE::MNC[2]
  185.       da = TIME_SCHEDULE::MNC[3]
  186.     end
  187.     @day_red = dr
  188.     @day_green = dg
  189.     @day_blue = db
  190.     @day_alpha = da
  191.   end
  192. end
  193. class Game_Map
  194.   #--------------------------------------------------------------------------
  195.   # ● フレーム更新
  196.   #     main : インタプリタ更新フラグ
  197.   #--------------------------------------------------------------------------
  198.   alias update_time update
  199.   def update(main = false)
  200.     update_time(main)
  201.     return if TIME_SCHEDULE::SWITCH > 0 && $game_switches[TIME_SCHEDULE::SWITCH] == true
  202.     return if TIME_SCHEDULE::INTPRT == false && @interpreter.running?
  203.     ts_update_base
  204.   end
  205.   def ts_update_base
  206.     $game_party.time += TIME_SCHEDULE::PLUS
  207.     if $game_party.time >= 8640000
  208.       $game_variables[TIME_SCHEDULE::VAR5] += 1 if TIME_SCHEDULE::VAR5 > 0
  209.       $game_party.time = 0
  210.     end
  211.     ts_update
  212.   end
  213.   def ts_update
  214.     time_data = $game_party.time
  215.     if time_data < TIME_SCHEDULE::Morning && time_data >= TIME_SCHEDULE::Dawn
  216.       if $game_party.time_mode != 0
  217.         $game_party.time_mode = 0
  218.       end
  219.     elsif time_data < TIME_SCHEDULE::Noon && time_data >= TIME_SCHEDULE::Morning
  220.       if $game_party.time_mode != 1
  221.         $game_party.time_mode = 1
  222.       end
  223.     elsif time_data < TIME_SCHEDULE::Evening && time_data >= TIME_SCHEDULE::Noon
  224.       if $game_party.time_mode != 2
  225.         $game_party.time_mode = 2
  226.       end
  227.     elsif time_data < TIME_SCHEDULE::Night && time_data >= TIME_SCHEDULE::Evening
  228.       if $game_party.time_mode != 3
  229.         $game_party.time_mode = 3
  230.       end
  231.     elsif time_data < TIME_SCHEDULE::MNight or time_data >= TIME_SCHEDULE::Night
  232.       if $game_party.time_mode != 4
  233.         $game_party.time_mode = 4
  234.       end
  235.     elsif time_data < TIME_SCHEDULE::Dawn or time_data >= TIME_SCHEDULE::MNight
  236.       if $game_party.time_mode != 5
  237.         $game_party.time_mode = 5
  238.       end
  239.     end
  240.     $game_variables[TIME_SCHEDULE::VAR1] = $game_party.time_mode if TIME_SCHEDULE::VAR1 > 0
  241.     $game_variables[TIME_SCHEDULE::VAR2] = $game_party.time / 100 / 60 / 60 if TIME_SCHEDULE::VAR2 > 0
  242.     $game_variables[TIME_SCHEDULE::VAR3] = $game_party.time / 100 / 60 % 60 if TIME_SCHEDULE::VAR3 > 0
  243.     $game_variables[TIME_SCHEDULE::VAR4] = $game_party.time / 100 % 60 if TIME_SCHEDULE::VAR4 > 0
  244.   end
  245. end
  246. class Spriteset_Map
  247.   #--------------------------------------------------------------------------
  248.   # ● ビューポートの作成
  249.   #--------------------------------------------------------------------------
  250.   alias create_viewports_daytime create_viewports
  251.   def create_viewports
  252.     create_viewports_daytime
  253.     create_daytime_viewports
  254.   end
  255.   #--------------------------------------------------------------------------
  256.   # ● 時間経過で変化するビューポートの作成
  257.   #--------------------------------------------------------------------------
  258.   def create_daytime_viewports
  259.     @viewport_daytime = Viewport.new
  260.     @viewport_daytime.z = 150
  261.     return if TIME_SCHEDULE::COLOR == false
  262.     @viewport_daytime.color.set($game_party.day_red, $game_party.day_green, $game_party.day_blue, $game_party.day_alpha)
  263.   end
  264.   #--------------------------------------------------------------------------
  265.   # ● ビューポートの解放
  266.   #--------------------------------------------------------------------------
  267.   alias dispose_viewports_daytime dispose_viewports
  268.   def dispose_viewports
  269.     dispose_viewports_daytime
  270.     @viewport_daytime.dispose
  271.   end
  272.   #--------------------------------------------------------------------------
  273.   # ● 天候の更新
  274.   #--------------------------------------------------------------------------
  275.   alias update_weather_daytime update_weather
  276.   def update_weather
  277.     update_weather_daytime
  278.     update_daytime
  279.   end
  280.   #--------------------------------------------------------------------------
  281.   # ● 時間による画面の更新
  282.   #--------------------------------------------------------------------------
  283.   def update_daytime
  284.     return if TIME_SCHEDULE::COLOR == false
  285.     if $data_mapinfos[$game_map.map_id].name.include?(TIME_SCHEDULE::MAP)
  286.       @viewport_daytime.color.set(0, 0, 0, 0)
  287.       $game_party.daytimeview_force_change = true
  288.       return
  289.     end
  290.     dacd = TIME_SCHEDULE::DaC
  291.     mocd = TIME_SCHEDULE::MoC
  292.     nocd = TIME_SCHEDULE::NoC
  293.     evcd = TIME_SCHEDULE::EvC
  294.     nicd = TIME_SCHEDULE::NiC
  295.     mncd = TIME_SCHEDULE::MNC
  296.     spd = TIME_SCHEDULE::SPEED
  297.     case $game_party.time_mode
  298.     when 0
  299.       rdn = dacd[0]
  300.       gdn = dacd[1]
  301.       bdn = dacd[2]
  302.       adn = dacd[3]
  303.     when 1
  304.       rdn = mocd[0]
  305.       gdn = mocd[1]
  306.       bdn = mocd[2]
  307.       adn = mocd[3]
  308.     when 2
  309.       rdn = nocd[0]
  310.       gdn = nocd[1]
  311.       bdn = nocd[2]
  312.       adn = nocd[3]
  313.     when 3
  314.       rdn = evcd[0]
  315.       gdn = evcd[1]
  316.       bdn = evcd[2]
  317.       adn = evcd[3]
  318.     when 4
  319.       rdn = nicd[0]
  320.       gdn = nicd[1]
  321.       bdn = nicd[2]
  322.       adn = nicd[3]
  323.     when 5
  324.       rdn = mncd[0]
  325.       gdn = mncd[1]
  326.       bdn = mncd[2]
  327.       adn = mncd[3]
  328.     end
  329.     if $game_party.daytimeview_force_change == true
  330.       @viewport_daytime.color.set(rdn, gdn, bdn, adn)
  331.       $game_party.daytimeview_force_change = false
  332.     else
  333.       rdo = @viewport_daytime.color.red
  334.       gdo = @viewport_daytime.color.green
  335.       bdo = @viewport_daytime.color.blue
  336.       ado = @viewport_daytime.color.alpha
  337.       if rdo > rdn
  338.         rd = rdo - spd
  339.       elsif rdo < rdn
  340.         rd = rdo + spd
  341.       else
  342.         rd = rdo
  343.       end
  344.       if gdo > gdn
  345.         gd = gdo - spd
  346.       elsif rdo < gdn
  347.         gd = gdo + spd
  348.       else
  349.         gd = gdo
  350.       end
  351.       if bdo > bdn
  352.         bd = bdo - spd
  353.       elsif bdo < bdn
  354.         bd = bdo + spd
  355.       else
  356.         bd = bdo
  357.       end
  358.       if ado > adn
  359.         ad = ado - spd
  360.       elsif rdo < adn
  361.         ad = ado + spd
  362.       else
  363.         ad = ado
  364.       end
  365.       $game_party.day_red = rd
  366.       $game_party.day_green = gd
  367.       $game_party.day_blue = bd
  368.       $game_party.day_alpha = ad
  369.       @viewport_daytime.color.set(rd, gd, bd, ad)
  370.     end
  371.   end
  372. end
  373. class Game_Interpreter
  374.   def time_control(n1,n2,n3,n4)
  375.     return if TIME_SCHEDULE::SWITCH > 0 && $game_switches[TIME_SCHEDULE::SWITCH] == true
  376.     tcd = tcd(n2,n3,n4)
  377.     if n1 == "+"
  378.       data = tcd + $game_party.time
  379.       if data >= 8640000
  380.         data = data - 8640000
  381.         $game_variables[TIME_SCHEDULE::VAR5] += 1 if TIME_SCHEDULE::VAR5 > 0
  382.       end
  383.     elsif n1 == "-"
  384.       data = $game_party.time - tcd
  385.       if 0 > data
  386.         data = data + 8640000
  387.         $game_variables[TIME_SCHEDULE::VAR5] -= 1 if TIME_SCHEDULE::VAR5 > 0
  388.       end
  389.     elsif n1 == "="
  390.       data = tcd
  391.     else
  392.       return
  393.     end
  394.     $game_party.time = data
  395.     $game_map.ts_update
  396.     $game_party.daytimeview_force_change = true
  397.   end
  398.   def tcd(nd1,nd2,nd3)
  399.     data = 0
  400.     data += nd1 * 60 * 60 * 100
  401.     data += nd2 * 60 * 100
  402.     data += nd3 * 100
  403.     return data
  404.   end
  405. end
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-6-7 04:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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