RPG-Forum: [MODIF] - [SCRIPT] - [RMVX] - RPG-Forum

Aller au contenu

Page 1 sur 1

[MODIF] - [SCRIPT] - [RMVX] Changer de battleback selon la map !!

#1 L'utilisateur est hors-ligne   ASHKA Icône

  • Ecuyer
  • PipPipPip
  • Groupe : Membres +
  • Messages : 136
  • Inscrit(e) : 12-novembre 07
  • Gender:Male
  • Location:Je suis le " LOGOS " donc je suis partout !!

Posté 13 mars 2008 - 20:32

Edition : Script V 2.1 !! Nouvelle fonction !!
Changer de battleback selon la map et la zone !!


Autre leger defaut du VX, l'impossibilité d'avoir plusieurs battleback.
Enfin, pas sans un script de ce genre :
( A copier et a coller dans un nouveau script inseré à l'endroit prevu )

#			Changer de battleback selon la map et la zone


# La partie ci-dessous supprime le fond d'origine.
# J'ai neutralisé l'effet d'ondulation.
# Si vous voulez le garder, supprimez les # devant les trois dernieres lignes ( 26 à 28 )
# J'ai aussi gardé le " sol ", si vous voulez le supprimer, neutraliser le " sol "
# placez un # au tout debut des lignes 15, 104 et 172 du script " Spriteset_battle " d'origine.
# ( Dans les methodes " initialize ", " update " et " dispose ", la ligne avec " battlefloor " )
# --------------------------------------------------------------------------
class Spriteset_Battle
  def create_battleback
	@battleback_sprite = Sprite.new(@viewport1)
	@battleback_sprite.bitmap = Cache.system($battleback_name)
	@battleback_sprite.ox = 320
	@battleback_sprite.oy = 240
	@battleback_sprite.x = 272
	@battleback_sprite.y = 176
#	@battleback_sprite.wave_amp = 8
#	@battleback_sprite.wave_length = 240
#	@battleback_sprite.wave_speed = 120
  end
end
# --------------------------------------------------------------------------
# La partie ci-dessous associe une map à un battleback.
# Les premieres lignes sont des tableaux stockant des ID des maps.
# Les conditions en dessous associent un tableau ( par le biais des ID des maps qu'il contient ) à un battleback.
# Rajouter les ID des maps dans le tableau de votre choix !!
# Et supprimez le # devant les lignes dont le tableau est utilisé.
# Tout vos battlebacks doivent etre importés dans le repertoire " system " du gestionnaire.
# Il suffit ensuite de remplacer "name" par le nom d'un de vos battlebacks ( entre " " ).
# Si vous utilisez plus que neuf battleback ( evidement ), il suffit de créer un nouveau tableau à la suite des autres.
# L'endroit est indiqué.

#	back_10 = [ID, ID, ID, ID, ID]

# Et d'inserer une nouvelle condition juste au dessus du " end " ( le dernier de cette partie ).
# L'endroit est indiqué.

#	elsif back_10.include?($game_map.map_id)
#	$battleback_name = "name"

# --------------------------------------------------------------------------
class Scene_Map < Scene_Base
  def update
	super
	back_1 = [ID, ID, ID] # Placer ici toutes les ID des maps associé au back 1
#	back_2 = [ID, ID] # Placer ici toutes les ID des maps associé au back 2
#	back_3 = [ID, ID] # Placer ici toutes les ID des maps associé au back 3
#	back_4 = [ID, ID] # Placer ici toutes les ID des maps associé au back 4
#	back_5 = [ID, ID] # Placer ici toutes les ID des maps associé au back 5
#	back_6 = [ID, ID] # Placer ici toutes les ID des maps associé au back 6
#	back_7 = [ID, ID] # Placer ici toutes les ID des maps associé au back 7
#	back_8 = [ID, ID] # Placer ici toutes les ID des maps associé au back 8
#	back_9 = [ID, ID] # Placer ici toutes les ID des maps associé au back 9

# Ajouter ci-dessus les tableaux de vos autres battlebacks
   if back_1.include?($game_map.map_id)
	  $battleback_name = "name" # Nom du battleback 1 lié au tableau back_1
	elsif back_2.include?($game_map.map_id)
	  $battleback_name = "name" # Nom du battleback 2 lié au tableau back_2
	elsif back_3.include?($game_map.map_id)
	  $battleback_name = "name" # Nom du battleback 3 lié au tableau back_3
	elsif back_4.include?($game_map.map_id)
	  $battleback_name = "name" # Nom du battleback 4 lié au tableau back_4
	elsif back_5.include?($game_map.map_id)
	  $battleback_name = "name" # Nom du battleback 5 lié au tableau back_5
	elsif back_6.include?($game_map.map_id)
	  $battleback_name = "name" # Nom du battleback 6 lié au tableau back_6
	elsif back_7.include?($game_map.map_id)
	  $battleback_name = "name" # Nom du battleback 7 lié au tableau back_7
	elsif back_8.include?($game_map.map_id)
	  $battleback_name = "name" # Nom du battleback 8 lié au tableau back_8
	elsif back_9.include?($game_map.map_id)
	  $battleback_name = "name" # Nom du battleback 9 lié au tableau back_9

# Ajouter ci-dessus les conditions pour vos autres battleback	
	end
	# si le joueur est dans une area incluant [A], le battleback est different
	for area in $data_areas.values
	  if $game_player.in_area?(area) and area.name.include?("[A]") 
		choose_bback(area)
	  end
	end
	$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
# --------------------------------------------------------------------------
# Choix du battleback des areas
# La partie ci-dessous attribue un battleback selon la zone où le héros est.
# Sur une map, vous avez le back principal, celui lié au tableau où est l'ID de la map ( l'etape 2 ci-dessus ).
# Vous pouvez aussi avoir des zones aves des backs differents.
# Il suffit de créer une area ( avec ou sans ennemi supplementaire, à vous de voir !! ).
# Si vous voulez que l'area dispose d'un back different de celui du reste de la map, il faut inclure ces trois caracteres dans le nom de l'area : [A]
# Il suffit ensuite de preciser quels back en rajoutant un [1], [2] ou [3], ...
# Configurer la methode ci dessous pour savoir à quoi correspond chacun d'eux.

# Vous avez donc un battleback pour chaque maps et la possibilité d'avoir plusieurs battlebacks par map grace aux areas !!
# L'area appellé "[A][5]je_sais_pas_quoi " aura donc un battleback different que celui de la map, celui correspondant au [5].
# L'area " je_sais_pas_quoi " utilise le même battleback que la map.
# -------------------------------------------------------------------------
  def choose_bback(area)
	if area.name.include?("[1]") # Area incluant [1]
	  $battleback_name = "name" # Nom du battleback voulu
	elsif area.name.include?("[2]") # Area incluant [2]
	  $battleback_name = "name" # Nom du battleback voulu
	elsif area.name.include?("[3]") # Area incluant [3]
	  $battleback_name = "name" # Nom du battleback voulu
	elsif area.name.include?("[4]") # Area incluant [4]
	  $battleback_name = "name" # Nom du battleback voulu
	elsif area.name.include?("[5]") # Area incluant [5]
	  $battleback_name = "name" # Nom du battleback voulu
	elsif area.name.include?("[6]") # Area incluant [6]
	  $battleback_name = "name" # Nom du battleback voulu
	elsif area.name.include?("[7]") # Area incluant [7]
	  $battleback_name = "name" # Nom du battleback voulu
	elsif area.name.include?("[8]") # Area incluant [8]
	  $battleback_name = "name" # Nom du battleback voulu
	elsif area.name.include?("[9]") # Area incluant [9]
	  $battleback_name = "name" # Nom du battleback voulu
	end
  end
end # class


Voila, c'est tres simple à utiliser et assez pratique.

Pour info, il existe deux autres scripts ayant le même effet à quelques differences pres.
Mais tous utilisent une technique differente !!
( Vous voyez, c'est genial le Ruby !! )
Bon, je crois que c'est tout ...

ASHKA
FIGHT THE POWER !!
0

#2 L'utilisateur est hors-ligne   ASHKA Icône

  • Ecuyer
  • PipPipPip
  • Groupe : Membres +
  • Messages : 136
  • Inscrit(e) : 12-novembre 07
  • Gender:Male
  • Location:Je suis le &quot; LOGOS &quot; donc je suis partout !!

Posté 17 mars 2008 - 15:31

Script V 2.1 !! Nouvelle fonction !!
Changer de battleback selon la map et la zone !!

ASHKA
FIGHT THE POWER !!
0

Page 1 sur 1


Réponse rapide

  

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)