[Aide] Super script customisable

La création de jeux indépendants/amateurs (tuto, entraide, questions...) sous les moteurs de la série RPG Maker.
Ddken
Koruldia Hunter
Messages : 72
Localisation : Montreal

Message non lu par Ddken » mar. févr. 22, 2011 5:09 am

Merci infiniment, Raytwo! La BGM s'appelera... Menu :stupide: Effectivement, je parle de BGM.
Bon, je file tester ton script!

Aïe! une petite erreur à la ligne 45
Je t'envoie l'image de l'erreur lorsqu'on sort du menu
Pour le nom de BGM, il n'y a aucun problème. J'ai compris qu'il fallait la nommer tera :clin:
C'est à télécharger.
Je suis celui qui marquera toute une génération!

Avatar de l’utilisateur
Darxenas
Koruldia Divinity
Messages : 5138
Localisation : Kingersheim, France
Contact :

Message non lu par Darxenas » mar. févr. 22, 2011 4:49 pm

Ligne 30, essaie de remplacer
Audio.bgm_play("Audio/BGM/" + Fond::Titre)
par
Audio.bgm_play("Audio/BGM/ [nom de ta bgm]", 100, 100)

Bien entendu, remplace le "[nom de ta bgm]" par le nom de ta bgm et sans les crochets.
Exemple ton fichier musique se nomme Destati, alors ça fera :
Audio.bgm_play("Audio/BGM/Destati", 100, 100)

Le module ici n'est pas nécessaire, il faut juste que ton bgm se trouve dans le dossier des BGM de ton projet.
La première valeur 100 est le niveau du volume de la BGM, l'autre valeur 100 est le pitch du BGM (que tu peux changer de 0 à 100). J'espère que ça va marcher.

EDIT : ok je suis nul mdr ! Ne PAS suivre ce conseil !!! xD
Dernière modification par Darxenas le mer. févr. 23, 2011 6:18 am, modifié 1 fois.

Ddken
Koruldia Hunter
Messages : 72
Localisation : Montreal

Message non lu par Ddken » mar. févr. 22, 2011 5:32 pm

Désolé pour le dérangement Darxenas, mais j'avais compris... :clin:
à présent, je suis en train d'apprendre le Ryby sur ce site:
http://www.ruby-lang.org/fr/documentation/quickstart/2/
Je suis celui qui marquera toute une génération!

Raytwo-x
Koruldia Master
Messages : 2041

Message non lu par Raytwo-x » mar. févr. 22, 2011 5:49 pm

Oula qu'est-ce que c'est que cette erreur héhé
Non non Darx, faut pas remplacer, justement, c'est une question de facilité. Tout en haut du script se trouve :

Code : Tout sélectionner

#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================

class Scene_Menu < Scene_Base
 
  # Ajout de Raytwo - Module Fond
  module Fond
    # Insérer le titre du BGM entre les guillements
    Titre = "tera"
  end 
Sauf que le "tera", tu peux le remplacer par "menu" si ça te chante, c'est justement pour un remplacement facile. Tu changes le nom entre guillemets et tu dois pas aller trafiquer dans le script pour changer la musique ! :dent:

Petite question : As-tu mis une musique sur ta map? C'est p'tet ça le problème.
Quoique non, je viens encore de tester le script à l'instant sans mettre de musique sur la map, et il a très bien fonctionné.
Et même si je fais une faute dans le titre de la musique, je reçois au minimum une erreur me disant que le fichier n'existe pas.

En faites l'erreur est écrite comme si la fonction bgm_play n'existe pas, c'est louche. Essaye le script sur un autre projet pour voir. :)

Ddken
Koruldia Hunter
Messages : 72
Localisation : Montreal

Message non lu par Ddken » mar. févr. 22, 2011 9:08 pm

Ouais. Quand j'essaie sur un nouveau projet (vierge), ça écrit le même message... :pleure:
Je suis celui qui marquera toute une génération!

Raytwo-x
Koruldia Master
Messages : 2041

Message non lu par Raytwo-x » mar. févr. 22, 2011 9:39 pm

Tu as quoi d'autre comme scripts dans ton projet?
Car un ami à moi qui avait mis plusieurs scripts bugués dans son projet n'arrivait pas non plus à ajouter un de mes scripts à cause des autres qui avaient des problèmes.
Mais j'trouve ça louche comme erreur. Faudra p'tet attendre un passage du Kayz pour trouver une solution sinon. Désolé ^^'

Ddken
Koruldia Hunter
Messages : 72
Localisation : Montreal

Message non lu par Ddken » mer. févr. 23, 2011 12:32 am

Ok, il n'y pas de problème. J'ai testé sur un projet vierge, et le même message d'erreur est apparu.
Sinon, j'espère pouvoir corriger ça moi-même d'ici peu, quand j'aurai fini de maîtriser le ruby.
Je suis celui qui marquera toute une génération!

Raytwo-x
Koruldia Master
Messages : 2041

Message non lu par Raytwo-x » mer. févr. 23, 2011 1:05 am

Effectivement, j'ai la même erreur sur un autre projet. J'vais essayer de corriger ça.

Edit : EVIDEMMENT, j'ai oublié un script ! Pardon !!!

Le voici de suite ! ( Scene_map )


Code : Tout sélectionner

#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs the map screen processing.
#==============================================================================

class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    $game_map.refresh
    @spriteset = Spriteset_Map.new
    @message_window = Window_Message.new
  end
  #--------------------------------------------------------------------------
  # * Execute Transition
  #--------------------------------------------------------------------------
  def perform_transition
    if Graphics.brightness == 0       # After battle or loading, etc.
      fadein(30)
    else                              # Restoration from menu, etc.
      Graphics.transition(15)
    end
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    if $scene.is_a?(Scene_Battle)     # If switching to battle screen
      @spriteset.dispose_characters   # Hide characters for background creation
    end
    snapshot_for_background
    @spriteset.dispose
    @message_window.dispose
    if $scene.is_a?(Scene_Battle)     # If switching to battle screen
      perform_battle_transition       # Execute pre-battle transition
    end
  end
  #--------------------------------------------------------------------------
  # * Basic Update Processing
  #--------------------------------------------------------------------------
  def update_basic
    Graphics.update                   # Update game screen
    Input.update                      # Update input information
    $game_map.update                  # Update map
    @spriteset.update                 # Update sprite set
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    $game_map.interpreter.update      # Update interpreter
    $game_map.update                  # Update map
    $game_player.update               # Update player
    $game_system.update               # Update timer
    @spriteset.update                 # Update sprite set
    @message_window.update            # Update message window
    unless $game_message.visible      # Unless displaying a message
      update_transfer_player
      update_encounter
      update_call_menu
      update_call_debug
      update_scene_change
    end
  end
  #--------------------------------------------------------------------------
  # * Fade In Screen
  #     duration : time
  #    If you use Graphics.fadeout directly on the map screen, a number of
  #    problems can occur, such as weather effects and parallax  scrolling
  #    being stopped. So instead, perform a dynamic fade-in.
  #--------------------------------------------------------------------------
  def fadein(duration)
    Graphics.transition(0)
    for i in 0..duration-1
      Graphics.brightness = 255 * i / duration
      update_basic
    end
    Graphics.brightness = 255
  end
  #--------------------------------------------------------------------------
  # * Fade Out Screen
  #     duration : time
  #    As with the fadein above, Graphics.fadein is not used directly.
  #--------------------------------------------------------------------------
  def fadeout(duration)
    Graphics.transition(0)
    for i in 0..duration-1
      Graphics.brightness = 255 - 255 * i / duration
      update_basic
    end
    Graphics.brightness = 0
  end
  #--------------------------------------------------------------------------
  # * Player Transfer  Processing
  #--------------------------------------------------------------------------
  def update_transfer_player
    return unless $game_player.transfer?
    fade = (Graphics.brightness > 0)
    fadeout(30) if fade
    @spriteset.dispose              # Dispose of sprite set
    $game_player.perform_transfer   # Execute player transfer
    $game_map.autoplay              # Automatically switch BGM and BGS
    $game_map.update
    Graphics.wait(15)
    @spriteset = Spriteset_Map.new  # Recreate sprite set
    fadein(30) if fade
    Input.update
  end
  #--------------------------------------------------------------------------
  # * Encounter Processing
  #--------------------------------------------------------------------------
  def update_encounter
    return if $game_player.encounter_count > 0        # Check steps
    return if $game_map.interpreter.running?          # Event being executed?
    return if $game_system.encounter_disabled         # Encounters forbidden?
    troop_id = $game_player.make_encounter_troop_id   # Determine troop
    return if $data_troops[troop_id] == nil           # Troop is invalid?
    $game_troop.setup(troop_id)
    $game_troop.can_escape = true
    $game_temp.battle_proc = nil
    $game_temp.next_scene = "battle"
    preemptive_or_surprise
  end
  #--------------------------------------------------------------------------
  # * Determine Preemptive Strike and Surprise Attack Chance
  #--------------------------------------------------------------------------
  def preemptive_or_surprise
    actors_agi = $game_party.average_agi
    enemies_agi = $game_troop.average_agi
    if actors_agi >= enemies_agi
      percent_preemptive = 5
      percent_surprise = 3
    else
      percent_preemptive = 3
      percent_surprise = 5
    end
    if rand(100) < percent_preemptive
      $game_troop.preemptive = true
    elsif rand(100) < percent_surprise
      $game_troop.surprise = true
    end
  end
  #--------------------------------------------------------------------------
  # * Determine if Menu is Called due to Cancel Button
  #--------------------------------------------------------------------------
  def update_call_menu
    if Input.trigger?(Input::B)
      return if $game_map.interpreter.running?        # Event being executed?
      return if $game_system.menu_disabled            # Menu forbidden?
      $game_temp.menu_beep = true                     # Set SE play flag
      $game_temp.next_scene = "menu"
    end
  end
  #--------------------------------------------------------------------------
  # * Determine Bug Call Due to F9 key
  #--------------------------------------------------------------------------
  def update_call_debug
    if $TEST and Input.press?(Input::F9)    # F9 key during test play
      $game_temp.next_scene = "debug"
    end
  end
  #--------------------------------------------------------------------------
  # * Execute Screen Switch
  #--------------------------------------------------------------------------
  def update_scene_change
    return if $game_player.moving?    # Is player moving?
    case $game_temp.next_scene
    when "battle"
      call_battle
    when "shop"
      call_shop
    when "name"
      call_name
    when "menu"
      call_menu
    when "save"
      call_save
    when "debug"
      call_debug
    when "gameover"
      call_gameover
    when "title"
      call_title
    else
      $game_temp.next_scene = nil
    end
  end
  #--------------------------------------------------------------------------
  # * 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
    $game_system.battle_bgm.play
    $game_temp.next_scene = nil
    $scene = Scene_Battle.new
  end
  #--------------------------------------------------------------------------
  # * Switch to Shop Screen
  #--------------------------------------------------------------------------
  def call_shop
    $game_temp.next_scene = nil
    $scene = Scene_Shop.new
  end
  #--------------------------------------------------------------------------
  # * Switch to Name Input Screen
  #--------------------------------------------------------------------------
  def call_name
    $game_temp.next_scene = nil
    $scene = Scene_Name.new
  end
  #--------------------------------------------------------------------------
  # * Switch to Menu Screen
  #--------------------------------------------------------------------------
  def call_menu
    if $game_temp.menu_beep
      Sound.play_decision
      $game_temp.menu_beep = false
    end
    $game_temp.map_bgm = RPG::BGM.last
    $game_temp.map_bgs = RPG::BGS.last
    RPG::BGM.stop
    RPG::BGS.stop
    $game_temp.next_scene = nil
    $scene = Scene_Menu.new
  end
  #--------------------------------------------------------------------------
  # * Switch to Save Screen
  #--------------------------------------------------------------------------
  def call_save
    $game_temp.next_scene = nil
    $scene = Scene_File.new(true, false, true)
  end
  #--------------------------------------------------------------------------
  # * Switch to Debug Screen
  #--------------------------------------------------------------------------
  def call_debug
    Sound.play_decision
    $game_temp.next_scene = nil
    $scene = Scene_Debug.new
  end
  #--------------------------------------------------------------------------
  # * Switch to Game Over Screen
  #--------------------------------------------------------------------------
  def call_gameover
    $game_temp.next_scene = nil
    $scene = Scene_Gameover.new
  end
  #--------------------------------------------------------------------------
  # * Switch to Title Screen
  #--------------------------------------------------------------------------
  def call_title
    $game_temp.next_scene = nil
    $scene = Scene_Title.new
    fadeout(60)
  end
  #--------------------------------------------------------------------------
  # * Execute Pre-battle Transition
  #--------------------------------------------------------------------------
  def perform_battle_transition
    Graphics.transition(80, "Graphics/System/BattleStart", 80)
    Graphics.freeze
  end
end

Ddken
Koruldia Hunter
Messages : 72
Localisation : Montreal

Message non lu par Ddken » ven. mai 20, 2011 7:36 am

Je répond après 3 mois, infiniment désolé.
Merci beaucoup Raytwo :)
Je suis celui qui marquera toute une génération!

Raytwo-x
Koruldia Master
Messages : 2041

Message non lu par Raytwo-x » ven. mai 20, 2011 2:44 pm

Ah, je pensais que c'était passé à la poubelle ! Pas de problèmes, amuse toi bien avec ! :dent: