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

Project1

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

[已经解决] 请问天气脚本怎么随时删除和调出天气事件?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
5 小时
注册时间
2014-8-1
帖子
7
跳转到指定楼层
1
发表于 2014-9-20 07:21:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
用的这个脚本,在其中一张地图用了,但是跳转下一张地图还是有,请问有没有什么方法可以消除,然后还可以在后面的地图调出来,而不是永久删掉

RUBY 代码复制
  1. #==============================================================================
  2. # +++ MOG - Weather EX (v1.5) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # [url]http://www.atelier-rgss.com/[/url]
  6. #==============================================================================
  7. # Sistema de clima com efeitos animados.
  8. #==============================================================================
  9. # As imagens usadas pelo sistema do clima devem ser gravadas na pasta
  10. #
  11. # GRAPHICS/WEATHER/
  12. #
  13. #==============================================================================
  14. # UTILIZAÇÃO
  15. #
  16. # Use o comando abaixo através da função chamar script.*(Evento)
  17. #
  18. # weather(TYPE, POWER, IMAGE_FILE)
  19. #
  20. # TYPE - Tipo de clima. (de 0 a 6)
  21. # POWER - Quantidade de partículas na tela. (de 1 a 10)
  22. # IMAGE_FILE - Nome da imagem.
  23. #
  24. # Exemplo (Eg)
  25. #
  26. # weather(0, 5, "Leaf")
  27. #
  28. #==============================================================================
  29. # Tipos de Clima.
  30. #
  31. # O sistema vem com 7 climas pré-configurados, que podem ser testados na demo
  32. # que vem com esse script.
  33. #
  34. # 0 - (Rain)  
  35. # 1 - (Wind)
  36. # 2 - (Fog)  
  37. # 3 - (Light)
  38. # 4 - (Snow)
  39. # 5 - (Spark)
  40. # 6 - (Random)
  41. #
  42. #==============================================================================
  43. # NOTA
  44. #
  45. # Evite de usar imagens muito pesadas ou de tamanho grande, caso for usar
  46. # diminua o poder do clima para evitar lag.
  47. #
  48. #==============================================================================
  49. #==============================================================================
  50. # Para parar o clima use o comando abaixo.
  51. #
  52. # weather_stop
  53. #
  54. #==============================================================================
  55. # Para parar reativar o clima com as caracteríticas préviamente usadas use o
  56. # comando abaixo.
  57. #
  58. # weather_restore
  59. #==============================================================================
  60. # Se você precisar ativar um novo clima mas deseja gravar as caracteríticas
  61. # do clima atual para ser reativado depois use os códigos abaixo.
  62. #
  63. # weather_store
  64. # weather_restore_store
  65. #
  66. #==============================================================================
  67.  
  68. #==============================================================================
  69. # ● Histórico (Version History)
  70. #==============================================================================
  71. # v 1.5 - Correção definitiva para erro de Crash randômico.
  72. # v 1.4 - Melhoria no sistema de dispose. * (Para quem estiver tendo problema
  73. #         com crashes randômicos.)
  74. # v 1.3 - Adição do comando weather_store e weather_recover_store
  75. # v 1.2 - Melhor codificação e compatibilidade.
  76. # v 1.1 - Correção do Bug de salvar através do evento.
  77. # v 1.0 - Weather EX ativo na batalha.
  78. #       - Função restore/pause que permite reativar o clima com as
  79. #         caracteríticas previamente usadas, ou seja, dá uma pausa no clima.
  80. # v 0.9 - Melhoria no sistema de dispose.
  81. #==============================================================================
  82. module MOG_WEATHER_EX
  83.   #Prioridade do clima na tela.
  84.   WEATHER_SCREEN_Z = 50
  85.   #Definição da eficiência do poder do clima.
  86.   #NOTA -  Um valor muito alto pode causar lag, dependendo do tipo de clima e
  87.   #        imagem usada.
  88.   WEATHER_POWER_EFIC = 5
  89.   #Ativar o clima no sistema de batalha.
  90.   WEATHER_BATTLE = true
  91. end
  92.  
  93. #==============================================================================
  94. # ■ Cache
  95. #==============================================================================
  96. module Cache
  97.  
  98.   #--------------------------------------------------------------------------
  99.   # ● Weather
  100.   #--------------------------------------------------------------------------
  101.   def self.weather(filename)
  102.       load_bitmap("Graphics/Weather/", filename)
  103.   end
  104.  
  105. end
  106.  
  107. #==============================================================================
  108. # ■ Game System
  109. #==============================================================================
  110. class Game_System
  111.  
  112.   attr_accessor :weather
  113.   attr_accessor :weather_restore
  114.   attr_accessor :weather_record_set
  115.   attr_accessor :weather_temp
  116.  
  117.   #--------------------------------------------------------------------------
  118.   # ● Initialize
  119.   #--------------------------------------------------------------------------  
  120.   alias weather_ex_initialize initialize  
  121.   def initialize
  122.       @weather = [-1,0,""]
  123.       @weather_restore = [-1,0,""]
  124.       @weather_temp = [-1,0,""]
  125.       @weather_record_set = [-1,0,""]
  126.       weather_ex_initialize
  127.   end  
  128.  
  129. end  
  130.  
  131. #==============================================================================
  132. # ■ Game Temp
  133. #==============================================================================
  134. class Game_Temp
  135.  
  136.   attr_accessor :weather_ex_set
  137.   attr_accessor :weather_fade
  138.  
  139.   #--------------------------------------------------------------------------
  140.   # ● Initialize
  141.   #--------------------------------------------------------------------------  
  142.   alias mog_weather_ex_temp_initialize initialize
  143.   def initialize
  144.       @weather_ex_set = []
  145.       @weather_fade = false
  146.       mog_weather_ex_temp_initialize
  147.   end  
  148.  
  149. end
  150.  
  151. #==============================================================================
  152. # ■ Game Interpreter
  153. #==============================================================================
  154. class Game_Interpreter
  155.  
  156.   #--------------------------------------------------------------------------
  157.   # ● Weather
  158.   #--------------------------------------------------------------------------   
  159.   def weather(type = -1, power = 0, image = "")
  160.       $game_temp.weather_fade = false
  161.       $game_system.weather.clear
  162.       $game_system.weather = [type,power,image]
  163.   end
  164.  
  165.   #--------------------------------------------------------------------------
  166.   # ● Weather Stop
  167.   #--------------------------------------------------------------------------     
  168.   def weather_stop
  169.       $game_temp.weather_fade = false
  170.       $game_system.weather.clear
  171.       $game_system.weather = [-1,0,""]
  172.       $game_system.weather_restore  = [-1,0,""]
  173.       $game_system.weather_temp = [-1,0,""]      
  174.   end
  175.  
  176.   #--------------------------------------------------------------------------
  177.   # ● Weather Restore
  178.   #--------------------------------------------------------------------------      
  179.   def weather_restore
  180.       $game_temp.weather_fade = false
  181.       if $game_system.weather[0] != -1
  182.          w = $game_system.weather
  183.          $game_system.weather_restore = [w[0],w[1],w[2]]
  184.          $game_system.weather.clear
  185.          $game_system.weather = [-1,0,""]
  186.          return
  187.       end
  188.       w = $game_system.weather_restore
  189.       weather(w[0],w[1],w[2])
  190.   end
  191.  
  192.   #--------------------------------------------------------------------------
  193.   # ● Weather Fade
  194.   #--------------------------------------------------------------------------         
  195.   def weather_fade(value)
  196.       $game_temp.weather_fade = value
  197.   end
  198.  
  199.   #--------------------------------------------------------------------------
  200.   # ● Weather Store
  201.   #--------------------------------------------------------------------------           
  202.   def weather_store
  203.       w = $game_system.weather
  204.       $game_system.weather_record_set = [w[0],w[1],w[2]]
  205.   end  
  206.  
  207.   #--------------------------------------------------------------------------
  208.   # ● Weather Restore Store
  209.   #--------------------------------------------------------------------------           
  210.   def weather_restore_store
  211.       w = $game_system.weather_record_set
  212.       weather(w[0],w[1],w[2])      
  213.   end   
  214.  
  215. end  
  216.  
  217. #==============================================================================
  218. # ■ Weather_EX
  219. #==============================================================================
  220. class Weather_EX < Sprite
  221.  
  222.   #--------------------------------------------------------------------------
  223.   # ● Initialize
  224.   #--------------------------------------------------------------------------  
  225.   def initialize(viewport = nil ,type = 0, image_name = "",index = 0,nx,ny)
  226.       super(viewport)
  227.       self.bitmap = Cache.weather(image_name.to_s)
  228.       self.opacity = 0
  229.       @cw = self.bitmap.width
  230.       @ch = self.bitmap.height
  231.       @angle_speed = 0
  232.       @x_speed = 0
  233.       @y_speed = 0
  234.       @zoom_speed = 0
  235.       @opacity_speed = 0
  236.       @type = type
  237.       @index = index
  238.       @old_nx = nx
  239.       @old_ny = ny
  240.       type_setup(nx,ny)
  241.   end
  242.  
  243.   #--------------------------------------------------------------------------
  244.   # ● Dispose
  245.   #--------------------------------------------------------------------------   
  246.   def dispose
  247.       if self.bitmap != nil
  248.          self.bitmap.dispose
  249.          self.bitmap = nil
  250.       end   
  251.       super
  252.   end
  253.  
  254.   #--------------------------------------------------------------------------
  255.   # ● Pre Values
  256.   #--------------------------------------------------------------------------   
  257.   def pre_values(index)
  258.       return if  $game_temp.weather_ex_set[index] == nil
  259.       self.x = $game_temp.weather_ex_set[index][0]
  260.       self.y = $game_temp.weather_ex_set[index][1]
  261.       self.opacity = $game_temp.weather_ex_set[index][2]
  262.       self.angle = $game_temp.weather_ex_set[index][3]
  263.       self.zoom_x = $game_temp.weather_ex_set[index][4]
  264.       self.zoom_y = $game_temp.weather_ex_set[index][4]
  265.       $game_temp.weather_ex_set[index].clear
  266.       $game_temp.weather_ex_set[index] = nil
  267.   end  
  268.  
  269.   #--------------------------------------------------------------------------
  270.   # ● Type Setup
  271.   #--------------------------------------------------------------------------      
  272.   def type_setup(nx = 0, ny = 0)
  273.       @cw2 = [(672 + @cw) + nx, -(96 + @cw) + nx]
  274.       @ch2 = [(576 + @ch) + ny, -(96 + @ch) + ny]
  275.       check_weather_type
  276.       pre_values(@index)
  277.       @opacity_speed = -1 if $game_temp.weather_fade
  278.   end
  279.  
  280.   #--------------------------------------------------------------------------
  281.   # ● Update
  282.   #--------------------------------------------------------------------------   
  283.   def update_weather(nx = 0, ny = 0)
  284.       self.x += @x_speed
  285.       self.y += @y_speed
  286.       self.opacity += @opacity_speed
  287.       self.angle += @angle_speed
  288.       self.zoom_x += @zoom_speed
  289.       self.zoom_y += @zoom_speed
  290.       check_loop_map(nx,ny)
  291.       type_setup(nx,ny) if can_reset_setup?
  292.   end  
  293.  
  294.   #--------------------------------------------------------------------------
  295.   # ● Check Loop Map
  296.   #--------------------------------------------------------------------------        
  297.   def check_loop_map(nx,ny)
  298.       if (@old_nx - nx).abs > 32
  299.          @cw2 = [(672 + @cw) + nx, -(96 + @cw) + nx]
  300.          self.x += nx
  301.          self.x -= @old_nx if nx == 0
  302.       end   
  303.       if (@old_ny - ny).abs > 32
  304.          @ch2 = [(576 + @ch) + ny, -(96 + @ch) + ny]
  305.          self.y += ny
  306.          self.y -= @old_ny if ny == 0
  307.       end         
  308.       @old_nx = nx
  309.       @old_ny = ny   
  310.   end  
  311.  
  312.   #--------------------------------------------------------------------------
  313.   # ● Can Reset Setup
  314.   #--------------------------------------------------------------------------      
  315.   def can_reset_setup?
  316.       return true if self.x > @cw2[0] or self.x <  @cw2[1]
  317.       return true if self.y > @ch2[0]  or self.y < @ch2[1]
  318.       return true if self.opacity == 0
  319.       return true if self.zoom_x > 2.0 or self.zoom_x < 0.5
  320.       return false
  321.   end
  322.  
  323. #--------------------------------------------------------------------------
  324. # ● Check Weather Type
  325. #--------------------------------------------------------------------------                        
  326. def check_weather_type
  327.      case @type
  328.          when 0;   rain
  329.          when 1;   wind   
  330.          when 2;   fog
  331.          when 3;   light
  332.          when 4;   snow
  333.          when 5;   spark
  334.          when 6;   random                  
  335.       end
  336. end
  337.  
  338. #--------------------------------------------------------------------------
  339. # ● Snow
  340. #--------------------------------------------------------------------------                          
  341. def snow
  342.      self.angle = rand(360)
  343.      self.x = rand(@cw2[0])
  344.      self.y = rand(@ch2[0])
  345.      self.opacity = 1
  346.      self.zoom_x = (rand(100) + 50) / 100.0
  347.      self.zoom_y = self.zoom_x
  348.      @y_speed = [[rand(5), 1].max, 5].min
  349.      @opacity_speed = 5
  350.      @angle_speed = rand(3)
  351. end   
  352.  
  353. #--------------------------------------------------------------------------
  354. # ● Spark
  355. #--------------------------------------------------------------------------                           
  356. def spark
  357.      self.angle = rand(360)
  358.      self.x = rand(@cw2[0])
  359.      self.y = rand(@ch2[0])
  360.      self.opacity = 1
  361.      self.zoom_x = (rand(100) + 100) / 100.0
  362.      self.zoom_y = self.zoom_x
  363.      self.blend_type = 1     
  364.      @opacity_speed = 10
  365.      @zoom_speed = -0.01
  366. end
  367.  
  368. #--------------------------------------------------------------------------
  369. # ● Rain
  370. #--------------------------------------------------------------------------                          
  371. def rain
  372.      self.x = rand(@cw2[0])      
  373.      if @start == nil
  374.         self.y = rand(@ch2[0])
  375.         @start = true
  376.      else
  377.         self.y = @ch2[1]        
  378.      end   
  379.      self.opacity = 1
  380.      self.zoom_y = (rand(50) + 100) / 100.0
  381.      self.zoom_x = (rand(25) + 100) / 100.0
  382.      @y_speed = [[rand(10) + 10, 10].max, 20].min
  383.      @opacity_speed = 10
  384. end   
  385.  
  386. #--------------------------------------------------------------------------
  387. # ● Fog
  388. #--------------------------------------------------------------------------                           
  389. def fog
  390.      rand_angle = rand(2)
  391.      self.angle = rand_angle == 1 ? 180 : 0
  392.      self.x = rand(@cw2[0])
  393.      self.y = rand(@ch2[0])
  394.      self.opacity = 1
  395.      self.zoom_x = (rand(100) + 50) / 100.0
  396.      self.zoom_y = self.zoom_x
  397.      @x_speed = [[rand(10), 1].max, 10].min
  398.      @opacity_speed = 10
  399. end
  400.  
  401. #--------------------------------------------------------------------------
  402. # ● Light
  403. #--------------------------------------------------------------------------                           
  404. def light
  405.      self.angle = rand(360)
  406.      self.x = rand(@cw2[0])
  407.      self.y = rand(@ch2[0])
  408.      self.opacity = 1
  409.      self.zoom_x = (rand(100) + 50) / 100.0
  410.      self.zoom_y = self.zoom_x
  411.      self.blend_type = 1
  412.      @angle_speed = [[rand(3), 1].max, 3].min
  413.      @y_speed = -[[rand(10), 1].max, 10].min
  414.      @opacity_speed = 2
  415. end
  416.  
  417. #--------------------------------------------------------------------------
  418. # ● Wind
  419. #--------------------------------------------------------------------------                          
  420. def wind
  421.      self.angle = rand(360)
  422.      self.x = rand(@cw2[0])
  423.      self.y = rand(@ch2[0])
  424.      self.opacity = 1
  425.      self.zoom_x = (rand(100) + 50) / 100.0
  426.      self.zoom_y = self.zoom_x
  427.      @x_speed = [[rand(10), 1].max, 10].min
  428.      @y_speed = [[rand(10), 1].max, 10].min
  429.      @opacity_speed = 10
  430. end   
  431.  
  432. #--------------------------------------------------------------------------
  433. # ● Random
  434. #--------------------------------------------------------------------------                          
  435. def random
  436.      self.angle = rand(360)
  437.      self.x = rand(@cw2[0])
  438.      self.y = rand(@ch2[0])
  439.      self.opacity = 1
  440.      self.zoom_x = (rand(100) + 50) / 100.0
  441.      self.zoom_y = self.zoom_x
  442.      x_s = [[rand(10), 1].max, 10].min
  443.      y_s = [[rand(10), 1].max, 10].min
  444.      rand_x = rand(2)
  445.      rand_y = rand(2)
  446.      @x_speed = rand_x == 1 ? x_s : -x_s
  447.      @y_speed = rand_y == 1 ? y_s : -y_s      
  448.      @opacity_speed = 10
  449. end   
  450.  
  451. end
  452.  
  453. #==============================================================================
  454. # ■ Module Weather EX
  455. #==============================================================================
  456. module Module_Weather_EX
  457.  
  458. #--------------------------------------------------------------------------
  459. # ● Create Weather EX
  460. #--------------------------------------------------------------------------                  
  461.   def create_weather_ex
  462.       dispose_weather_ex
  463.       create_weather_viewport
  464.       create_weather_sprite     
  465.   end
  466.  
  467. #--------------------------------------------------------------------------
  468. # ● Dispose Wheater EX
  469. #--------------------------------------------------------------------------                     
  470.   def dispose_weather_ex
  471.       dispose_weather_ex_sprite
  472.       dispose_weather_ex_viewport
  473.   end  
  474.  
  475. #--------------------------------------------------------------------------
  476. # ● Create Weather Viewport
  477. #--------------------------------------------------------------------------                     
  478.   def create_weather_viewport
  479.       dispose_weather_ex_viewport
  480.       @viewport_weather_ex = Viewport.new(-32, -32, 576, 448)
  481.       @viewport_weather_ex.z = MOG_WEATHER_EX::WEATHER_SCREEN_Z
  482.       @viewport_weather_ex.ox = ($game_map.display_x * 32)
  483.       @viewport_weather_ex.oy = ($game_map.display_y * 32)      
  484.   end  
  485.  
  486. #--------------------------------------------------------------------------
  487. # ● Create Weather Sprite
  488. #--------------------------------------------------------------------------                       
  489.   def create_weather_sprite
  490.       dispose_weather_ex_sprite
  491.       @old_weather = $game_system.weather
  492.       return if $game_system.weather == [] or $game_system.weather[0] == -1
  493.       @weather_ex = []
  494.       index = 0
  495.       power_efic = MOG_WEATHER_EX::WEATHER_POWER_EFIC
  496.       power_efic = 1 if power_efic < 1
  497.       power = [[$game_system.weather[1] * power_efic, power_efic].max, 999].min
  498.       for i in 0...power
  499.           @weather_ex.push(Weather_EX.new(@viewport_weather_ex,$game_system.weather[0],$game_system.weather[2],index, @viewport_weather_ex.ox, @viewport_weather_ex.oy))
  500.           index += 1
  501.       end            
  502.   end
  503.  
  504. #--------------------------------------------------------------------------
  505. # ● Dispose Weather EX Viewport
  506. #--------------------------------------------------------------------------                       
  507.   def dispose_weather_ex_viewport
  508.       return if @viewport_weather_ex == nil
  509.       @viewport_weather_ex.dispose
  510.   end  
  511.  
  512. #--------------------------------------------------------------------------
  513. # ● Dispose Weather EX
  514. #--------------------------------------------------------------------------                  
  515.   def dispose_weather_ex_sprite
  516.       return if @weather_ex == nil
  517.       index = 0
  518.       for i in @weather_ex
  519.           $game_temp.weather_ex_set[index] = [] if $game_temp.weather_ex_set[index] == nil
  520.           $game_temp.weather_ex_set[index].push(i.x,i.y,i.opacity,i.angle,i.zoom_x)
  521.           i.dispose
  522.           index += 1
  523.       end
  524.       @weather_ex.each {|sprite| sprite.dispose}  
  525.       @weather_ex.clear
  526.       @weather_ex = nil
  527.   end
  528.  
  529. #--------------------------------------------------------------------------
  530. # ● Dispose Refresh
  531. #--------------------------------------------------------------------------                    
  532.   def dispose_refresh
  533.       $game_temp.weather_ex_set.clear
  534.       return if @weather_ex == nil
  535.       @weather_ex.each {|sprite| sprite.dispose}
  536.       @weather_ex.clear
  537.       @weather_ex = nil
  538.   end  
  539.  
  540. #--------------------------------------------------------------------------
  541. # ● Update Weather EX
  542. #--------------------------------------------------------------------------                  
  543.   def update_weather_ex
  544.       refresh_weather_ex
  545.       update_weather_ex_viewport
  546.       return if @weather_ex == nil
  547.       @weather_ex.each {|sprite| sprite.update_weather(@viewport_weather_ex.ox,@viewport_weather_ex.oy)}
  548.   end
  549.  
  550. #--------------------------------------------------------------------------
  551. # ● Update Weather Ex Viewport
  552. #--------------------------------------------------------------------------                     
  553.   def update_weather_ex_viewport
  554.       return if @viewport_weather_ex == nil
  555.       @viewport_weather_ex.ox = ($game_map.display_x * 32)
  556.       @viewport_weather_ex.oy = ($game_map.display_y * 32)
  557.   end
  558.  
  559. #--------------------------------------------------------------------------
  560. # ● Refresh Weather EX
  561. #--------------------------------------------------------------------------                     
  562.   def refresh_weather_ex
  563.       return if @old_weather == nil
  564.       return if @old_weather == $game_system.weather
  565.       dispose_refresh
  566.       create_weather_sprite
  567.   end  
  568. end  
  569.  
  570. #==============================================================================
  571. # ■ Spriteset Map
  572. #==============================================================================
  573. class Spriteset_Map
  574.    include Module_Weather_EX  
  575.  
  576. #--------------------------------------------------------------------------
  577. # ● Initialize
  578. #--------------------------------------------------------------------------                  
  579.   alias mog_weather_ex_initialize initialize
  580.   def initialize         
  581.       dispose_weather_ex   
  582.       mog_weather_ex_initialize
  583.       create_weather_ex
  584.   end
  585.  
  586. #--------------------------------------------------------------------------
  587. # ● Dispose
  588. #--------------------------------------------------------------------------                  
  589.   alias mog_weather_ex_dispose dispose
  590.   def dispose
  591.       dispose_weather_ex   
  592.       mog_weather_ex_dispose
  593.   end  
  594.  
  595. #--------------------------------------------------------------------------
  596. # ● Update
  597. #--------------------------------------------------------------------------                  
  598.   alias mog_weather_ex_update update
  599.   def update
  600.       mog_weather_ex_update
  601.       update_weather_ex
  602.   end  
  603.  
  604. end
  605.  
  606.  
  607.  
  608. if MOG_WEATHER_EX::WEATHER_BATTLE
  609. #==============================================================================
  610. # ■ Spriteset Battle
  611. #==============================================================================
  612. class Spriteset_Battle  
  613.  
  614.    include Module_Weather_EX  
  615.  
  616. #--------------------------------------------------------------------------
  617. # ● Initialize
  618. #--------------------------------------------------------------------------                  
  619.   alias mog_weather_ex_initialize initialize
  620.   def initialize         
  621.       dispose_weather_ex   
  622.       mog_weather_ex_initialize
  623.       create_weather_ex
  624.   end
  625.  
  626. #--------------------------------------------------------------------------
  627. # ● Dispose
  628. #--------------------------------------------------------------------------                  
  629.   alias mog_weather_ex_dispose dispose
  630.   def dispose
  631.       dispose_weather_ex   
  632.       mog_weather_ex_dispose
  633.   end  
  634.  
  635. #--------------------------------------------------------------------------
  636. # ● Update
  637. #--------------------------------------------------------------------------                  
  638.   alias mog_weather_ex_update update
  639.   def update
  640.       mog_weather_ex_update
  641.       update_weather_ex
  642.   end   
  643.  
  644. end
  645.  
  646. end
  647.  
  648. #=============================================================================
  649. # ■ Scene Base
  650. #=============================================================================
  651. class Scene_Base
  652.  
  653.   #--------------------------------------------------------------------------
  654.   # ● Weather Recover Data
  655.   #--------------------------------------------------------------------------  
  656.   def weather_recover_data
  657.       if $game_system.weather.empty? or
  658.           $game_system.weather[0] == -1
  659.           if !$game_system.weather_restore.empty? and
  660.              $game_system.weather_restore[0] != -1
  661.              v = $game_system.weather_restore
  662.              $game_system.weather = [v[0],v[1],v[2]]
  663.           end
  664.       end         
  665.   end
  666.  
  667.   #--------------------------------------------------------------------------
  668.   # ● Weather Restore
  669.   #--------------------------------------------------------------------------      
  670.   def weather_recover_scene
  671.       return if $game_system.weather_temp.empty?
  672.       return if $game_system.weather_temp[0] == -1
  673.       w = $game_system.weather_temp
  674.       $game_system.weather = [w[0],w[1],w[2]]
  675.       $game_system.weather_temp.clear
  676.       $game_system.weather_temp = [-1,0,""]
  677.   end  
  678.  
  679.   #--------------------------------------------------------------------------
  680.   # ● Main
  681.   #--------------------------------------------------------------------------         
  682.   alias mog_weather_ex_main main
  683.   def main
  684.       dispose_weather_ex_base
  685.       weather_recover_scene if can_recover_weather_scene?
  686.       mog_weather_ex_main
  687.   end   
  688.  
  689.   #--------------------------------------------------------------------------
  690.   # ● Can Recover Weather Scene
  691.   #--------------------------------------------------------------------------         
  692.   def can_recover_weather_scene?
  693.       return true if SceneManager.scene_is?(Scene_Map)
  694.       return true if SceneManager.scene_is?(Scene_Battle)
  695.       return false
  696.   end  
  697.  
  698.   #--------------------------------------------------------------------------
  699.   # ● terminate
  700.   #--------------------------------------------------------------------------         
  701.   alias mog_weather_ex_terminate_base terminate
  702.   def terminate
  703.       mog_weather_ex_terminate_base
  704.       dispose_weather_ex_base      
  705.   end  
  706.  
  707.   #--------------------------------------------------------------------------
  708.   # ● Dispose Weather EX Base
  709.   #--------------------------------------------------------------------------           
  710.   def dispose_weather_ex_base
  711.       return if @spriteset == nil
  712.       @spriteset.dispose_weather_ex rescue nil
  713.   end        
  714.  
  715. end
  716.  
  717. #=============================================================================
  718. # ■ Scene Load
  719. #=============================================================================
  720. class Scene_Load < Scene_File
  721.  
  722.   #--------------------------------------------------------------------------
  723.   # ● On Load Success
  724.   #--------------------------------------------------------------------------
  725.   alias mog_weather_ex_on_load_success on_load_success
  726.   def on_load_success
  727.       mog_weather_ex_on_load_success
  728.       weather_recover_data
  729.   end
  730. end
  731.  
  732. #=============================================================================
  733. # ■ Scene Manager
  734. #=============================================================================
  735. class << SceneManager
  736.  
  737.   #--------------------------------------------------------------------------
  738.   # ● Call
  739.   #--------------------------------------------------------------------------         
  740.   alias mog_weather_ex_call call
  741.   def call(scene_class)
  742.       weather_dispose
  743.       mog_weather_ex_call(scene_class)
  744.   end
  745.  
  746.   #--------------------------------------------------------------------------
  747.   # ● Weather Restore
  748.   #--------------------------------------------------------------------------      
  749.   def weather_dispose
  750.       return if $game_system.weather.empty?
  751.       return if $game_system.weather[0] == -1
  752.       w = $game_system.weather
  753.       $game_system.weather_temp = [w[0],w[1],w[2]]
  754.       $game_system.weather.clear
  755.       $game_system.weather = [-1,0,""]
  756.   end
  757.  
  758.  
  759. end
  760. $mog_rgss3_weather_ex = true

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-9-20 08:17:41 | 只看该作者
看注释似乎有 store 什么的,不过我看不懂。去机翻看看吧。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

运否天赋

梦石
10
星屑
5243
在线时间
3567 小时
注册时间
2014-5-15
帖子
1599

开拓者

3
发表于 2014-9-20 09:10:37 | 只看该作者
调用范例“weather(0, 5, "Leaf")”
前一个“0”表示天气类型(实际上是图像合成+移动方式),范围“0-6”,分别对应雨、风、雾、光、雪、火花、随机
后一个“5”表示强度,范围“1-10”,数字越大强度越高
最后的“Leaf”表示天气图像文件,MOG自带了一些范例图像。
停止天气效果的事件脚本命令“weather_stop”
另外,还有“weather_store”和“weather_restore_store”命令,分别是记录当前天气效果和还原记录的天气效果。建议楼主用这个,先生成天气效果,切换地图的时候用“weather_store”记录,然后“weather_stop”停止效果。进入需要效果的地图再用“weather_restore_store”调用。

点评

( ´ρ`)我不懂脚本,只能说“weather_restore”本身只是一个定义,不直接起作用,必须指向存储的“store”(加“_store”后缀)才能生效。  发表于 2014-9-20 12:26
那么weather_restore又有什么用途呢???  发表于 2014-9-20 12:20

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

土猫三国开发完成
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-22 18:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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