Partagez
Aller en bas
Blockade
Blockade
Membre

Nombre de messages : 194
Age : 27
Distinction : aucune
Date d'inscription : 06/09/2008

Musique aléatoire dans les combats Empty Musique aléatoire dans les combats

le Lun 9 Aoû 2010 - 16:03
Musique aléatoire dans les combats


Auteur : Blockade
Date : 09/08/2010
Version : 1.1

Description du script :
Grâce à ce script, vous pouvez définir des musique aléatoire pour chaque combat aléatoire. Si jamais vous voulez une musique précise pour un boss par exemple, il suffira d'activer un interrupteur, dont l'ID est configurable dans le module de configuration, et de définir normalement une musique de combat via les évènements.

Installation :
Placez juste au-dessus de main

Utilisation :
Configurez les musiques de combat que vous voulez dans le module de configuration.
/!\ Avec ce script la fonction "changer de BGM de combat" ne marchera plus. Si vous voulez choisir une musique spécifique pour un combat, il suffit d'activer l'interrupteur dont l'ID est configurable dans le module de configuration pour désactiver les musiques aléatoire, et rétablir le fonctionnement de la fonction "changer de BGM de combat".

Script :
Code:
#===============================================================================
# ▼ [VX] Musique aléatoire pour les combats
#------------------------------------------------------------------------
# Blockade Script Library - Musique aléatoire pour les combats
# Date : 09/08/2010
# Niveau : Facile
# Version : 1.1
# Forum d'origine : http://rpg-maker-vx.bbactif.com/forum.htm
#
#  Grâce à ce script, vous pouvez définir des musique aléatoire pour chaque combat aléatoire.
# Si jamais vous voulez une musique précise pour un boss par exemple, il suffira d'activer un
# interrupteur, dont l'ID est configurable dans le module de configuration, et de définir
# normalement une musique de combat via les évènements.
#=======================================================================
# ▼ Mises à jour
# -------------------------------------------------------------------------
# ¤  09/08/2010 -  Version 1.0  - Création du script
# ¤  09/08/2010 -  Version 1.1  - Correction d'un bug (merci à wilkyo !)
#=======================================================================
# ▼ Fonctionnalités
# -------------------------------------------------------------------------
#  - Permet de définir des musique aléatoires pour chaque combat aléatoire
#=======================================================================
# ▼ Installation
# --------------------------------------------------------------------------
#  Placez juste au-dessus de main
#=======================================================================
# ▼ Utilisation
# --------------------------------------------------------------------------
# Configurez les musiques de combat que vous voulez dans le module de configuration.
# /!\ Avec ce script la fonction "changer de BGM de combat" ne marchera plus. Si vous
# voulez choisir une musique spécifique pour un combat, il suffit d'activer l'interrupteur
# dont l'ID est configurable dans le module de configuration pour désactiver les musiques
# aléatoire, et rétablir le fonctionnement de la fonction "changer de BGM de combat".
#=======================================================================
# ▼ Alias et compatibilité
# --------------------------------------------------------------------------
# ► Méthodes réecrites :
#  Scene_Map > call_battle
#===============================================================================
module BSL
  module MAC
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # MUSIQUE_ALEATOIRE - Liste des musiques aléatoire
    #-------------------------------------------------
    # C'est ici que ce configure la liste des musique aléatoires qui se joueront
    # automatiquement lors d'un combat aléatoire. N'oubliez pas que si vous voulez
    # choisir une musique spécifique il faudra désactiver la fonction de lecture de musique
    # aléatoire, grâce à l'interrupteur dont l'ID est configurable juste en dessous.
    # MUSIQUE_ALEATOIRE est un hash donc n'oubliez pas la virgule en fin de ligne.
    # Elle se construit de la manière suivante :
    # MUSIQUE_ALEATOIRE = {"Nom de la musique 1" => [volume,tempo],
    #                                                "Nom de la musique 2" => [volume,tempo]
    # }
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    #                                              Nom      Volume Tempo 
    MUSIQUE_ALEATOIRE = { "Battle4" => [100,100],
                                                    "Battle2" => [100,100],
                                                    "Battle3" => [100,100]
                                                  } # <= Ne touchez pas à ca
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # ID_INT_DESACTIVER - ID de l'interrupteur
    #-------------------------------------------------
    # L'ID de l'interrupteur qui désactive la fonction musique aléatoire (pour les combats de
    # boss par exemple) Si vous l'activez, il désactivera la musique aléatoire.
    # /!\ Tant que cet interrupteur n'est pas activé, la fonction "changer de BGM de combat"
    # ne marchera pas !
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=                                             
    ID_INT_DESACTIVER = 1
  end
end
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs the map screen processing.
#==============================================================================
class Scene_Map < Scene_Base
  include BSL::MAC
  #--------------------------------------------------------------------------
  # * Switch to Battle Screen
  #--------------------------------------------------------------------------
  def call_battle
    @spriteset.update
    Graphics.update
    $game_player.make_encounter_count
    $game_player.straighten
    $game_temp.map_bgm = RPG::BGM.last
    $game_temp.map_bgs = RPG::BGS.last
    RPG::BGM.stop
    RPG::BGS.stop
    Sound.play_battle_start
    unless $game_switches[ID_INT_DESACTIVER]
      keys = MUSIQUE_ALEATOIRE.keys
      key_rand = keys[rand(keys.size)]
      data = MUSIQUE_ALEATOIRE[key_rand]
      bgm_rand = RPG::BGM.new(key_rand,data[0],data[1])
      $game_system.battle_bgm = bgm_rand
    end
    $game_system.battle_bgm.play
    $game_temp.next_scene = nil
    $scene = Scene_Battle.new
  end
end

Démo :
http://www.megaupload.com/?d=IOAH7B5O


Dernière édition par Blockade le Lun 9 Aoû 2010 - 23:45, édité 3 fois
Anonymous
Invité
Invité

Musique aléatoire dans les combats Empty Re: Musique aléatoire dans les combats

le Lun 9 Aoû 2010 - 18:35
Merci encore pour ce joli script Blockade !
Que dire de plus sous peine de se répéter ? ^^'
wilkyo
wilkyo
Membre

Nombre de messages : 316
Age : 28
Localisation : Loiret
Distinction : Sauveur de miches // Chou (l)

[Coco' Smile]

Adepte de Pedobear // Lécheur de lolis

[Mist' Wink]

Personnage Colorée // Instructeur de boulet

[Wax Rolling Eyes]
Date d'inscription : 01/09/2008
http://www.wilkyo.com

Musique aléatoire dans les combats Empty Re: Musique aléatoire dans les combats

le Lun 9 Aoû 2010 - 23:00
Bonsoir, Blockade.
Ce script m'a l'air sympatoche.
Mais j'ai une légère remarque:
Tu utilises la méthode:
Code:
key_rand = keys[rand(keys.size - 1)]
Si je traduis dans ton cas (3 musiques)
ça donne
Code:
key_rand = keys[rand(2)]
Le problème, c'est que j'ai déjà fait des tests avec la fonction rand(n) ya un moment et j'en ai conclu qu'on ne pouvait avoir que des nombres entre 0 et n-1 (compris) et il n'atteint jamais n.
Donc, dans ton cas, jamais 2.
Alors il ne peut y avoir que keys[0] et keys[1], soient 2 musiques sur les 3 entrées plus haut...

J'ai testé et je confirme !
Bon, l'erreur est humaine Wink
T'as juste à retirer ton -1

Et si tu me crois pas, colles ça dans un appel de script:
Code:
for i in 0...50
print rand(2)
end
T'auras que 0 et 1. (on dirait du binaire, tiens)

Voila, bonne fin de soirée Wink
Et bonne continuation.
Blockade
Blockade
Membre

Nombre de messages : 194
Age : 27
Distinction : aucune
Date d'inscription : 06/09/2008

Musique aléatoire dans les combats Empty Re: Musique aléatoire dans les combats

le Lun 9 Aoû 2010 - 23:38
Oh merci Smile
J'ignorais ce détail ! De toute facon j'ai regardé l'aide confirme ce que tu dit :
Creates a random integer in the range 0 ≤ integer < max.

C'est bien inférieur strict et non pas inférieur ou égal xD
Merci je corrige ca tout de suite =)
Coco'
Coco'
Staffeux retraité

Nombre de messages : 6577
Age : 26
Localisation : Nord/Douai
Distinction : EL DICTATOR COCO'
Coco-Dieu en puissance

Musique aléatoire dans les combats Magikarpe Grand gourou suppléant de la secte des MAGIKARP
Leader charismatique des 2beStaffieux

N°1 du forum
Président, vice-présidents et membres honoraires de la cour suprême du forum
Président de l'association des grosses distinctions CMB
Date d'inscription : 02/07/2008
https://www.rpgmakervx-fr.com

Musique aléatoire dans les combats Empty Re: Musique aléatoire dans les combats

le Mar 10 Aoû 2010 - 0:56
Joli script Blocky, merci du partage x3
Shadow of Life
Shadow of Life
Membre

Nombre de messages : 870
Age : 23
Localisation : Joyeux. Comment ça c'est pas la bonne case ?
Distinction : Artiste de la flagornerie.
Porte parole du Ô grand Voilà voilà.
Président du club des masochistes du forum
Fake Gentleman

Soumis ^^
Date d'inscription : 13/09/2009

Musique aléatoire dans les combats Empty Re: Musique aléatoire dans les combats

le Mar 10 Aoû 2010 - 12:19
Oo

Magnifique ! Comme d'habitude ! Tu en sors de plus en plus dis moi !
Bien joué Blockade ... continue sur ta lancée.
Et merci hein . =D
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum