Sujet n°13277
Posté par Mysterïous le 27 Oct - 14:06 (2013)
Titre : [PSP4G+] Problème avec la musique de victoire ! (ME)
Bonjour à tous, un nouveau problème sur PSP4G+ !

Lorsque je paramètre mes combats, je fais en sorte que la musique de combat/victoire change selon les dresseurs.

Exemple :

Dresseur Normal -> BGS : MusiqueNormal.mid (Ok)
ME : VictoireNormal.mid -> (fail musique de base PSP4G+ (jinglewin.mid))

Dresseur Rival -> BGS : MusiqueRival.mid (Ok)
ME : VictoireRival.mid -> (fail musique de base PSP4G+ (jinglewin.mid))

Dresseur Champion -> BGS : MusiqueChampion.mid (Ok)
ME : VictoireChampion.mid -> (fail musique de base PSP4G+ (jinglewin.mid))

C'est assez énervant, je pense que sa viens du script de combat "trainer", mais comment faire en sorte de faire "mute" la musique de base.
Et que les modification de musique de victoire (ME) s'active ! Bouche extensible

Merci d'avance, à ce super forum ! Clin d'œil foireux

Posté par joeyw le 27 Oct - 14:45 (2013)
Tu pourrais nous copier/coller ton script Pokemon_Battle_Trainer ? Imbécile heureux

Dans ce script, tu as déjà apparemment correctement paramétré les musiques de combat. Les musiques de victoire sont plus bas dans ce même script Imbécile heureux

Posté par Mysterïous le 27 Oct - 22:58 (2013)
joeyw a écrit:
Tu pourrais nous copier/coller ton script Pokemon_Battle_Trainer ? Imbécile heureux

Dans ce script, tu as déjà apparemment correctement paramétré les musiques de combat. Les musiques de victoire sont plus bas dans ce même script Imbécile heureux


Spoiler
Code:
#==============================================================================
# ■ Pokemon_Battle_Trainer
# Pokemon Script Project - Krosk
# 29/09/07
#-----------------------------------------------------------------------------
# Scène à ne pas modifier de préférence
#-----------------------------------------------------------------------------
# Système de Combat - Pokémon Dresseur
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
# 0: Normal, 1: Poison, 2: Paralysé, 3: Brulé, 4:Sommeil, 5:Gelé, 8: Toxic
# @confuse (6), @flinch (7)
#-----------------------------------------------------------------------------
# 1 Normal  2 Feu  3 Eau 4 Electrique 5 Plante 6 Glace 7 Combat 8 Poison 9 Sol
# 10 Vol 11 Psy 12 Insecte 13 Roche 14 Spectre 15 Dragon 16 Acier 17 Tenebres
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
# $battle_var.action_id
#   0 : Phase de Sélection
#   1 : Sélection Item
#   2 : Switch Pokémon
#   4 : Switch Fin de Tour
#-----------------------------------------------------------------------------

module POKEMON_S
  #------------------------------------------------------------ 
  # Pokemon_Battle_Trainer
  #   scene
  #------------------------------------------------------------ 
  class Pokemon_Battle_Trainer < Pokemon_Battle_Core
    attr_accessor :z_level
    attr_accessor :actor_status
    attr_accessor :actor
    #------------------------------------------------------------ 
    # Fonction d'initialisation
    # Appel: $scene = Pokemon_Battle_Trainer.new(
    #           party, trainer_id, ia)
    #     party: $pokemon_party (classe Pokemon_Party)
    #     trainer_id: L'ID du dresseur dans $data_trainer (groupe de monstres)
    #     ia: Fausse AI
    #     run_able: possible de fuir
    #------------------------------------------------------------
    def initialize(party, trainer_id, ia = false, run_able = false, lose_able = false, capturable = false, niveau = 2)
      @z_level = 100
      @ia = ia
      @trainer_id = trainer_id
      @run = run_able
      @lose = lose_able
      @niveau = niveau
      @capture = niveau > 0 ? true : false
      $sauvage = false
     
      $battle_var.reset
     
      # Création données des Pokémons adverses
      #$battle_var.enemy_party = Pokemon_Party.new
      for pokemon_data in Trainer_Info.pokemon_list(@trainer_id)
        id = pokemon_data[0]
        level = pokemon_data[1]
        # Shiny
        if pokemon_data[7] != nil
          shiny = pokemon_data[7]
        else
          shiny = false
        end
        pokemon = Pokemon.new(id, level, shiny)
        pokemon.given_name += " ennemi"
        # Paramètres optionnels
        # Objet
        if pokemon_data[2] != nil
          pokemon.item_hold = Item.id(pokemon_data[2])
        end
        # Moveset
        if pokemon_data[4] != nil
          for i in 0...pokemon_data[4].size
            if pokemon_data[4][i] != nil and pokemon_data[4][i] != "AUCUN"
              pokemon.skills_set[i] = Skill.new(Skill_Info.id(pokemon_data[4][i]))
            end
            if pokemon_data[4][i] == "AUCUN"
              pokemon.skills_set[i] = nil
            end
          end
          pokemon.skills_set.compact!
        end
        # Stats avancées
        if pokemon_data[3] != nil and pokemon_data[3].length == 6
          pokemon.dv_modifier(pokemon_data[3])
        end
        # Genre
        if pokemon_data[5] != nil
          pokemon.set_gender(pokemon_data[5])
        end
        # Forme
        if pokemon_data[6] != nil
          pokemon.form = pokemon_data[6]
        end
        if pokemon_data[8] != nil
          pokemon.table_stats = pokemon_data[8]
        end
        # Table types
        if pokemon_data[9] != nil
          pokemon.table_type = pokemon_data[9]
        end
        # Skill types
        if pokemon_data[10] != nil
          pokemon.table_skill_type = pokemon_data[10]
        end
        # Nature
        if pokemon_data[11].type == String
          for i in 0...POKEMON_S::NATURE.size
            if POKEMON_S::NATURE[i][0] == pokemon_data[11]
              pokemon.nature = POKEMON_S::NATURE[i]
              break
            end
          end
        elsif pokemon_data[11].type == Array and pokemon_data[11].size == 6
          pokemon.nature = pokemon_data[11]
        end
        # Bonheur
        if pokemon_data[12] != nil
          pokemon.loyalty = pokemon_data[12]
        end
        # Capturable
        if pokemon_data[13] != nil
          pokemon.capturable = pokemon_data[13]
        end
        # image ball
        if pokemon_data[14] != nil
          pokemon.ball_data = $item.data($item.id(pokemon_data[14]))["ball"]
        end
        # Table stats
        $battle_var.enemy_party.actors.push(pokemon)
      end
      @enemy = $battle_var.enemy_party.actors[0]
      $battle_var.enemy_battle_order = [0,1,2,3,4,5]
     
      @party = party
     
      # Mise à jour Pokedex: Pokémon vu
      $data_pokedex[@enemy.id][0] = true
     
      # Génération ordre de combat
      @battle_order = Array.new(@party.size)
      @battle_order.fill {|i| i}
     
      # Désignation 1er Pokémon au combat
      # @actor désigne le (class) Pokémon
      actor_index = 0
      @actor = @party.actors[actor_index]
      if @actor == nil
        print("Attention, vous n'avez pas de Pokémon dans votre équipe! Réglez ce bug.")
      end
      while @actor.dead?
        actor_index += 1
        @actor = @party.actors[actor_index]
      end
     
      # Correction ordre combat (Pokémon vivant en premier)
      @battle_order = switch(@battle_order, 0, actor_index)
     
      # Remise à zéro résultat
      $battle_var.result_flee = false
      $battle_var.result_flee_enemy = false
      $battle_var.result_win = false
      $battle_var.result_defeat = false
     
      # Initialisation des variables de combat
      @phase = 0
      # 0 Non décidé, 1 Attaque, 2 Switch, 3 Item, 4 Fuite
      @actor_action = 0
      @enemy_action = 0
     
      @start_actor_battler = Player.battler #$trainer_battler
      @start_enemy_battler = $alea ? "trainer" + $no_alea : Trainer_Info.battler(@trainer_id)
     
      $battle_var.have_fought.push(@actor.party_index)
      $battle_var.battle_order = @battle_order
      $battle_var.in_battle = true
     
      @actor.reset_stat_stage
      @enemy.reset_stat_stage
      @actor.skill_effect_reset
      @enemy.skill_effect_reset
      @actor_skill = nil
      @enemy_skill = nil
      @actor.ability_active = false
      @enemy.ability_active = false
      @item_id = 0   # item utilisé
    end
 
       
    #------------------------------------------------------------ 
    # Animations pré-combat
    #------------------------------------------------------------ 
    def pre_battle_transition
      # Jingle et BGM
      #Audio.bgm_play("Audio/BGM/PkmRS-Battle3.mid")
      $game_system.bgm_play($game_system.battle_bgm)
     
      # Sélection transition
      s = (rand(BATTLE_TRANS)+1).to_s
      @background.bitmap = RPG::Cache.picture("black.png")
      Graphics.transition(100, "Graphics/Transitions/battle"+ s +".png")
      Audio.me_stop
     
      # Dessin
      Graphics.freeze
      @background.bitmap = RPG::Cache.battleback(@battleback_name)
      @message_background.bitmap = RPG::Cache.battleback(BATTLE_MSG)
      @enemy_sprite.bitmap = RPG::Cache.battler(@start_enemy_battler, 0)
      @enemy_sprite.ox = @enemy_sprite.bitmap.width / 2
      @enemy_sprite.oy = @enemy_sprite.bitmap.height * 2 / 3
      @enemy_sprite.x -= 782
      @enemy_ground.bitmap = RPG::Cache.battleback(@ground_name)
      @enemy_ground.ox = @enemy_ground.bitmap.width / 2
      @enemy_ground.oy = @enemy_ground.bitmap.height / 2
      @enemy_ground.zoom_x = @enemy_ground.zoom_y = 2.0/3
      @enemy_ground.x -= 782
      @actor_ground.bitmap = RPG::Cache.battleback(@ground_name)
      @actor_ground.ox = @actor_ground.bitmap.width / 2
      @actor_ground.oy = @actor_ground.bitmap.height
      @actor_ground.x += 782
      @actor_sprite.bitmap = RPG::Cache.battler(@start_actor_battler, 0)
      @actor_sprite.ox = @actor_sprite.bitmap.width / 2
      @actor_sprite.oy = @actor_sprite.bitmap.height
      @actor_sprite.x += 782
      Graphics.transition(50, "Graphics/Transitions/battle0.png")
    end
   
    def pre_battle_animation
      # Glissement des sprites
      loop do
        @enemy_sprite.x += 17
        @enemy_ground.x += 17
        @actor_sprite.x -= 17
        @actor_ground.x -= 17
        Graphics.update
        if @enemy_sprite.x == 464
          break
        end
      end
     
      # Confrontation des joueurs avec affichage des balls
      draw_text("Un combat est lancé", "par "+ Trainer_Info.string(@trainer_id) + "!")
      @actor_party_status.reset_position
      @enemy_party_status.reset_position
      @actor_party_status.visible = true
      @enemy_party_status.visible = true
      @actor_party_status.active = true
      @enemy_party_status.active = true
      @actor_party_status.x += 400
      @enemy_party_status.x -= 400
      Graphics.update
     
      loop do
        @actor_party_status.x -= 20
        @enemy_party_status.x += 20
        Graphics.update
        if @actor_party_status.x <= 309
          @actor_party_status.reset_position
          @enemy_party_status.reset_position
          break
        end
      end
      wait_hit
     
      # Dégagement sprite dresseur
      loop do
        @enemy_sprite.x += 10
        @enemy_party_status.x -= 20
        Graphics.update
        if @enemy_sprite.x >= 723
          @enemy_party_status.visible = false
          @enemy_party_status.reset_position
          @enemy_sprite.oy = @enemy_sprite.bitmap.height / 2
          break
        end
      end
     
      @enemy_sprite.bitmap = RPG::Cache.battler(@enemy.battler_face, 0)

      # Envoi sprite
      launch_enemy_pokemon
     
      # Attente appui de touche
      wait(40)
     
      # Dégagement du sprite dresseur
      @actor_party_status.reset_position
      loop do
        @actor_sprite.x -= 10
        @actor_party_status.x += 20
        Graphics.update
        if @actor_sprite.x <= -200
          @actor_sprite.bitmap = RPG::Cache.battler(@actor.battler_back, 0)
          @actor_party_status.reset_position
          @actor_party_status.visible = false
          break
        end
      end
     
      # Envoi du pokémon (animation)
      launch_pokemon
     
      @text_window.contents.clear
      Graphics.update
    end
   
    #------------------------------------------------------------ 
    # Déroulement
    #------------------------------------------------------------
    def enemy_skill_decision
      @enemy_caught = false
      action = true
      # ------- ---------- --------- --------
      #    Saut de phase de sélection (ennemi)
      #   action = false  : saut
      #   action = true   : pas de saut
      # ------- ---------- --------- --------
      action = phase_jump(true)
     
      @enemy_action = 1
     
      # Décision skill ennemi
      if not(@actor.dead?) and action
        list = []
        for i in 0..@enemy.skills_set.size - 1
          list.push(i)
        end
        list.shuffle!
        # Skill sans PP // Lutte
        @enemy_skill = Skill.new(165)
        # ----------
        for i in list
          if @enemy.skills_set[i].usable?
            @enemy_skill = @enemy.skills_set[i]
          end
        end
      end
     
     
      # Trainer IA
      if @ia and not(@actor.dead?) and action
        # Skill sans PP // Lutte
#        @enemy_skill = Skill.new(165)
       
        rate_list = {}
        i = 0
        for skill in @enemy.skills_set
          if skill.usable?
            rate_list[i] = ia_rate_calculation(skill, @enemy, @actor)
          else
            rate_list[i] = 0
          end
          i += 1
        end
       
        # Tri dans l'ordre decroissant de valeur
        sorted_list = rate_list.sort {|a,b| b[1]<=a[1]}
       
        #for element in sorted_list
        #  print(@enemy.skills_set[element[0]].name)
        #  print(element[1])
        #end
       
        # Decision prioritaire: max dégat ou soin
        # Valeur seuil: 200
        # si une attaque/défense dépasse ce seuil, il est choisi
        if sorted_list[0][1] > 200
          @enemy_skill = @enemy.skills_set[sorted_list[0][0]]
        else
          # Decision par pallier
          i = rand(100)
          # Taux de decision
          taux = [100, 25, 5, 0]
          for a in 0..3
            if i <= taux[a] and sorted_list[a] != nil and sorted_list[a][1] != 0
              @enemy_skill = @enemy.skills_set[sorted_list[a][0]]
            end
          end
        end
      end
     
      if not(action) # Reprise du skill précédent
        @enemy_skill = $battle_var.enemy_last_used
      end
    end
   
    #------------------------------------------------------------ 
    # Rounds
    #------------------------------------------------------------               
    def end_battle_check
      @actor_status.refresh
      @enemy_status.refresh
      if $battle_var.enemy_party.dead? and not(@party.dead?)
        end_battle_victory
      elsif @enemy.dead? and not($battle_var.enemy_party.dead?)
        exp_battle
       
        index = $battle_var.enemy_party.actors.index(@enemy)
        @enemy_switch_id = index+1
       
        alive = 0
        for pokemon in @party.actors
          if not pokemon.dead?
            alive += 1
          end
        end
       
        if alive > 1
          name = $battle_var.enemy_party.actors[index+1].name
          draw_text(name + " va être envoyé", "par " + Trainer_Info.string(@trainer_id) + ".")
          $pokemon_capturer = false
        end
       
        if @enemy_party_status.active
          @enemy_party_status.reset_position
          @enemy_party_status.visible = true
          @enemy_party_status.x -= 400
          until @enemy_party_status.x == -16
            @enemy_party_status.x += 20
            Graphics.update
          end
        end
       
        wait_hit
        if alive > 1
          draw_text("Voulez-vous appeler", "un autre Pokémon?")
          decision = false
          if draw_choice
            $battle_var.window_index = @action_window.index
            scene = Pokemon_Party_Menu.new(0, @z_level + 100)
            scene.main
            return_data = scene.return_data
            decision = true
            Graphics.transition
          end
       
          # Switch de Pokémon
          if ($battle_var.action_id == 4 or $battle_var.action_id == 6) and decision
            @switch_id = return_data
            actor_pokemon_switch
          end
        end
       
        if @enemy_party_status.active
          until @enemy_party_status.x == -416
            @enemy_party_status.x -= 20
            Graphics.update
          end
          @enemy_party_status.visible = false
          @enemy_party_status.reset_position
        end
       
        # Switch enemy
        enemy_pokemon_switch
      end
      if @actor.dead?
        if @party.dead?
          end_battle_defeat
        else
          # Switch forcé
          $battle_var.window_index = @action_window.index
          scene = Pokemon_Party_Menu.new(0, @z_level + 150)
          scene.main
          return_data = scene.return_data
          # Switch de Pokémon
          if $battle_var.action_id == 4 or $battle_var.action_id == 6
            @switch_id = return_data
            actor_pokemon_switch
          end
        end
      end
    end
   
   
    #------------------------------------------------------------ 
    # Items
    #------------------------------------------------------------     
    def actor_item_use # items à utiliser
      # Item déjà utilisé ie remplacé par 0
      if @item_id == 0
        return
      end
      if Item.data(@item_id)["flee"] != nil
        end_battle_flee
        return
      end
      if Item.data(@item_id)["ball"] != nil
        ball_data = Item.data(@item_id)["ball"]
        catch_pokemon(ball_data)
      end
    end

    #------------------------------------------------------------ 
    # Lancer de pokéball
    #------------------------------------------------------------         
    def catch_pokemon(ball_data)
      # Initialisation des données
      ball_name = ball_data[0]
      ball_rate = ball_data[1]
      ball_sprite = ball_data[2]
      ball_open_sprite = ball_data[3]
      ball_color = ball_data[4]
      chances = rand(@niveau * 2) <= rand($pokemon_party.niveau)
      if $battle_var.enemy_party.actors.index(@enemy) < ($battle_var.enemy_party.size - 1) and ball_rate.type == Array and ball_rate[0] == "vol" and @capture and @enemy.capturable and chances# < 0
        if @enemy.asleep? or @enemy.frozen?
          status_multiplier = 2
        elsif @enemy.burn? or @enemy.paralyzed? or
            @enemy.poisoned? or @enemy.toxic?
          status_multiplier = 1.5
        else
          status_multiplier = 1
        end
        if ball_rate[1].type == Array
          case ball_rate[1][0]
          when "genre"
            if ball_rate[1][@actor.gender] != nil
              ball_rate = eval(ball_rate[1][@actor.gender])
            else
              if ball_rate[1][0] != nil
                ball_rate = eval(ball_rate[1][0])
              else
                ball_rate = 1
              end
            end
          when "taille"
            height = Pokemon_Info.height(@enemy.id).split(' ')[0].to_i
            ball_rate = eval(sprintf(ball_rate[1], height))
            if ball_rate == nil or ball_rate < 1
              ball_rate = 1
            end
          when "poids"
            weight = Pokemon_Info.weight(@enemy.id).split(' ')[0].to_i
            ball_rate = eval(sprintf(ball_rate[1], weight))
            if ball_rate == nil or ball_rate < 1
              ball_rate = 1
            end
          when "type"
            if ball_rate[1][1].include?(@enemy.type1)
              ball_rate = ball_rate[1][2]
            elsif @enemy.type2 != 0 and ball_rate[1].include?(@enemy.type2)
              ball_rate = ball_rate[1][2]
            elsif ball_rate[1][3] != nil
              ball_rate = ball_rate[1][3]
            else
              ball_rate = 1
            end
          when "id"
            if ball_rate[1][1].include?(@enemy.id)
              ball_rate = ball_rate[1][2]
            elsif ball_rate[1][3] != nil
              ball_rate = ball_rate[1][3]
            else
              ball_rate = 1
            end
          when "level"
            max = 99
            if ball_rate[1][2] != nil
              max = ball_rate[1][2]
            end
            ball_rate = eval( sprintf( ball_rate[1][1], @enemy.level ) )
            if ball_rate <= 1
              ball_rate = 1
            end
            if ball_rate >= max
              ball_rate = max
            end
          when "time"
            max = 99
            if ball_rate[1][2] != nil
              max = ball_rate[1][2]
            end
            ball_rate = eval( sprintf( ball_rate[1][1], $battle_var.round ) )
            if ball_rate <= 1
              ball_rate = 1
            end
            if ball_rate >= max
              ball_rate = max
            end
          else
            ball_rate = 1
          end
        else
          ball_rate = ball_rate[1]
        end
       
        multiplier = @enemy.rareness * (ball_rate)
        maxhp = @enemy.maxhp_basis
        hp = @enemy.hp
        catch_rate = Integer((((maxhp * 3 - hp * 2)*multiplier).to_f/(maxhp*3).to_f)*status_multiplier)
        catch_value = Integer(1048560 / (Math.sqrt(Math.sqrt(16711680/catch_rate.to_f))))
        list = [rand(65536), rand(65536), rand(65536), rand(65536)]
        j = 4 # nombre de fois que la balle oscille
        for i in list
          j -= i > catch_value ? 1 : 0
        end
       
        # Procédure / Animation
        # Lancer
        draw_text(Player.name + " utilise", ball_name + "!")
        @ball_sprite = Sprite.new
        @ball_sprite.bitmap = RPG::Cache.picture(ball_sprite)
        @ball_sprite.x = -25
        @ball_sprite.y = 270
        @ball_sprite.z = @z_level + 16
        t = 0.0
        pi = Math::PI
        loop do
          t += 16
          @ball_sprite.y = (270.0 - 230.0 * Math.sin(2 * pi / 3.0 * t / 445.0)).to_i
          @ball_sprite.x = -15 + t
          Graphics.update
          if @ball_sprite.x >= 445
            @ball_sprite.bitmap = RPG::Cache.picture(ball_open_sprite)
            break
          end
        end
       
        count = j
       
        # "Aspiration"
        @enemy_sprite.color = ball_color
        @enemy_sprite.color.alpha = 0
        @ball_sprite.z -= 2
        until @enemy_sprite.color.alpha >= 255
          @flash_sprite.opacity += 50
          @enemy_sprite.color.alpha += 50
          Graphics.update
        end
        Audio.se_play("Audio/SE/Pokeopen.wav")
        loop do
          @enemy_sprite.zoom_x -= 0.1
          @enemy_sprite.zoom_y -= 0.1
          @enemy_sprite.opacity -= 25
          @flash_sprite.opacity -= 25
          Graphics.update
          if @enemy_sprite.zoom_x <= 0.1
            @flash_sprite.opacity = 0
            @enemy_sprite.opacity = 0
            break
          end
        end
        @ball_sprite.bitmap = RPG::Cache.picture(ball_sprite)
       
        # Oscillement
        t = 0
        r = 0
        loop do
          t += 1
          @ball_sprite.y = 81 + 50*(1-Math.exp(-t/20.0)*(Math.cos(t*2*pi/30.0)).abs)
          if @ball_sprite.y >= 81+45 and r < 6
            r += 1
            Audio.se_play("Audio/SE/Pokerebond.wav")
          end
          Graphics.update
          if t >= 60
            break
          end
        end
       
        while count > 0
          count -= 1
          t = 0
          Audio.se_play("Audio/SE/Pokemove.wav")
          loop do
            t += 4
            @ball_sprite.angle = 40*Math.sin(2*pi*t/100.0)
            @ball_sprite.x = 449 - 12*Math.sin(2*pi*t/100.0)
            @ball_sprite.y = 131 + 12*Math.sin(2*pi*t/100.0)
            Graphics.update
            if t == 100
              @ball_sprite.angle = 0
              break
            end
          end
        end
       
        if j != 4
          # Echappé
          @ball_sprite.bitmap = RPG::Cache.picture(ball_open_sprite)
          @ball_sprite.z -= 1
          Audio.se_stop
          Audio.se_play("Audio/SE/Pokeopenbreak.wav")
          @enemy_sprite.oy = @enemy_sprite.bitmap.height
          @enemy_sprite.y += @enemy_sprite.bitmap.height / 2 + 34
          loop do
            @enemy_sprite.opacity += 25
            @enemy_sprite.zoom_x += 0.1
            @enemy_sprite.zoom_y += 0.1
            @ball_sprite.opacity -= 25
            @flash_sprite.opacity += 25
            Graphics.update
            if @enemy_sprite.zoom_x >= 1
              @enemy_sprite.oy = @enemy_sprite.bitmap.height / 2
              @enemy_sprite.y -= @enemy_sprite.bitmap.height / 2 + 34
              Graphics.update
              @ball_sprite.dispose
              break
            end
          end
          until @enemy_sprite.color.alpha <= 0
            @enemy_sprite.color.alpha -= 25
            @flash_sprite.opacity -= 25
            Graphics.update
          end
          @enemy_sprite.color.alpha = 0
          @enemy_sprite.opacity = 255
          @flash_sprite.opacity = 0
          Graphics.update
         
          string1 = j == 3 ? "Mince!" : j == 2 ? "Aaaah!" : j == 1 ? "Raah!" : "Oh non!"
          string2 = j == 3 ? "Ca y était presque!" : j == 2 ? "Presque!" : j == 1 ? "Ca y était presque!" : "Le POKéMON s'est libéré!"
          draw_text(string1, string2)
          wait(40)
        else
          for actor in $pokemon_party.actors
            if $battle_var.have_fought.include?(actor.party_index)
              actor.fight[0] += 1
              if actor.dead? and not(actor.vaudou)
                actor.vaudou = actor.medaille == nil ? false : $data_medaille[actor.medaille][4]
                if actor.vaudou
                  draw_text(actor.name + " subit la","malédiction !")
                  wait(40)
                  wait_hit
                end
              else
                actor.fight[1] += 1
              end
            end
          end
          # Attrapé
          @enemy_caught = true
          Audio.me_play("Audio/ME/Attraper.ogg")
          wait_hit
          until @ball_sprite.opacity <= 0
            @ball_sprite.opacity -= 25
            Graphics.update
          end
        end
        if j != 4
          return false
        elsif j == 4
          draw_text("Mon " + @enemy.name + " ! Voleur !")
          wait(40)
          voler_enemy
          return true
        end
      else
        # Procédure / Animation
        # Lancer
        draw_text(Player.name + " utilise", ball_name + "!")
        @ball_sprite = Sprite.new
        @ball_sprite.bitmap = RPG::Cache.picture(ball_sprite)
        @ball_sprite.x = -25
        @ball_sprite.y = 270
        @ball_sprite.z = @z_level + 16
        t = 0.0
        pi = Math::PI
        loop do
          t += 16
          @ball_sprite.y = (270.0 - 230.0 * Math.sin(2 * pi / 3.0 * t / 445.0)).to_i
          @ball_sprite.x = -15 + t
          Graphics.update
          if @ball_sprite.x >= 445
            break
          end
        end
       
        Graphics.update
        # Rejet
        draw_text(Trainer_Info.string(@trainer_id) + " dévie", "la " + ball_name + " !")
        Audio.se_stop
        Audio.se_play("Audio/SE/Pokeopenbreak.wav")
       
        t = 0
        loop do
          t += 1
          @ball_sprite.x -= -20
          @ball_sprite.y += t
          Graphics.update
          if t == 10
            @ball_sprite.dispose
            break
          end
        end
      end
     
      wait(40)
      draw_text("Tu n'auras jamais", "mon " + @enemy.name + " !")
      wait(40)

      return false
    end
   
    #------------------------------------------------------------ 
    # Fuite
    #------------------------------------------------------------           
    def run_able?(runner, opponent)
      if @run
        return super
      end
      return false
    end
   
    def flee_able(actor, enemy)
      if @run
        return super
      end
      @action_window.visible = true
      return false
    end
   
    def end_battle_flee(expulsion = false)
      if @run
        return super
      end
      draw_text("On ne s'enfuit pas", "d'un combat de dresseurs!")
      wait_hit
    end
   
    def end_battle_flee_enemy(expulsion = false)
      if @run
        return super
      end
      draw_text("On ne s'enfuit pas", "d'un combat de dresseurs!")
      wait_hit
    end
   
    #------------------------------------------------------------ 
    # Exp en cours de combat
    #------------------------------------------------------------     
    def exp_battle
      @actor_status.z = @z_level + 15
     
      # Réduction de liste
      $battle_var.have_fought.uniq!
      for index in $battle_var.have_fought
        actor = $pokemon_party.actors[index]
        if actor.dead?
          $battle_var.have_fought.delete(index)
        end
      end
      number = $battle_var.have_fought.length
     
      @enemy.skill_effect_reset
      @enemy.reset_stat_stage
      if @evolve_checklist == nil
        @evolve_checklist = []
      end
      if @money_rate == nil
        @money_rate = 1
      end
     
      # Recherche de paramètres
      type = 1.3
      exp_share_number = 0
      for pokemon in $pokemon_party.actors
        if not(pokemon.dead?) and Item.data(pokemon.item_hold)["expshare"]
          exp_share_number += 1
        end
      end
     
      for actor in $pokemon_party.actors
        if actor.dead?
          next
        end
       
        amount = nil
        if $battle_var.have_fought.include?(actor.party_index)
          amount = actor.exp_calculation(@enemy.battle_list, @enemy.level, number, type, exp_share_number)
          # Tag objet
          if Item.data(actor.item_hold)["amuletcoin"]
            @money_rate = 2
          end
        end
       
        if Item.data(actor.item_hold)["expshare"] and
            not($battle_var.have_fought.include?(actor.party_index)) and not(actor.dead?)
          amount = actor.exp_calculation(@enemy.battle_list, @enemy.level, number, type, exp_share_number, 0)
        end
       
        if amount != nil and not($pokemon_capturer)
          actor.skill_effect_reset
          actor.reset_stat_stage
          actor.add_bonus(@enemy.battle_list)
          draw_text(actor.given_name + " a gagné", amount.to_s + " points d'expérience!")
          Graphics.update
          wait_hit
       
          for i in 1..amount
            actor.add_exp_battle(1)
            if actor.level_check
              actor.level_up(self)
              if not(@evolve_checklist.include?(actor))
                @evolve_checklist.push(actor)
              end
            end
            if actor == @actor
              if @actor.exp_list[@actor.level+1] != nil and @actor.level < MAX_LEVEL
                divide = (@actor.exp_list[@actor.level+1]-@actor.exp_list[@actor.level])/192
                if divide == 0
                  divide = 1
                end
                if (@actor.exp - @actor.exp_list[@actor.level])%divide == 0
                  @actor_status.exp_refresh
                  Graphics.update
                end
              end
            end
          end
        else
          $pokemon_capturer = false
        end
      end
     
      @actor_status.refresh
      Graphics.update
     
      # Reset have_fought
      $battle_var.have_fought = [@actor.party_index]
     
    end
   
    #------------------------------------------------------------ 
    # Fin de combat
    #------------------------------------------------------------     
    def end_battle_victory
      $pokemon_party.incr_nb_matchs
      for actor in $pokemon_party.actors
        if $battle_var.have_fought.include?(actor.party_index)
          actor.fight[0] += 1
          if actor.dead? and not(actor.vaudou)
            actor.vaudou = actor.medaille == nil or $data_medaille[actor.medaille] == nil ? false : $data_medaille[actor.medaille][4]
            if actor.vaudou
              draw_text(actor.name + " subit la","malédiction !")
              wait(40)
              wait_hit
            end
          else
            actor.fight[1] += 1
          end
        end
      end
      #Audio.bgm_fade(800)
      exp_battle
     
      $battle_var.result_win = true
      Audio.me_play("Audio/ME/fainted_jingle.mid")
      #Audio.me_play("Audio/ME/trainer_jingle.mid")
      Audio.me_play("Audio/ME/PkmRS Victory2.mid")
     
      draw_text("Vous avez battu", Trainer_Info.string(@trainer_id) + "!")
     
      @enemy_sprite.opacity = 255
      @enemy_sprite.zoom_x = 1
      @enemy_sprite.zoom_y = 1
      @enemy_sprite.visible = true
      @start_enemy_battler = $alea ? "trainer" + $no_alea : Trainer_Info.battler(@trainer_id)
      @enemy_sprite.ox = @enemy_sprite.bitmap.width / 2
      @enemy_sprite.oy = @enemy_sprite.bitmap.height / 2
      @enemy_sprite.x = 723
      @enemy_sprite.y = (@enemy_sprite.bitmap.height * 2 / 3) - 10
      @enemy_sprite.bitmap = RPG::Cache.battler(@start_enemy_battler, 0)
      loop do
        @enemy_sprite.x -= 10
        Graphics.update
        if @enemy_sprite.x <= 464
          break
        end
      end
      wait_hit
     
     
      list_string = Trainer_Info.string_victory(@trainer_id)
      draw_text(list_string)
      wait_hit
     
     
      $battle_var.money = Trainer_Info.money(@trainer_id)
      draw_text(Player.name + " remporte " + ($battle_var.money).to_s + "$!")
      interets = 0
      bq = 0
      for i in $game_variables[5000]["banque"]
        i.maj
        if i.du > 0 and interets < $battle_var.money
          int_temp = interets + ($battle_var.money * BANQUE::TAUX / 100.0).round
          interets += int_temp > $battle_var.money ? $battle_var.money : int_temp
          i.du -= interets
          if i.du < 0
            interets += i.du
            i.du -= i.du
          end
          bq += 1
        end
      end
      if bq == 1
        draw_text(interets.to_s + "$ ont été prélevés pour","le remboursement de la banque !")
      elsif bq > 1
        draw_text(interets.to_s + "$ ont été prélevés pour","le remboursement des banques !")
      end
      $battle_var.money -= interets
      $pokemon_party.add_money($battle_var.money)
      wait(40)
     
      wait(30)
      $game_system.bgm_play($game_temp.map_bgm)
      for actor in @evolve_checklist
        info = actor.evolve_check
        if info != false
          scene = Pokemon_Evolve.new(actor, info, @z_level + 200)
          scene.main
        end
      end
     
      end_battle
    end
   
   
  end
 
end


Voilà ce que tu voulais ! Imbécile heureux merci de ton aide ! ^^

Posté par joeyw le 27 Oct - 23:03 (2013)
Les musiques de victoire se situent aux lignes 951, 952 et 953 chez toi Imbécile heureux

Posté par Mysterïous le 27 Oct - 23:05 (2013)
Comment les paramètrées ? de facon à ce que la musique de victoire de tel dresseur, soit tel musique ? je ne peux plus passer par la commande "modifier ME victoire de combat" via RMXP ? Bouche extensible

Posté par joeyw le 27 Oct - 23:13 (2013)
Peut-être je ne sais pas Imbécile heureux
Chez moi, tout passe par une variable qui définie quelle musique sera jouée. Ca donne un truc du genre :

Si la variable "musique" = 0
-> on joue la musique champion

Ou bien la variable "musique" = 1
-> on joue la musique rival

Sinon
-> on joue la musique dresseur

Il ne te reste alors qu'à changer la variable à chaque fois que le joueur se prépare à affronter autre chose qu'un dresseur simple Imbécile heureux

Posté par Mysterïous le 27 Oct - 23:17 (2013)
Excellent, en bref je tripote un ^peu le script et j'ajoute des nouvelles variables pour la musique de victoire ? ^^
Un exemple "en image" via le logiciel serait pas de trop si tu pouvais ^^' !
Mais merci de l'astuce ! Gros matou qui ronronne

Posté par joeyw le 27 Oct - 23:23 (2013)
Ca donnerait un truc comme :

Ensuite, tu peux par la même occasion faire pareil pour les musiques de combat aux lignes 198, 199 et 200 Imbécile heureux

Posté par Mysterïous le 29 Oct - 09:31 (2013)
joeyw a écrit:
Ca donnerait un truc comme :

Ensuite, tu peux par la même occasion faire pareil pour les musiques de combat aux lignes 198, 199 et 200 Imbécile heureux


Je rajoute ce CODE à partir de quel ligne ? Scooby-doo
Désolé, mais autant être noob jusqu'au bout ! Résignation man

Posté par joeyw le 29 Oct - 11:39 (2013)
A partir de la ligne 951 qui définit les musiques par défaut Imbécile heureux

Posté par Mysterïous le 29 Oct - 21:15 (2013)
Je l'ai ajouter mais sa me plante dans le script à la dernière ligne au lancement du jeu ! Bouche extensible


Posté par joeyw le 29 Oct - 21:33 (2013)
Tu as oublié le
Code:
end

Imbécile heureux

Posté par Mysterïous le 29 Oct - 21:40 (2013)
joeyw a écrit:
Tu as oublié le
Code:
end

Imbécile heureux


Ah merci ! ^^
Et pour activer la variable, je l'active avant le combat ?
Variable 0099 = 0 ^^ Rameric après manger

Posté par Diamglam le 29 Oct - 21:47 (2013)
oui active là avant le combat comme un interrupteur ^^

Posté par joeyw le 29 Oct - 21:49 (2013)
Oui, juste avant la fonction du démarrage de combat.
Par contre, n'oublie pas de changer la variable pour la remettre en mode "dresseur" sinon tous les combats auront la musique de ton champion ensuite Imbécile heureux