- Mister GeekStaffeux retraité
- Nombre de messages : 719
Age : 30
Localisation : Vosges
Distinction : aucune
Date d'inscription : 20/12/2007
Fonctions pour battlers en combat
Ven 7 Mar 2008 - 19:38
Auteur : DerVVulfman
Traducteur : TheLSSJ
Utilité : Ajoute des fonctionnalités pour les battlers en combat telles que la transparence avant l'attaque, la position d'affichage des battlers, etc...
Instructions : Dans l'en-tête du script (ne pas oublier de configurer ce qui suit l'en-tête).
A placer évidemment au-dessus de main.
Script :
Partie 1 :
Traducteur : TheLSSJ
Utilité : Ajoute des fonctionnalités pour les battlers en combat telles que la transparence avant l'attaque, la position d'affichage des battlers, etc...
Instructions : Dans l'en-tête du script (ne pas oublier de configurer ce qui suit l'en-tête).
A placer évidemment au-dessus de main.
Script :
Partie 1 :
- Code:
#==============================================================================
# ** Actor Battler Graphics
#------------------------------------------------------------------------------
# Par DerVVulfman
# Traduit de l'anglais au français par TheLSSJ
# version 1.0
# 03-01-2008
# RGSS2
#------------------------------------------------------------------------------
#
# INTRODUCTION :
#
#
# Ce script vous permet d'ajouter 'Actor Battler' qui n'a pas été inclus
# dans le système de RPG Maker VX.
# Ce script imite beaucoup de caractéristiques perdues et en inclut
# une nouvelle : Actor Battler Centering.
#
#------------------------------------------------------------------------------
#
# UTILISATION :
#
# --Positionnement--
# Une des fonctions appréciables de ce système est la possibilité
# d'ajuster la position gauche/droite et haut/bas de vos battlers.
#
# La position verticale (haut/bas) peut être réglée en modifiant
# la valeur de la variable SCREEN_Y. La position horizontale
# est un peu différente.
#
# La variable CENTER_X est vraie ou fausse selon le positionnement
# horizontale que vous voulez donner à vos battlers : true (vrai) si
# vous souhaitez que vos battlers s'espacent à la manière de défaut
# de RPGMaker VX ou false (faux) si vous voulez que le système
# calcule leur position et les place au centre de l'écran.
#
# La variable DEFAULT_X gère le nombre de héros que l'on montre
# dans le combat. Quand la variable est par défaut, la valeur maximum
# utilisée peut être changée avec un appel de script.
#
# Pour finir, la variable TRANSPARENT est une autre variable à valeur
# vraie/fausse que vous pouvez utiliser pour rendre les combattants
# légèrement transparents jusqu'à ce qu'ils soient sur le point d'exécuter
# une attaque. Une autre caractéristique de RPG Maker VX.
#
# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
#
# --La liste des héros--
# Ce système exige de réviser le système de configuration pour énumérer
# tous les héros que vous utilisez. Il est supposé que ces combattants seront
# dans le dossier 'Graphics\Battlers' avec le reste des combattants ennemis.
#
# Chaque héros possède deux valeurs : le nom de fichier et la teinte.
# Cela vous permet non seulement de modifier les battlers pour vos héros,
# mais règle aussi la teinte de ceux-ci. Si vous n'incluez pas la valeur de
# la teinte, elle se règle automatiquement à '0'.
#
#------------------------------------------------------------------------------
#
# APPELS DE SCRIPTS :
#
# Il n'y a que deux appels de script à retenir :
#
# --Changement de battlers--
# Étant donné que ce système vous permet d'utiliser des battlers,
# vous pouvez trouver le besoin de modifier ces derniers pendant le jeu.
# Malheureusement, cela ne peut pas être fait avec un évènement.
# Voici donc l'appel de scripts nécessaire :
#
# $game_actors[ID].set_battler("filename", hue)
#
# Pour utiliser cet appel, vous pouvez remplacer le nom de fichier
# ("filename") ainsi que la teinte (hue) du battler pendant le jeu.
#
# Un exemple : $game_actors[1].set_battler("Ylva")
#
# ...remplace le battler actuel du héros n°1 par "Ylva.png".
# Puisque la valeur 'hue' n'a pas été indiquée, elle sera automatiquement
# réglée à 0.
#
# NOTE : Dans $game_actors[2].set_battler(), on remarque qu'aucun
# nom de fichier n'est indiqué. Cela a pour effet d'effacer celui utilisé
# au moment où la commande est lancée.
#
# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
#
# --Changer la valeur des variables de position--
# Ce script vous permet de faire centrer les combattants dans les combats
# et de les espacer entre eux. Dans la plupart des circonstances, vous avez
# quatre héros dans votre jeu. Mais et si vous voulez augmenter le nombre
# de héros à 5 ou 6 ?
#
# Maintenant, ce système n'augmente pas le nombre de héros dans votre jeu,
# mais il est déjà conçu pour régler l'écartement de vos héros dans les combats.
# Avec un appel de script simple :
#
# $game_system.actorbattler_max = 7
#
# Vous pouvez choisir l'écartement de vos battlers en combat pour que ça laisse
# autant de place que si vous aviez 7 battlers.
#
#------------------------------------------------------------------------------
#
# EDITS ET MODIFICATIONS :
#
# Ce système nomme les méthodes suivantes :
# * initialize (RPG::Actor)
# * initialize (Game_Temp)
# * initialize (Game_System)
# * initialize (Game_Actor)
# * update (Sprite_Battler)
# * start (Scene_Battle)
# * start_party_command_selection (Scene_Battle)
# * process_victory (Scene_Battle)
# * execute_action (Scene_Battle)
#
# Ce système redéfinit les méthodes suivantes :
# * use_sprite? (Game_Actor)
# * create_actors (Spriteset_Battle)
# * update_actors (Spriteset_Battle)
#
#
#------------------------------------------------------------------------------
#
# TERMES ET CONDITIONS :
#
# Libre d'usage, même dans les jeux commerciaux. A noter tout de
# même que j'apprécierais une place dans vos crédits.
#
#==============================================================================
#===============================================================
#
# rpgmakervx.1fr1.net
#
#===============================================================
#==============================================================================
# ** Actor_Battler Module
#------------------------------------------------------------------------------
# Module contenant les données configurables pour les battlers des héros.
#==============================================================================
module Actor_Battler
# Liste des héros
ACTOR = Array.new # Ne pas toucher -_^
#========================================================================
# ** C O N F I G U R A T I O N D U S Y S T E M E ** #
#========================================================================
# --Positionnement--
# Système de positionnement des batttlers.
#
CENTER_X = true # Si la valeur est true (vraie), centrer les battlers plutôt que de les aligner comme par défaut.
DEFAULT_X = 5 # Equipe max. par défaut.
SCREEN_Y = 400 # Position verticale des battlers.
TRANSPARENT = true # Si la valeur est true (vraie), rendre les battlers légèrement transparents avant l'attaque.
# --Liste des héros--
# Ajouter vos battlers ici.
#
# Héros, Nom de fichier, Teinte (optionnel)
ACTOR[1] = ["Ralph"]
ACTOR[2] = ["Ulrica"]
ACTOR[3] = ["Bennett", 0]
ACTOR[4] = ["Ylva", 0]
ACTOR[5] = ["Lawrence", 0]
ACTOR[6] = ["Oscar", 0]
ACTOR[7] = ["Vera", 0]
ACTOR[8] = ["Elmer", 0]
#========================================================================
# ** F I N D E L A C O N F I G U R A T I O N ** #
#========================================================================
end
- Mister GeekStaffeux retraité
- Nombre de messages : 719
Age : 30
Localisation : Vosges
Distinction : aucune
Date d'inscription : 20/12/2007
Re: Fonctions pour battlers en combat
Ven 7 Mar 2008 - 19:39
Partie 2 (à coller à la suite de la partie 1) :
- Code:
#==============================================================================
# ** RPG Module
#------------------------------------------------------------------------------
# Module contenant les structures de données de RPG Maker VX.
#==============================================================================
module RPG
#============================================================================
# ** Héros
#----------------------------------------------------------------------------
# Données des héros
#============================================================================
class Actor
#------------------------------------------------------------------------
# * Listage des alias
#------------------------------------------------------------------------
alias actorbattler_init initialize
#------------------------------------------------------------------------
# * Initialisation des objets
#------------------------------------------------------------------------
def initialize
# Exécuter l'appel original
actorbattler_init
@battler_name = ""
@battler_hue = 0
end
end
end
#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
# Cette classe manipule des données temporaires qui sauvent des données.
# L'instance de cette classe est référée par $game_temp.
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# * Variables d'instance
#--------------------------------------------------------------------------
attr_accessor :battle_main_phase # battle flag: main phase
#--------------------------------------------------------------------------
# * Listage des alias
#--------------------------------------------------------------------------
alias actorbattler_initialize initialize
#--------------------------------------------------------------------------
# * Initialisation des objets
#--------------------------------------------------------------------------
def initialize
# Exécuter l'appel original
actorbattler_initialize
# Mettre la phase principal de combat à "faux"
@battle_main_phase = false
end
end
#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
# Cette classe manipule des données concernant le système.
# Elle dirige aussi les véhicules et BGM, etc.
# L'instance de cette classe est référée par $game_system.
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# * Variables d'instance
#--------------------------------------------------------------------------
attr_accessor :actorbattler_max # Max. size for centered battlers
#--------------------------------------------------------------------------
# * Listage des alias
#--------------------------------------------------------------------------
alias actorbattler_initialize initialize
#--------------------------------------------------------------------------
# * Initialisation des objets
#--------------------------------------------------------------------------
def initialize
# Exécuter l'appel original
actorbattler_initialize
# Mettre le centrage des battlers à 4 (défaut)
@actorbattler_max = Actor_Battler::DEFAULT_X
end
end
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
# Cette classe manipule les héros.
# Elle est utilisée dans la classe Game_Actors ($game_actors) et est
# référée par la classe Game_Party ($game_party).
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Variables d'instance
#--------------------------------------------------------------------------
attr_accessor :screen_x # battle screen X coordinate
attr_accessor :screen_y # battle screen Y coordinate
#--------------------------------------------------------------------------
# * Listage des alias
#--------------------------------------------------------------------------
alias actorbattler_init initialize
#--------------------------------------------------------------------------
# * Initialisation des objets
# actor_id : ID du héros
#--------------------------------------------------------------------------
def initialize(actor_id)
# Exécuter l'appel original
actorbattler_init(actor_id)
# Appliquer les battlers
@battler_name = Actor_Battler::ACTOR[actor_id][0]
# Appliquer la teinte des battlers si existante, sinon la mettre à 0 (défaut).
if Actor_Battler::ACTOR[actor_id][1] != nil
@battler_hue = Actor_Battler::ACTOR[actor_id][1]
else
@battler_hue = 0
end
end
#--------------------------------------------------------------------------
# * Changer de battler
# battler_name : nom de fichier du nouveau battler
# battler_hue : teinte du nouveau battler (défaut = 0)
#--------------------------------------------------------------------------
def set_battler(battler_name = "", battler_hue = 0)
@battler_name = battler_name
@battler_hue = battler_hue
end
#--------------------------------------------------------------------------
# * Utilisation des sprites ?
#--------------------------------------------------------------------------
def use_sprite?
return true
end
#--------------------------------------------------------------------------
# * Coordonnée X de l'équipe
#--------------------------------------------------------------------------
def screen_x
if self.index != nil
if Actor_Battler::CENTER_X
# Retourner après avoir calculé la coordonnée X du centre de l'équipé
return self.index * (544 / $game_system.actorbattler_max) +
($game_system.actorbattler_max - $game_party.members.size) *
(272 / $game_system.actorbattler_max) +
(272 / $game_system.actorbattler_max)
else
# Retourner après avoir calculé la coordonnée X du positionnement de l'équipe par défaut
return self.index * 136 + 68
end
else
return 0
end
end
#--------------------------------------------------------------------------
# * Coordonnée Y de l'équipe
#--------------------------------------------------------------------------
def screen_y
return Actor_Battler::SCREEN_Y
end
#--------------------------------------------------------------------------
# * Coordonnée Z de l'équipe
#--------------------------------------------------------------------------
def screen_z
# Retourner après avoir calculé la coordonnée Z de l'ordre des membres dans l'équipe
if self.index != nil
return $game_party.members.size - self.index
else
return 0
end
end
end
#==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
# Ce sprite est utilisé pour afficher les battlers.
# Il observe un cas de la classe Game_Battler et change automatiquement les
# conditions du sprite.
#==============================================================================
class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# * Listage des alias
#--------------------------------------------------------------------------
alias actorbattler_update update
#--------------------------------------------------------------------------
# * Rafraichissement des frames
#--------------------------------------------------------------------------
def update
# Exécuter l'appel original
actorbattler_update
# Si le battler du héros est légèrement transparent avant l'attaque
if Actor_Battler::TRANSPARENT == true
# Si le battler est celui d'un des héros visibles
if @battler.is_a?(Game_Actor) and @battler_visible
# Rabaisser son opacité un peu dans la phase principale
if $game_temp.battle_main_phase
self.opacity += 3 if self.opacity < 255
else
self.opacity -= 3 if self.opacity > 207
end
end
end
end
end
#==============================================================================
# ** Spriteset_Battle
#------------------------------------------------------------------------------
# Cette classe réunit les sprites de l'écran de bataille.
# Elle est utilisée dans la classe Scene_Battle.
#==============================================================================
class Spriteset_Battle
#--------------------------------------------------------------------------
# * Création du sprite du héros
# Enlève l'image des héros 'vide' utilisée par le système par défaut et la remplace.
# Il observe aussi la taille réelle de l'équipe et n'utilise pas la taille prédéterminée
# des 4 héros.
#--------------------------------------------------------------------------
def create_actors
@actor_sprites = []
for actor in $game_party.members.reverse
@actor_sprites.push(Sprite_Battler.new(@viewport2, actor))
end
end
#--------------------------------------------------------------------------
# * Rafraichissement du sprite du héros
#--------------------------------------------------------------------------
def update_actors
# Mettre à jour les sprites des héros si la taille de l'équipe augmente
if $game_party.members.size > @actor_sprites.size
dispose_actors
create_actors
end
for sprite in @actor_sprites
sprite.update
end
end
end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
# Cette classe exécute le traitement de l'écran de bataille.
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# * Listage des alias
#--------------------------------------------------------------------------
alias actorbattler_s start
alias actorbattler_spcs start_party_command_selection
alias actorbattler_pv process_victory
alias actorbattler_ea execute_action
#--------------------------------------------------------------------------
# * Démarrer le processus
#--------------------------------------------------------------------------
def start
actorbattler_s
$game_temp.battle_main_phase = false
end
#--------------------------------------------------------------------------
# * Démarrer la sélection de l'ordre de l'équipe
#--------------------------------------------------------------------------
def start_party_command_selection
actorbattler_spcs
if $game_temp.in_battle
$game_temp.battle_main_phase = false
end
end
#--------------------------------------------------------------------------
# * Processus de victoire
#--------------------------------------------------------------------------
def process_victory
$game_temp.battle_main_phase = false
actorbattler_pv
end
#--------------------------------------------------------------------------
# * Démarrer le traitement du début de la bataille
#--------------------------------------------------------------------------
def execute_action
actorbattler_ea
$game_temp.battle_main_phase = true
end
end
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum