- DishiMembre
- Nombre de messages : 632
Age : 26
Localisation : Marseille
Distinction : Alias Dichie
Aussi alias Sherifa Luna de la commu' (je suis dichie et d'ailleurs )
Co-créateur du Nyan Xak
[Tétété]
Apprenti Pedobear
[Mémé nova]
Keupiteur de ponctuation.
[un sombre inconnu.]
Date d'inscription : 07/07/2011
[Mini Tuto]Rajouter des choix au script de GO à choix
Lun 19 Déc 2011 - 11:24
Bonjour à tous !
Comme promis, voici un pitit tuto pour rajouter des choix dans le script de Game Over avec choix et surement dans les scripts Ace en général.
Avant de commencer ce tuto, munissez-vous du script de GO à choix de regendo.
On commence donc par étudier le texte :
Etudions donc ensemble : 4 fois, intervint la même ligne, du moins 4 lignes avec la même structure :
Ok, on a étudié la commande qui permet d'appeler des objets.
Si vous avez un peu suivi, il ne vous sera pas trop dur de créer votre propre ligne. On va, par exemple, permettre au joueur de sauvegarder lors du Game Over.
On va donc rajouter cette ligne :
Voila, on a fini la première partie, soit celle où on lance l'appel de commande. Maintenant, on va étudier puis éditer le code où l'on crée la fenêtre :
Ici aussi, c'est pas dur à comprendre.
On créé une fonction qui va créer la fenêtre "command_window" qui, elle même, va créer les "objets" qui permettrons de réessayer le combat, de charger, de revenir à l'écran titre et de quitter.
Il nous faut désormais créer une nouvelle ligne car, vous l'avez remarqué, les 4 dernières lignes ont elles aussi la même structure.
On veut donc que le joueur puisse sauvegarder lorsque le Game Over apparait. Rajoutons donc notre ligne, à l'aide des termes ":save" et ":command_save" :
Voila, ceci est fait !
Seulement, la commande :command_save doit renvoyer à des instructions, qu'il faut donner au préalable !
Explorons la suite du code...
Nous trouvons ceci :
Ces petits paragraphes représentent les instructions que chaque commande doit donner. Il faut donc en créer un pour notre commande "command_save" !
Voici donc le code que vous devez avoir à la fin :
Bien entendu, ce tuto est purement théorique, car nous ne pouvons en aucun cas vérifier de potentielles erreurs ().
Sur ce, je vous laisse, en espérant vous avoir aidé,
Dishi
Coco' : +5 points :3
Comme promis, voici un pitit tuto pour rajouter des choix dans le script de Game Over avec choix et surement dans les scripts Ace en général.
Avant de commencer ce tuto, munissez-vous du script de GO à choix de regendo.
On commence donc par étudier le texte :
- Code:
add_command("Réessayer le combat", :tryagain) if SceneManager.scene.is_defeat?
add_command("Charger une partie", :load, load_enabled)
add_command(Vocab::to_title, :to_title)
add_command(Vocab::shutdown, :shutdown)
Etudions donc ensemble : 4 fois, intervint la même ligne, du moins 4 lignes avec la même structure :
- Code:
add_command("Texte affiché", :commande)
Ok, on a étudié la commande qui permet d'appeler des objets.
Si vous avez un peu suivi, il ne vous sera pas trop dur de créer votre propre ligne. On va, par exemple, permettre au joueur de sauvegarder lors du Game Over.
On va donc rajouter cette ligne :
- Code:
add_command("Sauvegarder", :save)
- Code:
add_command("Réessayer le combat", :tryagain) if SceneManager.scene.is_defeat?
add_command("Sauvegarder", :save)
add_command("Charger une partie", :load, load_enabled)
add_command(Vocab::to_title, :to_title)
add_command(Vocab::shutdown, :shutdown)
Voila, on a fini la première partie, soit celle où on lance l'appel de commande. Maintenant, on va étudier puis éditer le code où l'on crée la fenêtre :
- Code:
def create_command_window
@command_window = Window_GameOver.new
@command_window.set_handler(:tryagain, method(:command_retry)) if is_defeat?
@command_window.set_handler(:load, method(:command_load))
@command_window.set_handler(:to_title, method(:goto_title))
@command_window.set_handler(:shutdown, method(:command_shutdown))
end
Ici aussi, c'est pas dur à comprendre.
On créé une fonction qui va créer la fenêtre "command_window" qui, elle même, va créer les "objets" qui permettrons de réessayer le combat, de charger, de revenir à l'écran titre et de quitter.
Il nous faut désormais créer une nouvelle ligne car, vous l'avez remarqué, les 4 dernières lignes ont elles aussi la même structure.
On veut donc que le joueur puisse sauvegarder lorsque le Game Over apparait. Rajoutons donc notre ligne, à l'aide des termes ":save" et ":command_save" :
- Code:
@command_window.set_handler(:save, method(:command_save))
- Code:
def create_command_window
@command_window = Window_GameOver.new
@command_window.set_handler(:tryagain, method(:command_retry)) if is_defeat?
@command_window.set_handler(:save, method(:command_save))
@command_window.set_handler(:load, method(:command_load))
@command_window.set_handler(:to_title, method(:goto_title))
@command_window.set_handler(:shutdown, method(:command_shutdown))
end
Voila, ceci est fait !
Seulement, la commande :command_save doit renvoyer à des instructions, qu'il faut donner au préalable !
Explorons la suite du code...
Nous trouvons ceci :
- Code:
def close_command_window
@command_window.close if @command_window
update until @command_window.close?
end
def command_load
close_command_window
fadeout_all
SceneManager.call(Scene_Load)
end
def goto_title
close_command_window
fadeout_all
SceneManager.goto(Scene_Title)
end
def command_shutdown
close_command_window
fadeout_all
SceneManager.exit
end
Ces petits paragraphes représentent les instructions que chaque commande doit donner. Il faut donc en créer un pour notre commande "command_save" !
- Code:
def command_save
close_command_window
fadeout_all
SceneManager.call(Scene_Save)
end
Voici donc le code que vous devez avoir à la fin :
- Spoiler:
- Code:
# Par bStefan aka. regendo
# Traduit par Dishi
# Donnez les crédits si vous utilisez ce script (pas forcément au traducteur hein,
# bien que tout passage dans les crédits soit évidemment bienvenue)
# A utiliser avec RPG Maker VX Ace
#============================================
# Game Over avec des choix
#============================================
# Ajoute 4 choix à Scene_Gameover:
# Réessayer le combat(si vous perdez un combat)
# Charger une sauvegarde (s'il y en a une)
# Retourner à l'écran titre
# Quitter
#============================================
# A placer au dessus de Main
#============================================
class Window_GameOver < Window_Command
def initialize
super(0, 0)
update_placement
self.openness = 0
open
end
def window_width
return 225
end
def update_placement
self.x = (Graphics.width - width) / 2
self.y = (Graphics.height - height) / 1.1
end
def make_command_list
add_command("Réessayer le combat", :tryagain) if SceneManager.scene.is_defeat?
add_command("Sauvegarder", :save)
add_command("Charger une partie", :load, load_enabled)
add_command(Vocab::to_title, :to_title)
add_command(Vocab::shutdown, :shutdown
end
def load_enabled
DataManager.save_file_exists?
end
end
class Scene_Gameover < Scene_Base
alias start_old start
def start
start_old
create_command_window
end
def pre_terminate
super
close_command_window
end
def update
super
end
def create_command_window
@command_window = Window_GameOver.new
@command_window.set_handler(:tryagain, method(:command_retry)) if is_defeat?
@command_window.set_handler(:save, method(:command_save))
@command_window.set_handler(:load, method(:command_load))
@command_window.set_handler(:to_title, method(:goto_title))
@command_window.set_handler(:shutdown, method(:command_shutdown))
end
def close_command_window
@command_window.close if @command_window
update until @command_window.close?
end
def command_load
close_command_window
fadeout_all
SceneManager.call(Scene_Load)
end
def command_save
close_command_window
fadeout_all
SceneManager.call(Scene_Save)
end
def goto_title
close_command_window
fadeout_all
SceneManager.goto(Scene_Title)
end
def command_shutdown
close_command_window
fadeout_all
SceneManager.exit
end
def command_retry
SceneManager.goto(Scene_Battle)
BattleManager.setup(@troop_id, @can_escape, @can_lose)
$game_party.members.each do |actor|
actor.recover_all
end
$game_troop.members.each do |enemy|
enemy.recover_all
end
BattleManager.bmgs_by_regendo(@map_bgm, @map_bgs)
end
def is_defeat (b = true)
@defeat = b
end
def is_defeat?
@defeat
end
def battle_setup (troop_id, can_escape = true, can_lose = false)
@troop_id = troop_id
@can_escape = can_escape
@can_lose = can_lose
end
def bgms_setup(map_bgm, map_bgs)
@map_bgm = map_bgm
@map_bgs = map_bgs
end
end
module BattleManager
class << self
alias_method :setup_old, :setup
end
def self.setup(troop_id, can_escape = true, can_lose = false)
self.setup_old(troop_id, can_escape = true, can_lose = false)
@troop_id = troop_id
end
def self.bmgs_by_regendo(map_bgm, map_bgs)
@map_bgm = map_bgm
@map_bgs = map_bgs
end
def self.process_defeat
$game_message.add(sprintf(Vocab::Defeat, $game_party.name))
wait_for_message
if @can_lose
revive_battle_members
replay_bgm_and_bgs
SceneManager.return
else
SceneManager.goto(Scene_Gameover)
SceneManager.scene.is_defeat #Ceci est nouveau
SceneManager.scene.battle_setup(@troop_id, @can_escape, @can_lose) #Cela aussi
SceneManager.scene.bgms_setup(@map_bgm, @map_bgs) #et ça
end
battle_end(2)
return true
end
end
Bien entendu, ce tuto est purement théorique, car nous ne pouvons en aucun cas vérifier de potentielles erreurs ().
Sur ce, je vous laisse, en espérant vous avoir aidé,
Dishi
Coco' : +5 points :3
- MrD2rkMembre
- Nombre de messages : 148
Age : 26
Localisation : Dans un tiroir (Aie)
Distinction : aucune
Date d'inscription : 24/10/2011
Re: [Mini Tuto]Rajouter des choix au script de GO à choix
Lun 19 Déc 2011 - 11:47
Thank's
- Coco'Staffeux retraité
- Nombre de messages : 6578
Age : 31
Localisation : Nord/Douai
Distinction : EL DICTATOR COCO'
Coco-Dieu en puissance
Grand gourou suppléant de la secte des MAGIKARP
Leader charismatique des 2beStaffieux
N°1 du forum
Président, vice-présidents et membres honoraires de la cour suprême du forum
Président de l'association des grosses distinctions CMB
Date d'inscription : 02/07/2008
Re: [Mini Tuto]Rajouter des choix au script de GO à choix
Lun 19 Déc 2011 - 16:55
Merci du tuto' Dichie, +5
- Ezekiel KoeningMembre
- Nombre de messages : 413
Age : 26
Localisation : Nantes
Distinction : aucune
Date d'inscription : 17/12/2011
Re: [Mini Tuto]Rajouter des choix au script de GO à choix
Lun 19 Déc 2011 - 20:33
Toujours aussi bien ^^ ! Merci !
- DishiMembre
- Nombre de messages : 632
Age : 26
Localisation : Marseille
Distinction : Alias Dichie
Aussi alias Sherifa Luna de la commu' (je suis dichie et d'ailleurs )
Co-créateur du Nyan Xak
[Tétété]
Apprenti Pedobear
[Mémé nova]
Keupiteur de ponctuation.
[un sombre inconnu.]
Date d'inscription : 07/07/2011
Re: [Mini Tuto]Rajouter des choix au script de GO à choix
Lun 19 Déc 2011 - 21:16
Cataclysm a écrit:Toujours aussi bien ^^ ! Merci !
Toujours aussi bien que...
J'ai jamais fait de tuto ^^'
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum