
Ajouter d'autres choix au menu de votre écran titre sous RPG Maker XP Ecrit par bodomdeneige
Voici mon tout premier tutoriel.
Si vous voulez par exemple ajouter une case crédit en plus de continuer, nouveau, quitter, c'est très facile à faire ! Celà marche également pour ajouter un tutoriel, des bonus et presque n'importe quoi !
Il s'agit d'une alternative au tuto sur les menus complètement customisés (qui je pense est plus recommandé), mais il peut tout de même servir.
Ouvrez l'éditeur de script et allez à la classe scene_title
Autour de la ligne 37, vous verrez le code suivant :
1
2
3
4
| s1 = "Nouvelle partie"
s2 = "Charger une partie"
s3 = "Quitter"
@command_window = Window_Command.new(192, [s1, s2, s3]) |
Remplacez le par ceci :
1
2
3
4
5
| s1 = "Nouvelle partie"
s2 = "Continuer"
s3 = "Quitter"
s4 = "Crédits"
@command_window = Window_Command.new(192, [s1, s2, s3, s4]) |
Ici vous rajoutez un élément à la fenêtre de choix. (libre à vous de revoir l'ordre).
Les modifications qui ont été apportées sont les suivants :
On déclare la variable s4 qui prend pour valeur "Crédits". Ensuite on la rajoute à la fenêtre de sélection (déclarée grâce au Window_Command.new)
Si vous voulez mettre encore plus de choix, rien ne vous interdit de déclarer une variable s5 et de la rajouter à la déclaration de la fenêtre de sélection.
Si jamais le dernier choix n'est pas visible car trop bas, alors vous pouvez baisser ce paramètre afin de remonter la fenêtre de sélection :
1
| @command_window.y = 288 |
Maintenant, on va définir ce qui se passe quand on sélectionne crédits.
Pour celà, rendez-vous autour de la ligne 95 de la classe.
Vous devriez voir apparaitre le code suivant :
1
2
3
4
5
6
7
8
9
10
| if Input.trigger?(Input::C)
case @command_window.index
when 0
command_new_game
when 1
command_continue
when 2
command_shutdown
end
end |
Vous vous en doutez, ici, quand on appuie sur entrée, le script repère où on est dans la fenêtre de sélection.
Il va donc falloir rajouter une condition when 3. Dans ce cas, on appelera une méthode command_credits (vous mettez le nom que vous voulez pour la méthode) qu'il faudra définir plus tard.
Celà donnera donc :
1
2
3
4
5
6
7
8
9
10
11
12
| if Input.trigger?(Input::C)
case @command_window.index
when 0
command_new_game
when 1
command_continue
when 2
command_shutdown
when 3
command_credits
end
end |
Ensuite, ce que je préconise pour afficher vos crédits, est de créer un event en démarrage automatique qui fait défiler une image sur une map. (Je pense qu'il y a d'autres tutos là dessus).
Ce qui va nous intéresser est donc de savoir comment téléporter le héros sur une autre map que celle que l'on a définie dans le jeu (le S encadré).
juste avant la ligne def command_new_game, insérez le code suivant :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| def command_credits
$game_system.se_play($data_system.decision_se)
Audio.bgm_stop
Graphics.frame_count = 0
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
$game_party.setup_starting_members
$game_map.setup(185)
$game_player.moveto(1, 1)
$game_player.refresh
$game_map.autoplay
$game_map.update
$scene = Scene_Map.new
end |
En faisant ça, vous avez déclaré et crée la méthode command_credits (que vous appelerez comme vous voulez d'ailleurs selon ce que vous voulez ajouter au menu).
Remplacez 185 par l'ID de la map sur laquelle vous voulez téléporter le héros.
Remplacez le 1,1 de cette ligne :
1
| $game_player.moveto(1, 1) |
par les coordonnées de la map sur lequel le héros doit être téléporté.
Vous pouvez ajouter d'autres fonctions si vous voulez faire d'autres choix.
Ce tuto peut donc servir, comme promis, à insérer un tutoriel pour votre jeu directement à partir du menu qui vous téléporterait sur une map où des PNJ vous expliqueraient comment jouer.
|
|
zou - posté le 09/01/2011 à 20:46:59. (2145 messages postés)
|

| Dans ce cas "quitter" lance le crédit et "crédit" quitte le jeu. |
|
bodomdeneige - posté le 10/01/2011 à 10:21:16. (64 messages postés)
|

homonyme du traducteur | Non, c'est juste le screenshot qui n'est pas bon.
Dans mon jeu; crédit est en 3ème position alors j'ai changé le code en plein vol pour le tutoriel mais pas le screenshot et j'avoue que je n'ai pas retesté.
Et une fois le principe assimilé, il est très simple de changer l'ordre des éléments du menu. |
|
Peter55382 - posté le 11/01/2011 à 14:17:22. (31 messages postés)
|

Apprenti maker | Citation: Script "Scene_Title" Ligne 239 SyntaxError |
 |
Le savoir, c'est le pouvoir, chers makeurs, souvenez-vous en... |
|
bodomdeneige - posté le 11/01/2011 à 14:22:03. (64 messages postés)
|

homonyme du traducteur | Tu peux me copier ce qu'il y a autour de ta ligne 239 en mettant en gras la ligne 239 ?
Et s'il s'agit de la fin du script, vérifie que tu n'as pas oublié de copier les end du code. |
|
Peter55382 - posté le 11/01/2011 à 18:21:16. (31 messages postés)
|

Apprenti maker | Citation: Script "Scene title" line 105 NameError
undefined local variable or method "command_help" for #<SceneTitle:0x320c148> |
Si ca peut aider, ma new rubrique s'appelle "Comment jouer ?"
Edit : C'est bon, mais quand je mets "comment jouer ?", ca me téléporte normalement sur la map, et quand je bouge ca mets
Citation: Script "Game_Player line 264 NoMethodError undefined method >'for nil:NilClass |
|
Le savoir, c'est le pouvoir, chers makeurs, souvenez-vous en... |
|
bodomdeneige - posté le 12/01/2011 à 00:00:32. (64 messages postés)
|

homonyme du traducteur | Envoie moi ta classe scene_title par mp dans une balise de Code (et non de Citation). Je te dirai quel est ton problème.
Dis moi aussi si tu as modifié ta classe game_player ou si c'est celle d'origine. | 
|