| [VX] Plusieurs positions de départ | |
|
|
Auteur | Message |
---|
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: [VX] Plusieurs positions de départ Jeu 27 Aoû 2009 - 22:57 | |
| Multi_Starter Auteur : Sihn Version : 2.0 - Présentation du script -Ce script vous permet de définir plusieurs points et équipe de départ pour votre jeu. In-game, le choix de l'équipe de départ se fait dans un menu qui apparait juste après que vous ayez sélectionné "Nouvelle partie". Il est également possible de parametrer certaine équipe pour qu'elles ne soient accessible que si certains interrupteurs sont activés dans les sauvegardes. - Screen -- script -Ce script est en deux parties. Le script en lui-même, et un script de configuration. Multi_Starter - Code:
-
#============================================================================= # Multi_Starter #------------------------------------------------------------------------------ # Ce script permet de choisir plusieurs point de départ pour # plusieurs équipes différente. # Il permet également de n'utiliser certaines équipes que si des # interrupteurs spécifiques sont activés dans les sauvegardes. #------------------------------------------------------------------------------ # Créé par Sihn # Conçu pour RMVX # Version 2.0 #=============================================================================
#============================================================================== # Game_Start #============================================================================== class Game_Start attr_accessor :name attr_accessor :x attr_accessor :y attr_accessor :map_id attr_accessor :actors attr_accessor :switches_needed attr_accessor :variable #-------------------------------------------------------------------------- # initialize #-------------------------------------------------------------------------- def initialize(name) @name = name @x = $data_system.start_x @y = $data_system.start_y @map_id = $data_system.start_map_id @actors = $data_system.party_members @switches_needed = [] @variable = 0 end end
#============================================================================== # Game_Party #============================================================================== class Game_Party < Game_Unit #-------------------------------------------------------------------------- # setup_starting_members #-------------------------------------------------------------------------- alias multi_setup_starting_members setup_starting_members def setup_starting_members(party_members=nil) if party_members == nil multi_setup_starting_members else @actors = [] for i in party_members @actors.push(i) end end end end
#============================================================================== # Scene_Title #============================================================================== class Scene_Title < Scene_Base #-------------------------------------------------------------------------- # command_new_game #-------------------------------------------------------------------------- def command_new_game Sound.play_decision $scene = Scene_Start.new close_command_window end end
#============================================================================== # Scene_Start #============================================================================== class Scene_Start < Scene_Base #-------------------------------------------------------------------------- # start #-------------------------------------------------------------------------- def start super @start_list = [] setup_start create_title_graphic create_command_window end #-------------------------------------------------------------------------- # perform_transition #-------------------------------------------------------------------------- def perform_transition Graphics.transition(20) end #-------------------------------------------------------------------------- # post_start #-------------------------------------------------------------------------- def post_start super open_command_window end #-------------------------------------------------------------------------- # pre_terminate #-------------------------------------------------------------------------- def pre_terminate super close_command_window end #-------------------------------------------------------------------------- # termination #-------------------------------------------------------------------------- def terminate super dispose_command_window snapshot_for_background dispose_title_graphic end #-------------------------------------------------------------------------- # update #-------------------------------------------------------------------------- def update super @command_window.update if Input.trigger?(Input::B) Sound.play_cancel return_scene elsif Input.trigger?(Input::C) start_game end end #-------------------------------------------------------------------------- # create_title_graphic #-------------------------------------------------------------------------- def create_title_graphic @sprite = Sprite.new @sprite.bitmap = Cache.system("Title") end #-------------------------------------------------------------------------- # dispose_title_graphic #-------------------------------------------------------------------------- def dispose_title_graphic @sprite.bitmap.dispose @sprite.dispose end #-------------------------------------------------------------------------- # add_start #-------------------------------------------------------------------------- def add_start(name) @current = Game_Start.new(name) @start_list.push(@current) end #-------------------------------------------------------------------------- # check_save_switch #-------------------------------------------------------------------------- def check_saved_switch(switch_id) filenames = Dir.glob('Save*.rvdata') for filename in filenames file = File.open(filename, "rb") game_switches = Marshal.load(file) until game_switches.is_a?(Game_Switches) return true if game_switches[switch_id] file.close game_switches = nil end return false end #-------------------------------------------------------------------------- # create_command_window #-------------------------------------------------------------------------- def create_command_window positions = [] for game_start in @start_list switches = game_start.switches_needed.sort while switches.size > 0 if check_saved_switch(switches[0]) switches.delete(switches[0]) else break end end positions.push(game_start.name) if switches.size == 0 end @command_window = Window_Command.new(256, positions) @command_window.x = (544 - @command_window.width) / 2 @command_window.y = (416 - @command_window.height) / 2 @command_window.openness = 0 @command_window.open end #-------------------------------------------------------------------------- # dispose_command_window #-------------------------------------------------------------------------- def dispose_command_window @command_window.dispose end #-------------------------------------------------------------------------- # open_command_window #-------------------------------------------------------------------------- def open_command_window @command_window.open begin @command_window.update Graphics.update end until @command_window.openness == 255 end #-------------------------------------------------------------------------- # close_command_window #-------------------------------------------------------------------------- def close_command_window @command_window.close begin @command_window.update Graphics.update end until @command_window.openness == 0 end #-------------------------------------------------------------------------- # play_title_music #-------------------------------------------------------------------------- def play_title_music $data_system.title_bgm.play RPG::BGS.stop RPG::ME.stop end #-------------------------------------------------------------------------- # return_scene #-------------------------------------------------------------------------- def return_scene $scene = Scene_Title.new end #-------------------------------------------------------------------------- # confirm_player_location #-------------------------------------------------------------------------- def confirm_player_location if @start_list[@command_window.index].map_id == 0 print "Player start location not set." exit end end #-------------------------------------------------------------------------- # start_game #-------------------------------------------------------------------------- def start_game confirm_player_location Sound.play_decision start_pos = @start_list[@command_window.index] $game_party.setup_starting_members(start_pos.actors) $game_map.setup(start_pos.map_id) $game_player.moveto(start_pos.x, start_pos.y) $game_player.refresh $game_variables[StartsVar] = start_pos.variable $scene = Scene_Map.new RPG::BGM.fade(1500) close_command_window Graphics.fadeout(60) Graphics.wait(40) Graphics.frame_count = 0 RPG::BGM.stop $game_map.autoplay end end
Multi_Starter-Config - Code:
-
#============================================================================== # Scene_Start #============================================================================== class Scene_Start < Scene_Base # Identifiant de la variable contenant le numéro de l'équipe StartsVar = 2 #-------------------------------------------------------------------------- # setup_start #-------------------------------------------------------------------------- def setup_start # Créer un nouveau groupe : # add_start("Nom du groupe") # Options du nouveau groupe (toutes les options suivantes sont facultatives) # @current.x = coordonnée de départ X # @current.y = coordonnée de départ Y # @current.map_id = ID de la map de départ # @current.actors = [liste des IDs des héros de l'équipe de départ] # @current.switches_needed = [liste des IDs d'interrupteurs necessaires] # @current.variable = numéro de l'équipe add_start("Équipe de Ralph") @current.variable = 1 add_start("Équipe de d'Arshes") @current.x = 39 @current.y = 190 @current.map_id = 1 @current.actors = [1, 2] @current.variable = 2 add_start("Équipe d'Alex") @current.x = 216 @current.y = 232 @current.map_id = 1 @current.actors = [9, 12, 11, 10, 1, 2, 3, 5, 6, 7] @current.switches_needed = [9, 10] @current.variable = 3 add_start("Bonus : Combat contre Séraphin XP") @current.x = 5 @current.y = 5 @current.map_id = 3 @current.switches_needed = [32] end end
- Installation -Comme toujours, placez ces scripts au dessus de main, mais au dessous des scripts de bases. Nommez-les comme bon vous semble, les noms que vous leur donnerez n'ayant aucune incidence sur leur fonctionnement.- Paramétrage -Il se fait depuis la version 2.0 dans le script Multi_Starter-Config. Quelques point de départ ont été créé pour l'exemple, et un mini mode d'emploi est disponible au début du script. Pour créer un nouveau script, voici donc la syntaxe à utiliser : - Code:
-
add_start("Nom du groupe") @current.x = coordonnée de départ X @current.y = coordonnée de départ Y @current.map_id = ID de la map de départ @current.actors = [liste des IDs des héros de l'équipe de départ] @current.switches_needed = [liste des IDs d'interrupteurs necessaires] @current.variable = numéro de l'équipe Placez ce morceau de code juste après "def setup_start". Seul la première ligne (contenant add_start) est obligatoire, les autres sont facultatives. Voici le valeurs qu'elles prendront si vous ne les saisissez pas : @current.x = la coordonnée X de la position de départ placée dans l'éditeur @current.y = la coordonnée Y de la position de départ placée dans l'éditeur @current.map_id = l'ID de la map de la position de départ placée dans l'éditeur @current.actors = la liste des héros de départ configurée dans la base de données @current.switches_needed = [] (un tableau vide) @current.variable = 0 (zéro)Voici quelques exemples de paramétrages pour les trois derniers paramètres : @current.actors = [1, 2, 4]Avec ce code, votre équipe de départ sera composé des héros 1, 2, et 4. @current.switches_needed= [1, 2]Avec ce code, le choix de cette équipe ne sera disponible que si les interrupteurs 1 et 2 sont activés dans des fichiers de sauvegardes. @current.variable = 3Ce code permet de faire varier le contenu d'une variable suivant le point de départ choisis. Pour choisir l'ID de cette variable, allez à la ligne 6 du script New_Start-Config, et changez la valeur à coté de StartsVar. Si vous désirez plus d'information sur l'utilisation de ce script, n'hésitez pas! - Crédit -Sihn Et comme pour chacun de mes scripts, n'hésitez pas à me prévenir en cas de bug. (PS : mais avant, vérifiez toujours que vous avez la dernière version du script en question. )
Dernière édition par Sihn le Jeu 24 Sep 2009 - 19:38, édité 2 fois |
|
| |
Prêtre Lv13
Age : 35 Inscrit le : 11/07/2009 Messages : 813
| Sujet: Re: [VX] Plusieurs positions de départ Jeu 27 Aoû 2009 - 23:08 | |
| Pas mal du tout ^^ Un tuto qui va plaire aux fans de SD III ^^ Merci du partage/ création ^^ |
|
| |
Citadin Lv.7
Age : 29 Inscrit le : 14/08/2009 Messages : 199
| Sujet: Re: [VX] Plusieurs positions de départ Ven 28 Aoû 2009 - 6:01 | |
| Merci beaucoup! C'est ce qui me manquait! |
|
| |
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: [VX] Plusieurs positions de départ Ven 28 Aoû 2009 - 12:09 | |
| Bravo c'est un script qui m'a l'air excellent, mais je me demandais.
Est ce que ce serait possible de faire apparait un nouveau choix après la " fin du jeu "? Ce choix permettrait de continuer avec la même équipe mais dans un autre endroit. |
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [VX] Plusieurs positions de départ Ven 28 Aoû 2009 - 12:16 | |
| Mmm... Une sorte de "new_game+"? C'est encore autre chose, ça... (mon script ne gère pas le transfert d'équipement... J'ai déjà essayer d'en faire un, mais j'ai pas mal bloqué... et j'ai donc fais ce script à la place.^^)
En revanche, une fois ton jeu finis, tu peux activer un interrupteur, demander au héros de sauvegarder, puis faire un nouveau point de départ activé par cet interrupteur, mais avec les mêmes héros que la précédente équipe. Après, tes héros n'auront plus leurs stats d'avant, c'est vrai... Mais libre à toi de créer un event sur la "map de départ" qui "boostera" leurs capacité dès le début, afin de montrer qu'ils ont encore "quelques reste" de leur précédente aventure. ^^ |
|
| |
Age : 30 Inscrit le : 22/11/2008 Messages : 3382
| Sujet: Re: [VX] Plusieurs positions de départ Ven 28 Aoû 2009 - 12:18 | |
| Ouah sérieux ça peut être super intéressant! Très beau taff Quelque chose qui aurait té utile pour le projet des îles, hein Ele' ? ^^ |
|
| |
Seigneur Lv.18
Age : 29 Avertissements : 3 Inscrit le : 20/12/2008 Messages : 2292
| Sujet: Re: [VX] Plusieurs positions de départ Ven 28 Aoû 2009 - 12:22 | |
| Ooooh, mais ça pourrait me servir pour Enfer et Paradis ça *o* Faut que je vois ça !!! Merci du partage |
|
| |
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: [VX] Plusieurs positions de départ Ven 28 Aoû 2009 - 13:02 | |
| Juste pour savoir, si je donne certaines valeur a des variables dans le jeu de base. Dans le "new game+" seront elle encore actives avec les valeurs? ( tout ca en choisissant la sauvegarde ) |
|
| |
Ex-Admin-Script
Age : 42 Inscrit le : 26/05/2008 Messages : 2360
| Sujet: Re: [VX] Plusieurs positions de départ Ven 28 Aoû 2009 - 13:10 | |
| Idée super, surcharge bien pensée. Félicitation. Ce script est très bien, et surtout, compatible avec mon script de menu. Vraiment, ce script est très net. Merci du partage. |
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [VX] Plusieurs positions de départ Ven 28 Aoû 2009 - 13:24 | |
| Zangther : Euh... T'as pas du comprendre mon post, là. Je disais justement que ce script n'était PAS un script pour faire un "new game +" à la chrono trigger! >_< Le seul variable qui change, c'est celle que tu choisis au début du script. |
|
| |
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: [VX] Plusieurs positions de départ Ven 28 Aoû 2009 - 13:29 | |
| - Sihn a écrit:
- Zangther : Euh... T'as pas du comprendre mon post, là. Je disais justement que ce script n'était PAS un script pour faire un "new game +" à la chrono trigger! >_<
Le seul variable qui change, c'est celle que tu choisis au début du script. Ah ok j'avais mal lu, dsl x) |
|
| |
Noble Lv.8
Age : 29 Inscrit le : 19/04/2009 Messages : 272
| Sujet: Re: [VX] Plusieurs positions de départ Ven 28 Aoû 2009 - 16:26 | |
| Bien vu Zodiak ^^ je croiq qu'on va s'en servir pour Enfer et paradis ^^
Il me semble qui avait un truc similaire sur creative, un jeu d'aide... sauf que c'était Tuto 1, tuto 2, tuto 3 au lieu de Histoire de Ralph et histoire de arsh ^^
Tiens le chara de Arsh pour VX, jle trouve plus xD |
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [VX] Plusieurs positions de départ Ven 28 Aoû 2009 - 16:38 | |
| Bizarre pour le chara, il me semblait pourtant l'avoir eu sur ce forum...^^ |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [VX] Plusieurs positions de départ Sam 29 Aoû 2009 - 11:06 | |
| Yeah \o/ Script bien expliqué, bien codé, utile pour les courageux ! Bah bon boulot quoi ! |
|
| |
Maître du destin
Age : 28 Inscrit le : 05/11/2008 Messages : 2955
| Sujet: Re: [VX] Plusieurs positions de départ Sam 29 Aoû 2009 - 15:30 | |
| Tiens, on peut ainsi faire deux jeux en un... Intéressant! |
|
| |
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
| Sujet: Re: [VX] Plusieurs positions de départ Sam 29 Aoû 2009 - 16:03 | |
| Darksmile > C'est ce qui s'appelle une surcharge ? Non ?
Bien pensé en tout cas ^^, merci sihn <3 ! |
|
| |
Poulet carnivore Lv.2
Age : 28 Avertissements : 1 Inscrit le : 27/08/2009 Messages : 26
| Sujet: Re: [VX] Plusieurs positions de départ Sam 29 Aoû 2009 - 16:48 | |
| |
|
| |
Poulet carnivore Lv.2
Inscrit le : 03/02/2009 Messages : 27
| Sujet: Re: [VX] Plusieurs positions de départ Mer 23 Sep 2009 - 16:08 | |
| O_O C'est exactement ce que je cherchai. Merci !!! :chou:
Mais une question : Combien de point de départ peut-on mettre ? |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [VX] Plusieurs positions de départ Mer 23 Sep 2009 - 16:27 | |
| |
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [VX] Plusieurs positions de départ Jeu 24 Sep 2009 - 19:39 | |
| ...ou presque. J'avoue ne pas avoir vérifier ce point-ci, alors de préférence pour le moment, faites en sorte que ça ne déborde pas de la fenêtre... :p Au passage, j'ai découvert un bug bizarre, chez moi... En gros, les positions n'apparaissent pas toujours dans l'ordre indiqué dans le script... Avez-vous ce bug, vous aussi? Je vais essayer de le corriger de mon coté, et j'en profiterais également pour voir si je peux gérer quelque chose avec la taille de la fenêtre.
Enfin, je vais sans doute changer la façon dont sont créés les points de départs, afin qu'ils soient plus facile à comprendre et à paramétré : - Code:
-
add_start("Groupe de Ralph") @current.x = 22 @current.y = 30 @current.map_id = 1 add_start("Groupe d'Alex") @current.x = 7 @current.y = 7 @current.map_id = 2 @current.actors = [9, 10, 11] add_start("Groupe d'Arshes") @current.actors = [5, 6] Au final, ça devrait ressembler à un truc comme ça. Ça prendra un peu plus de place, c'est sur, mais ça permettra d'utiliser les points de départ ainsi que d'autres données de l'éditeur comme valeur par défaut.Edito : Nouvelle version disponible! Attention cependant, le paramétrage de cette version est différent de la première. |
|
| |
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: [VX] Plusieurs positions de départ Jeu 24 Sep 2009 - 20:53 | |
| Sihn, j'ai une petite question. Ton script est super, c'est pour cela que je me demandais si tu m'autorisais à aller le poster sur un autre forum de RPG Maker VX. Oui ou non ? ( bien sur je laisserais tel, avec ton nom cité ) |
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [VX] Plusieurs positions de départ Jeu 24 Sep 2009 - 21:34 | |
| A la base, je n'y vois aucun inconvénient. ^^ Sauf si le forum, c'est Oniro (je ne l'apprécie pas trop...), ou créative (l'inverse, je suis inscrit (et encore relativement actif) dessus, et posterais donc moi-même le script à l'occasion), mais ces deux forums étant respectivement orienté vers 2k3 et XP, tu dois sans doute parler d'un autre... donc no problem.
Une fois fait par contre, envois-moi par MP un lien vers ce forum (vers le topic en particulier), que je puisse voir s'ils trouvent des bugs, ou des trucs du genres. |
|
| |
Noble Lv.8
Inscrit le : 05/07/2009 Messages : 263
| Sujet: Re: [VX] Plusieurs positions de départ Lun 26 Oct 2009 - 13:24 | |
| C'est super !! Merci |
|
| |
Age : 33 Inscrit le : 27/06/2008 Messages : 10881
| Sujet: Re: [VX] Plusieurs positions de départ Lun 26 Oct 2009 - 13:36 | |
| Ouah, good game ! A peine revenu et déjà un necropost Ha, et moi je floode. Zut alors >< |
|
| |
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
| Sujet: Re: [VX] Plusieurs positions de départ Lun 26 Oct 2009 - 13:43 | |
| Euuuuh, ouais... T'as pas intêret à faire "ouah super :gaga:" à tous les nouveaux scripts parce que ça sera la case bannissement rapidement =o. J'te le compte pas parce que c'est ton premier depuis 1mois (et ouais pas 6mois au fait =o). Mais la prochaine fois y'aura pas de pitié. |
|
| |
| Sujet: Re: [VX] Plusieurs positions de départ | |
| |
|
| |
| [VX] Plusieurs positions de départ | |
|