Jordinateur Blob
Nombre de messages : 260 Localisation : Devant mon ordinateur !(enfin sa dépend, peut-être avec ma copine aussi ^^) Humeur/Caractère : Aller a l'école T_T Date d'inscription : 12/05/2006
| Sujet: Systeme de world map Sam 20 Mai - 14:16 | |
| Voilà, alors, recommancont à poster quelques scripts... Ce script vous servira pour les gros flemard qui désirent faire une world map, mais qui ne veulent pas la dessinner Il sert en gros, à choisir l'endroit de votre destinateion par rapport à votre map monde, c'est-à-dire que, si par exemple, vous ne voulez pas dessiner de carte, vous sortez par exemple d'une ville, et au lieu de vous retrouver dans une map-monde, vous vous retrouvez dans un menu qui vous demandera où vous souhaitez aller sur votre map monde, et vous choisissez en fonction des endroit possibles, pui sil vous emmène dans la ville ou le lieu que vous avez choisi, au lieu, de vous y emmener sur la map monde...J'espère que je me suis fait comprendre, en tout cas, vous n'avez qu'a l'essayer et vous verrez pas vous même, je tiens à préciser que ave sa, vous pouvez aussi faire une map monde, et par exemple, après un quête, vous gagnez un objet qui vous permettra tout comme dans Fables de vous téléporter un endroit. Faite un nouveau script au dessus de Main appelé Worldmap90 puis coller ce code: - Code:
-
# à l'aide de variables ou de switchs / intérupteur. # Utilisation : # Il y a trois endroits où vous devez modifier ce scrîpt pour qu'il fonctionne, pour cela faites # comme dans les exemples, ils sont à mon avis assez explicites. # # Modifications 1 : C'est là que vous mettrez le nom de la destination (dans la variable @s[i], # où i est la position de ce choix, 0 = première position, 1 = 2nde position ou 1ère position si # le choix 0 n'est pas disponible et ainsi de suite) et le nom de l'image du dossier Pictures lui # correspondant dans la variable @ni[i] (le nom doit être entre crochets (exemple "Ville"), et ne # doit PAS contenir le nom de l'extension (.jpg). # # Modifications 2 : Optionnel, si vous voullez qu'à un moment le joueur ne puisse pas aller # quelquepart mais que le choix soit tout de même visible, c'est là qu'il faut le mettre, à l'aide # de la commande : @command_window.disable_item("nom du l'endroit") # # Modifications 3 : Entrer ici les conséquences du choix, générallement la téléportion complète # de l'équipe. Pour téléporter l'équipe vous pouvez utiliser la commande : # téléportation(id_de_la_map, coordonnée_x, coordonnée_y, direction_du_héros_optionnel) # Je ne me rappelle plus des différentes direction du héros, il me semble que ce chiffre peut # une valeur entre 0 et 3, 0 et 3 étant compris. Cela permet en tout cas que le héro regarde # vers le haut ou la droite par exemple, après s'être téléporté. # # Notes importantes : L'image doit être au format jpg (c'est le seul que j'ai testé, je ne sais pas # si les autres sont acceptés). Son format conseillé est de 368x352, si l'image est plus petite, # elle sera automatiquement centré au milieu de la fenêtre, de même si elle est trop grande, on # verra son milieu, et non son côté. # Pour appeller cette carte du monde, utliser la ligne de scrîpt suivante : # $scene = Scene_Worldmap.new # à partir de n'importe quel évènement ou scrîpt. #======================================================================= #======================================================================= # ■ Scene_Worldmap v0.9 #-------------------------------------------------------------------------------------------------------------------------------- # Ecrit par Krazplay, version la plus à jour disponible sur le forum du site rpgmakerxp.free.fr # Nécessite : le scrîpt Window_world # Description : # Ce scrîpt permet d'afficher un menu de carte du monde/téléporteur comportant dans une # première fenêtre à gauche une liste de choix (les destinations), chacun des choix est # accompagné d'une image qui apparaitra à droite, et probablement dans une prochaine version # d'une description dans la fenêtre de bienvenu, un choix peut être ajouté/enlevé ou désactivé # à l'aide de variables ou de switchs. # Utilisation : # Il y a trois endroits où vous devez modifier ce scrîpt pour qu'il fonctionne, pour cela faites # comme dans les exemples, ils sont à mon avis assez explicites. # # Modifications 1 : C'est là que vous mettrez le nom de la destination (dans la variable @s[i], # où i est la position de ce choix, 0 = première position, 1 = 2nde position ou 1ère position si # le choix 0 n'est pas disponible et ainsi de suite) et le nom de l'image du dossier Pictures lui # correspondant dans la variable @ni[i] (le nom doit être entre crochets (exemple "Ville"), et ne # doit PAS contenir le nom de l'extension (.jpg). # # Modifications 2 : Optionnel, si vous voullez qu'à un moment le joueur ne puisse pas aller # quelquepart mais que le choix soit tout de même visible, c'est là qu'il faut le mettre, à l'aide # de la commande : @command_window.disable_item("nom du l'endroit") # # Modifications 3 : Entrer ici les conséquences du choix, générallement la téléportion complète # de l'équipe. Pour téléporter l'équipe vous pouvez utiliser la commande : # téléportation(id_de_la_map, coordonnée_x, coordonnée_y, direction_du_héros_optionnel) # Je ne me rappelle plus des différentes direction du héros, il me semble que ce chiffre peut # une valeur entre 0 et 3, 0 et 3 étant compris. Cela permet en tout cas que le héro regarde # vers le haut ou la droite par exemple, après s'être téléporté. # # Notes importantes : L'image doit être au format jpg (c'est le seul que j'ai testé, je ne sais pas # si les autres sont acceptés). Son format conseillé est de 368x352, si l'image est plus petite, # elle sera automatiquement centré au milieu de la fenêtre, de même si elle est trop grande, on # verra son milieu, et non son côté. # Pour appeller cette carte du monde, utliser la ligne de scrîpt suivante : # $scene = Scene_Worldmap.new # à partir de n'importe quel évènement ou scrîpt. #======================================================================= class Scene_Worldmap
def initialize(menu_index = 0) @menu_index = menu_index end
def main @s = [] @ni = [] ############### Modifications 1 ################ @s[0] = "Mines" #Nom du premier choix @ni[0] = "image_Mines1" #Nom de l'image du premier choix ds votre dossier Pictures (sans l'extension) @s[1] = "Ville du desert" #@ni[1] = "Ville du desert" #Le nom de l'image étant identique à celui du lieu, on peut négliger de la préciser if $game_switches[1] == true # Exemple avec un switch : @s[2] = "Test" # Le choix "Test" n'apparaitra que si @ni[2] = "image_test" # le switch 1 est activé end if $game_variables[80] > 3 # Exemple avec une variable : @s[3] = "AZERTY" # Le choix "AZERTY" n'apparaitra que si @ni[3] = "blablabla" # la variable 80 est supérieur à 3 end
for i in 0...@s.size if @ni[i] == nil and @s[i] != nil # Si aucun nom d'image n'a été attribué alors que le lieu existe @ni[i] = @s[i] # Alors le nom du lieu devient le nom de l'image end end @s.compact! # Enlève les espaces vides possibles. @ni.compact! #Création de la fenêtre de bienvenue => (coordonnée x, coordonnée y, largeur, hauteur) largeur = 640 hauteur = 96 @bienvenue_window = Window_Base.new(0,0,largeur,hauteur) @bienvenue_window.contents = Bitmap.new(largeur-32, hauteur-32) @bienvenue_window.contents.font.name = $fontface #si vous voullez modifier la police d'écriture @bienvenue_window.contents.font.size = $fontsize #ou sa taille c'est ici. message1 = "Bienvenu sur la World Map." message2 = "Veuillez choisir votre destination." align = 1 #(0 = texte aligné à gauche ; 1 = texte centré ; 2 = aligné à droite) @bienvenue_window.contents.draw_text(0, 0, largeur, 32, message1, align) @bienvenue_window.contents.draw_text(0, 32, largeur, 32, message2, align) largeur2 = 240 #(largeur de la fenêtre des choix) @command_window = Window_World.new(largeur2, @s) @command_window.x = 0 # position x de la fenêtre des choix @command_window.y = 96 # position y de la fenêtre des choix @command_window.index = @menu_index # Fenêtre qui contiendra l'image => (position x, position y, largeur, hauteur) @image_window = Window_Base.new(240, 96, 400, 480-96)
############### Modifications 2 ################ # Liste des choix non selectionnables, ils sont visibles en grisé par le joueur. if $game_switches[2] == true # Exemple avec un switch : @command_window.disable_item("Ville du desert") # Le choix "Ville du desert" sera grisé end # et non selectionnable si le switch 2 est activé
if $game_variables[66] < 4 # Exemple avec une variable : Le choix "Mines" @command_window.disable_item("Mines") # sera grisé et non selectionnable end # tant que la variable 66 est inférieur à 4.
Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @command_window.dispose end
def update @command_window.update if @image_window.active update_image end if @command_window.active update_command return end end
def update_command if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @bienvenue_window.dispose @image_window.dispose $scene = Scene_Map.new return end if Input.trigger?(Input::C) case @s[@command_window.index]
############### Modifications 3 ################ when "Mines" # Ce qui se passe si le joueur choisit "Mines" if not @command_window.disable_item?("Mines") # Le choix n'est pas validé s'il est désactivé (grisé). téléportation(2, 1, 1, 2) # téléportation de l'équipe # rappel : (id_de_la_map, coordonnée_x, coordonnée_y, direction_du_héros_optionnel) end
when "Ville du desert" if not @command_window.disable_item?("Ville du desert") téléportation(4, 8, 10) end
when "Test" if not @command_window.disable_item?("Test") téléportation(2, 1, 1) end end
if $scene == self # Si la scene est encore celle-ci, le choix n'était pas bon, donc on $game_system.se_play($data_system.buzzer_se) # joue un bruit de buzzer else $game_system.se_play($data_system.decision_se) end return end end
def téléportation(map_id, coord_x, coord_y, héro_direction=0) @bienvenue_window.dispose @image_window.dispose $game_temp.player_transferring = true $game_temp.player_new_map_id = map_id $game_temp.player_new_x = coord_x $game_temp.player_new_y = coord_y $game_temp.player_new_direction = héro_direction Graphics.freeze $game_temp.transition_processing = true $game_temp.transition_name = "" $scene = Scene_Map.new end
def update_image i =@command_window.index if @ni[i] != nil and i != @vieuxi @image_window.contents = Bitmap.new(400-32, 480-96-32) bitmap = RPG::Cache.picture(@ni[i]) cw = bitmap.width ch = bitmap.height if cw > 368 # Ce qui suit sert à centrer l'image si elle est trop petite ou trop grande. aw = (cw - 368) / 2 bw = 0 else aw = 0 bw = (368 - cw) / 2 end if ch > 352 ah = (ch - 352) / 2 bh =0 else ah = 0 bh = (352 - ch) / 2 end src_rect = Rect.new(aw, ah, cw, ch) @image_window.contents.blt(bw, bh, bitmap, src_rect) @vieuxi = i end end
end
#======================================================================= # ■ Window_World v0.9 #-------------------------------------------------------------------------------------------------------------------------------- # Ecrit par Krazplay, version la plus à jour disponible sur le forum du site rpgmakerxp.free.fr # Nécessite : le scrîpt Scene_Worldmap # Toutes les explications sont dans le scrîpt Scene_Worldmap, il ne devrait rien avoir à faire # dans celui-ci. #======================================================================= class Window_World < Window_Selectable def initialize(width, commands) @item_désactivé =[] if commands.size > 11 hauteur = 11 else hauteur = commands.size end super(0, 0, width, hauteur * 32 + 32) @item_max = commands.size @commands = commands self.contents = Bitmap.new(width - 32, @item_max * 32) self.contents.font.name = $fontface self.contents.font.size = $fontsize refresh self.index = 0 end
def refresh self.contents.clear for i in 0...@item_max draw_item(i, normal_color) end end
def draw_item(index, color) self.contents.font.color = color rect = Rect.new(4, 32 * index, self.contents.width - 8, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) self.contents.draw_text(rect, @commands[index]) @item_désactivé[index] = 0 end
def disable_item(nom) if indexde(nom) != false draw_item(indexde(nom), disabled_color) @item_désactivé[indexde(nom)] = 1 end end
def disable_item?(nom) if @item_désactivé[indexde(nom)] == 1 return true else return false end end
def indexde(nom) for i in 0...@commands.size if @commands[i] == nom return i end end return false end
end
Pour savoir commetn utiliser ce script, tout est marqué dedans, au tout début (en vert dans l'éditeur de scrpts) Pour appeller un script, vous devez faire un évènement qui lui appellera le script : - Code:
-
$scene = Scene_Worldmap.new
Je crois que les images doivent être dans Program Files/Bodom Childs& Rabbi/RTP/Graphics/Pictures, si il n'existe pas, vous devez le créer... Script by Krazplay (Encore ) | |
|
Jordinateur Blob
Nombre de messages : 260 Localisation : Devant mon ordinateur !(enfin sa dépend, peut-être avec ma copine aussi ^^) Humeur/Caractère : Aller a l'école T_T Date d'inscription : 12/05/2006
| Sujet: Re: Systeme de world map Dim 21 Mai - 21:30 | |
| Non, car même avec un screen, vous ne comprendriez pas C'est assez dur a expliquer et un screen ne servirait a rien pour que vous puissiez comprendre quelque chose | |
|