Bonjour à tous ! Voici ma création la plus récente. Elle va vous permettre d'afficher des informations sur la map assez facilement.
Vidéo :
Script :
Spoiler:
Code:
################################################################################ ##### Map_Info ################################################################################ # Auteur : Biward # Version : 2.0 # Date : (V1)01/06/2010 ; (V2)28/08/2013 # # Ce script permet d'afficher des informations sur la map avec plusieurs # paramètres disponibles. # # # Pour afficher une information, fait un appel de script avec cette commande : # map_info(id) # # avec id l'ID de l'information dans la configuration ! # # De plus, vous pouvez changer la couleur du texte en faisant : # color_minfo(R, V, B) # # avec R la teneur en rouge, V la teneur en vert et B la teneur en bleu. # Chacun de ces paramètres est un chiffre variant entre 0 et 255. # # Faite : reset_color pour remettre la couleur par défaut # ################################## Configuration ############################### module BINFO # # # Mettez ici les informations à afficher. # ID = [TEXT, SEC, WINDOW, BACKGROUND, CHARACTER_NAME, CHARACTER_INDEX]
# ID = id de l'info # TEXT = Texte de l'information # SEC = nombre de seconde que s'affiche le message en frame # WINDOW = true pour afficher la window, false pour non # BACKGROUND = Mettez le nom du fond si vous voulez en afficher un. Sinon false ou nil # CHARACTER_NAME = Indiquez le no du chara qui s'affichera # CHARACTER_INDEX = L'index du character INFO = { 1 => ["Bonjour ! Vous êtes prié d'ouvrir le menu !", 600, false, "back_message"], 2 => ["Rhoo ! Taggle ?", 60, true, nil, "Actor1", 3],
3 => ["Salut Ralph..", 180, true, nil, "Actor4", 0], 4 => ["Eric ?! Toi ici ?!?", 120, true, nil, "Actor1", 0], 5 => ["Et ouais, je te remplace ! Les nerfs ?", 300, true, nil, "Actor4", 0], 6 => ["ESPECE DE #&@!*", 120, true, nil, "Actor1", 0], 7 => ["ahahahahah....", 600, true, nil, "Actor4", 0] } # Laissez ça !
end
############################################################################################################ #################################### DEBUT DU SCRIPT ####################################################### ############################################################################################################ class Scene_Map < Scene_Base
class << self attr_accessor :id, :actinfo, :timinfo, :window, :back, :chname, :chid, :wininfo, :color end
alias info_terminate terminate def terminate @win.dispose if @win @back.dispose if @back info_terminate end
#********************************************** # Update #_________________________________ alias info_update update def update update_actinfo if Scene_Map.actinfo update_opinfo if Scene_Map.timinfo info_update end
def update_actinfo @win.dispose if @win @back.dispose if @back @back = Sprite.new @back.bitmap = Cache.system(BINFO::INFO[Scene_Map.id.to_i][3]) if ! Scene_Map.wininfo # creation du sprite
xy = 0 ; xy = -16 if ! Scene_Map.wininfo w = Graphics.width ; w = Graphics.width + 32 if ! Scene_Map.wininfo h = 56 ; h = 88 if ! Scene_Map.wininfo @win = Window_Base.new(xy, xy, w, h) # Création de la Fenêtre
# couleur if Scene_Map.color @win.contents.font.color = Color.new(Scene_Map.color[0], Scene_Map.color[1], Scene_Map.color[2], @win.opacity) if @win && Scene_Map.wininfo @win.contents.font.color = Color.new(Scene_Map.color[0], Scene_Map.color[1], Scene_Map.color[2], @back.opacity) if @back && ! Scene_Map.wininfo else @win.contents.font.color = Color.new(255, 255, 255, @win.opacity) if @win @win.contents.font.color = Color.new(255, 255, 255, @back.opacity) if @back end
x = 32 ; x = 48 if ! Scene_Map.wininfo y = -193 ; y = -177 if ! Scene_Map.wininfo @win.contents.draw_text(x, y, 544, 416, BINFO::INFO[Scene_Map.id.to_i][0], 0) # Affichage de l'info
xy = 32 ; xy = 32 if ! Scene_Map.wininfo @win.draw_character(Scene_Map.chname, Scene_Map.chid, xy, xy) if Scene_Map.chname && Scene_Map.chid # affichage du chara Scene_Map.actinfo = nil end
def update_opinfo @win.contents.clear @win.opacity -= Scene_Map.timinfo if @win && Scene_Map.wininfo
@back.opacity -= Scene_Map.timinfo if @back && ! Scene_Map.wininfo @win.contents_opacity -= Scene_Map.timinfo if @win
# couleur if Scene_Map.color && Scene_Map.color[0] && Scene_Map.color[1] && Scene_Map.color[2] @win.contents.font.color = Color.new(Scene_Map.color[0], Scene_Map.color[1], Scene_Map.color[2], @win.opacity) if @win && Scene_Map.wininfo @win.contents.font.color = Color.new(Scene_Map.color[0], Scene_Map.color[1], Scene_Map.color[2], @back.opacity) if @back && ! Scene_Map.wininfo else @win.contents.font.color = Color.new(255, 255, 255, @win.opacity) if @win @win.contents.font.color = Color.new(255, 255, 255, @back.opacity) if @back end
x = 32 ; x = 48 if ! Scene_Map.wininfo y = -193 ; y = -177 if ! Scene_Map.wininfo @win.opacity = 0 if ! Scene_Map.wininfo @win.contents.draw_text(x, y, 544, 416, BINFO::INFO[Scene_Map.id.to_i][0], 0) # Affichage de l'info
x = 16 ; x = 32 if ! Scene_Map.wininfo @win.draw_character(Scene_Map.chname, Scene_Map.chid, x, 32) if Scene_Map.chname && Scene_Map.chid # affichage du chara
if Scene_Map.wininfo if @win.opacity <= 0 Scene_Map.timinfo = nil Scene_Map.id = nil @win.dispose @win = nil Scene_Map.chname = nil Scene_Map.chid = nil end else if @back.opacity <= 0 Scene_Map.timinfo = nil Scene_Map.id = nil @back.dispose @back = nil Scene_Map.chname = nil Scene_Map.chid = nil end end end end
class Game_Interpreter def map_info(id) if BINFO::INFO[id.to_i] Scene_Map.id = id Scene_Map.actinfo = true Scene_Map.timinfo = (255.0 / BINFO::INFO[id.to_i][1].to_f) Scene_Map.wininfo = BINFO::INFO[id.to_i][2] Scene_Map.back = BINFO::INFO[id.to_i][3] if BINFO::INFO[id.to_i][3] Scene_Map.chname = BINFO::INFO[id.to_i][4] Scene_Map.chid = BINFO::INFO[id.to_i][5] Scene_Map.color ||= [255, 255, 255] else print "Erreur au niveau de l'ID de l'information" end end
def color_minfo(r, v, b) Scene_Map.color = [r, v, b] end
def reset_color Scene_Map.color.clear Scene_Map.color = nil end end ############################################################################################################ ###################################### FIN DU SCRIPT ####################################################### ############################################################################################################
Démo : lien
Enjoy héhé!
Rabah
Age : 27 Inscrit le : 12/08/2011 Messages : 535
Sujet: Re: [VXAce] MapInfo Mer 28 Aoû 2013 - 8:22
Oh ! Super ce script ! J'en avais justement besoin pour mon jeu, pour indiquer les objectifs.
Biward
Age : 27 Inscrit le : 30/12/2009 Messages : 1067
Sujet: Re: [VXAce] MapInfo Mer 28 Aoû 2013 - 8:23
Content de l'apprendre ! Si jamais t'as des soucis, tu m'en fais part hein ^^