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

Project1

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

[已经解决] 求一个能在地图上烟漫弥漫(天气)的脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
跳转到指定楼层
1
发表于 2020-10-9 23:09:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
100星屑
要 VxAce 上可以用的哟!

最佳答案

查看完整内容

本末倒置了...看你研究了那么久的默认脚本, 原来连脚本在那找都不知道? 外站五大神: Galv, Yanfly, MOG, Theo, Hime 事件脚本调用 weather(2, 5, "Fog_01A") #============================================================================== # +++ MOG - Weather EX (v2.3) +++ #============================================================================== # By Moghunter # http://www.atelier-rgss.com/ #========== ...

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
2
发表于 2020-10-9 23:09:13 | 只看该作者
本帖最后由 alexncf125 于 2020-10-9 23:41 编辑

本末倒置了...看你研究了那么久的默认脚本, 原来连脚本在那找都不知道?
外站五大神: Galv, Yanfly, MOG, Theo, Hime
Weather.rar (121.06 KB, 下载次数: 125)
事件脚本调用 weather(2, 5, "Fog_01A")
RUBY 代码复制
  1. #==============================================================================
  2. # +++ MOG - Weather EX (v2.3) +++
  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. # Para parar o clima após a batalha use o código abaixo.
  55. #
  56. # weather_stop_b
  57. #
  58. #==============================================================================
  59. # Para parar reativar o clima com as caracteríticas préviamente usadas use o
  60. # comando abaixo.
  61. #
  62. # weather_restore
  63. #==============================================================================
  64. # Se você precisar ativar um novo clima mas deseja gravar as caracteríticas
  65. # do clima atual para ser reativado depois use os códigos abaixo.
  66. #
  67. # weather_store
  68. # weather_restore_store
  69. #
  70. #==============================================================================
  71.  
  72. #==============================================================================
  73. # ● Histórico (Version History)
  74. #==============================================================================
  75. # v 2.3 - Compatibilidade com MOG Battle Camera.
  76. # v 2.2 - Adicionado o comando parar o clima após a batalha.
  77. # v 2.1 - Melhoria na posição das partículas durante as transições
  78. #         de scenes.
  79. # v 2.0 - Correção do bug do Crash aleatório.
  80. #==============================================================================
  81. module MOG_WEATHER_EX
  82.   #Prioridade do clima na tela.
  83.   WEATHER_SCREEN_Z = 50##########
  84.   #Definição da eficiência do poder do clima.
  85.   #NOTA -  Um valor muito alto pode causar lag, dependendo do tipo de clima e
  86.   #        imagem usada.
  87.   WEATHER_POWER_EFIC = 5
  88.   #Ativar o clima no sistema de batalha.
  89.   WEATHER_BATTLE = true
  90. end
  91.  
  92. $imported = {} if $imported.nil?
  93. $imported[:mog_weather_ex] = true
  94.  
  95. #==============================================================================
  96. # ■ Cache
  97. #==============================================================================
  98. module Cache
  99.  
  100.   #--------------------------------------------------------------------------
  101.   # ● Weather
  102.   #--------------------------------------------------------------------------
  103.   def self.weather(filename)
  104.       load_bitmap("Graphics/Weather/", filename)
  105.   end
  106.  
  107. end
  108.  
  109. #==============================================================================
  110. # ■ Game System
  111. #==============================================================================
  112. class Game_System
  113.  
  114.   attr_accessor :weather
  115.   attr_accessor :weather_restore
  116.   attr_accessor :weather_record_set
  117.   attr_accessor :weather_temp
  118.  
  119.   #--------------------------------------------------------------------------
  120.   # ● Initialize
  121.   #--------------------------------------------------------------------------  
  122.   alias weather_ex_initialize initialize  
  123.   def initialize
  124.       @weather = [-1,0,""]
  125.       @weather_restore = [-1,0,""]
  126.       @weather_temp = [-1,0,""]
  127.       @weather_record_set = [-1,0,""]
  128.       weather_ex_initialize
  129.   end  
  130.  
  131. end  
  132.  
  133. #==============================================================================
  134. # ■ Game Temp
  135. #==============================================================================
  136. class Game_Temp
  137.  
  138.   attr_accessor :weather_ex_set
  139.   attr_accessor :weather_fade
  140.   attr_accessor :weather_rf_time
  141.   attr_accessor :weather_fstop
  142.  
  143.   #--------------------------------------------------------------------------
  144.   # ● Initialize
  145.   #--------------------------------------------------------------------------  
  146.   alias mog_weather_ex_temp_initialize initialize
  147.   def initialize
  148.       @weather_ex_set = []
  149.       @weather_fade = false
  150.       @weather_rf_time = 0
  151.       @weather_fstop = false
  152.       mog_weather_ex_temp_initialize
  153.   end  
  154.  
  155. end
  156.  
  157. #==============================================================================
  158. # ■ Game Interpreter
  159. #==============================================================================
  160. class Game_Interpreter
  161.  
  162.   #--------------------------------------------------------------------------
  163.   # ● Weather
  164.   #--------------------------------------------------------------------------   
  165.   def weather(type = -1, power = 0, image = "")
  166.       $game_temp.weather_fade = false
  167.       $game_temp.weather_rf_time = 0
  168.       $game_system.weather.clear
  169.       $game_system.weather = [type,power,image]
  170.   end
  171.  
  172.   #--------------------------------------------------------------------------
  173.   # ● Weather Stop
  174.   #--------------------------------------------------------------------------     
  175.   def weather_stop
  176.       $game_temp.weather_fade = false
  177.       $game_system.weather.clear
  178.       $game_system.weather = [-1,0,""]
  179.       $game_system.weather_restore  = [-1,0,""]
  180.       $game_system.weather_temp = [-1,0,""]      
  181.   end
  182.  
  183.   #--------------------------------------------------------------------------
  184.   # ● Weather Restore
  185.   #--------------------------------------------------------------------------      
  186.   def weather_restore
  187.       $game_temp.weather_fade = false
  188.       if $game_system.weather[0] != -1
  189.          w = $game_system.weather
  190.          $game_system.weather_restore = [w[0],w[1],w[2]]
  191.          $game_system.weather.clear
  192.          $game_system.weather = [-1,0,""]
  193.          return
  194.       end
  195.       w = $game_system.weather_restore
  196.       weather(w[0],w[1],w[2])
  197.   end
  198.  
  199.   #--------------------------------------------------------------------------
  200.   # ● Weather Fade
  201.   #--------------------------------------------------------------------------         
  202.   def weather_fade(value)
  203.       $game_temp.weather_fade = value
  204.   end
  205.  
  206.   #--------------------------------------------------------------------------
  207.   # ● Weather Store
  208.   #--------------------------------------------------------------------------           
  209.   def weather_store
  210.       w = $game_system.weather
  211.       $game_system.weather_record_set = [w[0],w[1],w[2]]
  212.   end  
  213.  
  214.   #--------------------------------------------------------------------------
  215.   # ● Weather Restore Store
  216.   #--------------------------------------------------------------------------           
  217.   def weather_restore_store
  218.       w = $game_system.weather_record_set
  219.       weather(w[0],w[1],w[2])      
  220.   end   
  221.  
  222.   #--------------------------------------------------------------------------
  223.   # ● Weather Stop B
  224.   #--------------------------------------------------------------------------           
  225.   def weather_stop_b
  226.       $game_temp.weather_fstop = true
  227.   end
  228.  
  229. end  
  230.  
  231. #==============================================================================
  232. # ** Spriteset_Map
  233. #==============================================================================
  234. class Spriteset_Map
  235.  
  236.   #--------------------------------------------------------------------------
  237.   # * Create Viewport
  238.   #--------------------------------------------------------------------------
  239.   alias mog_weather_ex_create_viewports create_viewports
  240.   def create_viewports
  241.       create_viewport_weather
  242.       mog_weather_ex_create_viewports      
  243.   end
  244.  
  245.   #--------------------------------------------------------------------------
  246.   # * Create Viewport Weather
  247.   #--------------------------------------------------------------------------
  248.   def create_viewport_weather
  249.       return if @viewport_weather != nil
  250.       @viewport_weather = Viewport.new
  251.       @viewport_weather.z = MOG_WEATHER_EX::WEATHER_SCREEN_Z
  252.       @viewport_weather.ox = ($game_map.display_x * 32)
  253.       @viewport_weather.oy = ($game_map.display_y * 32)
  254.   end
  255.  
  256.   #--------------------------------------------------------------------------
  257.   # * Dispose Viewports
  258.   #--------------------------------------------------------------------------
  259.   alias mog_weather_ex_dispose_viewports dispose_viewports
  260.   def dispose_viewports      
  261.       mog_weather_ex_dispose_viewports
  262.       dispose_viewport_weather
  263.   end
  264.  
  265.   #--------------------------------------------------------------------------
  266.   # * Dispose Viewport Weather
  267.   #--------------------------------------------------------------------------
  268.   def dispose_viewport_weather
  269.       return if @viewport_weather == nil
  270.       @viewport_weather.dispose   
  271.   end
  272.  
  273.   #--------------------------------------------------------------------------
  274.   # * Update Viewports
  275.   #--------------------------------------------------------------------------
  276.   alias mog_weather_ex_update_viewports update_viewports
  277.   def update_viewports
  278.       mog_weather_ex_update_viewports
  279.       update_viewport_weather
  280.   end
  281.  
  282.   #--------------------------------------------------------------------------
  283.   # * Update Viewports Weather
  284.   #--------------------------------------------------------------------------
  285.   def update_viewport_weather
  286.       return if @viewport_weather == nil
  287.       @viewport_weather.ox = ($game_map.display_x * 32)
  288.       @viewport_weather.oy = ($game_map.display_y * 32)
  289.   end     
  290.  
  291. end
  292.  
  293. #==============================================================================
  294. # ** Spriteset_Battle
  295. #==============================================================================
  296. class Spriteset_Battle
  297.  
  298.   #--------------------------------------------------------------------------
  299.   # * Create Viewport
  300.   #--------------------------------------------------------------------------
  301.   alias mog_weather_ex_create_viewports_battle create_viewports
  302.   def create_viewports
  303.       mog_weather_ex_create_viewports_battle
  304.       create_viewport_weather   
  305.   end
  306.  
  307.   #--------------------------------------------------------------------------
  308.   # * Create Viewport Weather
  309.   #--------------------------------------------------------------------------
  310.   def create_viewport_weather
  311.       return if @viewport_weather != nil
  312.       @viewport_weather = Viewport.new
  313.       @viewport_weather.z = MOG_WEATHER_EX::WEATHER_SCREEN_Z
  314.   end
  315.  
  316.   #--------------------------------------------------------------------------
  317.   # * Dispose Viewports
  318.   #--------------------------------------------------------------------------
  319.   alias mog_weather_ex_dispose_viewports_battle dispose_viewports
  320.   def dispose_viewports      
  321.       mog_weather_ex_dispose_viewports_battle
  322.       dispose_viewport_weather
  323.   end
  324.  
  325.   #--------------------------------------------------------------------------
  326.   # * Dispose Viewport Weather
  327.   #--------------------------------------------------------------------------
  328.   def dispose_viewport_weather
  329.       return if @viewport_weather == nil
  330.       @viewport_weather.dispose   
  331.   end
  332.  
  333.   #--------------------------------------------------------------------------
  334.   # * Update Viewports
  335.   #--------------------------------------------------------------------------
  336.   alias mog_weather_ex_update_viewports_battle update_viewports
  337.   def update_viewports
  338.       mog_weather_ex_update_viewports_battle
  339.       update_viewport_weather        
  340.   end  
  341.  
  342.   #--------------------------------------------------------------------------
  343.   # * Update Viewports Weather
  344.   #--------------------------------------------------------------------------
  345.   def update_viewport_weather
  346.       return if @viewport_weather == nil
  347.       if $imported[:mog_battle_camera]
  348.          @viewport_weather.ox = $game_temp.viewport_oxy[0]
  349.          @viewport_weather.oy = $game_temp.viewport_oxy[1]
  350.       end   
  351.   end   
  352.  
  353. end
  354.  
  355. #==============================================================================
  356. # ■ Weather_EX
  357. #==============================================================================
  358. class Weather_EX
  359.  
  360.   #--------------------------------------------------------------------------
  361.   # ● Initialize
  362.   #--------------------------------------------------------------------------  
  363.   def initialize(viewport = nil ,type = 0, image_name = "",index = 0,nx,ny)
  364.       @wp = Sprite.new
  365.       @wp.bitmap = Cache.weather(image_name.to_s)
  366.       @wp.opacity = 0
  367.       @wp.viewport = viewport
  368.       @cw = @wp.bitmap.width
  369.       @cwm = (@cw / 2) + @cw
  370.       @ch = @wp.bitmap.height
  371.       @chm = (@ch / 2) + @ch
  372.       @range_x = [-@cwm,Graphics.width + @cwm]
  373.       @range_y = [-@chm,Graphics.height + @chm]
  374.       @angle_speed = 0
  375.       @x_speed = 0
  376.       @y_speed = 0
  377.       @zoom_speed = 0
  378.       @opacity_speed = 0
  379.       @type = type
  380.       @index = index
  381.       @nx = 0
  382.       @nx_old = 0
  383.       @ny = 0
  384.       @ny_old = 0      
  385.       @old_nx = nx
  386.       @old_ny = ny
  387.       type_setup(nx,ny)
  388.   end
  389.  
  390.   #--------------------------------------------------------------------------
  391.   # ● x
  392.   #--------------------------------------------------------------------------      
  393.   def x
  394.       @wp.x
  395.   end
  396.  
  397.   #--------------------------------------------------------------------------
  398.   # ● y
  399.   #--------------------------------------------------------------------------      
  400.   def y
  401.       @wp.y
  402.   end
  403.  
  404.   #--------------------------------------------------------------------------
  405.   # ● Opacity
  406.   #--------------------------------------------------------------------------      
  407.   def opacity
  408.       @wp.opacity
  409.   end
  410.  
  411.   #--------------------------------------------------------------------------
  412.   # ● Angle
  413.   #--------------------------------------------------------------------------      
  414.   def angle
  415.       @wp.angle
  416.   end
  417.  
  418.   #--------------------------------------------------------------------------
  419.   # ● Zoom X
  420.   #--------------------------------------------------------------------------      
  421.   def zoom_x
  422.       @wp.zoom_x
  423.   end  
  424.  
  425.   #--------------------------------------------------------------------------
  426.   # ● Dispose Weather
  427.   #--------------------------------------------------------------------------      
  428.   def dispose_weather
  429.       return if @wp == nil
  430.       @wp.bitmap.dispose
  431.       @wp.dispose
  432.       @wp = nil
  433.   end
  434.  
  435.   #--------------------------------------------------------------------------
  436.   # ● Pre Values
  437.   #--------------------------------------------------------------------------   
  438.   def pre_values(index)
  439.       return if  $game_temp.weather_ex_set[index] == nil
  440.       @wp.x = $game_temp.weather_ex_set[index][0]
  441.       @wp.y = $game_temp.weather_ex_set[index][1]
  442.       @wp.opacity = 1#$game_temp.weather_ex_set[index][2]
  443.       @wp.angle = $game_temp.weather_ex_set[index][3]
  444.       @wp.zoom_x = $game_temp.weather_ex_set[index][4]
  445.       @wp.zoom_y = $game_temp.weather_ex_set[index][4]
  446.       $game_temp.weather_ex_set[index].clear
  447.       $game_temp.weather_ex_set[index] = nil
  448.   end  
  449.  
  450.   #--------------------------------------------------------------------------
  451.   # ● Type Setup
  452.   #--------------------------------------------------------------------------      
  453.   def type_setup(nx = 0, ny = 0)
  454.       @cw2 = [@range_x[1] + nx, @range_x[0] + nx]
  455.       @ch2 = [@range_y[1] + ny, @range_y[0] + ny]
  456.       check_weather_type
  457.       pre_values(@index)
  458.       @opacity_speed = -1 if $game_temp.weather_fade
  459.   end
  460.  
  461.   #--------------------------------------------------------------------------
  462.   # ● Update
  463.   #--------------------------------------------------------------------------   
  464.   def update_weather(nx = 0, ny = 0)
  465.       @wp.x += @x_speed
  466.       @wp.y += @y_speed
  467.       @wp.opacity += @opacity_speed
  468.       @wp.angle += @angle_speed
  469.       @wp.zoom_x += @zoom_speed
  470.       @wp.zoom_y += @zoom_speed
  471.       check_loop_map(nx,ny)
  472.       type_setup(nx,ny) if can_reset_setup?
  473.   end  
  474.  
  475.   #--------------------------------------------------------------------------
  476.   # ● Check Loop Map
  477.   #--------------------------------------------------------------------------        
  478.   def check_loop_map(nx,ny)
  479.       if (@old_nx - nx).abs > 32
  480.          @cw2 = [@range_x[1] + nx, @range_x[0] + nx]
  481.          @wp.x += nx
  482.          @wp.x -= @old_nx if nx == 0
  483.       end   
  484.       if (@old_ny - ny).abs > 32
  485.          @ch2 = [@range_y[1] + ny, @range_y[0] + ny]
  486.          @wp.y += ny
  487.          @wp.y -= @old_ny if ny == 0
  488.       end         
  489.       @old_nx = nx
  490.       @old_ny = ny   
  491.   end  
  492.  
  493.   #--------------------------------------------------------------------------
  494.   # ● Can Reset Setup
  495.   #--------------------------------------------------------------------------      
  496.   def can_reset_setup?
  497.       return true if @wp.x > @cw2[0] or @wp.x <  @cw2[1]
  498.       return true if @wp.y > @ch2[0]  or @wp.y < @ch2[1]
  499.       return true if @wp.opacity == 0
  500.       return true if @wp.zoom_x > 2.0 or @wp.zoom_x < 0.5
  501.       return false
  502.   end
  503.  
  504. #--------------------------------------------------------------------------
  505. # ● Check Weather Type
  506. #--------------------------------------------------------------------------                        
  507. def check_weather_type
  508.      case @type
  509.          when 0;   rain
  510.          when 1;   wind   
  511.          when 2;   fog
  512.          when 3;   light
  513.          when 4;   snow
  514.          when 5;   spark
  515.          when 6;   random                  
  516.       end
  517. end
  518.  
  519. #--------------------------------------------------------------------------
  520. # ● Snow
  521. #--------------------------------------------------------------------------                          
  522. def snow
  523.      @wp.angle = rand(360)
  524.      @wp.x = rand(@cw2[0])
  525.      @wp.y = rand(@ch2[0])
  526.      @wp.opacity = 1
  527.      @wp.zoom_x = (rand(100) + 50) / 100.0
  528.      @wp.zoom_y = @wp.zoom_x
  529.      @y_speed = [[rand(5), 1].max, 5].min
  530.      @opacity_speed = 5
  531.      @angle_speed = rand(3)
  532. end   
  533.  
  534. #--------------------------------------------------------------------------
  535. # ● Spark
  536. #--------------------------------------------------------------------------                           
  537. def spark
  538.      @wp.angle = rand(360)
  539.      @wp.x = rand(@cw2[0])
  540.      @wp.y = rand(@ch2[0])
  541.      @wp.opacity = 1
  542.      @wp.zoom_x = (rand(100) + 100) / 100.0
  543.      @wp.zoom_y = @wp.zoom_x
  544.      @wp.blend_type = 1     
  545.      @opacity_speed = 10
  546.      @zoom_speed = -0.01
  547. end
  548.  
  549. #--------------------------------------------------------------------------
  550. # ● Rain
  551. #--------------------------------------------------------------------------                          
  552. def rain
  553.      @wp.x = rand(@cw2[0])      
  554.      if @start == nil
  555.         @wp.y = rand(@ch2[0])
  556.         @start = true
  557.      else
  558.         @wp.y = @ch2[1]        
  559.      end   
  560.      @wp.opacity = 1
  561.      @wp.zoom_y = (rand(50) + 100) / 100.0
  562.      @wp.zoom_x = (rand(25) + 100) / 100.0
  563.      @y_speed = [[rand(10) + 10, 10].max, 20].min
  564.      @opacity_speed = 10
  565. end   
  566.  
  567. #--------------------------------------------------------------------------
  568. # ● Fog
  569. #--------------------------------------------------------------------------                           
  570. def fog
  571.      rand_angle = rand(2)
  572.      @wp.angle = rand_angle == 1 ? 180 : 0
  573.      @wp.x = rand(@cw2[0])
  574.      @wp.y = rand(@ch2[0])
  575.      @wp.opacity = 1
  576.      @wp.zoom_x = (rand(100) + 50) / 100.0
  577.      @wp.zoom_y = @wp.zoom_x
  578.      @x_speed = [[rand(10), 1].max, 10].min
  579.      @opacity_speed = 10
  580. end
  581.  
  582. #--------------------------------------------------------------------------
  583. # ● Light
  584. #--------------------------------------------------------------------------                           
  585. def light
  586.      @wp.angle = rand(360)
  587.      @wp.x = rand(@cw2[0])
  588.      @wp.y = rand(@ch2[0])
  589.      @wp.opacity = 1
  590.      @wp.zoom_x = (rand(100) + 50) / 100.0
  591.      @wp.zoom_y = @wp.zoom_x
  592.      @wp.blend_type = 1
  593.      @angle_speed = [[rand(3), 1].max, 3].min
  594.      @y_speed = -[[rand(10), 1].max, 10].min
  595.      @opacity_speed = 2
  596. end
  597.  
  598. #--------------------------------------------------------------------------
  599. # ● Wind
  600. #--------------------------------------------------------------------------                          
  601. def wind
  602.      @wp.angle = rand(360)
  603.      @wp.x = rand(@cw2[0])
  604.      @wp.y = rand(@ch2[0])
  605.      @wp.opacity = 1
  606.      @wp.zoom_x = (rand(100) + 50) / 100.0
  607.      @wp.zoom_y = @wp.zoom_x
  608.      @x_speed = [[rand(10), 1].max, 10].min
  609.      @y_speed = [[rand(10), 1].max, 10].min
  610.      @opacity_speed = 10
  611. end   
  612.  
  613. #--------------------------------------------------------------------------
  614. # ● Random
  615. #--------------------------------------------------------------------------                          
  616. def random
  617.      @wp.angle = rand(360)
  618.      @wp.x = rand(@cw2[0])
  619.      @wp.y = rand(@ch2[0])
  620.      @wp.opacity = 1
  621.      @wp.zoom_x = (rand(100) + 50) / 100.0
  622.      @wp.zoom_y = @wp.zoom_x
  623.      x_s = [[rand(10), 1].max, 10].min
  624.      y_s = [[rand(10), 1].max, 10].min
  625.      rand_x = rand(2)
  626.      rand_y = rand(2)
  627.      @x_speed = rand_x == 1 ? x_s : -x_s
  628.      @y_speed = rand_y == 1 ? y_s : -y_s      
  629.      @opacity_speed = 10
  630. end   
  631.  
  632. end
  633.  
  634. #==============================================================================
  635. # ■ Module Weather EX
  636. #==============================================================================
  637. module Module_Weather_EX
  638.  
  639. #--------------------------------------------------------------------------
  640. # ● Create Weather EX
  641. #--------------------------------------------------------------------------                  
  642.   def create_weather_ex
  643.       dispose_weather_ex
  644.       create_weather_sprite     
  645.   end
  646.  
  647. #--------------------------------------------------------------------------
  648. # ● Dispose Wheater EX
  649. #--------------------------------------------------------------------------                     
  650.   def dispose_weather_ex
  651.       dispose_weather_ex_sprite
  652.   end
  653.  
  654. #--------------------------------------------------------------------------
  655. # ● Create Weather Sprite
  656. #--------------------------------------------------------------------------                       
  657.   def create_weather_sprite
  658.       dispose_weather_ex_sprite
  659.       @old_weather = $game_system.weather
  660.       return if $game_system.weather == [] or $game_system.weather[0] == -1
  661.       @weather_ex = []
  662.       @weather_oxy = [$game_map.display_x * 32,
  663.                       $game_map.display_y * 32]      
  664.       index = 0
  665.       power_efic = MOG_WEATHER_EX::WEATHER_POWER_EFIC
  666.       power_efic = 1 if power_efic < 1
  667.       power = [[$game_system.weather[1] * power_efic, power_efic].max, 999].min
  668.       for i in 0...power
  669.           @weather_ex.push(Weather_EX.new(@viewport_weather,$game_system.weather[0],$game_system.weather[2],index, @viewport1.ox, @viewport1.oy))
  670.           index += 1
  671.       end            
  672.   end
  673.  
  674. #--------------------------------------------------------------------------
  675. # ● Dispose Weather EX
  676. #--------------------------------------------------------------------------                  
  677.   def dispose_weather_ex_sprite
  678.       return if @weather_ex == nil
  679.       index = 0
  680.       for i in @weather_ex
  681.           $game_temp.weather_ex_set[index] = [] if $game_temp.weather_ex_set[index] == nil
  682.           $game_temp.weather_ex_set[index].push(i.x,i.y,i.opacity,i.angle,i.zoom_x)
  683.           i.dispose_weather
  684.           index += 1
  685.       end
  686.       @weather_ex.each {|sprite| sprite.dispose_weather}  
  687.       @weather_ex = nil
  688.   end
  689.  
  690. #--------------------------------------------------------------------------
  691. # ● Dispose Refresh
  692. #--------------------------------------------------------------------------                    
  693.   def dispose_refresh
  694.       $game_temp.weather_ex_set.clear
  695.       return if @weather_ex == nil
  696.       @weather_ex.each {|sprite| sprite.dispose_weather}
  697.       @weather_ex = nil
  698.   end  
  699.  
  700. #--------------------------------------------------------------------------
  701. # ● Update Weather EX
  702. #--------------------------------------------------------------------------                  
  703.   def update_weather_ex
  704.       $game_temp.weather_rf_time -= 1 if $game_temp.weather_rf_time > 0
  705.       refresh_weather_ex if $game_temp.weather_rf_time == 0
  706.       return if @weather_ex == nil
  707.       @weather_ex.each {|sprite| sprite.update_weather(@viewport_weather.ox,@viewport_weather.oy)}
  708.   end
  709.  
  710. #--------------------------------------------------------------------------
  711. # ● Refresh Weather EX
  712. #--------------------------------------------------------------------------                     
  713.   def refresh_weather_ex
  714.       return if @old_weather == nil
  715.       return if @old_weather == $game_system.weather
  716.       dispose_refresh      
  717.       create_weather_sprite
  718.   end  
  719.  
  720. end  
  721.  
  722. #==============================================================================
  723. # ■ Spriteset Map
  724. #==============================================================================
  725. class Spriteset_Map
  726.    include Module_Weather_EX  
  727.  
  728. #--------------------------------------------------------------------------
  729. # ● Initialize
  730. #--------------------------------------------------------------------------                  
  731.   alias mog_weather_ex_initialize initialize
  732.   def initialize
  733.       dispose_weather_ex   
  734.       mog_weather_ex_initialize
  735.       create_weather_ex
  736.   end
  737.  
  738. #--------------------------------------------------------------------------
  739. # ● Dispose
  740. #--------------------------------------------------------------------------                  
  741.   alias mog_weather_ex_dispose dispose
  742.   def dispose
  743.       dispose_weather_ex   
  744.       mog_weather_ex_dispose
  745.   end  
  746.  
  747. #--------------------------------------------------------------------------
  748. # ● Update
  749. #--------------------------------------------------------------------------                  
  750.   alias mog_weather_ex_update update
  751.   def update
  752.       mog_weather_ex_update
  753.       update_weather_ex
  754.   end  
  755.  
  756. end
  757.  
  758. if MOG_WEATHER_EX::WEATHER_BATTLE
  759. #==============================================================================
  760. # ■ Spriteset Battle
  761. #==============================================================================
  762. class Spriteset_Battle
  763.  
  764.    include Module_Weather_EX  
  765.  
  766. #--------------------------------------------------------------------------
  767. # ● Initialize
  768. #--------------------------------------------------------------------------                  
  769.   alias mog_weather_ex_initialize initialize
  770.   def initialize
  771.       dispose_weather_ex   
  772.       mog_weather_ex_initialize
  773.       create_weather_ex
  774.   end
  775.  
  776. #--------------------------------------------------------------------------
  777. # ● Dispose
  778. #--------------------------------------------------------------------------                  
  779.   alias mog_weather_ex_dispose dispose
  780.   def dispose
  781.       mog_weather_ex_dispose
  782.       dispose_weather_ex
  783.   end  
  784.  
  785. #--------------------------------------------------------------------------
  786. # ● Update
  787. #--------------------------------------------------------------------------                  
  788.   alias mog_weather_ex_update update
  789.   def update
  790.       mog_weather_ex_update
  791.       update_weather_ex
  792.   end   
  793.  
  794. end
  795.  
  796. end
  797.  
  798. #=============================================================================
  799. # ■ Scene Base
  800. #=============================================================================
  801. class Scene_Base
  802.  
  803.   #--------------------------------------------------------------------------
  804.   # ● Weather Recover Data
  805.   #--------------------------------------------------------------------------  
  806.   def weather_recover_data
  807.       if $game_system.weather.empty? or
  808.           $game_system.weather[0] == -1
  809.           if !$game_system.weather_restore.empty? and
  810.              $game_system.weather_restore[0] != -1
  811.              v = $game_system.weather_restore
  812.              $game_system.weather = [v[0],v[1],v[2]]
  813.           end
  814.       end         
  815.   end
  816.  
  817.   #--------------------------------------------------------------------------
  818.   # ● Weather Restore
  819.   #--------------------------------------------------------------------------      
  820.   def weather_recover_scene
  821.       return if $game_system.weather_temp.empty?
  822.       return if $game_system.weather_temp[0] == -1
  823.       w = $game_system.weather_temp
  824.       $game_system.weather = [w[0],w[1],w[2]]
  825.       $game_system.weather_temp.clear
  826.       $game_system.weather_temp = [-1,0,""]
  827.   end  
  828.  
  829.   #--------------------------------------------------------------------------
  830.   # ● Main
  831.   #--------------------------------------------------------------------------         
  832.   alias mog_weather_ex_main main
  833.   def main
  834.       dispose_weather_ex_base
  835.       weather_recover_scene if can_recover_weather_scene?
  836.       mog_weather_ex_main
  837.   end   
  838.  
  839.   #--------------------------------------------------------------------------
  840.   # ● Can Recover Weather Scene
  841.   #--------------------------------------------------------------------------         
  842.   def can_recover_weather_scene?
  843.       return true if SceneManager.scene_is?(Scene_Map)
  844.       return true if SceneManager.scene_is?(Scene_Battle)
  845.       return false
  846.   end  
  847.  
  848.   #--------------------------------------------------------------------------
  849.   # ● terminate
  850.   #--------------------------------------------------------------------------         
  851.   alias mog_weather_ex_terminate_base terminate
  852.   def terminate
  853.       mog_weather_ex_terminate_base
  854.       dispose_weather_ex_base      
  855.   end  
  856.  
  857.   #--------------------------------------------------------------------------
  858.   # ● Dispose Weather EX Base
  859.   #--------------------------------------------------------------------------           
  860.   def dispose_weather_ex_base
  861.       return if @spriteset == nil
  862.       @spriteset.dispose_weather_ex rescue nil
  863.   end        
  864.  
  865. end
  866.  
  867. #=============================================================================
  868. # ■ Sprite Battle
  869. #=============================================================================
  870. class Spriteset_Battle  
  871.  
  872.   #--------------------------------------------------------------------------
  873.   # ● Dispose
  874.   #--------------------------------------------------------------------------           
  875.   alias mog_weather_ex_aft_dispose dispose
  876.   def dispose
  877.       force_stop_weather_ex_after_battle
  878.       mog_weather_ex_aft_dispose
  879.   end
  880.  
  881.   #--------------------------------------------------------------------------
  882.   # ● Force Stop Weather EX After
  883.   #--------------------------------------------------------------------------           
  884.   def force_stop_weather_ex_after_battle
  885.       return if !$game_temp.weather_fstop
  886.       $game_temp.weather_fstop = false
  887.       $game_temp.weather_fade = false
  888.       $game_system.weather.clear
  889.       $game_system.weather = [-1,0,""]
  890.       $game_system.weather_restore  = [-1,0,""]
  891.       $game_system.weather_temp = [-1,0,""]      
  892.   end
  893.  
  894.  
  895. end
  896.  
  897. #=============================================================================
  898. # ■ Scene Load
  899. #=============================================================================
  900. class Scene_Load < Scene_File
  901.  
  902.   #--------------------------------------------------------------------------
  903.   # ● On Load Success
  904.   #--------------------------------------------------------------------------
  905.   alias mog_weather_ex_on_load_success on_load_success
  906.   def on_load_success
  907.       mog_weather_ex_on_load_success
  908.       weather_recover_data
  909.   end
  910. end
  911.  
  912. #=============================================================================
  913. # ■ Scene Manager
  914. #=============================================================================
  915. class << SceneManager
  916.  
  917.   #--------------------------------------------------------------------------
  918.   # ● Call
  919.   #--------------------------------------------------------------------------         
  920.   alias mog_weather_ex_call call
  921.   def call(scene_class)
  922.       weather_dispose
  923.       mog_weather_ex_call(scene_class)
  924.   end
  925.  
  926.   #--------------------------------------------------------------------------
  927.   # ● Weather Restore
  928.   #--------------------------------------------------------------------------      
  929.   def weather_dispose
  930.       return if $game_system.weather.empty?
  931.       return if $game_system.weather[0] == -1
  932.       w = $game_system.weather
  933.       $game_system.weather_temp = [w[0],w[1],w[2]]
  934.       $game_system.weather.clear
  935.       $game_system.weather = [-1,0,""]
  936.   end   
  937.  
  938. end
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
3
 楼主| 发表于 2020-10-10 12:16:25 | 只看该作者
哈哈,我对精灵特效的脚本 没什么 研究的动力 。有现成就用,纯属绵上添花。
我光问脚本问题就直接升到 lv3 了。得抛点 星屑 降降等级。
你的脚本我试验过了的确可用,星屑双手奉上。但是你压缩有关素材的文件我无法下载。
你就把图片素材发在这帖中,我截图下来pc处理一下。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
4
 楼主| 发表于 2020-10-10 12:29:49 | 只看该作者
alexncf125 发表于 2020-10-9 23:33
本末倒置了...看你研究了那么久的默认脚本, 原来连脚本在那找都不知道?
外站五大神: Galv, Yanfly, MOG, Th ...

啊!不行 。素材图片的格 式应该是 png 有透明背景的图片。贴 在 帖楼里会变黑底。

[email protected]   我的qq邮箱,请抬贵手。

点评

已发送至QQ  发表于 2020-10-10 12:35
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
5
 楼主| 发表于 2020-10-10 13:00:18 | 只看该作者
alianlord 发表于 2020-10-10 12:29
啊!不行 。素材图片的格 式应该是 png 有透明背景的图片。贴 在 帖楼里会变黑底。

[email protected]   我 ...

非常感谢

点评

所以...星屑呢?  发表于 2020-10-10 14:15
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
6
 楼主| 发表于 2020-10-10 15:21:25 | 只看该作者

我研究了脚本,原来要按最佳答案才能把星屑给出去啊?
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5753
在线时间
1170 小时
注册时间
2011-12-18
帖子
1291
7
发表于 2020-10-10 22:13:37 | 只看该作者
看這說法是 霧霾 吧 (X
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 02:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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