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

Project1

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

怎么把这几个脚本ok了??

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
153
在线时间
91 小时
注册时间
2008-7-14
帖子
113
跳转到指定楼层
1
发表于 2008-12-17 23:10:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
前提:vx
请求:将1的脚本弄成脚本2一样在游戏中直接可视时间等信息。
      谁可以给我一个烛光脚本。。66虽然有了,但是,不知道我哪里出问题了。。用脚本3,,但是烛光的效果没弄出来。。并且不能进入另一张地图的说。。
      不要有脚本冲突哦!!!
      最终结果是,我还要有步数的显示(显示的地方不重要。哪都可以,只是方便与否)。。也是随时可以看的类型。。
      再问一个,步数也会触发某些事件,怎么弄。。。(最好是:假设a事件结束时,步数为A。那么,设定,再走B步,就可以触发另一个事件。。。
或者是:当事件a开始时,走A步,就触发另一个事件。)
1
  1. .#==============================================================================
  2. # ■ Kylock的时间系统 VX 1.5
  3. #     6.3.2008
  4. #------------------------------------------------------------------------------
  5. #  脚本 by: Kylock
  6. #==============================================================================
  7. # 从XP版本改写,优化代码(更加兼容)
  8. # 这是完全时间和昼夜系统.
  9. # 这脚本增加了一个新窗口到游戏菜单,如果使用CMS
  10. # 这个脚本在它之上,以便它不会使CMS错误.
  11. # 如果使用战斗背景的变动的脚本,在它下面如此放置KTS
  12. # 那您没得到延迟口气作用在您争斗.除那之外
  13. # 不应该有任何其他剧本兼容性问题.
  14. # 我设法使这个脚本尽可能和customizable的原脚本一样
  15. # 虽然时间可以输出到游戏
  16. # 变量可以随意改变,强烈建议这样使用,以便更加容易操作
  17. # 事件在时间在游戏根据的修造.
  18. ===============================================================================
  19. # ● 更新日志
  20. #------------------------------------------------------------------------------
  21. #  1.0 - 开始发布.
  22. #  1.1 - 修正问题在战斗开始,放置这个脚本
  23. #          在所有战斗之下背景写Game脚本,如果使用“跳动设色”
  24. #  1.2 - 修正了$kts.stop和$kts.go的准确性
  25. #  1.3 - $kts.stop现在真实的停止一切,并且增加游戏开关为
  26. #          更加容易eventing。
  27. #  1.4 - 固定的战斗测试兼容性(模仿正常白天为战斗
  28. #          测试而不是黑暗一片).
  29. #        现在交换,并且可变量只将更新,当地图装载,以便
  30. #          事件不突然消失,当时间到。
  31. #        增加的$kts_anti_tone -回归允许相反颜色
  32. #          通常出现在一个被设色的屏幕。
  33. #  1.5 - 改写了发现的RegeXp [KTS]在映射的名字,
  34. #          解决错误地图是被设色的问题.
  35. #==============================================================================
  36. # ● 自动指示
  37. #------------------------------------------------------------------------------
  38. # 地图被选定作为野外是此的将影响的唯一的地图
  39. # 对自动定义的脚本用途.要符号化地图是“野外”,您必须
  40. # 以地图的名义包括[KTS].例如,您世界地图可能是
  41. # 名为“世界地图[KTS]”或“[KTS]世界地图”.供应被做以后在
  42. # 去除的脚本[KTS]从映射名字,当它另外读取
  43. # 脚本时.这意味着“[KTS]”在映射名字的时候不会出现弹出式
  44. # 窗口.
  45. #==============================================================================
  46. # ● 脚本函数调用
  47. #------------------------------------------------------------------------------
  48. #    下列是可以通过使用执行脚本命令
  49. #  “脚本…” 命令在事件。
  50. #    ● $kts.stop            - 停止时间(能为cutscenes使用)
  51. #    ● $kts.go              - 简历计时(不要忘记使用此!)
  52. #    ● $kts.sec(n)          - 增加时间向前(n)秒
  53. #    ● $kts.min(n)          - 增加时间向前(n)分
  54. #    ● $kts.hours(n)        - 增加时间向前(n)时
  55. #    ● $kts.days(n)         - 增加时间向前(n)天
  56. #    ● $kts.jump_to_hour(n) - 以后进步时间到指定的小时。
  57. #                            特别有用在情况
  58. #                            要某一事件发生在有些时光,
  59. #                            这个命令也许导致游戏
  60. #                            看上去冷却在几秒钟或更慢计算机。

  61. #==============================================================================
  62. # ● 数据库设定
  63. #------------------------------------------------------------------------------
  64. #    这个脚本,由defult,使用以下游戏可变量和开关:
  65. # 数据库变量:
  66. #    [1]当前时间            [4]当前小时
  67. #    [2]其次潮流            [5]当前天
  68. #    [3]当前分钟            [6]当前天的名称
  69. # 数据库开关:
  70. #    [1]在夜小时  (2200-0400) (10pm-4am)
  71. #    [2]在黎明小时(0500-0800) (5am-8am)
  72. #    [3]在白天小时(0900-1800) (9am-6pm)
  73. #    [4]在日落小时(1900-2100) (7pm-9pm)
  74. #==============================================================================

  75. #==============================================================================
  76. # 商店变量和用户定义的设置为时间系统。
  77. #==============================================================================
  78. module KTS
  79.   #-----------------------------------------------------------------------
  80.   # 用户下定义的时钟设置
  81.   #-----------------------------------------------------------------------
  82.   # 设置时钟的速度乘算器。  1是真正的时间。  更高
  83.   #   价值将给您一个更加快速的时钟。  缺省是100。
  84.   SPEED      = 100
  85.   #AMPM (True: 12-小时制, False: 24-小时制)
  86.   AMPM       = false
  87.   # 在游戏的开始设置时间.
  88.   START_HOUR = 1
  89.   START_DAY  = 1
  90.   #-----------------------------------------------------------------------
  91.   # 如果您想要习惯天名字,编辑!
  92.   #-----------------------------------------------------------------------
  93.   DAY_NAMES = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]
  94.   #-----------------------------------------------------------------------
  95.   # 设置时期
  96.   #-----------------------------------------------------------------------
  97.   T1 = [ 0,5 ] # 夜            #集合时期为设色作用
  98.   T2 = [ 6,8 ] # 黎明          #[开头小时,结尾小时]为时期
  99.   T3 = [ 9,18] # 天            #用途24小时价值时期
  100.   T4 = [19,21] # 傍晚
  101.   T5 = [22,24] # 夜            #<-前:夜在23:00和24:00之间
  102.   #-----------------------------------------------------------------------
  103.   # 设置到游戏变量选择.
  104.   #-----------------------------------------------------------------------
  105.   # 设置输出当前时间到游戏变量。
  106.   DATABASE_OUTPUT = true
  107.     # 在时间将使用的游戏变量输出。
  108.     TIME    = 1 # (时间以串格式。 Ex: "2:48 AM" or "02:48")
  109.     SECONDS = 2
  110.     MINUTES = 3
  111.     HOURS   = 4
  112.     DAYS    = 5
  113.     DAYNAME = 6
  114.     # 游戏交换用于在时间输出。
  115.     NIGHT   = 1 #这个开关是在夜小时   (2200-0400) (10pm-4am)
  116.     DAWN    = 2 #这个开关是在黎明小时    (0500-0800) (5am-8am)
  117.     DAY     = 3 #这个开关是在白天小时(0900-1800) (9am-6pm)
  118.     SUNSET  = 4 #这个开关是在日落小时(1900-2100) (7pm-9pm)
  119.   #-----------------------------------------------------------------------
  120.   # 设置为时间控制屏幕定色调
  121.   #-----------------------------------------------------------------------
  122.   # 真实的意志使能屏幕色调由脚本使用。
  123.   USE_TONE = true
  124.   # 设置口气的期间改变(在框架)
  125.   FADE_LENGTH = 120
  126.   # 定义了用于对应的时期被定义以上。
  127.   #              红色,绿色,蓝色,灰色
  128.   C1 = Tone.new(-187,  -119,  -17,  68)
  129.   C2 = Tone.new(  17,   -51, -102,   0)
  130.   C3 = Tone.new(   0,     0,    0,   0)
  131.   C4 = Tone.new( -68,  -136,  -34,   0)
  132.   C5 = Tone.new(-187,  -119,  -17,  68)
  133.   # 定义反
  134.   A1 = Tone.new( 187,   119,   17, -68)
  135.   A2 = Tone.new( -17,    51,  102,   0)
  136.   A3 = Tone.new(   0,     0,    0,   0)
  137.   A4 = Tone.new(  68,   136,   34,   0)
  138.   A5 = Tone.new( 187,   119,   17, -68)
  139. end

  140. #==============================================================================
  141. # 时间系统核心引擎
  142. #==============================================================================
  143. class Kylock_Time_System
  144.   # 设置实例变量
  145.   def initialize
  146.     $kts_map_data = load_data("Data/MapInfos.rvdata")
  147.     @event_offset = (KTS::START_HOUR * 3600) + (KTS::START_DAY * 86400)
  148.     @kts_stop = false
  149.     $kts_event_tone = false
  150.     $kts_battle_tone = true
  151.     $kts_anti_tone = Tone.new(0,0,0,0)
  152.   end
  153.   
  154.   # 估计当前时间和更新变量(如果使用)
  155.   def update
  156.     if !@kts_stop
  157.       @total_seconds = (Graphics.frame_count * KTS::SPEED / 60) + @event_offset
  158.       @seconds = (@total_seconds) % 60
  159.       @minutes = (@total_seconds / 60) % 60
  160.       @hours   = (@total_seconds / 3600) % 24
  161.       @days    = (@total_seconds / 86400)
  162.       update_tint
  163.       if KTS::DATABASE_OUTPUT
  164.         $game_variables[KTS::TIME]    = getTime
  165.       end
  166.     end
  167.   end

  168.   def update_variables
  169.     $game_variables[KTS::SECONDS] = @seconds
  170.     $game_variables[KTS::MINUTES] = @minutes
  171.     $game_variables[KTS::HOURS]   = @hours
  172.     $game_variables[KTS::DAYS]    = @days
  173.     $game_variables[KTS::DAYNAME] = getDayName
  174.   end

  175.   def update_switches
  176.     if @period == 1 || @period == 5
  177.       $game_switches[KTS::NIGHT] = true
  178.     else
  179.       $game_switches[KTS::NIGHT] = false
  180.     end
  181.     if @period == 2
  182.       $game_switches[KTS::DAWN] = true
  183.     else
  184.       $game_switches[KTS::DAWN] = false
  185.     end
  186.     if @period == 3
  187.       $game_switches[KTS::DAY] = true
  188.     else
  189.       $game_switches[KTS::DAY] = false
  190.     end
  191.     if @period == 4
  192.       $game_switches[KTS::SUNSET] = true
  193.     else
  194.       $game_switches[KTS::SUNSET] = false
  195.     end
  196.   end

  197.   def getTime
  198.     if KTS::AMPM
  199.       # 格式化 12-小时制
  200.       if @hours > 12
  201.         hours1 = @hours - 12
  202.         if hours1 > 9
  203.           time = sprintf("%02d:%02d" + " PM", hours1, @minutes)
  204.         else
  205.           time = sprintf("%01d:%02d" + " PM", hours1, @minutes)
  206.         end
  207.       else
  208.         if @hours > 9
  209.           time = sprintf("%02d:%02d" + " AM", @hours, @minutes)
  210.         else
  211.           time = sprintf("%01d:%02d" + " AM", @hours, @minutes)
  212.         end
  213.       end
  214.       return time
  215.     else
  216.       # 格式化 24-小时制
  217.       time = sprintf("%02d:%02d", @hours, @minutes)
  218.       return time
  219.     end
  220.   end
  221.   #-----------------------------------------------------------------------
  222.   # 脚本命令函数
  223.   #-----------------------------------------------------------------------
  224.   def stop
  225.     @time_stopped = @total_seconds
  226.     @kts_stop = true
  227.   end
  228.   def go
  229.     total_seconds = (Graphics.frame_count * KTS::SPEED / 60) + @event_offset
  230.     @event_offset -= (total_seconds - @time_stopped)
  231.     @kts_stop = false
  232.   end
  233.   def sec(sec = 0)
  234.     @event_offset += sec
  235.   end
  236.   def min(min = 0)
  237.     @event_offset += min * 60
  238.   end
  239.   def hours(hours = 0)
  240.     @event_offset += hours * 3600
  241.   end
  242.   def days(days = 0)
  243.     @event_offset += days * 86400
  244.   end
  245.   def jump_to_hour(jhour = 0)
  246.     while @hours != jhour
  247.       @event_offset += 1
  248.       $kts.update
  249.     end
  250.   end
  251.   #-----------------------------------------------------------------------
  252.   # 脚本支持/混杂作用
  253.   #-----------------------------------------------------------------------
  254.   def getDayName
  255.     weekday = (@days % KTS::DAY_NAMES.length)
  256.     return KTS::DAY_NAMES[weekday]
  257.   end

  258.   #-----------------------------------------------------------------------
  259.   # 屏幕作用
  260.   #-----------------------------------------------------------------------
  261.   def update_tint(duration = KTS::FADE_LENGTH)
  262.     return if $BTEST
  263.     if KTS::USE_TONE && !$kts_event_tone && $kts_map_data[$game_map.map_id].outside_tint?
  264.       if @hours >= KTS::T1[0] and @hours <= KTS::T1[1]
  265.         @period = 1
  266.         screen.start_tone_change(KTS::C1,duration)
  267.         $kts_anti_tone = KTS::A1
  268.       elsif @hours >= KTS::T2[0] and @hours <= KTS::T2[1]
  269.         @period = 2
  270.         screen.start_tone_change(KTS::C2,duration)
  271.         $kts_anti_tone = KTS::A2
  272.       elsif @hours >= KTS::T3[0] and @hours <= KTS::T3[1]
  273.         @period = 3
  274.         screen.start_tone_change(KTS::C3,duration)
  275.         $kts_anti_tone = KTS::A3
  276.       elsif @hours >= KTS::T4[0] and @hours <= KTS::T4[1]
  277.         @period = 4
  278.         screen.start_tone_change(KTS::C4,duration)
  279.         $kts_anti_tone = KTS::A4
  280.       elsif @hours >= KTS::T5[0] and @hours <= KTS::T5[1]
  281.         @period = 5
  282.         screen.start_tone_change(KTS::C5,duration)
  283.         $kts_anti_tone = KTS::A5
  284.       end
  285.     else
  286.       # 没有??如果内景
  287.       if !$kts_map_data[$game_map.map_id].outside_tint?
  288.         screen.start_tone_change(Tone.new(0,0,0,0),duration)
  289.       end
  290.     end
  291.   end
  292.   def screen
  293.     if $game_temp.in_battle
  294.       return $game_troop.screen
  295.     else
  296.       return $game_map.screen
  297.     end
  298.   end
  299. end

  300. class Spriteset_Map
  301.   #--------------------------------------------------------------------------
  302.   # * 对象初始化
  303.   #--------------------------------------------------------------------------
  304.   alias kts_initialize initialize
  305.   def initialize
  306.     $kts.update_switches if !@kts_stop && KTS::DATABASE_OUTPUT
  307.     $kts.update_variables if !@kts_stop && KTS::DATABASE_OUTPUT
  308.     kts_initialize
  309.   end
  310. end

  311. #==============================================================================
  312. # 当一张新的地图被装载时,立即更新屏幕。
  313. #==============================================================================
  314. class Game_Map
  315.   alias kts_setup setup
  316.   def setup(map_id)
  317.     kts_setup(map_id)
  318.     $kts_event_tone = false
  319.     $kts.update
  320.     $kts.update_tint(0)
  321.   end
  322. end

  323. #==============================================================================
  324. # 当战斗开始时,立即更新屏幕。
  325. #==============================================================================
  326. class Spriteset_Battle
  327.   alias kts_create_battleback create_battleback
  328.   def create_battleback
  329.     $kts.update_tint(0)
  330.     kts_create_battleback
  331.   end
  332. end

  333. #==============================================================================
  334. # 如果事件设色屏幕,临时地使自动色调失去能力。
  335. #==============================================================================
  336. class Game_Interpreter
  337.   alias kts_Interpreter_command_223 command_223
  338.   def command_223
  339.     $kts_event_tone = true
  340.     kts_Interpreter_command_223
  341.   end
  342. end

  343. #==============================================================================
  344. # 集成时间系统游戏系统。
  345. #==============================================================================
  346. class Game_System
  347.   # inits KTS 对象
  348.   alias kts_initialize initialize
  349.   def initialize
  350.     $kts=Kylock_Time_System.new
  351.     kts_initialize
  352.   end
  353.   # 更新KTS每个游戏框架
  354.   alias kts_update update
  355.   def update
  356.     $kts.update
  357.     kts_update
  358.   end
  359. end

  360. #==============================================================================
  361. # 扫瞄映射名字对于色调
  362. #==============================================================================
  363. class RPG::MapInfo
  364.   def name # 定义防止地点脚本任何内
  365.     return @name.gsub(/\[.*\]/) {""} # 托架,包括托架
  366.   end
  367.   def original_name
  368.     return @name
  369.   end
  370.   def outside_tint?
  371.     return @name.scan(/\[KTS\]/).size > 0
  372.     # RegeXp : 回归@name.scan (/[\ KTS]/) .size > 0
  373.   end
  374. end

  375. #==============================================================================
  376. # 设定时间窗口为菜单。
  377. #==============================================================================
  378. class Window_KTS < Window_Base
  379.   def initialize(x, y)
  380.     super(x, y, 160, WLH + 32)
  381.     refresh
  382.   end
  383.   def refresh
  384.     self.contents.clear
  385.     self.contents.draw_text(4, -6, 120, 32, $kts.getTime, 2)
  386.   end
  387.   def update
  388.     super
  389.     $kts.update
  390.     self.contents.clear
  391.     self.contents.draw_text(4, -6, 120, 32, $kts.getTime, 2)
  392.   end
  393. end

  394. #==============================================================================
  395. # 增加时间窗口到菜单。
  396. #==============================================================================
  397. class Scene_Menu < Scene_Base
  398.   alias kts_start start
  399.   def start
  400.     kts_start
  401.     @kts_window = Window_KTS.new(0,305)
  402.   end
  403.   alias kts_terminate terminate
  404.   def terminate
  405.     kts_terminate
  406.     @kts_window.dispose
  407.   end
  408.   alias kts_update update
  409.   def update
  410.     kts_update
  411.     @kts_window.update
  412.   end
  413. end

  414. #==============================================================================
  415. # 节省并且装载游戏时间到/从保存游戏文件。
  416. #==============================================================================
  417. class Scene_File
  418.   alias kts_write_save_data write_save_data
  419.   def write_save_data(file)
  420.     kts_write_save_data(file)
  421.     Marshal.dump($kts, file)
  422.   end
  423.   alias kts_read_save_data read_save_data
  424.   def read_save_data(file)
  425.     kts_read_save_data(file)
  426.     $kts = Marshal.load(file)
  427.   end
  428. end
复制代码

2.
  1. #==============================================================================
  2. #                            ■ 时间系统
  3. #------------------------------------------------------------------------------
  4. #                             by 八云 紫
  5. #==============================================================================

  6. #==============================================================================
  7. # ■ Time_byz
  8. #------------------------------------------------------------------------------
  9. #  定义 时间相关的 信息。
  10. #==============================================================================

  11. module Time_byz
  12.   #--------------初始化定义---------------
  13.   #  起始时间 [秒,分,时,日,月,  年]
  14.   INIT_TIME = [55,58,23,28,02,2008]
  15.   #--------------时间格式定义-------------
  16.   # 时间流失方式
  17.   # true.. 按帧数的倍数流失;false.. 按现实时间流失
  18.   TIME_MODULE = true
  19.   #---------------速度定义----------------
  20.   # 流失速度(越大速度越慢)
  21.   TIME_SPEED = 60
  22.   # 流失速度单位
  23.   # 1..时;2..分;3..秒
  24.   TIME_UNIT = 3
  25.   
  26.   #---------------事件定义----------------
  27.   TIME_EVENT = {
  28.     # 事件的起始条件就是时间,但是时间的格式要与起始时间的相同。
  29.     # 事件使用的是 公共事件,为了避免使用太多的公共事件,所以增加变量操作,
  30.     # 以便于在相同的公共事件里可以使用条件分歧。
  31.     # [秒,分,时,日,月,  年] => [变量ID,变量改变后的值,公共事件ID]
  32.       [00,59,23,28,02,2008] => [1, 1, 1]
  33.   }  # 这个不要去掉
  34.   
  35.   #---------------窗口定义----------------
  36.   WINDOW_X = 0
  37.   WINDOW_Y = 0
  38.   
  39. =begin

  40.   ---------------------------------------
  41.              时间间隔的判断
  42.   ---------------------------------------
  43.   1. 首先需要先定义一个计时器
  44.     $game_system.set_byz_timer(id)
  45.     其中的 id 可以是任何数字,字符串。
  46.   2. 然后在需要计算时间间隔的地方使用 条件分歧 里的脚本, 里面可以写上
  47.     $game_system.after_time(id) > 5
  48.     这里的 id 要和定义的时候一致。 这个的意思是 时间经过 5秒后.....
  49.    
  50. =end
  51. end
  52.   
  53. #==============================================================================
  54. # ■ Game_System
  55. #------------------------------------------------------------------------------
  56. #  处理系统附属数据的类。也可执行诸如交通工具、 BGM 等管理之类的功能。
  57. # 本类的实例请参考$game_system 。
  58. #==============================================================================

  59. class Game_System
  60.   #--------------------------------------------------------------------------
  61.   # ● 定义实例变量
  62.   #--------------------------------------------------------------------------  
  63.   attr_accessor :time_now
  64.   attr_accessor :byz_timer
  65.   #--------------------------------------------------------------------------
  66.   # ● 初始化对像
  67.   #--------------------------------------------------------------------------  
  68.   alias old_initialize initialize
  69.   def initialize
  70.     if Time_byz::TIME_MODULE
  71.       year = Time_byz::INIT_TIME[5];
  72.       mon  = Time_byz::INIT_TIME[4];
  73.       day  = Time_byz::INIT_TIME[3];
  74.       hour = Time_byz::INIT_TIME[2];
  75.       min  = Time_byz::INIT_TIME[1];
  76.       sec  = Time_byz::INIT_TIME[0];
  77.       @time_now = Time.local(year, mon, day, hour, min, sec);
  78.     else
  79.       @time_now = Time.new;
  80.     end
  81.     @byz_timer = []
  82.     old_initialize
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 增加时间
  86.   #--------------------------------------------------------------------------  
  87.   def add_time(unit)
  88.     case unit
  89.     when 3
  90.       @time_now += 1;
  91.     when 2
  92.       @time_now += 60;
  93.     when 1
  94.       @time_now += 3600;
  95.     end
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● 设定时间计时器
  99.   #--------------------------------------------------------------------------  
  100.   def set_byz_timer(id)
  101.     @byz_timer[id] = @time_now;
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 计算时间 (秒数)
  105.   #--------------------------------------------------------------------------
  106.   def after_time(id)
  107.     return 0 if @byz_timer[id] == nil;
  108.     return @time_now - @byz_timer[id];
  109.   end
  110. end
  111. #==============================================================================
  112. # ■ Window_Byz_Time
  113. #------------------------------------------------------------------------------
  114. #  调试画面、个别显示开关及变量的窗口。
  115. #==============================================================================

  116. class Window_Byz_Time < Window_Base
  117.   #--------------------------------------------------------------------------
  118.   # ● 初始化对像
  119.   #     x      : 窗口 X 座标
  120.   #     y      : 窗口 Y 座标
  121.   #--------------------------------------------------------------------------
  122.   def initialize(x, y)
  123.     super(x, y, 170, 87);
  124.     if Time_byz::TIME_MODULE
  125.       @time_speed = Time_byz::TIME_SPEED;
  126.     else
  127.       @time_speed = 60;
  128.     end
  129.     @time = @time_speed - 1;
  130.     refresh;
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● 刷新
  134.   #--------------------------------------------------------------------------
  135.   def refresh
  136.     @time += 1;
  137.     if @time_speed == @time;
  138.       $game_system.add_time(Time_byz::TIME_UNIT);
  139.       draw_time($game_system.time_now);
  140.       event_run;
  141.       @time = 0;
  142.     end
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ● 描绘
  146.   #--------------------------------------------------------------------------
  147.   def draw_time(time)
  148.     self.contents.clear;
  149.     text = $game_system.time_now.strftime("%X")
  150.     self.contents.draw_text(0, 0, 105, WLH, text, 2);
  151.     text = $game_system.time_now.strftime("%Y年%m月%d日");
  152.     self.contents.draw_text(0, 32, 170, WLH, text);
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ● 启动事件
  156.   #--------------------------------------------------------------------------
  157.   def event_run
  158.     array = ($game_system.time_now.to_a)[0,6];
  159.     if Time_byz::TIME_EVENT[array] != nil
  160.       unless !$scene.is_a?(Scene_Map) or $game_message.visible or $game_temp.in_battle
  161.         variables_id     = Time_byz::TIME_EVENT[array][0];
  162.         variables_number = Time_byz::TIME_EVENT[array][1];
  163.         commonevent_id   = Time_byz::TIME_EVENT[array][2];
  164.         $game_variables[variables_id] = variables_number;
  165.         $game_temp.common_event_id = commonevent_id;
  166.       end
  167.     end
  168.   end
  169. end
  170. #==============================================================================
  171. # ■ Scene_Map
  172. #------------------------------------------------------------------------------
  173. #  处理地图画面的类。
  174. #==============================================================================

  175. class Scene_Map < Scene_Base
  176.   
  177.   alias old_start start
  178.   #--------------------------------------------------------------------------
  179.   # ● 开始处理
  180.   #--------------------------------------------------------------------------
  181.   def start
  182.     old_start;
  183.     @time_window = Window_Byz_Time.new(Time_byz::WINDOW_X, Time_byz::WINDOW_Y);
  184.   end
  185.   alias old_terminate terminate
  186.   #--------------------------------------------------------------------------
  187.   # ● 结束处理
  188.   #--------------------------------------------------------------------------
  189.   def terminate
  190.     old_terminate;
  191.     @time_window.dispose;
  192.   end
  193.   alias old_update update
  194.   #--------------------------------------------------------------------------
  195.   # ● 更新画面
  196.   #--------------------------------------------------------------------------
  197.   def update
  198.     old_update;
  199.     @time_window.refresh;
  200.   end
  201. end
复制代码

3

  1. # 设置烛光种类数
  2. CANDLE_NUMBER = 2

  3. # 设置控制开关,不用的话设0
  4. CANDLE_SWITCH = 4

  5. #--------------------------------------------------------------------------
  6. # ● 开启或关闭烛光
  7. #--------------------------------------------------------------------------
  8. def candlelight(on=true)
  9.   $candlelight_on = $game_switches[CANDLE_SWITCH] = on
  10.   if on
  11.     # 生成黑色画面
  12.     $black_rect = Sprite.new
  13.     $black_rect.bitmap = Bitmap.new(544, 416)
  14.     $black_rect.bitmap.fill_rect(0, 0, 544, 416, Color.new(200, 200, 200))
  15.     $black_rect.blend_type = 2
  16.    
  17.     # 黑色透明度,决定黑暗的程度
  18.     $black_rect.opacity = 500
  19.    
  20.     # 生成烛光
  21.     $candle_rect = Array.new(CANDLE_NUMBER+1).map{|sprite| sprite=Sprite.new}
  22. #===============================================================================]
  23. #                               烛光在此设置
  24. #===============================================================================
  25.     # 指定第一种烛光
  26.     $candle_rect[1].bitmap = Cache.picture("write1")
  27.    
  28.     # 指定第二种烛光
  29.     $candle_rect[2].bitmap = Cache.picture("write2")
  30. #===============================================================================
  31. #===============================================================================
  32.     $candle_rect.each {|sprite|
  33.         if sprite.bitmap
  34.           sprite.visible = false
  35.           sprite.ox, sprite.oy = sprite.bitmap.width/2, sprite.bitmap.height/2
  36.         end}
  37.   else
  38.     # 释放黑色画面和所有烛光
  39.     $black_rect.dispose
  40.     $candle_rect.each {|sprite| sprite.dispose}
  41.     $game_lighterlist.clear
  42.   end
  43. end
  44. #--------------------------------------------------------------------------
  45. # ● 设置有烛光的角色
  46. #     candle_index : 烛光编号
  47. #     object       : 角色编号,可以为数字或是数字数组
  48. #--------------------------------------------------------------------------
  49. def candles(candle_index, object)
  50.   $game_lighterlist ||= []
  51.   $game_lighterlist[candle_index] ||= []
  52.   if object.is_a?(Integer)
  53.     $game_lighterlist[candle_index] << object
  54.   elsif object.is_a?(Array)
  55.     $game_lighterlist[candle_index] += object
  56.   end
  57.   # 移除重复的角色
  58.   $game_lighterlist[candle_index].uniq!
  59.   # 开启烛光功能
  60.   candlelight unless $candlelight_on
  61. end
  62. #--------------------------------------------------------------------------
  63. # ● 初始化烛光
  64. #--------------------------------------------------------------------------
  65. def initialize_candle
  66.   for k in 1...$candle_rect.size
  67.     next unless $game_lighterlist[k]
  68.     for j in $game_lighterlist[k]
  69.       ch = j == 0 ? $game_player : $game_map.events[j]
  70.       $candle_rect[k].x = ch.screen_x
  71.       $candle_rect[k].y = ch.screen_y - 16
  72.       lsx = $candle_rect[k].x - $candle_rect[k].bitmap.width / 2
  73.       lsy = $candle_rect[k].y - $candle_rect[k].bitmap.height / 2
  74.       $black_rect.bitmap.blt(lsx, lsy, $candle_rect[k].bitmap, $black_rect.bitmap.rect)
  75.     end
  76.   end
  77. end
  78. #--------------------------------------------------------------------------
  79. # ● 更新烛光
  80. #--------------------------------------------------------------------------
  81. def update_candle
  82.   if $game_lighterlist != []
  83.     light = []
  84.     $game_lighterlist.each{|i| light+=i if i}
  85.     light.each do |i|
  86.       ch = i == 0 ? $game_player : $game_map.events[i]
  87.       unless ch.moving_judge?
  88.         $black_rect.bitmap.fill_rect(0, 0, 544, 416, Color.new(200, 200, 200))
  89.         initialize_candle
  90.       end
  91.       break
  92.     end
  93.   end
  94. end

  95. class Game_Character
  96.   #--------------------------------------------------------------------------
  97.   # ● 判断移动
  98.   #--------------------------------------------------------------------------
  99.   def moving_judge?
  100.     return (!stopping? or (@pattern != @original_pattern))
  101.   end
  102. end
  103. class Game_Map
  104.   #--------------------------------------------------------------------------
  105.   # ● 刷新烛光
  106.   #--------------------------------------------------------------------------
  107.   alias update_candle_system update
  108.   def update
  109.     if $candlelight_on
  110.       update_candle
  111.       $candlelight_on = false unless $game_switches[CANDLE_SWITCH]
  112.       candlelight(false) unless $candlelight_on
  113.     end
  114.     update_candle_system
  115.   end
  116. end   
  117. class Scene_Map < Scene_Base
  118.   #--------------------------------------------------------------------------
  119.   # ● 生成烛光
  120.   #--------------------------------------------------------------------------
  121.   alias candle_system_start start
  122.   def start
  123.     candle_system_start
  124.     candlelight if $candlelight_on
  125.     initialize_candle if $candlelight_on
  126.   end
  127. end
复制代码


本贴由论坛斑竹八云紫结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
吾为吾剑之骨 身为钢铁,血为烈焰 跨越万千战场而不败 未曾有一次败逃 未能有一次获解 自醉于剑之孤丘上 因此,此生亦无意义 此身,定可为剑

Lv2.观梦者

天仙

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

贵宾

2
发表于 2008-12-18 21:47:40 | 只看该作者
http://rpg.blue/forumSearch.asp
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-9 01:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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