~ S'évader de la banalité... Et entrer dans l'imaginaire ! ~ |
|
| [Script] Changer l'ordre des héros directement sur la map | |
|
+4SPAB57 Naqqah kilam1110 Chaotique Blue 8 participants | Auteur | Message |
---|
Chaotique Blue Maker accro Lv 13
Nombre de messages : 441 Age : 36
| Sujet: [Script] Changer l'ordre des héros directement sur la map Sam 18 Avr 2009, 04:41 | |
| Ce soir, en exclusivité mesdames et messieurs... et mesdemoiselles... -_^ ...hum. Le... Switcheur de héros Ce script vous permet de changer le leader de votre équipe facilement, et à tout moment sur la map. Appuyé sur la touche Y de RMXP, choisissez votre héros avec droite et gauche, valider, et pouf! Votre leader à changé! Utile pour virer rapidement Arshes au profit de Felix ou d'Hilda! Allez zou, le script : - Code:
-
#============================================================================= # Switcheur de héros #----------------------------------------------------------------------------- # Créé par Sihn, à partir du menu tournant de MakirouAru # Conçu pour RMXP # Version 2.1 #=============================================================================
# Touche d'activation (Changez uniquement le Y) SWITCHEUR_KEY = Input::Y
# Son de l'apparition du cercle SE_START = "007-System07"
# Animation à jouée si changement de héros ID_ANIMATION = 25
# Durée en frame de l'apparition du cercle TRANS_FRAMES = 15
# Durée en frame de la rotation entre deux éléments du cercle 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
#============================================================================= # Window_Switcheur #============================================================================= class Window_Switcheur < Window_Base attr_accessor :index def initialize super(-16, -16, 640+32, 480+32) 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.actors @commands.push(actor.name) @items.push(RPG::Cache.character(actor.character_name, actor.character_hue)) end @item_max = @commands.size @index = 0 @cx = $game_player.screen_x @cy = $game_player.screen_y - 24 setup_move_start refresh end def update super if @mode < 5 if Input.trigger?(Input::UP) or Input.trigger?(Input::LEFT) $game_system.se_play($data_system.cursor_se) ELIPSE ? setup_move_move(3) : setup_move_move(4) return elsif Input.trigger?(Input::DOWN) or Input.trigger?(Input::RIGHT) $game_system.se_play($data_system.cursor_se) ELIPSE ? setup_move_move(4) : setup_move_move(3) return elsif Input.trigger?(Input::B) and AUTO_KEY $game_system.se_play($data_system.cancel_se) $game_temp.switcheur_result = false setup_move_end return elsif AUTO_KEY if Input.trigger?(Input::C) or Input.trigger?(SWITCHEUR_KEY) $game_system.se_play($data_system.decision_se) $game_temp.switcheur_result = true setup_move_end return end else unless Input.press?(SWITCHEUR_KEY) $game_system.se_play($data_system.decision_se) $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 - 304, @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] rect = Rect.new(0, 0, item.width / 4, item.height / 4) opa = @index == i ? 255 : 128 self.contents.blt(x - item.width / 8, y - item.height / 8, item, rect, opa) 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 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
Alooors... Comme d'hab, à placer au-dessus de main, au dessous des autres scripts, et à nommer comme bon vous semble. ("Switcheur de héros", par exemple) Une fois ceci fait, le script est opérationnel. Appuyé sur la touche Y de RMXP (S sur votre clavier, par défaut), choisissez votre héros principal, ré-appuyé sur S (ou sur entrer), et... je me répète là, non?^^ Quelques astuces complémentaires... 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; 2.0 - choisir entre une forme rond et ovale pour le switcheur : - Spoiler:
2.1 - Choisir si la touche qui active le switcheur doit être maintenu ou non. 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! Oh, un dernier truc... - Code:
-
$game_variables[29] = $game_party.actors[0].id Ce petit code (à placer dans un "insérer un script") permet d'enregistrer l'identifiant du premier héros de votre équipe dans une variable. (la variable numéro 29, dans cet exemple. N'hésitez pas à changer le numéro selon vos besoins) Avec cette valeur, vous pourrez, par exemple, adapter des dialogues en fonction du personnage apparent de votre équipe. Des questions, bugs, remarques?^^ ____________ Miaou miaou, motherf\o/cker.
Dernière édition par Chaotique Blue le Ven 31 Juil 2009, 17:58, édité 7 fois (Raison : Nouvelle version (2.1), MAJ des explications) | |
| | | kilam1110 Maker de Légende Lv 50
Nombre de messages : 4021 Age : 29
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Sam 18 Avr 2009, 11:08 | |
| Eh pas mal T'es sur que ça peut pas causer de bugs par contre ? ____________ Falco Fan... - Spoiler:
Je suis comme toi, je n'ai pas de nom... Juste un pseudo ! FAN DE MGS Garde du corps officiel de meteskisNew RPG Maker :
| |
| | | Chaotique Blue Maker accro Lv 13
Nombre de messages : 441 Age : 36
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Sam 18 Avr 2009, 12:01 | |
| Normalement non.^^; Mais si vous en voyez tout de même un, signalez-le moi pour que je le corrige.
Edito : Quant on parle du loup... J'ai repéré quelques bugs. Le "switcheur" restait à l'écran quand on entrait dans le menu, par exemple... Bugs corrigés, premier post édité. (ça m'apprendra à poster des scripts à 4 h 40 du matin... >_<) ____________ Miaou miaou, motherf\o/cker.
| |
| | | Naqqah Maker de Légende Lv 46
Nombre de messages : 3377 Age : 28
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Sam 18 Avr 2009, 13:50 | |
| xD
Pas mal !
Bien que je n'utilise plus RMXP, je trouve la script sympa, bravo !
Et ton oeuf a éclos ! | |
| | | SPAB57 Maker Lv 6
Nombre de messages : 172 Age : 29
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Sam 18 Avr 2009, 14:49 | |
| Huhuhu, juste pour faire ch*er embêter Chaotique Blue, je vais poster la traduction de son petit gribouillis au bas de son message : "(ça m'apprendra à poster des scripts à 4 h 40 du matin... >_<)" Sinon, chez moi, il faut presser la touche S et non la touche Y =| EDIT : super script au passage ____________ Fan de : - Spoiler:
[center]The life is a game... Mouhaha ! - Pourquoi je ris ? Un psy, viiiiite ! :?!:
[/center] | |
| | | Chaotique Blue Maker accro Lv 13
Nombre de messages : 441 Age : 36
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Sam 18 Avr 2009, 15:22 | |
| - Citation :
- Sinon, chez moi, il faut presser la touche S et non la touche Y
=| Déjà répondu à ça! - Citation :
- Maintenant la touche Y de RMXP (S sur votre clavier, par défaut)
Il ne faut pas confondre les "touches RMXP" avec les touches du claviers. Pour savoir à quel touche du clavier correspond quelle touche du clavier, appuie sur F1 durant le jeu. ____________ Miaou miaou, motherf\o/cker.
| |
| | | Naqqah Maker de Légende Lv 46
Nombre de messages : 3377 Age : 28
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Sam 18 Avr 2009, 17:02 | |
| Ce qui m'a posé un gros problème sur mon 1er brouillon : F1 ne marchait pas... | |
| | | kilam1110 Maker de Légende Lv 50
Nombre de messages : 4021 Age : 29
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Sam 18 Avr 2009, 18:48 | |
| F1 ne marchait pas...Il a pas de jambes ! Oloooooolll Sinon c'est un des trucs bien de XP, tu peux choisir tes touches. ____________ Falco Fan... - Spoiler:
Je suis comme toi, je n'ai pas de nom... Juste un pseudo ! FAN DE MGS Garde du corps officiel de meteskisNew RPG Maker :
| |
| | | Chaotique Blue Maker accro Lv 13
Nombre de messages : 441 Age : 36
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Sam 18 Avr 2009, 19:09 | |
| Tu peux aussi sous VX, exactement de la même façon...^^ (peut pas dire ce qu'il en est pour les RM2k et 2k3) ____________ Miaou miaou, motherf\o/cker.
| |
| | | kilam1110 Maker de Légende Lv 50
Nombre de messages : 4021 Age : 29
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Sam 18 Avr 2009, 19:13 | |
| Oui VX aussi... mais pour 2k et 2k3 non, mais ils sont quand même bien meilleurs que XP et VX ____________ Falco Fan... - Spoiler:
Je suis comme toi, je n'ai pas de nom... Juste un pseudo ! FAN DE MGS Garde du corps officiel de meteskisNew RPG Maker :
| |
| | | SPAB57 Maker Lv 6
Nombre de messages : 172 Age : 29
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Dim 19 Avr 2009, 09:02 | |
| - Chaotique Blue a écrit:
-
- Citation :
- Sinon, chez moi, il faut presser la touche S et non la touche Y
=| Déjà répondu à ça! - Citation :
- Maintenant la touche Y de RMXP (S sur votre clavier, par défaut)
Il ne faut pas confondre les "touches RMXP" avec les touches du claviers. Pour savoir à quel touche du clavier correspond quelle touche du clavier, appuie sur F1 durant le jeu.
Oww m*rde, j'avais pas vu... *SBAFF* ____________ Fan de : - Spoiler:
[center]The life is a game... Mouhaha ! - Pourquoi je ris ? Un psy, viiiiite ! :?!:
[/center] | |
| | | Chaotique Blue Maker accro Lv 13
Nombre de messages : 441 Age : 36
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Dim 10 Mai 2009, 22:50 | |
| Nouvelle version du script! - L'animation qui est jouée à l'apparition du switcheur est à présent également joué lors de sa disparition. - Vous pouvez maintenant choisir entre une forme ronde (premiers screens) ou ovale. Pour choisir la forme, allez à la ligne 28, vous devriez avoir : - Code:
-
ELIPSE = true Ce code signifie que c'est la version ovale qui est activée. Pour avoir la forme ronde de la version précédente, remplacer le true de cette ligne par false. - L'appel de ce script est légèrement différent, à présent. Une simple pression suffit à faire apparaitre le switcheur, plus besoin de maintenir la touche comme avant. Pour le faire disparaitre, appuyez sur Entrer ou de nouveau Y. Ceci validera le choix et changera donc votre personnage. Vous pouvez aussi appuyer sur Echap pour quitter le switcheur, sans changer de personnage. Le code, ainsi que les explications du premier post ont donc été corrigées. ____________ Miaou miaou, motherf\o/cker.
| |
| | | AristA Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 11008 Age : 27
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Lun 11 Mai 2009, 08:47 | |
| Joli =D Je ne m'en servirai absolument pas, je trouve ça juste sympa =° | |
| | | coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Lun 11 Mai 2009, 14:11 | |
| Qu'est ce que ça change concrètement ? L'apparence, l'ordre des héros, ça met le héros à la première place ? Je vois d'ici un système de costumes / transformation vachement utile Ca arrête les autres actions du jeu (les évent bougent pendant l'animation ? Très bon script en tout cas ____________ | |
| | | Chaotique Blue Maker accro Lv 13
Nombre de messages : 441 Age : 36
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Lun 11 Mai 2009, 20:00 | |
| Question 1 : voir Question 2. Question 2 : ça change l'ordre des héros, et par conséquent l'apparence sur la map (qui devient celle du nouveau premier héros de l'équipe). Question 3 : Oui, ça stop tous le reste, event, autotile animé... Tout reprend son cours une fois le nouveau héros choisis. ____________ Miaou miaou, motherf\o/cker.
| |
| | | meteskis Maker d'Or Lv 26
Nombre de messages : 1079 Age : 122
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Ven 31 Juil 2009, 10:28 | |
| Kablue Ce tuto va être vachement utile à des potes qui font un projet sur XP Merciiiiiii | |
| | | Chaotique Blue Maker accro Lv 13
Nombre de messages : 441 Age : 36
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Ven 31 Juil 2009, 17:29 | |
| J'ai également une version pour VX, pour ceux que ça interesse. Est-ce que je peux mettre un lien vers un autre forum (où j'ai posté cette version), ou dois-je refaire directement un nouveau topic? (Dans ce deuxième cas, il faudra attendre un peu, car j'avous avoir un chti peu beaucoup la flemme, là tout de suite... ^___^) Edito : Je viens de voir que ce script n'était pas à jour... Donc nouvelle version disponible! Vous pouvez désormais choisir si la touche doit être maintenu pour conserver le switcheur ou non. (Pas clair? Testez in-game en changeant la valeur de AUTO_KEY pour vous faire une meilleur idée! ) ____________ Miaou miaou, motherf\o/cker.
| |
| | | rodrigue19 RTP de base Lv 1
Nombre de messages : 6 Age : 30
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map Lun 17 Jan 2011, 20:52 | |
| bonjous chaotique blue j`ai bien fais tous les script j`ai tous copier dans un nouveaux script j`ai remplacer le bouton y par CTRL nommer le scripte switch joueur j`ai fais un nouveaux dossier que j`ai laisser sans nom et j`ai mis la deuxieme partie j`ai rien changer et quand je lance le jeux sa me met un message comme sa : ?????''? 1 ??? NoMethodError ??????? undefined method 'actors' for nil:Nilclass mot pour mot merci de me repondre au plus vite : | |
| | | Contenu sponsorisé
| Sujet: Re: [Script] Changer l'ordre des héros directement sur la map | |
| |
| | | | [Script] Changer l'ordre des héros directement sur la map | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |
|