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

Project1

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

[已经过期] 这个音乐脚本怎么用?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
230 小时
注册时间
2014-2-16
帖子
175
跳转到指定楼层
1
发表于 2014-3-2 15:39:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 落月小天魔 于 2014-3-2 20:39 编辑

RT求解答,@Sion @Sion @Sion @喵呜喵5  @喵呜喵5   @喵呜喵5
  1. #==============================================================================
  2. # +++ MOG - MELODIA (v1.1) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # http://www.atelier-rgss.com
  6. #==============================================================================
  7. # Sistema de música, efeitos visuáis e jogabilidade rápida e simples.
  8. # Este script pode ser usado como minigame avançado ou mesmo como um jogo
  9. # completo dependendo da utilização do sistema.
  10. #==============================================================================

  11. #==============================================================================
  12. # ● PARA CHAMAR O SCRIPT
  13. #==============================================================================
  14. # Use o comando abaixo através do comando chamar script.
  15. #
  16. # melodia_a(A,B)
  17. #
  18. # A - ID do Stágio
  19. # B - ID da Switch que será ativada ao vencer o stágio. (Opcional)
  20. #
  21. #==============================================================================

  22. #==============================================================================
  23. # ● OUTRAS INFORMAÇÕES
  24. #==============================================================================
  25. # 1 - O record de pontos ficará gravado na variável ID 101 (Default).
  26. # 2 - A quantidade de combos maximo ficará gravado na variável ID 102(Default).
  27. # 3 - As imagem devem ser gravádas na pasta
  28. #     Graphics/Melodia/
  29. #==============================================================================

  30. #==============================================================================
  31. # ● HISTÓRICO
  32. #==============================================================================
  33. # 1.1 - Corrigido o bug da função Pause ao terminar o Stagio.
  34. #==============================================================================

  35. #==============================================================================
  36. # ■ STAGE SETUP
  37. #==============================================================================
  38. module MOG_MELODIA_STAGE_SETUP
  39.   
  40.   # ☢CAUTION!!☢ Pleae, don't Touch.^_^
  41.   STAGE_BASE_SETUP = []
  42.   STAGE_MUSIC = []
  43.   STAGE_BACKGROUND = []
  44.   STAGE_CHARACTER = []
  45.   STAGE_PARTICLES = []
  46.   # ☢CAUTION!!☢ Pleae, don't Touch.^_^
  47.   
  48.   #--------------------------------------------------------------------------  
  49.   # ● SYSTEM_SETUP
  50.   #--------------------------------------------------------------------------
  51.   # STAGE_SYSTEM_SETUP[ID] = [A,B,C,D]
  52.   #
  53.   # ID    =  STAGE ID
  54.   #          ID do stagio.
  55.   # A     =  PLAYER HP
  56.   #          Quantidade de vezes que você pode errar durante um stagio.
  57.   # B     =  APPEAL METER
  58.   #          Quantidade de vezes que você deve acertar para vencer o stagio.
  59.   # C     =  STAGE DURATION (In Sec / 60 = 1 min)
  60.   #          Tempo limite para vencer o stagio.
  61.   # D     =  REACTION SPEED (60 = 1 Sec)
  62.   #          Tempo limite para pressionar o botão certo.  
  63.   #--------------------------------------------------------------------------
  64.   STAGE_BASE_SETUP[1] = [10,10,180,45]
  65.   STAGE_BASE_SETUP[2] = [3,300,120,30]
  66.   STAGE_BASE_SETUP[3] = [10,200,180,60]
  67.   #--------------------------------------------------------------------------  
  68.   # ● MUSIC SETUP
  69.   #--------------------------------------------------------------------------
  70.   # STAGE_MUSIC[ID] = ["A","A","A"...]
  71.   #
  72.   #  ID   = STAGE ID
  73.   #
  74.   #  A    = Definição do nome do arquivo de música.(Pode ser mais de uma)
  75.   #
  76.   # EG -  STAGE_MUSIC[1] = ["Music_0","Music_1","Music_2"]
  77.   #
  78.   #--------------------------------------------------------------------------
  79.   STAGE_MUSIC[1] = ["Field1"]
  80.   STAGE_MUSIC[2] = ["Kiri no mukou"]
  81.   STAGE_MUSIC[3] = ["Music_3"]
  82.   #--------------------------------------------------------------------------  
  83.   # ● STAGE BACKGROUND 1
  84.   #--------------------------------------------------------------------------
  85.   # STAGE_BACKGROUND[ID] = ["A",B,C,D,"E"]
  86.   #
  87.   # ID     = STAGE ID
  88.   #
  89.   # A      = BACKGROUND NAME (File Name)
  90.   #
  91.   # B      = EFFECT TYPE
  92.   #        - 0 = Slide Effect
  93.   #        - 1 = Wave Effect
  94.   #
  95.   # C      = POWER A
  96.   #          Velocidade de deslize na horizontal (Slide Effect)
  97.   #          Area de distorção no efeito WAVE. (de 0 a 9)
  98.   #
  99.   # D      = POWER B
  100.   #          Velocidade de deslize na vertical (Slide Effect)
  101.   #          Velocidade de distorção do efeito WAVE. (de 0 a 9)
  102.   #
  103.   # E      = SECOND BACKGROUND (CHARACTER)
  104.   #
  105.   #--------------------------------------------------------------------------
  106.    STAGE_BACKGROUND[1] = ["Back_01",0,5,0]
  107.    STAGE_BACKGROUND[2] = ["Back_02",1,10,10]
  108.    STAGE_BACKGROUND[3] = ["Back_03",0,1,0]
  109.   #--------------------------------------------------------------------------  
  110.   # ● STAGE CHARACTER
  111.   #--------------------------------------------------------------------------
  112.   # STAGE_CHARACTER[A] = ["B",C]
  113.   #
  114.   # A - STAGE ID
  115.   # B - BREATH EFFECT
  116.   #     Ativar o efeito de respiração
  117.   #--------------------------------------------------------------------------
  118.   STAGE_CHARACTER[1] = ["Char_01",false]
  119.   STAGE_CHARACTER[2] = ["Char_02",true]
  120.   STAGE_CHARACTER[3] = ["Char_03",false]
  121.   #--------------------------------------------------------------------------  
  122.   # ● STAGE PARTICLES
  123.   #--------------------------------------------------------------------------  
  124.   # STAGE_PARTICLES[ID] = ["A", B, C, D, E , F, G]
  125.   #
  126.   # ID     = STAGE ID
  127.   #
  128.   # B      = X SPEED
  129.   #          Velocidade da partícula na horizontal.
  130.   #
  131.   # C      = Y SPEED
  132.   #          Velocidade da partícula na vertical.
  133.   #
  134.   # D      = ANGLE SPEED
  135.   #          Velocidade do angûlo na partícula.
  136.   #
  137.   # E      = BLENDY TYPE
  138.   #          Tipo do Efeito Blendy.
  139.   #
  140.   # F      = RANDOM COLOR
  141.   #          Ativar Cores aleatórias.
  142.   #
  143.   # G      = NUMBER OF PARTICLES
  144.   #          Número de partículas. (Tenha o bom senso ao definir quantidade de
  145.   #                                 patículas para não causar lag.)
  146.   #--------------------------------------------------------------------------  
  147.   STAGE_PARTICLES[1] = ["Particle_01",2,0,4,0,true,10]
  148.   STAGE_PARTICLES[2] = ["Particle_02",0,2,1,1,true,15]
  149.   STAGE_PARTICLES[3] = ["Particle_03",2,-3,2,0,true,15]  
  150. end  

  151. #==============================================================================
  152. # ■ GENERAL SETUP
  153. #==============================================================================
  154. module MOG_MELODIA_A  
  155.   # Definição da ID variável que ficará gravada o record de pontos.
  156.   STORE_SCORE_VARIABLE_ID = 101
  157.   # Definição da ID variável que ficará gravada o record de combos.
  158.   STORE_COMBO_VARIABLE_ID = 102  
  159.   # Posição do medidor de appeal (Encanto / Charme)
  160.   APPEAL_METER_POS = [81,277]
  161.   # Velocidade de animação do medidor.
  162.   METER_FLOW_SPEED = 5  
  163.   # Posição do numero do tempo.
  164.   TIME_NUMBER_POS = [100,380]
  165.   # Posição do numero de pontos.
  166.   SCORE_POS = [360, 385]
  167.   # Posição da imagem do fogo.
  168.   FIRE_POS = [15,235]
  169.   # Velocidade da animação da imagem do fogo.
  170.   FIRE_ANIMATION_SPEED = 3  
  171.   # Posição do medidor de performance.
  172.   PERFORM_POS = [100,15]
  173.   # Posição do medidor de reação.
  174.   REACTION_POS = [315,15]
  175.   # Posição da imagem do botão de pressionar.
  176.   KEY_POS = [155,265]
  177.   # Posição do medidor de stamina.
  178.   STAMINA_METER_POS = [137,340]
  179.   # Posição do numero de combo.
  180.   CB_NUMBER_POS = [453,350]
  181. end

  182. #===============================================================================
  183. # ■ MODULE SOUND EFFECTS
  184. #===============================================================================
  185. module MOG_MELODIA_A_SOUND_EFFECTS
  186.   #Som do cursor.
  187.   CURSOR_SE = "Decision1"
  188.   #Som ao pausar o jogo.
  189.   PAUSE_SE = "Chime2"
  190.   #Som ao acertar o comando.
  191.   RIGHT_SE = "Wind7"
  192.   #Definição do volume do som de acerto.
  193.   #(Para aqueles que se incomodam com o som atrapalhando a música de fundo.)
  194.   RIGHT_SE_VOLUME = 70
  195.   #Som ao errar o comando.
  196.   WRONG_SE = "Buzzer1"
  197.   #Som do ultimo acerto de comando.
  198.   LAST_PRESS_SE = "Chime2"
  199.   #Som da tela de resultado.
  200.   RESULT_SE = "Item1"
  201.   #Som do medidor de reação ao chegar a zero.
  202.   REACTION_TIMEOVER_SE = "Load"
  203.   #Som quando a stamina chegar a zero.
  204.   STAMINA_ZERO_SE = "Absorb1"
  205.   #Som do tempo limíte.
  206.   TIMEOVER_SE = "Phone"
  207. end




  208. #==============================================================================
  209. # ■ Game System
  210. #==============================================================================
  211. class Game_System
  212.   attr_accessor :melodia_a
  213.   attr_accessor :melodia_a_record
  214.   
  215.   #--------------------------------------------------------------------------
  216.   # ● Initialize
  217.   #--------------------------------------------------------------------------  
  218.   alias mog_melodia_a_initialize initialize
  219.   def initialize
  220.       @melodia_a = []
  221.       @melodia_a_record = [0,0]
  222.       mog_melodia_a_initialize
  223.   end  

  224. end

  225. #==============================================================================
  226. # ■ Game Interpreter
  227. #==============================================================================
  228. class Game_Interpreter
  229.   include MOG_MELODIA_STAGE_SETUP
  230.   
  231.   #--------------------------------------------------------------------------
  232.   # ● Melodia
  233.   #--------------------------------------------------------------------------      
  234.   def melodia(stage_id = 1,swith_id = nil)
  235.       $game_system.melodia_a.clear
  236.       system_setup = STAGE_BASE_SETUP[stage_id] rescue nil
  237.       music_setup = STAGE_MUSIC[stage_id] rescue nil
  238.       background_setup = STAGE_BACKGROUND[stage_id] rescue nil
  239.       character_setup = STAGE_CHARACTER[stage_id] rescue nil
  240.       particles_setup = STAGE_PARTICLES[stage_id] rescue nil
  241.       $game_system.melodia_a[0] = system_setup
  242.       $game_system.melodia_a[1] = music_setup
  243.       $game_system.melodia_a[2] = background_setup
  244.       $game_system.melodia_a[3] = character_setup
  245.       $game_system.melodia_a[4] = particles_setup
  246.       $game_system.melodia_a[5] = swith_id
  247.       SceneManager.call(Scene_Melodia_A)
  248.   end  
  249.   
  250. end

  251. #==============================================================================
  252. # ■ Cache
  253. #==============================================================================
  254. module Cache
  255.   
  256.   #--------------------------------------------------------------------------
  257.   # ● Moe
  258.   #--------------------------------------------------------------------------
  259.   def self.moe_1(filename)
  260.       load_bitmap("Graphics/Melodia/", filename)
  261.   end
  262.   
  263. end

  264. #==============================================================================
  265. # ■ Scene_Melodia_A
  266. #==============================================================================
  267. class Scene_Melodia_A
  268.   include MOG_MELODIA_A
  269.   include MOG_MELODIA_STAGE_SETUP
  270.   
  271. #------------------------------------------------------------------------------
  272. # ● Main
  273. #------------------------------------------------------------------------------     
  274. def main   
  275.      setup
  276.      create_sprites
  277.      execute_loop
  278.      execute_dispose
  279. end
  280.   
  281. #------------------------------------------------------------------------------
  282. # ● Execute Loop
  283. #------------------------------------------------------------------------------     
  284. def execute_loop
  285.      Graphics.transition(60)
  286.      loop do
  287.           Graphics.update
  288.           Input.update
  289.           update
  290.           break if SceneManager.scene != self
  291.      end
  292. end

  293.   #--------------------------------------------------------------------------
  294.   # ● Initialize
  295.   #--------------------------------------------------------------------------      
  296.   def initialize
  297.       BattleManager.save_bgm_and_bgs
  298.       setup_base
  299.       setup_music
  300.   end  

  301.   #--------------------------------------------------------------------------
  302.   # ● Setup Music
  303.   #--------------------------------------------------------------------------        
  304.   def setup_music
  305.       music_list = $game_system.melodia_a[1] rescue nil
  306.       @music_name = nil
  307.       return if music_list == nil
  308.       @music_name = music_list[rand(music_list.size)] rescue nil      
  309.   end  
  310.   
  311.   #--------------------------------------------------------------------------
  312.   # ● Setup
  313.   #--------------------------------------------------------------------------        
  314.   def setup
  315.       execute_dispose
  316.       @score = 0
  317.       @score_old = @score
  318.       @score_cache = @score
  319.       @hits = 0
  320.       @event_time = 240
  321.       @event_speed = 1
  322.       @pause = true
  323.       @force_pause = false
  324.       @phase = 0
  325.       @press_refresh = false
  326.       @target_attack_duration = 0
  327.       @hp_number_animation_duration = 0
  328.       @particles_enable = true
  329.       @particles_max = $game_system.melodia_a[4][6] rescue nil
  330.       @particles_max = 10 if @particles_max == nil
  331.       @misses = 0
  332.       @max_combo = 0
  333.       @max_score = 0
  334.       @top_score = $game_system.melodia_a_record[0]
  335.       @n_hits = 0
  336.       @rank_point = 0
  337.       @rank = "F"
  338.       setup_timer_meter   
  339.   end  
  340.   
  341.   #--------------------------------------------------------------------------
  342.   # ● Setup Base
  343.   #--------------------------------------------------------------------------      
  344.   def setup_base
  345.       if $game_system.melodia_a[0] != nil
  346.          hp = $game_system.melodia_a[0][0]
  347.          appeal_meter = $game_system.melodia_a[0][1]
  348.          stage_duration = $game_system.melodia_a[0][2]
  349.          reation_speed = $game_system.melodia_a[0][3]
  350.       end
  351.       hp = 10 if hp == nil or hp <= 0
  352.       appeal_meter = 30 if appeal_meter == nil or appeal_meter <= 0
  353.       stage_duration = 1 if stage_duration == nil or stage_duration < 1
  354.       stage_duration = 5999 if stage_duration >= 6000
  355.       reation_speed = 60 if reation_speed == nil or reation_speed <= 0                  
  356.       @player_maxhp = hp
  357.       @player_hp = @player_maxhp   
  358.       @target_maxhp = appeal_meter
  359.       @target_hp = 0
  360.       @stage_duration = stage_duration
  361.       @bonus_speed = 35
  362.       @reaction_time_max = reation_speed
  363.       @reaction_time = @reaction_time_max
  364.       @reaction_time_score = 0
  365.       @reaction_time_average = 0
  366.   end   
  367.   
  368.   #--------------------------------------------------------------------------
  369.   # ● Execute Music
  370.   #--------------------------------------------------------------------------      
  371.   def execute_music
  372.       return if @music_name == nil
  373.       Audio.bgm_play("Audio/BGM/" + @music_name.to_s, 100, 100) rescue nil      
  374.   end  
  375.   
  376.   #--------------------------------------------------------------------------
  377.   # ● Setup Timer
  378.   #--------------------------------------------------------------------------   
  379.   def setup_timer_meter
  380.       @key = 0
  381.       @wait = 0
  382.       @wait_cancel = false
  383.       @timer = 60 * @stage_duration
  384.       @max_time = @timer
  385.       update_timer
  386.       create_meter
  387.       create_number
  388.       create_fire   
  389.   end   
  390.   
  391.   #--------------------------------------------------------------------------
  392.   # ● Start
  393.   #--------------------------------------------------------------------------   
  394.   def create_sprites
  395.       execute_music  
  396.       create_info("Info0")
  397.       create_score
  398.       create_stamina_meter
  399.       create_background_1
  400.       create_background_2
  401.       create_bonus_meter
  402.       create_press
  403.       create_combo
  404.       create_reaction_meter
  405.       create_layout
  406.       create_particles
  407.       create_flash
  408.   end
  409.    
  410. end

  411. #===============================================================================
  412. # ■ MELODIA A SOUND EFFECTS
  413. #===============================================================================
  414. module MELODIA_A_SOUND_EFFECTS
  415.   include MOG_MELODIA_A_SOUND_EFFECTS
  416.   
  417.   #--------------------------------------------------------------------------
  418.   # ● Play Sound
  419.   #--------------------------------------------------------------------------            
  420.   def play_sound(file_name,volume = 100)
  421.       Audio.se_play("Audio/SE/" + file_name.to_s, volume, 100) rescue nil
  422.   end  
  423.   
  424.   #--------------------------------------------------------------------------
  425.   # ● SE Cursor
  426.   #--------------------------------------------------------------------------         
  427.   def se_cursor
  428.       play_sound(CURSOR_SE)
  429.   end
  430.    
  431.   #--------------------------------------------------------------------------
  432.   # ● SE Wrong
  433.   #--------------------------------------------------------------------------        
  434.   def se_wrong
  435.       play_sound(WRONG_SE)
  436.   end

  437.   #--------------------------------------------------------------------------
  438.   # ● SE Right
  439.   #--------------------------------------------------------------------------         
  440.   def se_right
  441.       play_sound(RIGHT_SE, RIGHT_SE_VOLUME)
  442.   end
  443.    
  444.   #--------------------------------------------------------------------------
  445.   # ● SE Pause
  446.   #--------------------------------------------------------------------------         
  447.   def se_pause
  448.       play_sound(PAUSE_SE)
  449.   end
  450.       
  451.   #--------------------------------------------------------------------------
  452.   # ● SE Last Blow
  453.   #--------------------------------------------------------------------------              
  454.   def se_last_blow
  455.       play_sound(LAST_PRESS_SE)
  456.   end
  457.    
  458.   #--------------------------------------------------------------------------
  459.   # ● SE RESULT
  460.   #--------------------------------------------------------------------------              
  461.   def se_result
  462.       play_sound(RESULT_SE)
  463.   end  
  464.   
  465.   #--------------------------------------------------------------------------
  466.   # ● SE REACTION TIMEOVER
  467.   #--------------------------------------------------------------------------              
  468.   def se_reaction_timeover
  469.       play_sound(REACTION_TIMEOVER_SE)
  470.   end
  471.    
  472.   #--------------------------------------------------------------------------
  473.   # ● SE Stamina Zero
  474.   #--------------------------------------------------------------------------              
  475.   def se_statmina_zero
  476.       play_sound(STAMINA_ZERO_SE)
  477.   end   

  478.   #--------------------------------------------------------------------------
  479.   # ● SE TimeOver
  480.   #--------------------------------------------------------------------------              
  481.   def se_timeover
  482.       play_sound(TIMEOVER_SE)
  483.   end     
  484.   
  485. end

  486. #==============================================================================
  487. # ■ Scene_Melodia_A
  488. #==============================================================================
  489. class Scene_Melodia_A
  490.       include MELODIA_A_SOUND_EFFECTS
  491. end
  492.    
  493. #==============================================================================
  494. # ■ Scene_Melodia_A
  495. #==============================================================================
  496. class Scene_Melodia_A
  497.   
  498.   #--------------------------------------------------------------------------
  499.   # ● Create Flash
  500.   #--------------------------------------------------------------------------  
  501.   def create_flash
  502.       dispose_flash
  503.       @viewport_flash = Viewport.new(0, 105, 544, 170)
  504.       @viewport_flash.z = 1000
  505.       @flash_bitmap =[]
  506.       index = 0
  507.       for i in 0...8
  508.           x = (37 * index) + (KEY_POS[0] - 18)
  509.           @flash_bitmap.push(Flash_Sprite_Melodia_A.new(@viewport_flash,x,index))
  510.           index += 1
  511.       end  
  512.   end  
  513.    
  514.   #--------------------------------------------------------------------------
  515.   # ● Create Particles
  516.   #--------------------------------------------------------------------------  
  517.   def create_particles
  518.       dispose_particles
  519.       return if !@particles_enable
  520.       @viewport_light = Viewport.new(-32, -32, 576, 350)
  521.       @viewport_light.z = 10
  522.       @light_bitmap =[]
  523.       for i in 0...@particles_max
  524.           @light_bitmap.push(Particles_Melodia_A.new(@viewport_light))
  525.       end  
  526.   end
  527.   
  528.   #--------------------------------------------------------------------------
  529.   # ● Create Background 1
  530.   #--------------------------------------------------------------------------        
  531.   def create_background_1
  532.       if $game_system.melodia_a[2] != nil
  533.          file_name = $game_system.melodia_a[2][0] rescue nil
  534.          @back_effect_type = $game_system.melodia_a[2][1] rescue nil
  535.          @back_effect_power_1 = $game_system.melodia_a[2][2] rescue nil
  536.          @back_effect_power_2 = $game_system.melodia_a[2][3] rescue nil
  537.       end  
  538.       file_name = "" if file_name == nil
  539.       @back_effect_type = 0 if @back_effect_type == nil
  540.       @back_effect_power_1 = 1 if  @back_effect_power_1 == nil
  541.       @back_effect_power_2 = 0 if  @back_effect_power_2 == nil  
  542.       @battleback1_bitmap = Cache.moe_1(file_name.to_s) rescue nil
  543.       @battleback1_bitmap = Bitmap.new(32,32) if @battleback1_bitmap == nil
  544.       if @back_effect_type == 0
  545.          @background = Plane.new
  546.          @background.bitmap = @battleback1_bitmap
  547.       else   
  548.          @background = Sprite.new
  549.          range = (@back_effect_power_1 + 1) * 10
  550.          range = 500 if range > 500
  551.          speed = (@back_effect_power_2 + 1) * 100
  552.          speed = 1000 if speed > 1000
  553.          @background.x = -range
  554.          @background.wave_amp = range
  555.          @background.wave_length = 544
  556.          @background.wave_speed = speed        
  557.          @background.bitmap = Bitmap.new(544 + (range * 2),416)
  558.          @background.bitmap.stretch_blt(@background.bitmap.rect, @battleback1_bitmap, @battleback1_bitmap.rect)
  559. #         @background.ox = @background.bitmap.width / 2
  560. #         @background.oy = @background.bitmap.height / 2
  561. #         @background.x = @background.ox
  562. #         @background.y = @background.oy         
  563.       end  
  564. #      @background.bitmap = @battleback1_bitmap
  565.       @background.z = 0
  566.   end
  567.    
  568.    
  569.   #--------------------------------------------------------------------------
  570.   # ● Create Background 2
  571.   #--------------------------------------------------------------------------        
  572.   def create_background_2
  573.       @breach_effect = [1.0,0]
  574.       if $game_system.melodia_a[3] != nil
  575.          file_name = $game_system.melodia_a[3][0] rescue nil
  576.          @breath_effect = $game_system.melodia_a[3][1] rescue nil
  577.       end  
  578.       file_name = "" if file_name == nil
  579.       @breath_effect = false if @breath_effect == nil
  580.       @battleback2_bitmap = Cache.moe_1(file_name.to_s) rescue nil
  581.       @battleback2_bitmap = Bitmap.new(32,32) if @battleback2_bitmap == nil
  582.       @background_2 = Sprite.new
  583.       @background_2.bitmap = @battleback2_bitmap
  584.       @background_2.y = @background_2.bitmap.height
  585.       @background_2.oy = @background_2.bitmap.height      
  586.       @background_2.z = 1
  587.   end
  588.   
  589.   #--------------------------------------------------------------------------
  590.   # ● Create Layout
  591.   #--------------------------------------------------------------------------        
  592.   def create_layout
  593.       @layout = Sprite.new
  594.       @layout.bitmap = Cache.moe_1("Layout")     
  595.       @layout.z = 100     
  596.       @layout.visible = false
  597.   end
  598.   
  599.   #--------------------------------------------------------------------------
  600.   # ● create_meter
  601.   #--------------------------------------------------------------------------  
  602.   def create_meter
  603.       @meter_flow = 0
  604.       @meter_image = Cache.moe_1("Timer_Meter")
  605.       @meter_bitmap = Bitmap.new(@meter_image.width,@meter_image.height)
  606.       @meter_range = @meter_image.width / 3
  607.       @meter_width = @meter_range * @target_hp / @target_maxhp
  608.       @meter_height = @meter_image.height / 2
  609.       @meter_sprite = Sprite.new
  610.       @meter_sprite.bitmap = @meter_bitmap
  611.       @meter_sprite.z = 201
  612.       @meter_sprite.x = APPEAL_METER_POS[0]
  613.       @meter_sprite.y = APPEAL_METER_POS[1]
  614.       @meter2_width = @meter_range
  615.       @meter2_bitmap = Bitmap.new(@meter_image.width,@meter_image.height)      
  616.       @meter2_sprite = Sprite.new
  617.       @meter2_sprite.bitmap = @meter2_bitmap
  618.       @meter2_sprite.z = 200
  619.       @meter2_sprite.mirror = true      
  620.       @meter2_sprite.x =  APPEAL_METER_POS[0] - (@meter_range * 2)
  621.       @meter2_sprite.y =  APPEAL_METER_POS[1]
  622.       @meter_sprite.bitmap.clear
  623.       @meter2_sprite.bitmap.clear      
  624.       @meter_width = @meter_range * @target_hp / @target_maxhp
  625.       @meter_src_rect = Rect.new(@meter_flow, 0,@meter_width, @meter_height)
  626.       @meter_bitmap.blt(0,0, @meter_image, @meter_src_rect)         
  627.       @meter2_src_rect = Rect.new(@meter_flow, @meter_height,@meter2_width, @meter_height)
  628.       @meter2_bitmap.blt(0,0, @meter_image, @meter2_src_rect)         
  629.       @meter_flow += METER_FLOW_SPEED  
  630.       @meter_flow = 0 if @meter_flow >= @meter_image.width - @meter_range     
  631.       @meter_sprite.visible = false
  632.       @meter2_sprite.visible = false
  633.   end  
  634.   
  635.   #--------------------------------------------------------------------------
  636.   # ● Create Bonus Meter
  637.   #--------------------------------------------------------------------------  
  638.   def create_bonus_meter
  639.       @perform = 0
  640.       @perform_max = 1000
  641.       @p_image = Cache.moe_1("P_Meter")
  642.       @p_bitmap = Bitmap.new(@p_image.width,@p_image.height)
  643.       @p_width = @p_image.width * @perform / @perform_max
  644.       @p_height = @p_image.height
  645.       @p_src_rect = Rect.new(0, 0, @p_width, @p_height)
  646.       @p_bitmap.blt(0,0, @p_image, @p_src_rect)
  647.       @p_sprite = Sprite.new
  648.       @p_sprite.bitmap = @p_bitmap
  649.       @p_sprite.z = 201
  650.       @p_sprite.x = PERFORM_POS[0]
  651.       @p_sprite.y = PERFORM_POS[1]
  652.       @p_sprite.visible = false
  653.       update_bonus_meter
  654.   end   
  655.   
  656.   #--------------------------------------------------------------------------
  657.   # ● Create Reaction Meter
  658.   #--------------------------------------------------------------------------   
  659.   def create_reaction_meter
  660.       @r_image = Cache.moe_1("Reaction_Meter")
  661.       @r_bitmap = Bitmap.new(@r_image.width,@r_image.height)
  662.       @r_width = @r_image.width * @reaction_time / @reaction_time_max
  663.       @r_height = @r_image.height
  664.       @r_sprite = Sprite.new
  665.       @r_sprite.bitmap = @r_bitmap
  666.       @r_sprite.z = 201
  667.       @r_sprite.x = REACTION_POS[0]
  668.       @r_sprite.y = REACTION_POS[1]
  669.       @r_sprite.visible = false
  670.       update_reaction_meter
  671.   end
  672.   
  673.   #--------------------------------------------------------------------------
  674.   # ● create press
  675.   #--------------------------------------------------------------------------   
  676.   def create_press
  677.       @next_key = 0
  678.       @pressed_key = 0
  679.       @press_image = Cache.moe_1("Button")
  680.       @press_bitmap = Bitmap.new(@press_image.width,@press_image.height)
  681.       @press_width = @press_image.width / 9
  682.       @press_height = @press_image.height
  683.       make_next_command
  684.       @press_src_rect = Rect.new(@next_key * @press_width, 0, @press_width, @press_height)
  685.       @press_bitmap.blt(0,0, @press_image, @press_src_rect)
  686.       @press_sprite = Sprite.new
  687.       @press_sprite.bitmap = @press_bitmap
  688.       @press_sprite.z = 201
  689.       @press_sprite.x = KEY_POS[0]
  690.       @press_sprite.y = KEY_POS[1]  
  691.       @press_sprite.ox = @press_width / 2
  692.       @press_sprite.oy = @press_height
  693.       @press_sprite.visible = false
  694.   end
  695.   
  696.   #--------------------------------------------------------------------------
  697.   # ● Check Key Position
  698.   #--------------------------------------------------------------------------      
  699.   def check_key_position
  700.       @key_pos = (@next_key * @press_width) + KEY_POS[0]
  701.       @press_sprite.x = @key_pos
  702.   end  
  703.   
  704.   #--------------------------------------------------------------------------
  705.   # ● create_number
  706.   #--------------------------------------------------------------------------  
  707.   def create_number
  708.       @number_image = Cache.moe_1("Timer_Number")
  709.       @number_bitmap = Bitmap.new(@number_image.width,@number_image.height)
  710.       @number_sprite = Sprite.new
  711.       @number_sprite.bitmap = @number_bitmap
  712.       @number_sprite.z = 203
  713.       @number_sprite.x = TIME_NUMBER_POS[0]
  714.       @number_sprite.y = TIME_NUMBER_POS[1]
  715.       @number_cw = @number_image.width / 10
  716.       @number_ch = @number_image.height   
  717.       refresh_number
  718.       @number = @total_sec
  719.       @number_sprite.visible = false
  720.   end
  721.    
  722.   #--------------------------------------------------------------------------
  723.   # ● Create Stamina Meter
  724.   #--------------------------------------------------------------------------   
  725.   def create_stamina_meter
  726.       @old_stamina = -1
  727.       @hp2_image = Cache.moe_1("Stamina_Meter")
  728.       @hp2_bitmap = Bitmap.new(@hp2_image.width,@hp2_image.height)
  729.       @hp2_width = @hp2_image.width * @player_hp / @player_maxhp
  730.       @hp2_height = @hp2_image.height
  731.       @hp2_sprite = Sprite.new
  732.       @hp2_sprite.bitmap = @hp2_bitmap
  733.       @hp2_sprite.z = 201
  734.       @hp2_sprite.x = STAMINA_METER_POS[0]
  735.       @hp2_sprite.y = STAMINA_METER_POS[1]
  736.       @hp2_sprite.visible = false
  737.       refresh_stamina_meter            
  738.   end  
  739.    
  740.   #--------------------------------------------------------------------------
  741.   # ● Create Combo
  742.   #--------------------------------------------------------------------------     
  743.   def create_combo
  744.       @combo = 0
  745.       @combo_old = @combo
  746.       @cb_number_image = Cache.moe_1("CB_Number")
  747.       @cb_number_bitmap = Bitmap.new(@cb_number_image.width,@cb_number_image.height)
  748.       @cb_number_sprite = Sprite.new
  749.       @cb_number_sprite.bitmap = @cb_number_bitmap
  750.       @cb_number_sprite.z = 203
  751.       @cb_number_sprite.x = CB_NUMBER_POS[0]
  752.       @cb_number_sprite.y = CB_NUMBER_POS[1]
  753.       @cb_number_cw = @cb_number_image.width / 10
  754.       @cb_number_ch = @cb_number_image.height
  755.       @cb_number_sprite.ox = @cb_number_cw /2
  756.       @cb_number_sprite.oy = @cb_number_ch / 2
  757.       @cb_number_sprite.visible = false
  758.       @combo_animation_duration = 0
  759.       refresh_cb_number   
  760.   end  
  761.   
  762.   #--------------------------------------------------------------------------
  763.   # ● create_score
  764.   #--------------------------------------------------------------------------  
  765.   def create_score
  766.       @score_image = Cache.moe_1("Number_Score")
  767.       @score_bitmap = Bitmap.new(@score_image.width,@score_image.height)
  768.       @score_sprite = Sprite.new
  769.       @score_sprite.bitmap = @score_bitmap
  770.       @score_sprite.z = 203
  771.       @score_sprite.x = SCORE_POS[0]
  772.       @score_sprite.y = SCORE_POS[1]
  773.       @score_cw = @score_image.width / 10
  774.       @score_ch = @score_image.height   
  775.       refresh_score
  776.       @score_sprite.visible = false
  777.   end   
  778.   
  779.   #--------------------------------------------------------------------------
  780.   # ● create_fire
  781.   #--------------------------------------------------------------------------  
  782.   def create_fire
  783.       @fire_flow = 0
  784.       @fire_flow_speed = 0
  785.       @fire_refresh = false
  786.       @fire_image = Cache.moe_1("Timer_Fire")
  787.       @fire_bitmap = Bitmap.new(@fire_image.width,@fire_image.height)
  788.       @fire_width = @fire_image.width / 4   
  789.       @fire_src_rect_back = Rect.new(0, 0,@fire_width, @fire_image.height)
  790.       @fire_bitmap.blt(0,0, @fire_image, @fire_src_rect_back)   
  791.       @fire_sprite = Sprite.new
  792.       @fire_sprite.bitmap = @fire_bitmap
  793.       @fire_sprite.z = 99
  794.       @fire_sprite.x = FIRE_POS[0]
  795.       @fire_sprite.y = FIRE_POS[1]
  796.       @fire_sprite.visible = false
  797.       update_fire
  798.   end  
  799.    
  800.   #--------------------------------------------------------------------------
  801.   # ● Create Info
  802.   #--------------------------------------------------------------------------        
  803.   def create_info(file_name)
  804.       dispose_info
  805.       @info = Plane.new
  806.       @info.bitmap = Cache.moe_1(file_name) rescue nil
  807.       @info.bitmap = Cache.moe_1("") if @info.bitmap == nil
  808.       @info.z = 999
  809.       @info.opacity = 255
  810.   end   
  811.   
  812.   #--------------------------------------------------------------------------
  813.   # ● Create Result Text
  814.   #--------------------------------------------------------------------------         
  815.   def create_result_text
  816.       @result_sprite = Sprite.new
  817.       @result_sprite.bitmap = Bitmap.new(544,416)
  818.       @result_sprite.bitmap.font.size = 38
  819.       @result_sprite.bitmap.font.bold = true
  820.       #Reaction Result
  821.       @result_sprite.bitmap.draw_text(215,0,320,40,@reaction_time_average.to_s,2)
  822.       #Max Combo
  823.       @result_sprite.bitmap.draw_text(215,39,320,40,@max_combo.to_s,2)
  824.       #Miss
  825.       @result_sprite.bitmap.draw_text(215,79,320,40,@misses.to_s,2)
  826.       #Score
  827.       @result_sprite.bitmap.draw_text(215,168,320,40,@max_score.to_s,2)      
  828.       #RANK
  829.       @result_sprite.bitmap.font.size = 96
  830.       @result_sprite.bitmap.font.italic = true
  831.       @result_sprite.bitmap.font.color = Color.new(255,155,100)
  832.       @result_sprite.bitmap.draw_text(115,200,320,100,@rank.to_s,2)      
  833.       @result_sprite.ox = @result_sprite.bitmap.width / 2
  834.       @result_sprite.oy = @result_sprite.bitmap.height / 2
  835.       @result_sprite.x = @result_sprite.bitmap.width / 2
  836.       @result_sprite.y = @result_sprite.bitmap.width / 2
  837.       @result_sprite.z = 999
  838.   end   
  839.   
  840.   #--------------------------------------------------------------------------
  841.   # ● Objects Sprites Visible
  842.   #--------------------------------------------------------------------------              
  843.   def objects_sprites_visible(valor = true)
  844.       @press_sprite.visible = valor
  845.       @layout.visible = valor
  846.       @meter_sprite.visible = valor
  847.       @meter2_sprite.visible = valor
  848.       @p_sprite.visible = valor
  849.       @r_sprite.visible = valor
  850.       @number_sprite.visible = valor
  851.       @hp2_sprite.visible = valor
  852.       @cb_number_sprite.visible = valor
  853.       @score_sprite.visible = valor
  854.       @fire_sprite.visible = valor  
  855.   end  
  856.   
  857. end

  858. #==============================================================================
  859. # ■ Scene_Melodia_A
  860. #==============================================================================
  861. class Particles_Melodia_A < Sprite
  862.   
  863. #--------------------------------------------------------------------------
  864. # ● Initialize
  865. #--------------------------------------------------------------------------            
  866.   def initialize(viewport = nil)
  867.       super(viewport)
  868.       if  $game_system.melodia_a[4] != nil
  869.           file_name =  $game_system.melodia_a[4][0] rescue nil
  870.           @speed_x = $game_system.melodia_a[4][1]
  871.           @speed_y = $game_system.melodia_a[4][2]
  872.           @speed_a = $game_system.melodia_a[4][3]
  873.           blendy = $game_system.melodia_a[4][4]
  874.           random_color = $game_system.melodia_a[4][5]
  875.       end               
  876.       @speed_x = 0 if @speed_x == nil
  877.       @speed_y = 0 if @speed_y == nil
  878.       @speed_a = 0 if @speed_a == nil
  879.       blendy = 1 if blendy == nil
  880.       random_color = false if random_color == nil
  881.       self.bitmap = Cache.moe_1(file_name.to_s) rescue nil
  882.       self.bitmap = Cache.moe_1("") if self.bitmap == nil      
  883.       self.tone.set(rand(255),rand(255), rand(255), 255) if random_color
  884.       self.blend_type = blendy
  885.       reset_setting
  886.   end  
  887.   
  888. #--------------------------------------------------------------------------
  889. # ● Reset Setting
  890. #--------------------------------------------------------------------------               
  891.   def reset_setting
  892.       zoom = (50 + rand(100)) / 100.1
  893.       self.zoom_x = zoom
  894.       self.zoom_y = zoom
  895.       self.x = rand(576) -32
  896.       self.y = rand(320 + self.bitmap.height)
  897.       self.opacity = 0
  898.       self.angle = rand(360)
  899.   end
  900.   
  901. #--------------------------------------------------------------------------
  902. # ● Dispose
  903. #--------------------------------------------------------------------------               
  904.   def dispose
  905.       super
  906.       self.bitmap.dispose if self.bitmap != nil
  907.   end  
  908.   
  909. #--------------------------------------------------------------------------
  910. # ● Update
  911. #--------------------------------------------------------------------------               
  912.   def update
  913.       super
  914.       self.x += @speed_x
  915.       self.y -= @speed_y
  916.       self.angle += @speed_a      
  917.       self.opacity += 5
  918.       reset_setting if can_reset_setting?
  919.   end  
  920.   
  921. #--------------------------------------------------------------------------
  922. # ● Can Reset Setting
  923. #--------------------------------------------------------------------------                 
  924.   def can_reset_setting?
  925.       return true if !self.x.between?(-32,580)
  926.       return true if !self.y.between?(-32,370)
  927.       return false
  928.   end  
  929. end


  930. #==============================================================================
  931. # ■ Scene_Melodia_A
  932. #==============================================================================
  933. class Flash_Sprite_Melodia_A < Sprite
  934.   
  935. #--------------------------------------------------------------------------
  936. # ● Viewport
  937. #--------------------------------------------------------------------------                 
  938.   def initialize(viewport,x,index)
  939.       super(viewport)
  940.       self.bitmap = Cache.moe_1("Flash_Effect")
  941.       self.x = x
  942.       self.y = 0
  943.       self.opacity = 0
  944.       self.visible = false
  945.       self.blend_type = 1
  946.       set_color(index)
  947.   end
  948.   
  949. #--------------------------------------------------------------------------
  950. # ● Set Color
  951. #--------------------------------------------------------------------------                 
  952.   def set_color(index)
  953.       case index
  954.          when 0;  self.tone.set(0,0,255, 255)
  955.          when 1;  self.tone.set(0,255,0, 255)
  956.          when 2;  self.tone.set(255,0,0, 255)
  957.          when 3;  self.tone.set(125,125,125, 255)  
  958.          when 4;  self.tone.set(0,255,255, 255)              
  959.          when 5;  self.tone.set(255,255,0, 255)                  
  960.          when 6;  self.tone.set(255,0,255, 255)     
  961.          when 7;  self.tone.set(55,255,125, 255)      
  962.       end   
  963.   end  
  964.   
  965. #--------------------------------------------------------------------------
  966. # ● Dispose
  967. #--------------------------------------------------------------------------               
  968.   def dispose
  969.       super
  970.       self.bitmap.dispose
  971.   end  

  972. #--------------------------------------------------------------------------
  973. # ● Update
  974. #--------------------------------------------------------------------------                  
  975.   def update
  976.       super   
  977.       update_effect
  978.   end  
  979.   
  980. #--------------------------------------------------------------------------
  981. # ● Update Effect
  982. #--------------------------------------------------------------------------                     
  983.   def update_effect
  984.       self.opacity -= 5
  985.       self.visible = false if self.opacity == 0
  986.   end  
  987.   
  988. #--------------------------------------------------------------------------
  989. # ● Flash Effect
  990. #--------------------------------------------------------------------------                     
  991.   def flash_effect
  992.       @effect_duration = 0
  993.       self.visible = true
  994.       self.opacity = 255
  995.       self.y = 0
  996.   end  
  997.   
  998. end

  999. #==============================================================================
  1000. # ■ Scene_Melodia_A
  1001. #==============================================================================
  1002. class Scene_Melodia_A
  1003.   
  1004.   #--------------------------------------------------------------------------
  1005.   # ● Execute Dispose
  1006.   #--------------------------------------------------------------------------
  1007.   def execute_dispose
  1008.       Graphics.freeze
  1009.       dispose_target_meter
  1010.       dispose_combo_number
  1011.       dispose_time_number
  1012.       dispose_background
  1013.       dispose_fire_animation
  1014.       dispose_layout
  1015.       dispose_score
  1016.       dispose_perform_meter
  1017.       dispose_reaction_meter
  1018.       dispose_hp_meter
  1019.       dispose_button
  1020.       dispose_info
  1021.       dispose_particles
  1022.       dispose_flash
  1023.       dispose_result_text
  1024.       BattleManager.replay_bgm_and_bgs
  1025.   end
  1026.   
  1027.   #--------------------------------------------------------------------------
  1028.   # ● Dispose Result Text
  1029.   #--------------------------------------------------------------------------         
  1030.   def dispose_result_text
  1031.       return if @result_sprite == nil
  1032.       @result_sprite.bitmap.dispose
  1033.       @result_sprite.dispose   
  1034.       @result_sprite = nil
  1035.   end  

  1036. #--------------------------------------------------------------------------
  1037. # ● Dispose Target Meter
  1038. #--------------------------------------------------------------------------               
  1039.   def dispose_target_meter
  1040.       return if @meter_image == nil
  1041.       @meter_sprite.bitmap.dispose
  1042.       @meter_sprite.dispose
  1043.       @meter_bitmap.dispose
  1044.       @meter2_sprite.bitmap.dispose
  1045.       @meter2_sprite.dispose
  1046.       @meter2_bitmap.dispose
  1047.       @meter_image.dispose
  1048.       @meter_image = nil
  1049.   end   
  1050.       
  1051. #--------------------------------------------------------------------------
  1052. # ● Dispose Time Number
  1053. #--------------------------------------------------------------------------                 
  1054. def dispose_time_number
  1055.       return if @number_image == nil
  1056.       @number_sprite.bitmap.dispose
  1057.       @number_sprite.dispose
  1058.       @number_bitmap.dispose
  1059.       @number_image.dispose
  1060.       @number_image = nil
  1061. end

  1062. #--------------------------------------------------------------------------
  1063. # ● Dispose Combo Number
  1064. #--------------------------------------------------------------------------               
  1065. def dispose_combo_number
  1066.       return if @cb_number_image == nil
  1067.       @cb_number_sprite.bitmap.dispose
  1068.       @cb_number_sprite.dispose
  1069.       @cb_number_bitmap.dispose
  1070.       @cb_number_image.dispose        
  1071. end     
  1072.       
  1073. #--------------------------------------------------------------------------
  1074. # ● Dispose Fire Animation
  1075. #--------------------------------------------------------------------------               
  1076. def dispose_fire_animation
  1077.       return if @fire_image == nil
  1078.       @fire_bitmap.dispose
  1079.       @fire_sprite.bitmap.dispose
  1080.       @fire_sprite.dispose
  1081.       @fire_image.dispose
  1082.       @fire_image = nil
  1083. end     
  1084.       
  1085. #--------------------------------------------------------------------------
  1086. # ● Dispose Layout
  1087. #--------------------------------------------------------------------------               
  1088. def dispose_layout
  1089.       return if @layout == nil
  1090.       @layout.bitmap.dispose
  1091.       @layout.dispose      
  1092. end     

  1093. #--------------------------------------------------------------------------
  1094. # ● Dispose Background
  1095. #--------------------------------------------------------------------------                 
  1096. def dispose_background
  1097.      return if @background == nil
  1098.      @background.bitmap.dispose
  1099.      @background.dispose           
  1100.      @background_2.bitmap.dispose
  1101.      @background_2.dispose
  1102.      @battleback1_bitmap.dispose
  1103.      @battleback2_bitmap.dispose
  1104. end     

  1105. #--------------------------------------------------------------------------
  1106. # ● Dispose Score
  1107. #--------------------------------------------------------------------------                 
  1108. def dispose_score
  1109.      return if @score_image == nil
  1110.      @score_bitmap.dispose
  1111.      @score_sprite.bitmap.dispose
  1112.      @score_sprite.dispose
  1113.      @score_image.dispose
  1114.      @score_image = nil
  1115. end     
  1116.       
  1117. #--------------------------------------------------------------------------
  1118. # ● Dispose Perform Meter
  1119. #--------------------------------------------------------------------------                 
  1120. def dispose_perform_meter
  1121.       return if @p_image == nil
  1122.       @p_bitmap.dispose
  1123.       @p_sprite.bitmap.dispose
  1124.       @p_sprite.dispose
  1125.       @p_image.dispose
  1126.       @p_image = nil
  1127. end     
  1128.       
  1129. #--------------------------------------------------------------------------
  1130. # ● Dispose Reaction Meter
  1131. #--------------------------------------------------------------------------                 
  1132. def dispose_reaction_meter
  1133.      return if @r_image == nil
  1134.      @r_bitmap.dispose
  1135.      @r_sprite.bitmap.dispose
  1136.      @r_sprite.dispose
  1137.      @r_image.dispose
  1138.      @r_image = nil
  1139. end
  1140.    
  1141. #--------------------------------------------------------------------------
  1142. # ● Dispose Hp Meter
  1143. #--------------------------------------------------------------------------                 
  1144. def dispose_hp_meter
  1145.      return if @hp2_image == nil
  1146.      @hp2_bitmap.dispose
  1147.      @hp2_sprite.bitmap.dispose
  1148.      @hp2_sprite.dispose
  1149.      @hp2_image.dispose
  1150.      @hp2_image = nil
  1151. end     
  1152.       
  1153. #--------------------------------------------------------------------------
  1154. # ● Dispose Button
  1155. #--------------------------------------------------------------------------                 
  1156. def dispose_button
  1157.      return if @press_image == nil
  1158.      @press_bitmap.dispose
  1159.      @press_sprite.bitmap.dispose
  1160.      @press_sprite.dispose
  1161.      @press_image.dispose
  1162.      @press_image = nil
  1163. end   
  1164.    
  1165. #--------------------------------------------------------------------------
  1166. # ● Dispose Particles
  1167. #--------------------------------------------------------------------------              
  1168.   def dispose_particles
  1169.       return if @light_bitmap == nil
  1170.       @light_bitmap.each {|sprite| sprite.dispose }
  1171.       @light_bitmap = nil
  1172.       @viewport_light.dispose if @viewport_light != nil
  1173.   end     
  1174.   
  1175. #--------------------------------------------------------------------------
  1176. # ● Dispose Flash
  1177. #--------------------------------------------------------------------------               
  1178.   def dispose_flash
  1179.       return if @flash_bitmap == nil
  1180.       @flash_bitmap.each {|sprite| sprite.dispose }
  1181.       @flash_bitmap = nil
  1182.       @viewport_flash.dispose if @viewport_flash != nil
  1183.   end   
  1184.   
  1185.   #--------------------------------------------------------------------------
  1186.   # ● Dispose Info
  1187.   #--------------------------------------------------------------------------              
  1188.   def dispose_info
  1189.       return if @info == nil
  1190.       return if @info.bitmap == nil
  1191.       @info.bitmap.dispose
  1192.       @info.dispose
  1193.       @info = nil
  1194.   end     
  1195.    
  1196. end   


  1197. #==============================================================================
  1198. # ■ Scene_Melodia_A
  1199. #==============================================================================
  1200. class Scene_Melodia_A
  1201.   
  1202.   #--------------------------------------------------------------------------
  1203.   # ● Update flash
  1204.   #--------------------------------------------------------------------------      
  1205.   def update_flash
  1206.       return if @flash_bitmap == nil
  1207.       @flash_bitmap.each {|sprite| sprite.update }
  1208.   end  
  1209.   
  1210.   #--------------------------------------------------------------------------
  1211.   # ● Update Particles
  1212.   #--------------------------------------------------------------------------      
  1213.   def update_particles
  1214.       return if @light_bitmap == nil or @phase < 3
  1215.       @light_bitmap.each {|sprite| sprite.update }
  1216.   end
  1217.   
  1218.   #--------------------------------------------------------------------------
  1219.   # ● Update Spell Meter
  1220.   #--------------------------------------------------------------------------        
  1221.   def update_bonus_meter
  1222.       @p_sprite.bitmap.clear
  1223.       @p_width = @p_image.width * @perform / @perform_max
  1224.       @p_src_rect = Rect.new(0, 0, @p_width, @p_height)
  1225.       @p_bitmap.blt(0,0, @p_image, @p_src_rect)           
  1226.   end  
  1227.    
  1228.   #--------------------------------------------------------------------------
  1229.   # ● Draw Number
  1230.   #--------------------------------------------------------------------------  
  1231.   def draw_number(x,y,value)
  1232.       @number_text = value.abs.to_s.split(//)
  1233.       plus_x = -@number_cw * @number_text.size
  1234.       for r in 0..@number_text.size - 1
  1235.          @number_abs = @number_text[r].to_i
  1236.          @number_src_rect = Rect.new(@number_cw * @number_abs, 0, @number_cw, @number_ch)
  1237.          @number_bitmap.blt(plus_x + x + (@number_cw  *  r), y, @number_image, @number_src_rect)        
  1238.       end     
  1239.   end   
  1240.    
  1241.   #--------------------------------------------------------------------------
  1242.   # ● Refresh Number
  1243.   #--------------------------------------------------------------------------  
  1244.   def refresh_number
  1245.       @number = @total_sec
  1246.       @number_sprite.bitmap.clear
  1247.       draw_number(@number_cw * 1,0,0) if @min < 10              
  1248.       draw_number(@number_cw * 2,0,@min)
  1249.       draw_number(@number_cw * 4,0,0) if @sec < 10            
  1250.       draw_number(@number_cw * 5,0,@sec)
  1251.   end

  1252.   #--------------------------------------------------------------------------
  1253.   # ● Update Flow
  1254.   #--------------------------------------------------------------------------  
  1255.   def update_flow
  1256.       return if @pause  
  1257.       @meter_sprite.bitmap.clear
  1258.       @meter2_sprite.bitmap.clear      
  1259.       @meter_width = @meter_range * @target_hp / @target_maxhp
  1260.       @meter_src_rect = Rect.new(@meter_flow, 0,@meter_width, @meter_height)
  1261.       @meter_bitmap.blt(0,0, @meter_image, @meter_src_rect)         
  1262.       @meter2_src_rect = Rect.new(@meter_flow, @meter_height,@meter2_width, @meter_height)
  1263.       @meter2_bitmap.blt(0,0, @meter_image, @meter2_src_rect)         
  1264.       @meter_flow += METER_FLOW_SPEED  
  1265.       @meter_flow = 0 if @meter_flow >= @meter_image.width - @meter_range   
  1266.   end   
  1267.    
  1268.   #--------------------------------------------------------------------------
  1269.   # ● Update Reaction Meter
  1270.   #--------------------------------------------------------------------------      
  1271.   def update_reaction_meter
  1272.       return if @pause
  1273.       @r_sprite.bitmap.clear
  1274.       @r_width = @r_image.width * @reaction_time / @reaction_time_max
  1275.       @r_src_rect = Rect.new(0, 0, @r_width, @r_height)
  1276.       @r_bitmap.blt(0,0, @r_image, @r_src_rect)      
  1277.   end  
  1278.   
  1279.   #--------------------------------------------------------------------------
  1280.   # ● Refresh Stamina Mater
  1281.   #--------------------------------------------------------------------------        
  1282.   def refresh_stamina_meter  
  1283.       @old_stamina = @player_hp
  1284.       @hp2_sprite.bitmap.clear
  1285.       @hp2_width = @hp2_image.width * @player_hp / @player_maxhp
  1286.       src_rect = Rect.new(0, 0, @hp2_width, @hp2_height)
  1287.       @hp2_bitmap.blt(0,0, @hp2_image, src_rect)      
  1288. end   
  1289.   
  1290.   #--------------------------------------------------------------------------
  1291.   # ● Update Fire
  1292.   #--------------------------------------------------------------------------  
  1293.   def update_fire
  1294.     return if @pause
  1295.     @fire_flow_speed += 1
  1296.     if @fire_flow_speed > FIRE_ANIMATION_SPEED
  1297.        @fire_flow += 1
  1298.        @fire_flow_speed = 0
  1299.        @fire_flow = 0 if @fire_flow == 4
  1300.        @fire_refresh = true
  1301.     end
  1302.     return if @fire_refresh == false
  1303.     @fire_sprite.bitmap.clear
  1304.     @fire_refresh = false
  1305.     @fire_src_rect_back = Rect.new(@fire_width * @fire_flow, 0,@fire_width, @fire_image.height)
  1306.     @fire_bitmap.blt(0,0, @fire_image, @fire_src_rect_back)        
  1307.   end      
  1308.   
  1309.   #--------------------------------------------------------------------------
  1310.   # ● Refresh Press
  1311.   #--------------------------------------------------------------------------        
  1312.   def refresh_press
  1313.       @press_refresh = false
  1314.       @press_sprite.zoom_x = 2.00
  1315.       @press_sprite.zoom_y = 2.00      
  1316.       @press_sprite.bitmap.clear
  1317.       if @wait > 0
  1318.          @press_src_rect = Rect.new(8 * @press_width, 0, @press_width, @press_height)
  1319.       else
  1320.          @press_src_rect = Rect.new(@next_key * @press_width, 0, @press_width, @press_height)
  1321.       end
  1322.       @press_bitmap.blt(0,0, @press_image, @press_src_rect)
  1323.       check_key_position
  1324.   end  
  1325.   
  1326.   #--------------------------------------------------------------------------
  1327.   # ● Refresh Score
  1328.   #--------------------------------------------------------------------------      
  1329.   def refresh_score
  1330.       @score_sprite.bitmap.clear      
  1331.       @score_text = @score_cache.abs.to_s.split(//)
  1332.       for r in 0..@score_text.size - 1
  1333.          @score_abs = @score_text[r].to_i
  1334.          @score_src_rect = Rect.new(@score_cw * @score_abs, 0, @score_cw, @score_ch)
  1335.          @score_bitmap.blt(@score_cw  *  r, 0, @score_image, @score_src_rect)        
  1336.       end
  1337.       @score_refresh = false if @score == @score_old  
  1338.   end   
  1339.   
  1340.   #--------------------------------------------------------------------------
  1341.   # ● Update Score Number
  1342.   #--------------------------------------------------------------------------      
  1343.   def update_score_number
  1344.       @score_refresh = true
  1345.       n =  1 * (@score - @score_old).abs / 100
  1346.       score_speed = [[n, 9999999].min,1].max
  1347.       if @score_old < @score
  1348.           @score_cache += score_speed   
  1349.           if @score_cache >= @score
  1350.              @score_old = @score
  1351.              @score_cache = @score
  1352.           end              
  1353.         elsif @score_old > @score
  1354.            @score_cache -= score_speed            
  1355.            if @score_cache <= @score
  1356.               @score_old = @score
  1357.               @score_cache = @score
  1358.            end            
  1359.         end         
  1360.   end  

  1361.   #--------------------------------------------------------------------------
  1362.   # ● Refresh CB Number
  1363.   #--------------------------------------------------------------------------        
  1364.   def refresh_cb_number
  1365.       @combo_old = @combo
  1366.       @cb_number_bitmap.clear
  1367.       @cb_number_text = @combo.abs.to_s.split(//)
  1368.       for r in 0..@cb_number_text.size - 1
  1369.          number_abs = @cb_number_text[r].to_i
  1370.          src_rect = Rect.new(@cb_number_cw * number_abs, 0, @cb_number_cw, @cb_number_ch)
  1371.          @cb_number_bitmap.blt((@cb_number_cw  *  r), 0, @cb_number_image, src_rect)        
  1372.       end
  1373.       @cb_number_sprite.ox = (@cb_number_cw * @cb_number_text.size) / 2
  1374.   end  
  1375.   
  1376.   #--------------------------------------------------------------------------
  1377.   # ● Update Combo Effect
  1378.   #--------------------------------------------------------------------------            
  1379.   def update_combo_effect
  1380.       return if @combo_animation_duration == 0
  1381.       @combo_animation_duration -= 1
  1382.       case @combo_animation_duration
  1383.           when 21..40
  1384.                @cb_number_sprite.zoom_x += 0.06
  1385.                @cb_number_sprite.zoom_y += 0.06
  1386.           when 1..20  
  1387.                @cb_number_sprite.zoom_x -= 0.06
  1388.                @cb_number_sprite.zoom_y -= 0.06            
  1389.           else
  1390.                @cb_number_sprite.zoom_x = 1.00
  1391.                @cb_number_sprite.zoom_y = 1.00
  1392.                @combo_animation_duration = 0  
  1393.       end
  1394.    end
  1395.    
  1396.   #--------------------------------------------------------------------------
  1397.   # ● Update HP Number Effect
  1398.   #--------------------------------------------------------------------------               
  1399.   def update_button_effect
  1400.       return if @press_sprite.zoom_x == 1.00
  1401.       @press_sprite.zoom_x -= 0.06
  1402.       @press_sprite.zoom_y -= 0.06      
  1403.       if @press_sprite.zoom_x <= 1.00
  1404.          @press_sprite.zoom_x = 1.00
  1405.          @press_sprite.zoom_y = 1.00
  1406.       end   
  1407.   end  
  1408.    
  1409.   #--------------------------------------------------------------------------
  1410.   # ● Update Background 1
  1411.   #--------------------------------------------------------------------------      
  1412.   def update_background_1
  1413.       if @back_effect_type == 0
  1414.          @background.ox += @back_effect_power_1
  1415.          @background.oy += @back_effect_power_2
  1416.       else   
  1417.          @background.update
  1418.       end  
  1419.   end
  1420.    
  1421.   #--------------------------------------------------------------------------
  1422.   # ● Update Background 2
  1423.   #--------------------------------------------------------------------------      
  1424.   def update_background_2
  1425.       update_breath_effect
  1426.       if @back2_effect_type == 0
  1427.          @background_2.ox += @back2_effect_power_1
  1428.          @background_2.oy += @back2_effect_power_2
  1429.       else   
  1430.          @background_2.update
  1431.       end  
  1432.   end   
  1433.   
  1434.   #--------------------------------------------------------------------------
  1435.   # ● Update Breath Effect
  1436.   #--------------------------------------------------------------------------        
  1437. def update_breath_effect
  1438.      return if !@breath_effect
  1439.       @breach_effect[1] += 1
  1440.       case @breach_effect[1]
  1441.          when 0..30
  1442.              @breach_effect[0] += 0.0004
  1443.          when 31..50
  1444.              @breach_effect[0] -= 0.0004
  1445.          else  
  1446.          @breach_effect[1] = 0
  1447.          @breach_effect[0] = 1.truncate
  1448.       end
  1449.       @background_2.zoom_y = @breach_effect[0]   
  1450. end

  1451. end

  1452. #==============================================================================
  1453. # ■ Scene_Melodia_A
  1454. #==============================================================================
  1455. class Scene_Melodia_A

  1456.   #--------------------------------------------------------------------------
  1457.   # ● update
  1458.   #--------------------------------------------------------------------------  
  1459.   def update
  1460.       update_base
  1461.       update_sprites      
  1462.       update_system
  1463.   end   

  1464.   #--------------------------------------------------------------------------
  1465.   # ● Update_base
  1466.   #--------------------------------------------------------------------------      
  1467.   def update_base
  1468.       update_wait
  1469.       update_event
  1470.       update_pause
  1471.   end  
  1472.   
  1473.   #--------------------------------------------------------------------------
  1474.   # ● Update_system
  1475.   #--------------------------------------------------------------------------        
  1476.   def update_system
  1477.       return if !can_update_system?
  1478.       update_bonus
  1479.       update_reaction_time
  1480.       update_timer
  1481.       update_timeover if @timer > 0
  1482.       update_command   
  1483.   end
  1484.   
  1485.   #--------------------------------------------------------------------------
  1486.   # ● Can Update System?
  1487.   #--------------------------------------------------------------------------         
  1488.   def can_update_system?
  1489.       return false if @event_time > 0
  1490.       return false if @pause
  1491.       return false if @force_pause
  1492.       return false if @phase != 3
  1493.       return true
  1494.   end  
  1495.   
  1496.   #--------------------------------------------------------------------------
  1497.   # ● Update Sprites
  1498.   #--------------------------------------------------------------------------   
  1499.   def update_sprites
  1500.       update_flow
  1501.       update_fire
  1502.       update_bonus_meter
  1503.       update_combo_effect
  1504.       update_reaction_meter
  1505.       update_button_effect
  1506.       update_defeat_target
  1507.       update_particles
  1508.       update_flash
  1509.       update_background_1
  1510.       update_background_2
  1511.       update_score_number if @score_old != @score
  1512.       refresh_stamina_meter if @old_stamina != @player_hp      
  1513.       refresh_number if @number != @total_sec
  1514.       refresh_cb_number if @combo_old != @combo      
  1515.       refresh_press if @press_refresh
  1516.       refresh_score if @score_refresh
  1517.   end  

  1518.   #--------------------------------------------------------------------------
  1519.   # ● Update Pause
  1520.   #--------------------------------------------------------------------------        
  1521.   def update_pause
  1522.       return if !can_update_pause?
  1523.       if Input.trigger?(Input::A)
  1524.          se_pause
  1525.          if @force_pause
  1526.             @force_pause = false
  1527.             make_next_command
  1528.             @press_sprite.visible = true
  1529.             dispose_info
  1530.          else   
  1531.             @force_pause = true
  1532.             @press_sprite.visible = false
  1533.             create_info("Info6")
  1534.          end  
  1535.       end     
  1536.   end   
  1537.   
  1538.   #--------------------------------------------------------------------------
  1539.   # ● Can Update Pause
  1540.   #--------------------------------------------------------------------------         
  1541.   def can_update_pause?
  1542.       return false if @event_time > 0
  1543.       return false if @pause
  1544.       return false if @wait > 0
  1545.       return false if @phase != 3
  1546.       return true
  1547.   end
  1548.   
  1549.   #--------------------------------------------------------------------------
  1550.   # ● Update Defeat Target
  1551.   #--------------------------------------------------------------------------        
  1552.   def update_defeat_target
  1553.       return if @phase != 4
  1554.       return if @target == nil
  1555.       @target.opacity -= 1     
  1556.   end

  1557.   #--------------------------------------------------------------------------
  1558.   # ● update
  1559.   #--------------------------------------------------------------------------  
  1560.   def update_timer
  1561.       @total_sec = @timer / Graphics.frame_rate
  1562.       @min = @total_sec / 60
  1563.       @sec = @total_sec % 60
  1564.   end  

  1565.   #--------------------------------------------------------------------------
  1566.   # ● update_wait
  1567.   #--------------------------------------------------------------------------        
  1568.   def update_wait  
  1569.       return if @wait == 0
  1570.       @wait -= 1
  1571.       if @wait == 0
  1572.          make_next_command
  1573.       end   
  1574.   end     
  1575.   
  1576.   #--------------------------------------------------------------------------
  1577.   # ● Update Reaction Time
  1578.   #--------------------------------------------------------------------------         
  1579.   def update_reaction_time
  1580.       return if @wait > 0
  1581.       return if @reaction_time == 0
  1582.       @reaction_time -= 1
  1583.       if @reaction_time == 0
  1584.          execute_wait         
  1585.          se_reaction_timeover
  1586.          execute_player_damage
  1587.          @player_shake_duration = 40
  1588.       end   
  1589.   end  
  1590.   
  1591. end   


  1592. #==============================================================================
  1593. # ■ Scene_Melodia_A
  1594. #==============================================================================
  1595. class Scene_Melodia_A
  1596.   
  1597.   #--------------------------------------------------------------------------
  1598.   # ● Update Event
  1599.   #--------------------------------------------------------------------------        
  1600.   def update_event
  1601.       update_event_duration
  1602.       return if !can_update_event?   
  1603.       @info.opacity -= 10 unless @force_pause
  1604.       if @phase == 6 and @result_sprite != nil
  1605.          @result_sprite.opacity -= 10
  1606.          @number_sprite.opacity -= 10
  1607.       end   
  1608.       execute_event if @info.opacity <= 0
  1609.    end   

  1610.   #--------------------------------------------------------------------------
  1611.   # ● Update Event Duration
  1612.   #--------------------------------------------------------------------------                 
  1613.    def update_event_duration
  1614.        return if @event_time <= 0
  1615.        @event_time -= @event_speed
  1616.        @event_time = 0 if @event_time < 0
  1617.        update_skip_event
  1618.    end
  1619.      
  1620.   #--------------------------------------------------------------------------
  1621.   # ● Can Update  Event?
  1622.   #--------------------------------------------------------------------------              
  1623.    def can_update_event?
  1624.        return false if @event_time > 0
  1625.        return false if @info == nil
  1626.        return true
  1627.    end  
  1628.    
  1629.   #--------------------------------------------------------------------------
  1630.   # * update Skip Event
  1631.   #--------------------------------------------------------------------------         
  1632.   def update_skip_event
  1633.       return false if @event_time == 0
  1634.       return false if @phase == 3
  1635.       return false if @info.opacity < 60
  1636.       if Input.trigger?(Input::C) or
  1637.          Input.trigger?(Input::B)
  1638.          @event_time = 0
  1639.          se_cursor
  1640.       end
  1641.    end
  1642.    
  1643.   #--------------------------------------------------------------------------
  1644.   # ● Execute Event
  1645.   #--------------------------------------------------------------------------           
  1646.    def execute_event
  1647.        case @phase
  1648.              when 6;  execute_exit
  1649.              when 5;  event_timeover
  1650.              when 4;  event_victory
  1651.              when 2;  event_battle_start
  1652.              when 1;  event_ready_go
  1653.              when 0;  event_tutorial
  1654.        end
  1655.   end  
  1656.   
  1657.   
  1658.   #--------------------------------------------------------------------------
  1659.   # ● Event Time Over
  1660.   #--------------------------------------------------------------------------            
  1661.   def event_timeover
  1662.       execute_exit
  1663.   end
  1664.    
  1665.   #--------------------------------------------------------------------------
  1666.   # Event Victory
  1667.   #--------------------------------------------------------------------------            
  1668.   def event_victory
  1669.       create_info("Info7")
  1670.       @event_time = 900
  1671.       @phase = 6
  1672.       check_average_reaction_time
  1673.       objects_sprites_visible(false)
  1674.       @number_sprite.visible = true
  1675.       @number_sprite.x = 420
  1676.       @number_sprite.y = 193
  1677.       @number_sprite.z = 1000
  1678.       make_rank
  1679.       create_result_text
  1680.       se_result
  1681.   end
  1682.   
  1683.   #--------------------------------------------------------------------------
  1684.   # Event Battle Start
  1685.   #--------------------------------------------------------------------------         
  1686.   def event_battle_start
  1687.       dispose_info
  1688.       @pause = false
  1689.       @wait = 0
  1690.       @phase = 3
  1691.       @event_time = 0
  1692.       objects_sprites_visible(true)
  1693.       make_next_command
  1694.   end
  1695.   
  1696.   #--------------------------------------------------------------------------
  1697.   # Event Ready Go
  1698.   #--------------------------------------------------------------------------        
  1699.   def event_ready_go
  1700.       dispose_info
  1701.       create_info("Info2")
  1702.       @phase = 2
  1703.       @event_time = 160   
  1704.   end  
  1705.   
  1706.   #--------------------------------------------------------------------------
  1707.   # Event Tutorial
  1708.   #--------------------------------------------------------------------------      
  1709.   def event_tutorial
  1710.       dispose_info
  1711.       create_info("Info1")
  1712.       @phase = 1
  1713.       @event_time = 220   
  1714.   end
  1715.   
  1716. end


  1717. #==============================================================================
  1718. # ■ Scene_Melodia_A
  1719. #==============================================================================
  1720. class Scene_Melodia_A
  1721.   
  1722.   #--------------------------------------------------------------------------
  1723.   # ● Update Gameover
  1724.   #--------------------------------------------------------------------------   
  1725.   def update_timeover
  1726.       return if @pause
  1727.       @timer -= 1
  1728.       if @timer == 0
  1729.          create_info("Info4")
  1730.          se_timeover
  1731.          execute_lose
  1732.       end
  1733.   end  
  1734.   
  1735.   #--------------------------------------------------------------------------
  1736.   # ● Execute_lose
  1737.   #--------------------------------------------------------------------------      
  1738.   def execute_lose
  1739.       update_score_number
  1740.       refresh_stamina_meter   
  1741.       refresh_number
  1742.       refresh_cb_number
  1743.       refresh_score   
  1744.       RPG::BGM.fade(5 * 1000)
  1745.       @event_time = 180
  1746.       @phase = 5
  1747.   end
  1748.    
  1749.   #--------------------------------------------------------------------------
  1750.   # ● Execute Game_Over
  1751.   #--------------------------------------------------------------------------         
  1752.   def execute_exit
  1753.       SceneManager.return        
  1754.   end
  1755.   
  1756.   #--------------------------------------------------------------------------
  1757.   # ● Execute Victory
  1758.   #--------------------------------------------------------------------------        
  1759.   def execute_victory
  1760.       @pause = true
  1761.       @phase = 4
  1762.       dispose_info
  1763.       @target_phase = 0
  1764.       create_info("Info3")
  1765.       @event_time = 150
  1766.       @target_shake_duration = 180
  1767.       @meter_sprite.bitmap.clear
  1768.       @press_sprite.visible = false
  1769.       RPG::BGM.fade(7 * 1000)
  1770.       se_last_blow
  1771.       execute_store_record   
  1772.   end   
  1773.   
  1774.   #--------------------------------------------------------------------------
  1775.   # ● Execute Store Record
  1776.   #--------------------------------------------------------------------------         
  1777.   def execute_store_record
  1778.       variable_id1 = STORE_SCORE_VARIABLE_ID
  1779.       variable_id2 = STORE_COMBO_VARIABLE_ID
  1780.       $game_system.melodia_a_record[0] = @max_score if @max_score > $game_system.melodia_a_record[0]
  1781.       $game_system.melodia_a_record[1] = @max_combo if @max_combo > $game_system.melodia_a_record[1]
  1782.       $game_variables[variable_id1] = @max_score if @max_score > $game_variables[variable_id1]
  1783.       $game_variables[variable_id2] = @max_combo if @max_combo > $game_variables[variable_id2]
  1784.       if $game_system.melodia_a[5] != nil
  1785.          $game_switches[$game_system.melodia_a[5]] = true
  1786.       end   
  1787.       $game_map.need_refresh = true
  1788.   end  
  1789.   
  1790. end

  1791. #==============================================================================
  1792. # ■ Scene_Melodia_A
  1793. #==============================================================================
  1794. class Scene_Melodia_A
  1795.   
  1796. #--------------------------------------------------------------------------
  1797. # ● Check Bonus Limit
  1798. #--------------------------------------------------------------------------               
  1799. def check_bonus_limit
  1800.      @perform = @perform_max if @perform > @perform_max
  1801.      @perform = 0 if @perform < 0
  1802.   end
  1803.       
  1804.   #--------------------------------------------------------------------------
  1805.   # ● Update bonus
  1806.   #--------------------------------------------------------------------------               
  1807.   def update_bonus
  1808.       @perform -= 1 if @perform > 0      
  1809.   end  

  1810.   #--------------------------------------------------------------------------
  1811.   # ● Add Bonus Gauge
  1812.   #--------------------------------------------------------------------------         
  1813.   def add_bonus_gauge
  1814.       @perform += @bonus_speed
  1815.       check_bonus_limit
  1816.   end   
  1817.   
  1818. end

  1819. #==============================================================================
  1820. # ■ Scene_Melodia_A
  1821. #==============================================================================
  1822. class Scene_Melodia_A
  1823.   
  1824.   #--------------------------------------------------------------------------
  1825.   # ● Add Score
  1826.   #--------------------------------------------------------------------------      
  1827.   def add_score
  1828.       point = (@perform + rand(@hits) + rand(9)).truncate
  1829.       point = 1 if point < 1      
  1830.       @score += point
  1831.       @max_score = @score if @score > @max_score
  1832.   end
  1833.   
  1834.   #--------------------------------------------------------------------------
  1835.   # ● Recuce Score
  1836.   #--------------------------------------------------------------------------      
  1837.   def reduce_score
  1838.       point = ((@score * 5 / 100) + rand(9)).truncate
  1839.       point = 1 if point < 1
  1840.       @score -= point
  1841.       @score = 0 if @score < 0
  1842.       @misses += 1
  1843.   end
  1844.   
  1845.   #--------------------------------------------------------------------------
  1846.   # ● Execute Player Damage
  1847.   #--------------------------------------------------------------------------         
  1848.   def execute_player_damage     
  1849.       @player_hp -= 1
  1850.       @misses += 1
  1851.       execute_combo(false)
  1852.       if @player_hp <= 0
  1853.          @player_hp = 0         
  1854.          create_info("Info5")
  1855.          se_statmina_zero
  1856.          execute_lose
  1857.       end   
  1858.   end  

  1859.   #--------------------------------------------------------------------------
  1860.   # ● Execute Wait
  1861.   #--------------------------------------------------------------------------            
  1862.   def execute_wait
  1863.       @wait = 42
  1864.       make_next_command(true)
  1865.   end   
  1866.   
  1867.   #--------------------------------------------------------------------------
  1868.   # ● Execute Wrong SE
  1869.   #--------------------------------------------------------------------------              
  1870.   def execute_wrong_se
  1871.       se_wrong
  1872.   end   
  1873.   
  1874.   #--------------------------------------------------------------------------
  1875.   # ● Wrong Command
  1876.   #--------------------------------------------------------------------------            
  1877.   def wrong_command
  1878.       execute_wait
  1879.       execute_wrong_se
  1880.       execute_player_damage        
  1881.   end  
  1882.   
  1883.   #--------------------------------------------------------------------------
  1884.   # ● Execute Combo
  1885.   #--------------------------------------------------------------------------            
  1886.   def execute_combo(value = false)
  1887.       @combo += 1 if value
  1888.       @combo = 0 if !value
  1889.       @max_combo = @combo if @combo > @max_combo
  1890.       @cb_number_sprite.zoom_x = 1.00
  1891.       @cb_number_sprite.zoom_y = 1.00
  1892.       @cb_number_sprite.opacity = 255
  1893.       @combo_animation_duration = 40
  1894.   end
  1895.   
  1896.   #--------------------------------------------------------------------------
  1897.   # ● Execute Target_Damage
  1898.   #--------------------------------------------------------------------------        
  1899.   def execute_target_damage
  1900.       se_right
  1901.       @n_hits += 1
  1902.       execute_combo(true)
  1903.       rc = @reaction_time_max - @reaction_time
  1904.       @reaction_time_score += rc      
  1905.       @reaction_time = @reaction_time_max
  1906.       add_bonus_gauge
  1907.       @flash_bitmap[@next_key].flash_effect
  1908.       make_next_command
  1909.       @target_hp += 1
  1910.       @hits += 1
  1911.       add_score
  1912.       @target_hp = @target_maxhp if @target_hp > @target_maxhp
  1913.       @target_hp = 0 if @target_hp < 0
  1914.       execute_victory if @target_hp >=  @target_maxhp
  1915.   end
  1916.   
  1917.   #--------------------------------------------------------------------------
  1918.   # ● Check Average Reaction Time
  1919.   #--------------------------------------------------------------------------         
  1920.   def check_average_reaction_time
  1921.       hundredths = (@reaction_time_score / 0.6).truncate      
  1922.       @reaction_time_average = (hundredths / @n_hits)
  1923.   end   
  1924.   
  1925.   #--------------------------------------------------------------------------
  1926.   # ● Make Rank
  1927.   #--------------------------------------------------------------------------            
  1928.   def make_rank
  1929.       if @reaction_time_average.between?(0,15)
  1930.          @rank_point += 20
  1931.       elsif @reaction_time_average.between?(16,30)   
  1932.          @rank_point += 15
  1933.       elsif @reaction_time_average.between?(31,45)
  1934.          @rank_point += 10
  1935.       elsif @reaction_time_average.between?(46,60)  
  1936.          @rank_point += 8
  1937.       elsif @reaction_time_average.between?(61,75)
  1938.          @rank_point += 6      
  1939.       elsif @reaction_time_average.between?(76,90)
  1940.          @rank_point += 4        
  1941.       elsif @reaction_time_average.between?(90,105)
  1942.          @rank_point += 2        
  1943.       end
  1944.       if @misses == 0
  1945.          @rank_point += 15
  1946.       elsif @misses == 1
  1947.          @rank_point += 10   
  1948.       elsif @misses.between?(2,4)   
  1949.          @rank_point += 5
  1950.       else
  1951.          @rank_point -= @misses
  1952.       end
  1953.       @rank_point = 0 if @rank_point < 0
  1954.       if @rank_point.between?(30,40)
  1955.          @rank = "S"
  1956.       elsif @rank_point.between?(25,29)   
  1957.          @rank = "A"
  1958.       elsif @rank_point.between?(20,24)      
  1959.          @rank = "B"
  1960.       elsif @rank_point.between?(15,19)      
  1961.          @rank = "C"
  1962.       elsif @rank_point.between?(10,14)      
  1963.          @rank = "D"
  1964.       elsif @rank_point.between?(5,9)   
  1965.          @rank = "E"
  1966.       else   
  1967.          @rank = "F"
  1968.       end      
  1969.   end  
  1970.   
  1971.   
  1972. end


  1973. #==============================================================================
  1974. # ■ Scene_Melodia_A
  1975. #==============================================================================
  1976. class Scene_Melodia_A
  1977.   
  1978.   #--------------------------------------------------------------------------
  1979.   # ● Make Next Command
  1980.   #--------------------------------------------------------------------------      
  1981.   def make_next_command(skip = false)
  1982.       return if @phase != 3
  1983.       unless skip
  1984.          @next_key = rand(8)
  1985.          @pressed_key = @next_key
  1986.          @reaction_time = @reaction_time_max
  1987.       end   
  1988.       @press_refresh = true
  1989.   end
  1990.    
  1991.   #--------------------------------------------------------------------------
  1992.   # ● update_command
  1993.   #--------------------------------------------------------------------------   
  1994.   def update_command      
  1995.       return if @wait > 0
  1996.       if Input.trigger?(Input::C) #Z
  1997.          @pressed_key = 0
  1998.          if @next_key == 0
  1999.             execute_target_damage
  2000.          else
  2001.             wrong_command
  2002.          end  
  2003.        elsif Input.trigger?(Input::B) #X
  2004.          @pressed_key = 1
  2005.          if @next_key == 1
  2006.             execute_target_damage
  2007.          else
  2008.             wrong_command
  2009.          end         
  2010.        elsif Input.trigger?(Input::X) #A
  2011.          @pressed_key = 2
  2012.          if @next_key == 2
  2013.             execute_target_damage
  2014.          else
  2015.             wrong_command
  2016.          end                 
  2017.        elsif Input.trigger?(Input::Y) #S
  2018.          @pressed_key = 3
  2019.          if @next_key == 3
  2020.             execute_target_damage
  2021.          else
  2022.             wrong_command
  2023.          end  
  2024.        elsif Input.trigger?(Input::RIGHT)
  2025.          @pressed_key = 4
  2026.          if @next_key == 4
  2027.             execute_target_damage
  2028.          else
  2029.             wrong_command
  2030.          end         
  2031.        elsif Input.trigger?(Input::LEFT)
  2032.          @pressed_key = 5
  2033.          if @next_key == 5
  2034.             execute_target_damage
  2035.          else
  2036.             wrong_command
  2037.          end         
  2038.        elsif Input.trigger?(Input::DOWN)      
  2039.          @pressed_key = 6
  2040.          if @next_key == 6
  2041.             execute_target_damage
  2042.          else
  2043.             wrong_command
  2044.          end         
  2045.        elsif Input.trigger?(Input::UP)
  2046.          @pressed_key = 7
  2047.          if @next_key == 7
  2048.             execute_target_damage
  2049.          else
  2050.             wrong_command
  2051.          end        
  2052.       end  
  2053.    end  
  2054.   
  2055. end

  2056. $mog_rgss3_melodia = true  
复制代码
帮忙看看上面那个脚本怎么用Mog Hunter的脚本,脚本盲,不懂啊。这是和qq炫舞似的放音乐然后按上下左右那个。@喵呜喵5     @Sion  

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

2
发表于 2014-3-3 19:23:22 | 只看该作者
看不懂葡萄牙语,你自己用翻译机吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-29 18:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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