mario5102 Paysan (niveau 4)
Messages postés : 36 Date d'inscription : 25/11/2013 Jauge LPC :
| Sujet: Changer les battlebacks en fonction de la zone Mar 26 Nov 2013 - 19:00 | |
| J'ai trouvé ce script plutot utile ici : http://rpg-maker-vx.bbactif.com/ et donc je le partage puisqu'il peut être utile pour ne pas avoir le même battleback partout. Le script est de Tiroflan - Code:
-
#----------------------------------------# ####BACKGROUNDS PAR ZONE#### ##Le 04/01/12 par Tiroflan## ##Remerciements à DeeDee13010 pour l'idée## #----------------------------------------#
# Effet : En plus du battlebacks de base qu'il y a dans la map, # vous pouvez en affecter des nouveaux selon la zone où le combat commence.
#----------------------------------------# # Utilisation : Dans la note de l'onglet de la map, entrez la ligne :
# ZONE ZONE_ID FOND SOL
# Avec ZONE qui sert juste à la vérification par le script, # ZONE_ID qui est le numéro de la zone ciblée, # SOL le nom du battleback sur lequel les combattants marchent, tel # qu'il est écrit dans les onglets graphiques, et idem pour FOND qui sera # l'image d'arrière plan.
# EXEMPLE : ZONE 3 Forest1 GrassMaze
# Dans la plupart des cas, il y aura un retour à la ligne # causé par la longueur des noms des battlebacks, # mais tant que ce retour est automatique (n'appuyez pas sur entrée !), # il n'y aura pas de problèmes #----------------------------------------#
# 3 méthodes ont été aliasées : # setup dans Game_Map # create_battleback1 et create_battleback2 dans Spriteset_Battle
#----------------------------------------#
#----------------------------------------# # Au chargement de la map, on récupère les zones concernées et leurs battlebacks respectifs. #----------------------------------------# class Game_Map attr_reader :background_data # Contient les zones/battlebacks alias backg_setup setup def setup(map_id) backg_setup(map_id) setup_backgrounds end def setup_backgrounds @background_data = {"area" => [] , "floor" => [] , "wall" => []} note = @map.note note.split(/[\r\n]+/).each { |line| #On lit la note ligne par ligne. str = line.split #Puis 'mot' par 'mot'. case str[0] when "ZONE" @background_data["area"].push(str[1].to_i) @background_data["floor"].push(str[2].to_s) @background_data["wall"].push(str[3].to_s) end} end end #----------------------------------------#
#----------------------------------------# # Ici, on modifie juste les fonctions qui récupèrent les battlebacks # pour les afficher au début du combat, et on remplace # quand c'est nécessaire par les battlebacks contenus dans $game_map.background_data. #----------------------------------------# class Spriteset_Battle alias old_create_battleback1 create_battleback1 def create_battleback1 zone = $game_map.region_id($game_player.x, $game_player.y) #zone au moment du combat if $game_map.background_data["area"].include?(zone) #La zone fait elle partie de celles qui ont des battlebacks particuliers ? index = $game_map.background_data["area"].index(zone) #On récupère l'indice de la zone dans l'array des zones @back1_sprite = Sprite.new(@viewport1) @back1_sprite.bitmap = Cache.battleback1($game_map.background_data["wall"][index]) #On applique l'indice pour retrouver le bon battleback. @back1_sprite.z = 0 center_sprite(@back1_sprite) else old_create_battleback1 end end
alias old_create_battleback2 create_battleback2 #Même chose pour la deuxième image. def create_battleback2 zone = $game_map.region_id($game_player.x, $game_player.y) if $game_map.background_data["area"].include?(zone) index = $game_map.background_data["area"].index(zone) @back2_sprite = Sprite.new(@viewport1) @back2_sprite.bitmap = Cache.battleback2($game_map.background_data["floor"][index]) @back2_sprite.z = 1 center_sprite(@back2_sprite) else old_create_battleback2 end end
end #----------------------------------------# |
|
City Hunter Administrateur
Messages postés : 6524 Date d'inscription : 25/05/2011 Jauge LPC :
| Sujet: Re: Changer les battlebacks en fonction de la zone Mar 26 Nov 2013 - 19:23 | |
| Merci du partage je t'ajoute des points |
|