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 # classVoila, 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

Aide
Ajouter une réponse



Multi-citation








