Samarium
Conquérant
Nombre de messages : 2183
Age : 35
Point(s) Fort(s) : Programmation : PHP, Ruby, Java
Point(s) Faible(s) : Dessin
Niveau RPG Maker : Expert
Logiciel préféré : RMXP ; IGM
Date d'inscription : 05/08/2006
|
Sujet: Revenir dans un lieu après GameOver v2 Mar 24 Juin 2008 - 16:41 |
|
|
Bonjour,
Revenir dans un lieu après GameOver v2
- Auteur : Samarium - Créé le 20 Juin 2008 - Version 2 - Incompatibilité : Peu - Libre d'utilisation et de distribution - RPG Maker XP
Fonctions Après l'écran GameOver, le héros pourra revenir à la dernière auberge visité. Cependant, si vous le souhaitez, l'argent du héros sera divisé par 2 ou un nombre de votre choix. Système comme le jeu Dragon Quest - L'odyssée du roi maudit (PS2)
Caractéristiques et remarque => Diviser l'argent par 2 ... après GameOver => Désactiver dès le départ, la sélection, "Auberge", tant que le héros na pas visité une auberge => Fenêtre indiquant que le joueur perd de l'argent en bas de l'écran => Commande d'évènement "Fin de jeu" utilisable (ce n'était pas le cas pour la version 1)
Non disponible pour le moment sous RPG Maker VX
Screen
- Spoiler:
Utilisation
- Spoiler:
Pour les options, lisez les commentaires vers la ligne 34. Pour sauvergarder les dernières positions du héros dans une auberge, mettez dans un évènement grâce à "Insérez un script" : - Code:
-
End2.new_position
Installation et scripts
1) Mettez le scripts "Système de sauvegarde des données" au dessus de "Main" disponible ici : script XP Système de sauvegarde des données par Samarium
2) Copiez ce script et collez le au dessus "main" :
- Code:
-
=begin #======================================================================== # Revenir dans un lieu après GameOver v2 # RPG Maker XP #======================================================================== =begin
=> Auteur : Samarium
Version 2 (20/06/2008) Version 1 (--/--/2006)
=> Fonction : Après l'écran GameOver, le héros pourra revenir à la dernière auberge visité. Cependant, si vous le souhaitez, l'argent du héros sera divié par 2 ou un nombre de votre choix. Système comme le jeu Dragon Quest - L'odyssée du roi maudit (PS2)
=> Utilisation : Pour les options, lisez les commentaires vers la ligne 34. Pour sauvergarder les dernières positions du héros dans une auberge, mettez dans un évènement grâce à "Insérez un script" :
End2.new_position
=> Site du créateur : www.rpgcreative.net (si besoin d'aide, n'hésitez pas ;))
=> Remarque : Vous devez avoir le script "Système de sauvegarde de données" par Samarium
=> Modifications : Depuis la version 1, vous pouvez retirer de l'argent et revenir sur le dernier lieu visité après GameOver
=end #------------------------------------------------------------------------ module End2 # Position par défaut, si aucune nouvelle position est enregistrée et que # DISABLE_START ci-dessous vaut "false" DEFAUT_MAP_ID = 1 # ID de la map DEFAUT_MAP_X = 1 # Position X DEFAUT_MAP_Y = 1 # Position Y # Dès le départ, la commande "auberge" est désactivé jusqu'à enregistrement # d'une nouvelle position pour le héros. "false" pour ignorer cette option. # "true" pour l'appliquer. DISABLE_START = false # Le nombre d'argent total divisé par ... après Game Over # Mettez 0 pour ne pas enlever de l'argent et ne pas afficher la fenêtre # indiquant que le joueur perd de l'argent en bas de l'écran GOLD_DIVIS = 2 class << self def new_position $game_data['map_id_End2v2'] = $game_map.map_id $game_data['x_End2v2'] = $game_player.x $game_data['y_End2v2'] = $game_player.y end def var_position hash_pos = {'map_id' => $game_data['map_id_End2v2'], 'x' => $game_data['x_End2v2'], 'y' => $game_data['y_End2v2'],} return hash_pos end end end # -------------------------------------------------- # Scene_End2 # Reprise de la classe de la version 1. Permet de # de mettre à jour les fenêtres et faire intérargir # le joueur # -------------------------------------------------- class Scene_End2 def main # Fenêtre de sélection définit s1 = "Écran-Titre" s2 = "Revenir à l'auberge" # Ici, vous pouvez changer le nom de la destination. @command_window = Window_Command.new(192, [s1, s2]) @command_window.x = 320 - @command_window.width / 2 @command_window.y = 50 # Désative/Active dès le départ selon les options choisises la sélection "Auberge" @disable_start = false @disable_start = true if End2::DISABLE_START and $game_end2.position.empty? @command_window.disable_item(1) if @disable_start # Fenêtre de destination ("Auberge") définit @destination_window = Window_Destination.new @destination_window.visible = false # Fond GameOver définit @sprite = Sprite.new @sprite.bitmap = RPG::Cache.gameover($data_system.gameover_name) # Boucle infinie de mise çjour des graphismes et entrée du clavier Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end $game_temp.gameover = false if $scene.is_a?(Scene_Map) # Suppression des fenêtres après avoir "gelé" les graphismes Graphics.freeze @command_window.dispose @destination_window.dispose end def update # Mise àjour des fenêtres @command_window.update @destination_window.update # Affiche la feêtre Window_Destination selon les options if End2::DISABLE_START if !$game_end2.position.empty? @destination_window.visible = @command_window.index == 1 ? true : false if End2::GOLD_DIVIS != 0 end else @destination_window.visible = @command_window.index == 1 ? true : false if End2::GOLD_DIVIS != 0 end # Quand on appuie sur C/Entrée/Espace if Input.trigger?(Input::C) # Selon index de la sélection case @command_window.index when 0 # Aller à l'écran titre command_to_title when 1 # Son "Buzzer" si sélection désactivée if @disable_start $game_system.se_play($data_system.buzzer_se) else # Aller vers la destination de "l'auberge" new_position = End2.var_position if new_position.empty? command_destination else command_destination(new_position['map_id'], new_position['x'], new_position['y']) end end return end end # Aller vers l'écran titre def command_to_title $game_system.se_play($data_system.decision_se) Audio.bgm_fade(800) Audio.bgs_fade(800) Audio.me_fade(800) $scene = Scene_Title.new end def command_destination(map_id = End2::DEFAUT_MAP_ID, map_x = End2::DEFAUT_MAP_X, map_y = End2::DEFAUT_MAP_Y) $game_system.se_play($data_system.decision_se) Audio.bgm_fade(800) Audio.bgs_fade(800) Audio.me_fade(800) # On divise l'argent par un nombre choisit. Evite la division par 0 gold_divis = End2::GOLD_DIVIS != 0 ? End2::GOLD_DIVIS : 1 for i in 1...$game_party.actors.size $game_actors[i].recover_all end $game_party.lose_gold($game_party.gold / gold_divis) # Téléportation vers ID, X et Y de la map $game_map.setup(map_id) $game_player.moveto(map_x, map_y) $game_player.refresh $game_map.autoplay $game_map.update $scene = Scene_Map.new end end end # -------------------------------------------------- # Window_Destination # La fenêtre d'information selon la perte d'argent # -------------------------------------------------- class Window_Destination < Window_Base def initialize @win_width = 400 win_height = 100 # Centrer la fenêtre x = 640 / 2 - @win_width / 2 y = 480 - win_height - 10 super(x, y, @win_width, win_height) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = 20 refresh end # Textes def refresh self.contents.clear self.contents.draw_text(@win_width/2 - 170, 0, 400, 32, "Revenez dans la dernère auberge visitée.") self.contents.draw_text(@win_width/2 - 170, 16, 400, 32, "Attention, vous gardez vos caratéristiques") self.contents.draw_text(@win_width/2 - 140, 32, 400, 32, "mais votre argent sera divisé par #{End2::GOLD_DIVIS}") end end # -------------------------------------------------- # Scene_Gameover # Appelle de la classe Scene_End2 quand la scène # Game Over a lieu # -------------------------------------------------- class Scene_Gameover def update $scene = Scene_End2.new end end # -------------------------------------------------- # Interpreter # Commande d'évènement "Fin de jeu" redefinit. # Evite les appels infinies de "Game Over" # -------------------------------------------------- class Interpreter def command_353 $game_temp.gameover = true return true end end
|
|