Project1

标题: 呼出菜单时应用程序错误! [打印本页]

作者: yjl494356020    时间: 2012-8-31 09:38
标题: 呼出菜单时应用程序错误!
本帖最后由 yjl494356020 于 2012-8-31 10:11 编辑

{:2_263:} 我使用VA Master Demo的美化脚本,http://rpg.blue/forum.php?mod=viewthread&tid=246136,可是进入游戏按菜单键就弹出“应用程序错误”的对话框,而且不是每次按菜单都出错误,有时候战斗结束也会弹出,怎么回事呢?

作者: yjl494356020    时间: 2012-8-31 11:37
{:2_270:}有人知道怎么回事吗,求高人解答...麻烦了~
作者: feizhaodan    时间: 2012-8-31 11:44
可能你电脑的内存不够。
作者: yjl494356020    时间: 2012-8-31 11:49
feizhaodan 发表于 2012-8-31 11:44
可能你电脑的内存不够。

{:2_263:} 额 不会吧。。。这个不会占很多内存吧。。?而且没加美化的这些脚本前貌似没有这个问题。。
作者: yjl494356020    时间: 2012-8-31 12:17
呼~刚刚用排除法测试了一下,发现天气脚本关闭的时候貌似就不会出错了。下面是该脚本,各位大侠帮忙看看是哪里不对了呢?应该不是脚本之间的冲突吧,因为这个美化脚本的原范例也会出错。
  1. #==============================================================================
  2. # +++ MOG - Weather EX (v1.2) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # http://www.atelier-rgss.com/
  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. # Para parar o clima use o comando abaixo.
  30. #
  31. # weather_stop
  32. #
  33. #==============================================================================
  34. # Para parar reativar o clima com as caracteríticas préviamente usadas use o
  35. # comando abaixo.
  36. #
  37. # weather_restore
  38. #
  39. #==============================================================================
  40. # Tipos de Clima.
  41. #
  42. # O sistema vem com 7 climas pré-configurados, que podem ser testados na demo
  43. # que vem com esse script.
  44. #
  45. # 0 - (Rain)  
  46. # 1 - (Wind)
  47. # 2 - (Fog)  
  48. # 3 - (Light)
  49. # 4 - (Snow)
  50. # 5 - (Spark)
  51. # 6 - (Random)
  52. #
  53. #==============================================================================
  54. # NOTA
  55. #
  56. # Evite de usar imagens muito pesadas ou de tamanho grande, caso for usar
  57. # diminua o poder do clima para evitar lag.
  58. #
  59. #==============================================================================

  60. #==============================================================================
  61. # ● Histórico (Version History)
  62. #==============================================================================
  63. # v 1.2 - Melhor codificação e compatibilidade.
  64. # v 1.1 - Correção do Bug de salvar através do evento.
  65. # v 1.0 - Weather EX ativo na batalha.
  66. #       - Função restore/pause que permite reativar o clima com as
  67. #         caracteríticas previamente usadas, ou seja, dá uma pausa no clima.
  68. # v 0.9 - Melhoria no sistema de dispose.
  69. #==============================================================================
  70. module MOG_WEATHER_EX
  71.   #Prioridade do clima na tela.
  72.   WEATHER_SCREEN_Z = 50
  73.   #Definição da eficiência do poder do clima.
  74.   #NOTA -  Um valor muito alto pode causar lag, dependendo do tipo de clima e
  75.   #        imagem usada.
  76.   WEATHER_POWER_EFIC = 5
  77.   #Ativar o clima no sistema de batalha.
  78.   WEATHER_BATTLE = true
  79. end

  80. #==============================================================================
  81. # ■ Cache
  82. #==============================================================================
  83. module Cache
  84.   
  85.   #--------------------------------------------------------------------------
  86.   # ● Weather
  87.   #--------------------------------------------------------------------------
  88.   def self.weather(filename)
  89.       load_bitmap("Graphics/Weather/", filename)
  90.   end
  91.   
  92. end

  93. #==============================================================================
  94. # ■ Game System
  95. #==============================================================================
  96. class Game_System
  97.   
  98.   attr_accessor :weather
  99.   attr_accessor :weather_restore
  100.   attr_accessor :weather_temp
  101.   
  102.   #--------------------------------------------------------------------------
  103.   # ● Initialize
  104.   #--------------------------------------------------------------------------  
  105.   alias weather_ex_initialize initialize  
  106.   def initialize
  107.       @weather = [-1,0,""]
  108.       @weather_restore = [-1,0,""]
  109.       @weather_temp = [-1,0,""]
  110.       weather_ex_initialize
  111.   end  
  112.   
  113. end  

  114. #==============================================================================
  115. # ■ Game Temp
  116. #==============================================================================
  117. class Game_Temp

  118.   attr_accessor :weather_ex_set
  119.   attr_accessor :weather_fade
  120.   
  121.   #--------------------------------------------------------------------------
  122.   # ● Initialize
  123.   #--------------------------------------------------------------------------  
  124.   alias mog_weather_ex_temp_initialize initialize
  125.   def initialize
  126.       @weather_ex_set = []
  127.       @weather_fade = false
  128.       mog_weather_ex_temp_initialize
  129.   end  
  130.   
  131. end

  132. #==============================================================================
  133. # ■ Game Interpreter
  134. #==============================================================================
  135. class Game_Interpreter
  136.   
  137.   #--------------------------------------------------------------------------
  138.   # ● Weather
  139.   #--------------------------------------------------------------------------   
  140.   def weather(type = -1, power = 0, image = "")
  141.       $game_temp.weather_fade = false
  142.       $game_system.weather.clear
  143.       $game_system.weather = [type,power,image]
  144.   end
  145.   
  146.   #--------------------------------------------------------------------------
  147.   # ● Weather Stop
  148.   #--------------------------------------------------------------------------     
  149.   def weather_stop
  150.       $game_temp.weather_fade = false
  151.       $game_system.weather.clear
  152.       $game_system.weather = [-1,0,""]
  153.       $game_system.weather_restore  = [-1,0,""]
  154.       $game_system.weather_temp = [-1,0,""]      
  155.   end
  156.   
  157.   #--------------------------------------------------------------------------
  158.   # ● Weather Restore
  159.   #--------------------------------------------------------------------------      
  160.   def weather_restore
  161.       $game_temp.weather_fade = false
  162.       if $game_system.weather[0] != -1
  163.          w = $game_system.weather
  164.          $game_system.weather_restore = [w[0],w[1],w[2]]
  165.          $game_system.weather.clear
  166.          $game_system.weather = [-1,0,""]
  167.          return
  168.       end
  169.       w = $game_system.weather_restore
  170.       weather(w[0],w[1],w[2])
  171.   end
  172.   
  173.   #--------------------------------------------------------------------------
  174.   # ● Weather Fade
  175.   #--------------------------------------------------------------------------         
  176.   def weather_fade(value)
  177.       $game_temp.weather_fade = value
  178.   end
  179.   
  180. end  

  181. #==============================================================================
  182. # ■ Weather_EX
  183. #==============================================================================
  184. class Weather_EX < Sprite
  185.   
  186.   #--------------------------------------------------------------------------
  187.   # ● Initialize
  188.   #--------------------------------------------------------------------------  
  189.   def initialize(viewport = nil ,type = 0, image_name = "",index = 0,nx,ny)
  190.       super(viewport)
  191.       self.bitmap = Cache.weather(image_name.to_s)
  192.       self.opacity = 0
  193.       @cw = self.bitmap.width
  194.       @ch = self.bitmap.height
  195.       @angle_speed = 0
  196.       @x_speed = 0
  197.       @y_speed = 0
  198.       @zoom_speed = 0
  199.       @opacity_speed = 0
  200.       @type = type
  201.       @index = index
  202.       @old_nx = nx
  203.       @old_ny = ny
  204.       type_setup(nx,ny)
  205.   end
  206.   
  207.   #--------------------------------------------------------------------------
  208.   # ● Dispose
  209.   #--------------------------------------------------------------------------   
  210.   def dispose
  211.       return if self.bitmap == nil
  212.       self.bitmap.dispose
  213.       self.bitmap = nil
  214.   end
  215.   
  216.   #--------------------------------------------------------------------------
  217.   # ● Pre Values
  218.   #--------------------------------------------------------------------------   
  219.   def pre_values(index)
  220.       return if  $game_temp.weather_ex_set[index] == nil
  221.       self.x = $game_temp.weather_ex_set[index][0]
  222.       self.y = $game_temp.weather_ex_set[index][1]
  223.       self.opacity = $game_temp.weather_ex_set[index][2]
  224.       self.angle = $game_temp.weather_ex_set[index][3]
  225.       self.zoom_x = $game_temp.weather_ex_set[index][4]
  226.       self.zoom_y = $game_temp.weather_ex_set[index][4]
  227.       $game_temp.weather_ex_set[index].clear
  228.       $game_temp.weather_ex_set[index] = nil
  229.   end  
  230.   
  231.   #--------------------------------------------------------------------------
  232.   # ● Type Setup
  233.   #--------------------------------------------------------------------------      
  234.   def type_setup(nx = 0, ny = 0)
  235.       @cw2 = [(672 + @cw) + nx, -(96 + @cw) + nx]
  236.       @ch2 = [(576 + @ch) + ny, -(96 + @ch) + ny]
  237.       check_weather_type
  238.       pre_values(@index)
  239.       @opacity_speed = -1 if $game_temp.weather_fade
  240.   end
  241.   
  242.   #--------------------------------------------------------------------------
  243.   # ● Update
  244.   #--------------------------------------------------------------------------   
  245.   def update(nx = 0, ny = 0)
  246.       self.x += @x_speed
  247.       self.y += @y_speed
  248.       self.opacity += @opacity_speed
  249.       self.angle += @angle_speed
  250.       self.zoom_x += @zoom_speed
  251.       self.zoom_y += @zoom_speed
  252.       check_loop_map(nx,ny)
  253.       type_setup(nx,ny) if can_reset_setup?
  254.   end  

  255.   #--------------------------------------------------------------------------
  256.   # ● Check Loop Map
  257.   #--------------------------------------------------------------------------        
  258.   def check_loop_map(nx,ny)
  259.       if (@old_nx - nx).abs > 32
  260.          @cw2 = [(672 + @cw) + nx, -(96 + @cw) + nx]
  261.          self.x += nx
  262.          self.x -= @old_nx if nx == 0
  263.       end   
  264.       if (@old_ny - ny).abs > 32
  265.          @ch2 = [(576 + @ch) + ny, -(96 + @ch) + ny]
  266.          self.y += ny
  267.          self.y -= @old_ny if ny == 0
  268.       end         
  269.       @old_nx = nx
  270.       @old_ny = ny   
  271.   end  
  272.    
  273.   #--------------------------------------------------------------------------
  274.   # ● Can Reset Setup
  275.   #--------------------------------------------------------------------------      
  276.   def can_reset_setup?
  277.       return true if self.x > @cw2[0] or self.x <  @cw2[1]
  278.       return true if self.y > @ch2[0]  or self.y < @ch2[1]
  279.       return true if self.opacity == 0
  280.       return true if self.zoom_x > 2.0 or self.zoom_x < 0.5
  281.       return false
  282.   end
  283.   
  284. #--------------------------------------------------------------------------
  285. # ● Check Weather Type
  286. #--------------------------------------------------------------------------                        
  287. def check_weather_type
  288.      case @type
  289.          when 0;   rain
  290.          when 1;   wind   
  291.          when 2;   fog
  292.          when 3;   light
  293.          when 4;   snow
  294.          when 5;   spark
  295.          when 6;   random                  
  296.       end
  297. end
  298.    
  299. #--------------------------------------------------------------------------
  300. # ● Snow
  301. #--------------------------------------------------------------------------                          
  302. def snow
  303.      self.angle = rand(360)
  304.      self.x = rand(@cw2[0])
  305.      self.y = rand(@ch2[0])
  306.      self.opacity = 1
  307.      self.zoom_x = (rand(100) + 50) / 100.0
  308.      self.zoom_y = self.zoom_x
  309.      @y_speed = [[rand(5), 1].max, 5].min
  310.      @opacity_speed = 5
  311.      @angle_speed = rand(3)
  312. end   

  313. #--------------------------------------------------------------------------
  314. # ● Spark
  315. #--------------------------------------------------------------------------                           
  316. def spark
  317.      self.angle = rand(360)
  318.      self.x = rand(@cw2[0])
  319.      self.y = rand(@ch2[0])
  320.      self.opacity = 1
  321.      self.zoom_x = (rand(100) + 100) / 100.0
  322.      self.zoom_y = self.zoom_x
  323.      self.blend_type = 1     
  324.      @opacity_speed = 10
  325.      @zoom_speed = -0.01
  326. end

  327. #--------------------------------------------------------------------------
  328. # ● Rain
  329. #--------------------------------------------------------------------------                          
  330. def rain
  331.      self.x = rand(@cw2[0])      
  332.      if @start == nil
  333.         self.y = rand(@ch2[0])
  334.         @start = true
  335.      else
  336.         self.y = @ch2[1]        
  337.      end   
  338.      self.opacity = 1
  339.      self.zoom_y = (rand(50) + 100) / 100.0
  340.      self.zoom_x = (rand(25) + 100) / 100.0
  341.      @y_speed = [[rand(10) + 10, 10].max, 20].min
  342.      @opacity_speed = 10
  343. end   

  344. #--------------------------------------------------------------------------
  345. # ● Fog
  346. #--------------------------------------------------------------------------                           
  347. def fog
  348.      rand_angle = rand(2)
  349.      self.angle = rand_angle == 1 ? 180 : 0
  350.      self.x = rand(@cw2[0])
  351.      self.y = rand(@ch2[0])
  352.      self.opacity = 1
  353.      self.zoom_x = (rand(100) + 50) / 100.0
  354.      self.zoom_y = self.zoom_x
  355.      @x_speed = [[rand(10), 1].max, 10].min
  356.      @opacity_speed = 10
  357. end

  358. #--------------------------------------------------------------------------
  359. # ● Light
  360. #--------------------------------------------------------------------------                           
  361. def light
  362.      self.angle = rand(360)
  363.      self.x = rand(@cw2[0])
  364.      self.y = rand(@ch2[0])
  365.      self.opacity = 1
  366.      self.zoom_x = (rand(100) + 50) / 100.0
  367.      self.zoom_y = self.zoom_x
  368.      self.blend_type = 1
  369.      @angle_speed = [[rand(3), 1].max, 3].min
  370.      @y_speed = -[[rand(10), 1].max, 10].min
  371.      @opacity_speed = 2
  372. end

  373. #--------------------------------------------------------------------------
  374. # ● Wind
  375. #--------------------------------------------------------------------------                          
  376. def wind
  377.      self.angle = rand(360)
  378.      self.x = rand(@cw2[0])
  379.      self.y = rand(@ch2[0])
  380.      self.opacity = 1
  381.      self.zoom_x = (rand(100) + 50) / 100.0
  382.      self.zoom_y = self.zoom_x
  383.      @x_speed = [[rand(10), 1].max, 10].min
  384.      @y_speed = [[rand(10), 1].max, 10].min
  385.      @opacity_speed = 10
  386. end   
  387.       
  388. #--------------------------------------------------------------------------
  389. # ● Random
  390. #--------------------------------------------------------------------------                          
  391. def random
  392.      self.angle = rand(360)
  393.      self.x = rand(@cw2[0])
  394.      self.y = rand(@ch2[0])
  395.      self.opacity = 1
  396.      self.zoom_x = (rand(100) + 50) / 100.0
  397.      self.zoom_y = self.zoom_x
  398.      x_s = [[rand(10), 1].max, 10].min
  399.      y_s = [[rand(10), 1].max, 10].min
  400.      rand_x = rand(2)
  401.      rand_y = rand(2)
  402.      @x_speed = rand_x == 1 ? x_s : -x_s
  403.      @y_speed = rand_y == 1 ? y_s : -y_s      
  404.      @opacity_speed = 10
  405. end   

  406. end

  407. #==============================================================================
  408. # ■ Module Weather EX
  409. #==============================================================================
  410. module Module_Weather_EX
  411.   
  412. #--------------------------------------------------------------------------
  413. # ● Create Weather EX
  414. #--------------------------------------------------------------------------                  
  415.   def create_weather_ex
  416.       dispose_weather_ex
  417.       create_weather_viewport
  418.       create_weather_sprite     
  419.   end
  420.   
  421. #--------------------------------------------------------------------------
  422. # ● Dispose Wheater EX
  423. #--------------------------------------------------------------------------                     
  424.   def dispose_weather_ex
  425.       dispose_weather_ex_sprite
  426.       dispose_weather_ex_viewport
  427.   end  

  428. #--------------------------------------------------------------------------
  429. # ● Create Weather Viewport
  430. #--------------------------------------------------------------------------                     
  431.   def create_weather_viewport
  432.       dispose_weather_ex_viewport
  433.       @viewport_weather_ex = Viewport.new(-32, -32, 576, 448)
  434.       @viewport_weather_ex.z = MOG_WEATHER_EX::WEATHER_SCREEN_Z
  435.       @viewport_weather_ex.ox = ($game_map.display_x * 32)
  436.       @viewport_weather_ex.oy = ($game_map.display_y * 32)      
  437.   end  

  438. #--------------------------------------------------------------------------
  439. # ● Create Weather Sprite
  440. #--------------------------------------------------------------------------                       
  441.   def create_weather_sprite
  442.       dispose_weather_ex_sprite
  443.       @old_weather = $game_system.weather
  444.       return if $game_system.weather == [] or $game_system.weather[0] == -1
  445.       @weather_ex = []
  446.       index = 0
  447.       power_efic = MOG_WEATHER_EX::WEATHER_POWER_EFIC
  448.       power_efic = 1 if power_efic < 1
  449.       power = [[$game_system.weather[1] * power_efic, power_efic].max, 999].min
  450.       for i in 0...power
  451.           @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))
  452.           index += 1
  453.       end            
  454.   end

  455. #--------------------------------------------------------------------------
  456. # ● Dispose Weather EX Viewport
  457. #--------------------------------------------------------------------------                       
  458.   def dispose_weather_ex_viewport
  459.       return if @viewport_weather_ex == nil
  460.       @viewport_weather_ex.dispose
  461.   end  
  462.   
  463. #--------------------------------------------------------------------------
  464. # ● Dispose Weather EX
  465. #--------------------------------------------------------------------------                  
  466.   def dispose_weather_ex_sprite
  467.       return if @weather_ex == nil
  468.       index = 0
  469.       for i in @weather_ex
  470.           $game_temp.weather_ex_set[index] = [] if $game_temp.weather_ex_set[index] == nil
  471.           $game_temp.weather_ex_set[index].push(i.x,i.y,i.opacity,i.angle,i.zoom_x)
  472.           i.dispose
  473.           index += 1
  474.       end
  475.       @weather_ex.each {|sprite| sprite.dispose}  
  476.       @weather_ex.clear
  477.       @weather_ex = nil
  478.   end
  479.   
  480. #--------------------------------------------------------------------------
  481. # ● Dispose Refresh
  482. #--------------------------------------------------------------------------                    
  483.   def dispose_refresh
  484.       $game_temp.weather_ex_set.clear
  485.       return if @weather_ex == nil
  486.       @weather_ex.each {|sprite| sprite.dispose}
  487.       @weather_ex.clear
  488.       @weather_ex = nil
  489.   end  
  490.   
  491. #--------------------------------------------------------------------------
  492. # ● Update Weather EX
  493. #--------------------------------------------------------------------------                  
  494.   def update_weather_ex
  495.       refresh_weather_ex
  496.       update_weather_ex_viewport
  497.       return if @weather_ex == nil
  498.       @weather_ex.each {|sprite| sprite.update(@viewport_weather_ex.ox,@viewport_weather_ex.oy)}
  499.   end
  500.   
  501. #--------------------------------------------------------------------------
  502. # ● Update Weather Ex Viewport
  503. #--------------------------------------------------------------------------                     
  504.   def update_weather_ex_viewport
  505.       return if @viewport_weather_ex == nil
  506.       @viewport_weather_ex.ox = ($game_map.display_x * 32)
  507.       @viewport_weather_ex.oy = ($game_map.display_y * 32)
  508.   end

  509. #--------------------------------------------------------------------------
  510. # ● Refresh Weather EX
  511. #--------------------------------------------------------------------------                     
  512.   def refresh_weather_ex
  513.       return if @old_weather == nil
  514.       return if @old_weather == $game_system.weather
  515.       dispose_refresh
  516.       create_weather_sprite
  517.   end  
  518. end  

  519. #==============================================================================
  520. # ■ Spriteset Map
  521. #==============================================================================
  522. class Spriteset_Map
  523.    include Module_Weather_EX  
  524.    
  525. #--------------------------------------------------------------------------
  526. # ● Initialize
  527. #--------------------------------------------------------------------------                  
  528.   alias mog_weather_ex_initialize initialize
  529.   def initialize         
  530.       mog_weather_ex_initialize
  531.       dispose_weather_ex
  532.       create_weather_ex
  533.   end

  534. #--------------------------------------------------------------------------
  535. # ● Dispose
  536. #--------------------------------------------------------------------------                  
  537.   alias mog_weather_ex_dispose dispose
  538.   def dispose
  539.       mog_weather_ex_dispose
  540.       dispose_weather_ex
  541.   end  

  542. #--------------------------------------------------------------------------
  543. # ● Update
  544. #--------------------------------------------------------------------------                  
  545.   alias mog_weather_ex_update update
  546.   def update
  547.       mog_weather_ex_update
  548.       update_weather_ex
  549.   end  
  550.    
  551. end

  552. if MOG_WEATHER_EX::WEATHER_BATTLE
  553. #==============================================================================
  554. # ■ Spriteset Battle
  555. #==============================================================================
  556. class Spriteset_Battle  
  557.   
  558.    include Module_Weather_EX  
  559.    
  560. #--------------------------------------------------------------------------
  561. # ● Initialize
  562. #--------------------------------------------------------------------------                  
  563.   alias mog_weather_ex_initialize initialize
  564.   def initialize         
  565.       mog_weather_ex_initialize
  566.       dispose_weather_ex
  567.       create_weather_ex
  568.   end

  569. #--------------------------------------------------------------------------
  570. # ● Dispose
  571. #--------------------------------------------------------------------------                  
  572.   alias mog_weather_ex_dispose dispose
  573.   def dispose
  574.       mog_weather_ex_dispose
  575.       dispose_weather_ex
  576.   end  

  577. #--------------------------------------------------------------------------
  578. # ● Update
  579. #--------------------------------------------------------------------------                  
  580.   alias mog_weather_ex_update update
  581.   def update
  582.       mog_weather_ex_update
  583.       update_weather_ex
  584.   end   
  585.    
  586. end

  587. end

  588. #=============================================================================
  589. # ■ Scene Base
  590. #=============================================================================
  591. class Scene_Base
  592.   
  593.   #--------------------------------------------------------------------------
  594.   # ● Weather Recover Data
  595.   #--------------------------------------------------------------------------  
  596.   def weather_recover_data
  597.       if $game_system.weather.empty? or
  598.           $game_system.weather[0] == -1
  599.           if !$game_system.weather_restore.empty? and
  600.              $game_system.weather_restore[0] != -1
  601.              v = $game_system.weather_restore
  602.              $game_system.weather = [v[0],v[1],v[2]]
  603.           end
  604.       end         
  605.   end
  606.   
  607.   #--------------------------------------------------------------------------
  608.   # ● Weather Restore
  609.   #--------------------------------------------------------------------------      
  610.   def weather_recover_scene
  611.       return if $game_system.weather_temp.empty?
  612.       return if $game_system.weather_temp[0] == -1
  613.       w = $game_system.weather_temp
  614.       $game_system.weather = [w[0],w[1],w[2]]
  615.       $game_system.weather_temp.clear
  616.       $game_system.weather_temp = [-1,0,""]
  617.   end  
  618.   
  619.   #--------------------------------------------------------------------------
  620.   # ● Main
  621.   #--------------------------------------------------------------------------         
  622.   alias mog_weather_ex_main main
  623.   def main
  624.       weather_recover_scene if can_recover_weather_scene?
  625.       mog_weather_ex_main
  626.   end   
  627.   
  628.   #--------------------------------------------------------------------------
  629.   # ● Can Recover Weather Scene
  630.   #--------------------------------------------------------------------------         
  631.   def can_recover_weather_scene?
  632.       return true if SceneManager.scene_is?(Scene_Map)
  633.       return true if SceneManager.scene_is?(Scene_Battle)
  634.       return false
  635.   end  
  636.   
  637. end

  638. #=============================================================================
  639. # ■ Scene Load
  640. #=============================================================================
  641. class Scene_Load < Scene_File
  642.   
  643.   #--------------------------------------------------------------------------
  644.   # ● On Load Success
  645.   #--------------------------------------------------------------------------
  646.   alias mog_weather_ex_on_load_success on_load_success
  647.   def on_load_success
  648.       mog_weather_ex_on_load_success
  649.       weather_recover_data
  650.   end
  651. end

  652. #=============================================================================
  653. # ■ Scene Manager
  654. #=============================================================================
  655. class << SceneManager
  656.   
  657.   #--------------------------------------------------------------------------
  658.   # ● Call
  659.   #--------------------------------------------------------------------------         
  660.   alias mog_weather_ex_call call
  661.   def call(scene_class)
  662.       weather_dispose
  663.       mog_weather_ex_call(scene_class)
  664.   end
  665.   
  666.   #--------------------------------------------------------------------------
  667.   # ● Weather Restore
  668.   #--------------------------------------------------------------------------      
  669.   def weather_dispose
  670.       return if $game_system.weather.empty?
  671.       return if $game_system.weather[0] == -1
  672.       w = $game_system.weather
  673.       $game_system.weather_temp = [w[0],w[1],w[2]]
  674.       $game_system.weather.clear
  675.       $game_system.weather = [-1,0,""]
  676.   end
  677.    
  678.   
  679. end
  680. $mog_rgss3_weather_ex = true
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1