| [VX] Switcheur de héros (changer de leader en cours de jeu) | |
|
|
Auteur | Message |
---|
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: [VX] Switcheur de héros (changer de leader en cours de jeu) Jeu 28 Mai 2009 - 8:30 | |
| Véixiens, Véixiennes, je vous (re)salut.^^ - Présentation du script -Cette fois, je vous offre un script que j'ai créé à partir du menu tournant de MakirouAru. Ce script vous permet d'afficher tous les héros de votre équipe sur l'écran, et de choisir celui qui sera en première position de l'équipe (et donc qui apparaitra sur la map). - script - - Code:
-
#============================================================================= # Switcheur de héros #----------------------------------------------------------------------------- # Créé par Sihn, à partir du menu tournant de MakirouAru # Conçu pour RMVX # Version 2.4 #=============================================================================
# Touche d'activation (Changez uniquement le Y) SWITCHEUR_KEY = Input::Y
# Son lors de l'apparition du switcheur SE_START = "Decision2"
# Animation à jouer sur le héros si changement de celui-ci ID_ANIMATION = 41
# Durée en frame de l'apparition du switcheur TRANS_FRAMES = 15
# Durée en frame de la rotation entre deux héros du switcheur MOVING_FRAMES = 10
# Rayon en pixel RAYON = 64
# true : En forme d'élipse / false : En forme de cercle ELIPSE = true
# true : Appuyez sur le bouton / false : Maintenez le bouton AUTO_KEY = true
#============================================================================= # Game_Temp #============================================================================= class Game_Temp attr_accessor :switcheur_result alias initialize_switcheur_result initialize def initialize initialize_switcheur_result @switcheur_result = false end end
#============================================================================= # Game_Party #============================================================================= class Game_Party attr_accessor :actors end
#============================================================================= # Window_Switcheur #============================================================================= class Window_Switcheur < Window_Base attr_accessor :index def initialize super(-16, -16, 576, 448) self.contents = Bitmap.new(width-32, height-32) self.contents.font.name = "Arial" self.opacity = 0 self.back_opacity = 0 @commands = [] @items = [] for actor in $game_party.members @commands.push(actor.name) @items.push(Cache.character(actor.character_name)) end @item_max = @commands.size @index = 0 @cx = $game_player.screen_x + 16 @cy = $game_player.screen_y - 8 setup_move_start refresh end def update super if @mode < 5 if Input.trigger?(Input::UP) or Input.trigger?(Input::LEFT) Sound.play_cursor ELIPSE ? setup_move_move(3) : setup_move_move(4) return elsif Input.trigger?(Input::DOWN) or Input.trigger?(Input::RIGHT) Sound.play_cursor ELIPSE ? setup_move_move(4) : setup_move_move(3) return elsif Input.trigger?(Input::B) and AUTO_KEY Sound.play_cancel $game_temp.switcheur_result = false setup_move_end return elsif AUTO_KEY if Input.trigger?(Input::C) or Input.trigger?(SWITCHEUR_KEY) Sound.play_decision $game_temp.switcheur_result = true setup_move_end return end else unless Input.press?(SWITCHEUR_KEY) Sound.play_decision $game_temp.switcheur_result = true setup_move_end return end end end refresh end def refresh self.contents.clear case @mode when 1 refresh_start when 2 refresh_wait when 3 refresh_move(1) when 4 refresh_move(0) when 5 refresh_end end if @mode != 6 cy = ELIPSE ? 32 : 0 rect = Rect.new(@cx - 272, @cy + cy, self.contents.width - 32, 32) self.contents.draw_text(rect, @commands[@index], 1) else dispose end end def refresh_start d1 = 2.0 * Math::PI / @item_max d2 = 1.0 * Math::PI / TRANS_FRAMES r = RAYON - 1.0 * RAYON * @steps / TRANS_FRAMES for i in 0...@item_max j = i - @index d = d1 * j + d2 * @steps x = @cx + (r * Math.sin(d)).to_i y = @cy - ((r * Math.cos(d)).to_i / elipse) draw_item(x, y, i) end @steps -= 1 if @steps < 1 @mode = 2 end end def refresh_wait d = 2.0 * Math::PI / @item_max for i in 0...@item_max j = i - @index x = @cx + (RAYON * Math.sin(d * j)).to_i y = @cy - ((RAYON * Math.cos(d * j)).to_i / elipse) draw_item(x, y, i) end end def refresh_move(mode) d1 = 2.0 * Math::PI / @item_max d2 = d1 / MOVING_FRAMES d2 *= -1 if mode != 0 for i in 0...@item_max j = i - @index d = d1 * j + d2 * @steps x = @cx + (RAYON * Math.sin(d)).to_i y = @cy - ((RAYON * Math.cos(d)).to_i / elipse) draw_item(x, y, i) end @steps -= 1 if @steps < 1 @mode = 2 end end def refresh_end d1 = 2.0 * Math::PI / @item_max d2 = 1.0 * Math::PI / TRANS_FRAMES r = RAYON - 1.0 * RAYON * @steps / TRANS_FRAMES for i in 0...@item_max j = i - @index d = d1 * j + d2 * @steps x = @cx + (r * Math.sin(d)).to_i y = @cy - ((r * Math.cos(d)).to_i / elipse) draw_item(x, y, i) end @steps += 1 if @steps > TRANS_FRAMES @mode = 6 end end def draw_item(x, y, i) item = @items[i] if $game_party.members[i].character_name.include?("$") rect = Rect.new(item.width / 3, 0, item.width / 3, item.height / 4) opa = @index == i ? 255 : 128 self.contents.blt(x - item.width / 3, y - item.height / 4, item, rect, opa) else index = $game_party.members[i].character_index rect = Rect.new((item.width / 4) * (index % 4) + (item.width / 12), (item.height / 2) * (index / 4 % 2), item.width / 12, item.height / 8) opa = @index == i ? 255 : 128 self.contents.blt(x - item.width / 12, y - item.height / 8, item, rect, opa) end end def setup_move_start @mode = 1 @steps = TRANS_FRAMES end def setup_move_move(mode) return if $game_party.actors.size < 2 if mode == 3 @index -= 1 @index = @items.size - 1 if @index < 0 elsif mode == 4 @index += 1 @index = 0 if @index >= @items.size else return end @mode = mode @steps = MOVING_FRAMES end def setup_move_end @mode = 5 @steps = 0 end def elipse return ELIPSE ? -2 : 1 end end
#============================================================================= # Scene_Map #============================================================================= class Scene_Map alias ring_system_update update def update if @switcheur_window != nil if @switcheur_window.disposed? if $game_temp.switcheur_result and @switcheur_window.index != 0 target_actor = $game_party.actors[@switcheur_window.index] while $game_party.actors[0] != target_actor actor = $game_party.actors[0] $game_party.actors.delete_at(0) $game_party.actors.push(actor) end $game_player.animation_id = ID_ANIMATION $game_player.refresh end $game_temp.switcheur_result = false @switcheur_window = nil else @switcheur_window.update end return end if Input.press?(SWITCHEUR_KEY) and $game_party.actors.size > 0 if SE_START != nil and SE_START != "" Audio.se_play("Audio/SE/" + SE_START, 80, 100) end @switcheur_window = Window_Switcheur.new end ring_system_update end end
- Installation -Comme d'hab, placez ce script au dessus de main, et au dessous des autres scripts de bases. Nommez-le comme bon vous semble, le nom que vous lui donnerez n'ayant de toute façon aucune incidence sur son fonctionnement.- Screen -- Utilisation -Une fois le script installé, il est fonctionnel. Vous pouvez l'utiliser sans faire aucun paramétrage.^^ Appuyer sur la touche Y de RMVX (S sur votre clavier, par défaut), choisissez votre héros avec gauche et droite, ré-appuyer sur la touche Y (ou entrer) et voila! Votre leader à changer! - Paramétrage avancé -Cependant, quelques paramétrages sont possibles, afin de personnaliser ce script... Pour changer la touche qui appelle ce script, allez à la ligne 10, vous devriez avoir : KEY = Input::Y Changez le Y par une de ces lettres : A, B, C, X, Y, Z, L, R, CTRL, SHIFT, ALT. Cependant, je vous déconseille d'utiliser B et C, ces touches correspondant à annuler/valider. D'autres modifications sont également possibles : - changer le son joué lors de l'appel du script; - choisir l'animation à jouer lors du changement de héros; - changer la durée de l'apparition/disparition du switcheur; - changer la durée d'une rotation entre deux héros; - changer le rayon du sélecteur; - choisir entre une forme rond et ovale pour la disposition des héros; - et choisir si il faut maintenir la touche Y enfoncé pour utiliser le switcheur. Ces modifications sont à faire au début du script. Quelques commentaires sont là pour vous aider, mais n'hésitez pas à me poser des question si besoin est! - Un petit plus non négligeable... - - Code:
-
$game_variables[29] = $game_party.members[0].id Ce petit code, placé dans un "insérer un script", vous permet d'enregistrer l'identifiant du héros leader dans une variable de RMVX (la variable 29, dans ce code). Et c'est là que le script prend vraiment tout son intérêt... Vous pouvez, via des conditions en event sur cette variable, adapter les dialogues en fonction du héros leader, lui faire des actions différentes sur la map (une condition qui change la vitesse de marche si votre héros est un chocobo, par exemple), et plein d'autre chose... - Crédit -MakirouAru (bien que je l'ai adapté à ma sauce, j'ai conservé la structure globale de son menu tournant) Sihn Sur ce, bon making à tous! Prévenez-moi en cas de bug, ou si vous voulez simplement plus d'information (sur les paramétrages possibles au début du script notamment).
Dernière édition par Sihn le Jeu 16 Juil 2009 - 13:48, édité 3 fois (Raison : Correction d'un bug lors d'utilisation de certains charas) |
|
| |
Templier Lv.15
Age : 34 Inscrit le : 11/12/2008 Messages : 1278
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Jeu 28 Mai 2009 - 10:39 | |
| Wahou, c'est un excellent script, ça me fais un peu penser à FF12 cette histoire de leader, et les débouchés au niveau d'un jeu peuvent être innombrable, GG vraiment c'est du super boulot. |
|
| |
Age : 33 Inscrit le : 27/06/2008 Messages : 10881
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Jeu 28 Mai 2009 - 16:00 | |
| Ce script est super ^^ Comme tu l'as fait toi-même ( même si tu as repris la structure d'un autre script ), + 10 points de script ! ( je vais sans doute te l'emprunter d'ailleurs ^^ ) |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Ven 29 Mai 2009 - 4:56 | |
| Sympa =) Bon travail, on à un scripteur de plus parmi nous \o/ |
|
| |
Habitant Lv.6
Avertissements : Banni ! Inscrit le : 02/01/2009 Messages : 138
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Jeu 4 Juin 2009 - 21:39 | |
| Désoler, ya un bug, parfois aprés plusieurs changement de perssonage, il se trompe dans les noms XD merci de vérifier |
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Jeu 4 Juin 2009 - 21:59 | |
| Bon déjà, merci à tous pour vos messages, ça me fait plaisir!^^ kordarr : FF12? Peut-être, je sais pas, je n'y ai jamais joué.^^ Je me suis plus inspiré de Megaman ZX pour créer ce script. (c'est pas tout à fait le même genre de jeu...^^)
Mister.Darcy : désolé, mais même après vérification, je n'ai pas ce bug chez moi. Peut-tu m'en dire plus sur le moment exacte où il apparait? De plus, utilises-tu d'autres scripts? |
|
| |
Roi des Lapinous
Age : 34 Inscrit le : 11/10/2008 Messages : 2292
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Ven 5 Juin 2009 - 7:30 | |
| C'est vraiment sympa pour les jeux où on attribue une spécialité à un héro et on est obligé de switcher pour pouvoir passer certains obstacles.. ça ouvre beaucoup de possibilités ^^ Merci pour ce bon script. |
|
| |
Templier Lv.15
Age : 33 Inscrit le : 19/07/2008 Messages : 1317
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Ven 5 Juin 2009 - 10:03 | |
| |
|
| |
Roi des Lapinous
Age : 34 Inscrit le : 11/10/2008 Messages : 2292
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Ven 5 Juin 2009 - 10:28 | |
| Test et dis nous =) ça aidera plus d'un. |
|
| |
Templier Lv.15
Age : 33 Inscrit le : 19/07/2008 Messages : 1317
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Ven 5 Juin 2009 - 10:48 | |
| Ca marche !
Très bon script ! +1 ! |
|
| |
Va-nu-pieds Lv.4
Avertissements : 1 Inscrit le : 31/05/2009 Messages : 54
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Sam 6 Juin 2009 - 16:53 | |
| Personellement, j'ai modifié le script ARPG v 1.0 par Vlad pour l'adapter a ce script, seulement je l'ai pas sous la main. Y suffit de remplacer tous les $game_actors[1] par des $game_party.members[0] dans les deux scripts (ABS et HUD) Edit (quasi Instantané) : J'essaierais de ladapter avec d'autres scripts ABS plus tard, bien que je pense que ce soit à peu près la même méthode.
Dernière édition par QuaterX le Sam 6 Juin 2009 - 17:04, édité 1 fois |
|
| |
Roi des Lapinous
Age : 34 Inscrit le : 11/10/2008 Messages : 2292
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Sam 6 Juin 2009 - 16:59 | |
| Je pense qu'il à été testé avec le Arpg 4. quelque chose (la 5. existe pas c'est une 4.2 ou un truc dans le genre il me semble) requiem. Il faut demander à Vincent, et apparemment ça marche. |
|
| |
Va-nu-pieds Lv.4
Avertissements : 1 Inscrit le : 31/05/2009 Messages : 54
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Sam 6 Juin 2009 - 17:05 | |
| |
|
| |
Illusionniste Lv.12
Age : 28 Inscrit le : 29/03/2008 Messages : 673
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Sam 6 Juin 2009 - 17:54 | |
| Très bon script d'ailleur je l'utiliserais pour mon prochain projet |
|
| |
Vagabond Lv.5
Age : 28 Inscrit le : 20/04/2009 Messages : 88
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Dim 7 Juin 2009 - 8:27 | |
| Salut, Il y a un probleme avec l'ABS Requiem 6 de Vlad... quand on change de héros, c'est toujours celui debase qui perds des PV. Quelqu'un pourrait-t-il régler ce probleme ? Ce script me serait tres utile, si utilisable. Merci. |
|
| |
Va-nu-pieds Lv.4
Avertissements : 1 Inscrit le : 31/05/2009 Messages : 54
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Dim 7 Juin 2009 - 9:25 | |
| Jai posté la solution un peu plus haut ! |
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Dim 7 Juin 2009 - 11:30 | |
| En même temps, le type qu'a fait ton ABS a fait en sorte que le héros soit choisis en fonction de son identifiant, et non de sa position dans l'équipe... Je vous le dis, les meilleurs systèmes de combats sont ceux fait maisons.^^ |
|
| |
Va-nu-pieds Lv.4
Avertissements : 1 Inscrit le : 31/05/2009 Messages : 54
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Dim 7 Juin 2009 - 14:40 | |
| Pas faut... Mais c'est tout de même plus simple d'en modifier des existants. |
|
| |
Poulet trizo Lv.3
Age : 33 Inscrit le : 12/05/2009 Messages : 49
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Dim 7 Juin 2009 - 21:45 | |
| J'ai un probleme avec le "petit plus non négligeable" lorsque je copie - Citation :
- $game_variables[29] = $game_party.actors[0].id
sous main dans un nouveau script je lance le jeu et un message d'erreur apparait - Spoiler:
Je pense que j'ai pas du saisir un truc ! Merci de l'aide |
|
| |
Templier Lv.15
Age : 34 Inscrit le : 11/12/2008 Messages : 1278
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Dim 7 Juin 2009 - 21:55 | |
| T'aurais pas oublié un #..? |
|
| |
Poulet trizo Lv.3
Age : 33 Inscrit le : 12/05/2009 Messages : 49
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Dim 7 Juin 2009 - 21:57 | |
| Je le met devant ? - Citation :
- #$game_variables[29] = $game_party.actors[0].id
|
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Dim 7 Juin 2009 - 22:27 | |
| Mmm... Remplace actors par members, et ça devrait marcher. (bizarre, normallement, mon script permet d'utiliser aussi bien actors que members... Cependant, c'est vrai que j'aurais du mettre ce deuxième terme dans mon exemple, et non le premier... Je vais éditer mon post.) kordarr : le # sert soit à mettre des commentaires, soit à inclure des variables dans un texte (de cette manière : "Début texte #{ma_variable} fin texte") |
|
| |
Poulet trizo Lv.3
Age : 33 Inscrit le : 12/05/2009 Messages : 49
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Lun 8 Juin 2009 - 8:03 | |
| Même erreur avec members.... Tiens regarde si j'ai pas fait une erreur en insérant le script - Spoiler:
|
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Lun 8 Juin 2009 - 8:12 | |
| AAAaaaaaaaaaaah bah d'accord!^^ Ce petit code, c'est dans une commande d'événement "insérer un script" qu'il faut le mettre!^^ |
|
| |
Poulet trizo Lv.3
Age : 33 Inscrit le : 12/05/2009 Messages : 49
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) Lun 8 Juin 2009 - 9:13 | |
| Oki oki merci j'avais pas compris !!
Si je peut abuser tu peut pas me monter un exemple pour que par exemple un PNJ te dise "Bonjour" avec le héros 001 et "Salut" avec le 002 (pour que je comprenne le systeme )
Merci beaucoup !! |
|
| |
| Sujet: Re: [VX] Switcheur de héros (changer de leader en cours de jeu) | |
| |
|
| |
| [VX] Switcheur de héros (changer de leader en cours de jeu) | |
|