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

Project1

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

怎么用昼夜脚本?

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-5-31
帖子
22
跳转到指定楼层
1
发表于 2008-6-16 00:16:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
2
发表于 2008-6-16 00:58:18 | 只看该作者
脚本贴出来!

另外...昼夜系统...纯事件就能制作出来...{/kuk}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

忆颐

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-4-26
帖子
2048
3
发表于 2008-6-16 01:14:42 | 只看该作者
直接调画面色调就可以了

调成-128 -128 -36
我已经没有当时刚来6R时的那种激情了啊。
看来6R中的人又变了一轮,让我很陌生。
当时我只是路过,什么都没留下。
因为记得我的人已经不多了吧。
http://hi.baidu.com/fantasylen
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
3 小时
注册时间
2006-12-29
帖子
18
4
发表于 2008-6-16 02:02:23 | 只看该作者
我用事件加改变颜色的方法做了一个简单的,可是感觉很怪,一下子就黑了,不合理,我希望是随着时间的流逝而慢慢地变黑,搜了论坛,有一个,可是不会用

  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 昼夜转换 - KGC_DayNight ◆ VX ◆
  3. #_/    ◇ Last update : 2008/03/08 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  游戏中制作昼夜的概念。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★ 定做项目 - Customize ★
  9. #==============================================================================

  10. module KGC
  11. module DayNight
  12.   # ◆ 昼夜转换的方式
  13.   #  0..事件经过  1..步数  2..现实时间(微妙)
  14.   METHOD = 0

  15.   # ◆对这边在保存入阶段的变量的号码这儿指定了
  16.   #  想翻译的文章的变量,容纳现在的阶段。请力量做。
  17.   PHASE_VARIABLE     = 11
  18.   # ◆ 保存日数的变量的号码
  19.   #  对在这里指定了的变量,容纳流逝了的日数。
  20.   PASS_DAYS_VARIABLE = 12

  21.   # ◆ 活动中不变更阶段
  22.   STOP_ON_EVENT = true
  23.   # ◆ 战斗的时候,只背景适用色调
  24.   #  要false 的话,夜晚成为哪里的话的事。
  25.   TONE_BACK_ONLY_IN_BATTLE = true

  26.   # ◆ "名称"各阶段的设定
  27.   #各阶段,色调(Tone),转换时间。
  28.   # 这个格式作成。也能增加。
  29.   # 阶段,不过,在不习惯的时候不推荐。
  30.   # 阶段的名字。
  31.   #名字自己没有意义。
  32.   #[色调]
  33.   #画面全体的颜色。
  34.   # 不太明白的情况请别变更。到转移为止的到。
  35.   #[转换时间]
  36.   #下面的阶段时间。
  37.   #转换方式是时间流逝的情况秒,是步数的情况是步数就那样。
  38.   #现实时间的情况,转换到下面的状态的时刻(24小时方式)。
  39.   PHASE = [
  40.     ["昼",   Tone.new(   0,    0,   0), 300],  # フェーズ 0
  41.     ["夕方", Tone.new( -32,  -96, -96), 100],  # フェーズ 1
  42.     ["夜",   Tone.new(-128, -128, -32), 250],  # フェーズ 2
  43.     ["朝",   Tone.new( -48,  -48, -16), 100],  # フェーズ 3
  44.   ]  # ← これは消さないこと!

  45.   # 現実時間のときは、
  46.   #  ["昼",   Tone.new(  0,   0,   0), 16],  # フェーズ 0 (16時に夕方)
  47.   #  ["夕方", Tone.new(  0, -96, -96), 20],  # フェーズ 1 (20時に夜)
  48.   #  ["夜",   Tone.new(-96, -96, -64),  6],  # フェーズ 2 (6時に朝)
  49.   #  ["朝",   Tone.new(-48, -48, -16), 10],  # フェーズ 3 (10時に昼)
  50.   # このような感じ。

  51.   # ◆ 日付が変わるフェーズ
  52.   #  ここで指定したフェーズになったとき、日数を加算する。
  53.   #  初期状態の場合  0..昼  1..夕方  2..夜  3..朝
  54.   # ※ 現実時間の場合、現実と同じ日数にはならないので注意。
  55.   PASS_DAY_PHASE = 3

  56.   # ◆ 状態切り替え時のフェード時間 (フレーム)
  57.   #  省略時もこの値を使用します。
  58.   PHASE_DURATION = 60

  59.   # ◆ 曜日名
  60.   #  初日は先頭から始まり、最後の曜日まで行くと最初の曜日に戻る。
  61.   #  曜日自体に意味はありません。
  62.   # ※ 現実時間を使用する場合は 7 個にしてください。
  63.   WEEK_NAME = ["日", "月", "火", "水", "木", "金", "土"]
  64. end
  65. end

  66. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  67. $imported = {} if $imported == nil
  68. $imported["DayNight"] = true

  69. if $data_mapinfos == nil
  70.   $data_mapinfos = load_data("Data/MapInfos.rvdata")
  71. end

  72. module KGC::DayNight
  73.   METHOD_TIME  = 0  # 時間経過
  74.   METHOD_STEP  = 1  # 歩数
  75.   METHOD_RTIME = 2  # 現実時間

  76.   # 正規表現
  77.   module Regexp
  78.     # マップ情報
  79.     module MapInfo
  80.       # 遷移を止める
  81.       DAYNIGHT_STOP = /\[DN_STOP\]/i
  82.       # 昼夜エフェクト無効
  83.       DAYNIGHT_VOID = /\[DN_VOID\]/i
  84.     end

  85.     # 敵グループ
  86.     module Troop
  87.       # 出現フェーズ
  88.       APPEAR_PHASE = /\[DN((?:[ ]*[\-]?\d+(?:[ ]*,)?)+)\]/i
  89.     end
  90.   end

  91.   #--------------------------------------------------------------------------
  92.   # ○ 敵グループ出現判定
  93.   #     troop : 判定対象の敵グループ
  94.   #     phase : 判定するフェーズ
  95.   #--------------------------------------------------------------------------
  96.   def self.troop_appear?(troop, phase = $game_system.daynight_phase)
  97.     # 出現判定
  98.     unless troop.appear_daynight_phase.empty?
  99.       return false unless troop.appear_daynight_phase.include?(phase)
  100.     end
  101.     # 非出現判定
  102.     unless troop.nonappear_daynight_phase.empty?
  103.       return false if troop.nonappear_daynight_phase.include?(phase)
  104.     end

  105.     return true
  106.   end
  107. end

  108. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  109. #==============================================================================
  110. # □ KGC::Commands
  111. #==============================================================================

  112. module KGC::Commands
  113.   module_function
  114.   #--------------------------------------------------------------------------
  115.   # ○ 昼夜切り替えを停止
  116.   #--------------------------------------------------------------------------
  117.   def stop_daynight
  118.     $game_system.daynight_change_enabled = false
  119.   end
  120.   #--------------------------------------------------------------------------
  121.   # ○ 昼夜切り替えを起動
  122.   #--------------------------------------------------------------------------
  123.   def start_daynight
  124.     $game_system.daynight_change_enabled = true
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ○ 現在のフェーズ名を取得
  128.   #--------------------------------------------------------------------------
  129.   def get_daynight_name
  130.     return KGC::DayNight::PHASE[get_daynight_phase][0]
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ○ 現在の曜日を取得
  134.   #     variable_id : 代入する変数 ID
  135.   #--------------------------------------------------------------------------
  136.   def get_daynight_week(variable_id = 0)
  137.     if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME
  138.       week = Time.now.wday
  139.     else
  140.       days = $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE]
  141.       week = (days % KGC::DayNight::WEEK_NAME.size)
  142.     end

  143.     if variable_id > 0
  144.       $game_variables[variable_id] = week
  145.     end
  146.     return week
  147.   end
  148.   #--------------------------------------------------------------------------
  149.   # ○ 現在の曜日名を取得
  150.   #--------------------------------------------------------------------------
  151.   def get_daynight_week_name
  152.     return KGC::DayNight::WEEK_NAME[get_daynight_week]
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ○ フェーズ切り替え
  156.   #     phase     : 切り替え後のフェーズ
  157.   #     duration  : 切り替え時間(フレーム)
  158.   #     pass_days : 経過させる日数  (省略時: 0)
  159.   #--------------------------------------------------------------------------
  160.   def change_daynight_phase(phase,
  161.       duration = KGC::DayNight::PHASE_DURATION,
  162.       pass_days = 0)
  163.     $game_temp.manual_daynight_duration = duration
  164.     $game_system.daynight_counter = 0
  165.     $game_system.daynight_phase = phase
  166.     $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE] += pass_days
  167.     $game_map.need_refresh = true
  168.   end
  169.   #--------------------------------------------------------------------------
  170.   # ○ 次のフェーズへ遷移
  171.   #     duration : 切り替え時間(フレーム)
  172.   #--------------------------------------------------------------------------
  173.   def transit_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)
  174.     $game_screen.transit_daynight_phase(duration)
  175.     $game_map.need_refresh = true
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ○ デフォルトの色調に戻す
  179.   #     duration : 切り替え時間(フレーム)
  180.   #--------------------------------------------------------------------------
  181.   def set_daynight_default(duration = KGC::DayNight::PHASE_DURATION)
  182.     $game_screen.set_daynight_default(duration)
  183.     $game_map.need_refresh = true
  184.   end
  185.   #--------------------------------------------------------------------------
  186.   # ○ 現在のフェーズを復元
  187.   #     duration : 切り替え時間(フレーム)
  188.   #--------------------------------------------------------------------------
  189.   def restore_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)
  190.     $game_screen.restore_daynight_phase(duration)
  191.     $game_map.need_refresh = true
  192.   end
  193. end

  194. class Game_Interpreter
  195.   include KGC::Commands
  196. end

  197. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  198. #==============================================================================
  199. # ■ RPG::MapInfo
  200. #==============================================================================

  201. class RPG::MapInfo
  202.   #--------------------------------------------------------------------------
  203.   # ● マップ名取得
  204.   #--------------------------------------------------------------------------
  205.   def name
  206.     return @name.gsub(/\[.*\]/) { "" }
  207.   end
  208.   #--------------------------------------------------------------------------
  209.   # ○ オリジナルマップ名取得
  210.   #--------------------------------------------------------------------------
  211.   def original_name
  212.     return @name
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # ○ 昼夜切り替え停止
  216.   #--------------------------------------------------------------------------
  217.   def daynight_stop
  218.     return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_STOP
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # ○ 昼夜エフェクト無効
  222.   #--------------------------------------------------------------------------
  223.   def daynight_void
  224.     return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_VOID
  225.   end
  226. end

  227. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  228. #==============================================================================
  229. # ■ RPG::Area
  230. #==============================================================================

  231. unless $@
  232. class RPG::Area
  233.   #--------------------------------------------------------------------------
  234.   # ○ エンカウントリストの取得
  235.   #--------------------------------------------------------------------------
  236.   alias encounter_list_KGC_DayNight encounter_list
  237.   def encounter_list
  238.     list = encounter_list_KGC_DayNight.clone

  239.     # 出現条件判定
  240.     list.each_index { |i|
  241.       list[i] = nil unless KGC::DayNight.troop_appear?($data_troops[list[i]])
  242.     }
  243.     return list.compact
  244.   end
  245. end
  246. end

  247. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  248. #==============================================================================
  249. # ■ RPG::Troop
  250. #==============================================================================

  251. class RPG::Troop
  252.   #--------------------------------------------------------------------------
  253.   # ○ 昼夜切り替えのキャッシュ生成
  254.   #--------------------------------------------------------------------------
  255.   def create_daynight_cache
  256.     @__appear_daynight_phase = []
  257.     @__nonappear_daynight_phase = []

  258.     # 出現するフェーズ
  259.     if @name =~ KGC::DayNight::Regexp::Troop::APPEAR_PHASE
  260.       $1.scan(/[\-]?\d+/).each { |num|
  261.         phase = num.to_i
  262.         if phase < 0
  263.           # 出現しない
  264.           @__nonappear_daynight_phase << phase.abs
  265.         else
  266.           # 出現する
  267.           @__appear_daynight_phase << phase
  268.         end
  269.       }
  270.     end
  271.   end
  272.   #--------------------------------------------------------------------------
  273.   # ○ 出現するフェーズ
  274.   #--------------------------------------------------------------------------
  275.   def appear_daynight_phase
  276.     create_daynight_cache if @__appear_daynight_phase == nil
  277.     return @__appear_daynight_phase
  278.   end
  279.   #--------------------------------------------------------------------------
  280.   # ○ 出現しないフェーズ
  281.   #--------------------------------------------------------------------------
  282.   def nonappear_daynight_phase
  283.     create_daynight_cache if @__nonappear_daynight_phase == nil
  284.     return @__nonappear_daynight_phase
  285.   end
  286. end

  287. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  288. #==============================================================================
  289. # ■ Game_Temp
  290. #==============================================================================

  291. class Game_Temp
  292.   #--------------------------------------------------------------------------
  293.   # ● 公開インスタンス変数
  294.   #--------------------------------------------------------------------------
  295.   attr_accessor :manual_daynight_duration # 手動フェーズ変更フラグ
  296.   #--------------------------------------------------------------------------
  297.   # ● オブジェクト初期化
  298.   #--------------------------------------------------------------------------
  299.   alias initialize_KGC_DayNight initialize
  300.   def initialize
  301.     initialize_KGC_DayNight

  302.     @manual_daynight_duration = nil
  303.   end
  304. end

  305. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  306. #==============================================================================
  307. # ■ Game_System
  308. #==============================================================================

  309. class Game_System
  310.   #--------------------------------------------------------------------------
  311.   # ● 公開インスタンス変数
  312.   #--------------------------------------------------------------------------
  313.   attr_writer   :daynight_counter         # フェーズ遷移カウンタ
  314.   attr_writer   :daynight_change_enabled  # 昼夜切り替え有効
  315.   #--------------------------------------------------------------------------
  316.   # ● オブジェクト初期化
  317.   #--------------------------------------------------------------------------
  318.   alias initialize_KGC_DayNight initialize
  319.   def initialize
  320.     initialize_KGC_DayNight

  321.     @daynight_counter = 0
  322.     @daynight_change_enabled = true
  323.   end
  324.   #--------------------------------------------------------------------------
  325.   # ○ フェーズ遷移カウンタを取得
  326.   #--------------------------------------------------------------------------
  327.   def daynight_counter
  328.     @daynight_counter = 0 if @daynight_counter == nil
  329.     return @daynight_counter
  330.   end
  331.   #--------------------------------------------------------------------------
  332.   # ○ 現在のフェーズを取得
  333.   #--------------------------------------------------------------------------
  334.   def daynight_phase
  335.     return $game_variables[KGC::DayNight::PHASE_VARIABLE]
  336.   end
  337.   #--------------------------------------------------------------------------
  338.   # ○ 現在のフェーズを変更
  339.   #--------------------------------------------------------------------------
  340.   def daynight_phase=(value)
  341.     $game_variables[KGC::DayNight::PHASE_VARIABLE] = value
  342.   end
  343.   #--------------------------------------------------------------------------
  344.   # ○ 昼夜切り替え有効フラグを取得
  345.   #--------------------------------------------------------------------------
  346.   def daynight_change_enabled
  347.     @daynight_change_enabled = 0 if @daynight_change_enabled == nil
  348.     return @daynight_change_enabled
  349.   end
  350.   #--------------------------------------------------------------------------
  351.   # ○ フェーズ進行
  352.   #--------------------------------------------------------------------------
  353.   def progress_daynight_phase
  354.     self.daynight_phase += 1
  355.     if self.daynight_phase >= KGC::DayNight::PHASE.size
  356.       self.daynight_phase = 0
  357.     end
  358.     $game_map.need_refresh = true
  359.   end
  360.   #--------------------------------------------------------------------------
  361.   # ○ 現在のフェーズオブジェクトを取得
  362.   #--------------------------------------------------------------------------
  363.   def daynight_phase_object
  364.     return KGC::DayNight::PHASE[daynight_phase]
  365.   end
  366.   #--------------------------------------------------------------------------
  367.   # ○ 以前のフェーズオブジェクトを取得
  368.   #--------------------------------------------------------------------------
  369.   def previous_daynight_phase_object
  370.     return KGC::DayNight::PHASE[daynight_phase - 1]
  371.   end
  372. end

  373. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  374. #==============================================================================
  375. # ■ Game_Screen
  376. #==============================================================================

  377. class Game_Screen
  378.   #--------------------------------------------------------------------------
  379.   # ● 公開インスタンス変数
  380.   #--------------------------------------------------------------------------
  381.   attr_reader   :daynight_tone            # 昼夜の色調
  382.   #--------------------------------------------------------------------------
  383.   # ● クリア
  384.   #--------------------------------------------------------------------------
  385.   alias clear_KGC_DayNight clear
  386.   def clear
  387.     clear_KGC_DayNight

  388.     clear_daynight
  389.   end
  390.   #--------------------------------------------------------------------------
  391.   # ○ 昼夜切り替え用変数をクリア
  392.   #--------------------------------------------------------------------------
  393.   def clear_daynight
  394.     @default_tone = Tone.new(0, 0, 0)

  395.     # 移動判定用座標初期化
  396.     @daynight_x = 0
  397.     @daynight_y = 0

  398.     # フレーム更新用カウント初期化
  399.     @frame_count = Graphics.frame_count
  400.     @daynight_tone_duration = 0

  401.     apply_daynight
  402.   end
  403.   #--------------------------------------------------------------------------
  404.   # ○ 昼夜の色調を適用
  405.   #--------------------------------------------------------------------------
  406.   def apply_daynight
  407.     return if $game_map == nil

  408.     # 切り替えを無効化するマップの場合
  409.     if $game_map.daynight_void?
  410.       if @daynight_tone_changed
  411.         # 初期の色調に戻す
  412.         @tone = @default_tone.clone
  413.         @daynight_tone_changed = false
  414.       end
  415.       @daynight_tone = @tone.clone
  416.       return
  417.     end

  418.     # フェーズがおかしければ修復
  419.     if $game_system.daynight_phase_object == nil
  420.       $game_system.daynight_phase = 0
  421.     end

  422.     # 現在の色調を適用
  423.     @tone = $game_system.daynight_phase_object[1].clone
  424.     @daynight_tone = @tone.clone

  425.     # 現実時間遷移の場合
  426.     if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME
  427.       time = Time.now
  428.       # マッチするフェーズに遷移
  429.       KGC::DayNight::PHASE.each_with_index { |phase, i|
  430.         if phase[2] <= time.hour
  431.           start_tone_change(phase[1], 1)
  432.           $game_system.daynight_phase = i
  433.           break
  434.         end
  435.       }
  436.     end

  437.     @daynight_tone_changed = true
  438.   end
  439.   #--------------------------------------------------------------------------
  440.   # ○ 色調の取得
  441.   #--------------------------------------------------------------------------
  442.   def tone
  443.     if $game_temp.in_battle && KGC::DayNight::TONE_BACK_ONLY_IN_BATTLE
  444.       return @default_tone
  445.     else
  446.       return @tone
  447.     end
  448.   end
  449.   #--------------------------------------------------------------------------
  450.   # ● 色調変更の開始
  451.   #     tone     : 色調
  452.   #     duration : 時間
  453.   #--------------------------------------------------------------------------
  454.   alias start_tone_change_KGC_DayNight start_tone_change
  455.   def start_tone_change(tone, duration)
  456.     duration = [duration, 1].max
  457.     start_tone_change_KGC_DayNight(tone, duration)

  458.     @daynight_tone_target = tone.clone
  459.     @daynight_tone_duration = duration
  460.   end
  461.   #--------------------------------------------------------------------------
  462.   # ● フレーム更新
  463.   #--------------------------------------------------------------------------
  464.   alias update_KGC_DayNight update
  465.   def update
  466.     update_KGC_DayNight

  467.     update_daynight_transit
  468.   end
  469.   #--------------------------------------------------------------------------
  470.   # ● 色調の更新
  471.   #--------------------------------------------------------------------------
  472.   alias update_tone_KGC_DayNight update_tone
  473.   def update_tone
  474.     update_tone_KGC_DayNight

  475.     if @daynight_tone_duration >= 1
  476.       d = @daynight_tone_duration
  477.       target = @daynight_tone_target
  478.       @daynight_tone.red = (@daynight_tone.red * (d - 1) + target.red) / d
  479.       @daynight_tone.green = (@daynight_tone.green * (d - 1) + target.green) / d
  480.       @daynight_tone.blue = (@daynight_tone.blue * (d - 1) + target.blue) / d
  481.       @daynight_tone.gray = (@daynight_tone.gray * (d - 1) + target.gray) / d
  482.       @daynight_tone_duration -= 1
  483.     end
  484.   end
  485.   #--------------------------------------------------------------------------
  486.   # ○ フェーズ遷移の更新
  487.   #--------------------------------------------------------------------------
  488.   def update_daynight_transit
  489.     # 手動切り替えが行われた場合
  490.     if $game_temp.manual_daynight_duration
  491.       start_tone_change($game_system.daynight_phase_object[1],
  492.         $game_temp.manual_daynight_duration)
  493.       $game_temp.manual_daynight_duration = nil
  494.       @daynight_tone_changed = true
  495.     end

  496.     return unless $game_system.daynight_change_enabled  # 切り替えを
  497.     return if $game_map.daynight_stop?                  # 停止中

  498.     if KGC::DayNight::STOP_ON_EVENT
  499.       interpreter = ($game_temp.in_battle ? $game_troop.interpreter :
  500.         $game_map.interpreter)
  501.       return if interpreter.running?                    # イベント実行中
  502.     end

  503.     case KGC::DayNight::METHOD
  504.     when KGC::DayNight::METHOD_TIME   # 時間
  505.       update_daynight_pass_time
  506.     when KGC::DayNight::METHOD_STEP   # 歩数
  507.       update_daynight_step
  508.     when KGC::DayNight::METHOD_RTIME  # 現実時間
  509.       update_daynight_real_time
  510.     end
  511.   end
  512.   #--------------------------------------------------------------------------
  513.   # ○ 遷移 : 時間経過
  514.   #--------------------------------------------------------------------------
  515.   def update_daynight_pass_time
  516.     # カウント増加量計算
  517.     inc_count = Graphics.frame_count - @frame_count
  518.     # 加算量がおかしい場合は戻る
  519.     if inc_count >= 100
  520.       @frame_count = Graphics.frame_count
  521.       return
  522.     end
  523.     # カウント加算
  524.     $game_system.daynight_counter += inc_count
  525.     @frame_count = Graphics.frame_count

  526.     # 状態遷移判定
  527.     count = $game_system.daynight_counter / Graphics.frame_rate
  528.     if count >= $game_system.daynight_phase_object[2]
  529.       transit_daynight_next
  530.     end
  531.   end
  532.   #--------------------------------------------------------------------------
  533.   # ○ 遷移 : 歩数
  534.   #--------------------------------------------------------------------------
  535.   def update_daynight_step
  536.     # 移動していなければ戻る
  537.     return if @daynight_x == $game_player.x && @daynight_y == $game_player.y

  538.     @daynight_x = $game_player.x
  539.     @daynight_y = $game_player.y
  540.     # カウント加算
  541.     $game_system.daynight_counter += 1
  542.     # 状態遷移判定
  543.     count = $game_system.daynight_counter
  544.     if count >= $game_system.daynight_phase_object[2]
  545.       transit_daynight_next
  546.     end
  547.   end
  548.   #--------------------------------------------------------------------------
  549.   # ○ 遷移 : 現実時間
  550.   #--------------------------------------------------------------------------
  551.   def update_daynight_real_time
  552.     time = Time.now
  553.     # 状態遷移判定
  554.     time1 = $game_system.daynight_phase_object[2]
  555.     transit = (time1 <= time.hour)
  556.     if $game_system.previous_daynight_phase_object != nil
  557.       time2 = $game_system.previous_daynight_phase_object[2]
  558.       if time1 < time2
  559.         transit &= (time.hour < time2)
  560.       end
  561.     end

  562.     if transit
  563.       transit_daynight_next
  564.     end
  565.   end
  566.   #--------------------------------------------------------------------------
  567.   # ○ 次の状態へ遷移
  568.   #     duration : 遷移時間
  569.   #--------------------------------------------------------------------------
  570.   def transit_daynight_next(duration = KGC::DayNight::PHASE_DURATION)
  571.     $game_system.daynight_counter = 0
  572.     $game_system.progress_daynight_phase
  573.     # 日数経過判定
  574.     if $game_system.daynight_phase == KGC::DayNight::PASS_DAY_PHASE
  575.       $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE] += 1
  576.     end
  577.     # 色調切り替え
  578.     start_tone_change($game_system.daynight_phase_object[1], duration)
  579.     @daynight_tone_changed = true
  580.   end
  581.   #--------------------------------------------------------------------------
  582.   # ○ デフォルトの状態(0, 0, 0)に戻す
  583.   #     duration : 遷移時間
  584.   #--------------------------------------------------------------------------
  585.   def set_daynight_default(duration)
  586.     start_tone_change(@default_tone, duration)
  587.   end
  588.   #--------------------------------------------------------------------------
  589.   # ○ 現在のフェーズを復元
  590.   #     duration : 遷移時間
  591.   #--------------------------------------------------------------------------
  592.   def restore_daynight_phase(duration)
  593.     start_tone_change($game_system.daynight_phase_object[1], duration)
  594.     @daynight_tone_changed = true
  595.   end
  596. end

  597. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  598. #==============================================================================
  599. # ■ Game_Map
  600. #==============================================================================

  601. class Game_Map
  602.   #--------------------------------------------------------------------------
  603.   # ● セットアップ
  604.   #     map_id : マップ ID
  605.   #--------------------------------------------------------------------------
  606.   alias setup_KGC_DayNight setup
  607.   def setup(map_id)
  608.     setup_KGC_DayNight(map_id)

  609.     @screen.apply_daynight
  610.   end
  611.   #--------------------------------------------------------------------------
  612.   # ○ 昼夜切り替えを停止するか
  613.   #--------------------------------------------------------------------------
  614.   def daynight_stop?
  615.     info = $data_mapinfos[map_id]
  616.     return false if info == nil
  617.     return (info.daynight_stop || info.daynight_void)
  618.   end
  619.   #--------------------------------------------------------------------------
  620.   # ○ 昼夜切り替えが無効か
  621.   #--------------------------------------------------------------------------
  622.   def daynight_void?
  623.     info = $data_mapinfos[map_id]
  624.     return false if info == nil
  625.     return info.daynight_void
  626.   end
  627.   #--------------------------------------------------------------------------
  628.   # ● エンカウントリストの取得
  629.   #--------------------------------------------------------------------------
  630.   alias encounter_list_KGC_DayNight encounter_list
  631.   def encounter_list
  632.     list = encounter_list_KGC_DayNight.clone

  633.     # 出現条件判定
  634.     list.each_index { |i|
  635.       list[i] = nil unless KGC::DayNight.troop_appear?($data_troops[list[i]])
  636.     }
  637.     return list.compact
  638.   end
  639. end

  640. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  641. #==============================================================================
  642. # ■ Spriteset_Battle
  643. #==============================================================================

  644. if KGC::DayNight::TONE_BACK_ONLY_IN_BATTLE
  645. class Spriteset_Battle
  646.   #--------------------------------------------------------------------------
  647.   # ● バトルバックスプライトの作成
  648.   #--------------------------------------------------------------------------
  649.   alias create_battleback_KGC_DayNight create_battleback
  650.   def create_battleback
  651.     create_battleback_KGC_DayNight

  652.     if @battleback_sprite.wave_amp == 0
  653.       @battleback_sprite.tone = $game_troop.screen.daynight_tone
  654.     end
  655.   end
  656.   #--------------------------------------------------------------------------
  657.   # ● バトルフロアスプライトの作成
  658.   #--------------------------------------------------------------------------
  659.   alias create_battlefloor_KGC_DayNight create_battlefloor
  660.   def create_battlefloor
  661.     create_battlefloor_KGC_DayNight

  662.     @battlefloor_sprite.tone = $game_troop.screen.daynight_tone
  663.   end
  664. end
  665. end

  666. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  667. #==============================================================================
  668. # ■ Scene_Map
  669. #==============================================================================

  670. class Scene_Map < Scene_Base
  671.   #--------------------------------------------------------------------------
  672.   # ● 開始処理
  673.   #--------------------------------------------------------------------------
  674.   alias start_KGC_DayNight start
  675.   def start
  676.     $game_map.screen.clear_daynight

  677.     start_KGC_DayNight
  678.   end
  679. end
复制代码



希望那位大大能抽空帮忙做一个带时间提示的昼夜系统出来
最好带个工程,光是代码很难理解,有工程也好学习一点
谢谢了!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
5
发表于 2008-6-16 02:18:14 | 只看该作者
是色调没弄好...
慢慢的变色调
不要一下就变成夜晚...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

曹操

梦石
0
星屑
121
在线时间
42 小时
注册时间
2008-2-28
帖子
513
6
发表于 2008-6-16 02:38:01 | 只看该作者
希望你下次发脚本时用
代码复制
  1.  
这个
其实说到用事件制作天气系统,我倒是有一个思路:
两个开关,暂且命名为“天气指数1”“天气指数2”
然后在一个并行处理(条件开关为上面的第一个)的公共事件里这样写:
更改画面色调:(黑暗的色调,因为没试过,所以不知道具体数值)
帧数:(这里可以依据你认为一天的时间)
开另外一个(开关为第二个)公共事件:
更改画面色调:(正常的色调,同上)
帧数:(同上)
然后,你在搞一个旅馆一样的东西。
每次睡一觉后打开开关“天气指数1”
这样天就会慢慢变黑,然后在旅馆出再睡是就用条件分歧,当开关打开时:
除此以外:

这个方法有一个致命的缺陷,就是最大帧数只能为200,不过这个脚本应该很简单就可以解决
但是我....不会...

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
Ruby技术讨论,帮助你快速入门Ruby.群号码:4910970
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
7 小时
注册时间
2006-5-19
帖子
69
7
发表于 2008-6-16 03:46:41 | 只看该作者
仔细阅读脚本的注释吧,这个脚本使用起来没有任何难度啊...
近期生活状况: 震不死人晃死人,晃不死人吓死人; 吓不死人困死人,困不死人累死人; 累不死人跑死人。 比地震可怕的是余震, 比余震可怕的是预报余震, 比预报余震更可怕的是预报了余震却一直不震~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
5
在线时间
0 小时
注册时间
2008-6-16
帖子
4
8
发表于 2008-6-16 20:28:46 | 只看该作者
你的是什么游戏
吸烟能忘记一切痛苦||/
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-5-31
帖子
22
9
 楼主| 发表于 2008-6-17 03:03:33 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

10
发表于 2008-6-17 03:47:01 | 只看该作者
自己動手吧
http://rpg.blue/viewthread.php?tid=60056
http://rpg.blue/viewthread.php?tid=63807
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-25 21:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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