Menu Titolo Personalizzato
Autore:
Holy87
Descrizione:
Siete stufi della solita finestra nella schermata del titolo e volete qualcosa di più innovativo? Questo è lo script che fa per voi! Trasforma il menu del titolo in una lista di icone orizzontali con fumetto in basso, dotato di animazioni ed effetti speciali.
Allegati:
Script:
$imported = {} if $imported == nil $imported["H87_TitleMenu"] = true #============================================================================== # * New Menu Title v1.2 # Creato da Holy 87 #------------------------------------------------------------------------------ # 17/03/2013 -> Versione 1.2 -> cambiata e migliorata la gestione extra # 10/01/2013 -> Versione 1.11 -> risolto piccolo bug con script di aggiornamento # 01/06/2012 -> Versione 1.1 -> Modifiche al cursore # 20/02/2012 -> Script finito # 16/02/2012 -> Script iniziato #------------------------------------------------------------------------------ # Questo script crea una nuova variante del menu nella schermata del Titolo. # # * ISTRUZIONI * # Piazza lo scritp sotto Materials, prima del Main e dopo lo script Updater # System. Imposta le immagini che verranno usate come icone, lo script ne # adatterà automaticamente la posizione. # **COME USARE GLI EXTRA: Setta una coordinata d'inizio in una mappa fatta per # ospitare il gioco-extra, quindi quando vuoi renderli disponibili al giocatore, # non devi fare altro che scrivere "unlock_extra" nel Chiama Script, e come # per magia comparirà nella schermata iniziale il comando Extra. Puoi anche # settare un valore da poter usare in seguito, ad esempio scrivendo # "change_setting(tipo,valore)", dove tipo è un elemento da ricordare, come # "casa", "oro" ecc... mentre valore è il valore da inserire. Entrambi possono # essere sia stringhe che numeri. Una volta impostato, per leggerne il valore # basta che inseriate un chiama script con "check_setting(tipo)", e verrà # restituito il valore di quel tipo. # Esempio: # change_setting("statue distrutte",$game_variables[5]) # in questo modo abbiamo impostato questo tipo. Possiamo riassegnare la # variabile con # $game_variables[5] = check_setting("statue distrutte") # A cosa serve? Serve a tenere dei valori che siano indipendenti dai salvataggi, # in modo da non variare cambiando salvataggio. # * COMPATIBILITA' * # Compatibile con la maggior parte degli script. Compatibile al 100% con # l'Updater System e Feed System. # Compatibile con lo script H87 Info Gioco # Compatibile con lo script Yanfly Engine 6 Iconset #============================================================================== module MT_Setup #============================================================================== # * CONFIGURAZIONE * # * Preferenze del Menu #============================================================================== #Attivare gli Extra? Extras = true #Inserisci l'ID Mappa e coordinate dello spawn quando si seleziona Extra Map_ID = 2 Map_X = 8 Map_Y = 7 #Aggiungere un collegamento ad un sito? SiteOpen = "http://www.rpg2s.net" #scrivi nil se non lo vuoi #Imposta l'altezza del menu rispetto allo schermo AltezzaBarra = 190 #Imposta la distanza in pixel tra gli oggetti del Menu Distanza = 10 #============================================================================== # * Grafica degli Oggetti #============================================================================== OBJGRAPH = { 0 => "T_New", #Immagine del comando Nuovo Gioco 1 => "T_Load", #Immagine del comando Carica 2 => "T_Exit", #Immagine del comando Esci 3 => "T_Info", #Immagine del comando Informazioni 4 => "T_Extra", #Immagine del comando Extra 5 => "T_Web", #Immagine del comando Vai al Sito 6 => "T_Update", #Immagine del comando Aggiorna 7 => "" #Immagine del comando IconSet (di Yanfly) } # non rimuovere la parentesi! BALOONGRAPH = { 0 => "B_New", #Immagine del Fumetto Nuovo Gioco 1 => "B_Load", #Immagine del Fumetto Carica 2 => "B_Exit", #Immagine del Fumetto Esci 3 => "B_Info", #Immagine del Fumetto Info 4 => "B_Extra", #Immagine del Fumetto Extra 5 => "B_Web", #Immagine del Fumetto Vai al Sito 6 => "B_Update", #Immagine del Fumetto Aggiorna 7 => "" #Immagine del Fumetto IconSet(di Yanfly) } # non rimuovere la parentesi! #Immagine della barra di sfondo ai comandi. BARGRAPH = "SfondoBarraTitle" #Immagine di popup quando viene trovato un nuovo aggiornamento. #Setta solo se hai implementato lo script Updater System. Up_Popup = "PopUp" #============================================================================== # * Preferenze Grafiche #============================================================================== #Vuoi che la comparsa del menu dei comandi sia animata? Animazione = true #Setta la velocità di apparizione dei comandi (solo se Animazione = true). #0: Contemporaneamente, 1: Velocissimo, 2: Veloce... SPEEDANIM = 1 #Setta la velotità del cursore nello spostamento(NON METTERE 0) CursorSpeed = 3 #1: Istantaneo, 2: Velocissimo, 3: Veloce, 4:Lento... #Imposta la distanza da sinistra alla punta che avrà il fumetto. DDP = 27 #============================================================================== # * FINE DELLA CONFIGURAZIONE * # Non modificare oltre questa riga, se non sai cosa stai facendo! #=============================================================================? end module Ex_Options #-------------------------------------------------------------------------- # * Sblocca gli extra. #-------------------------------------------------------------------------- def self.unlock $game_settings.type_set("Extra",true) end #-------------------------------------------------------------------------- # * Blocca gli extra. #-------------------------------------------------------------------------- def self.lock $game_settings.type_set("Extra",false) end #-------------------------------------------------------------------------- # * Controlla se gli extra sono abilitati. #-------------------------------------------------------------------------- def self.check_extra return true if $game_settings.type["Extra"] return false end #-------------------------------------------------------------------------- # * Da come ritorno il valore della cifra memorizzata. #-------------------------------------------------------------------------- def self.state if File.exist?("x_state.rvdata") File.open("x_state.rvdata", "r") do |f| f.lineno = 1 @numero = f.gets return @numero.to_i end end end end #============================================================================== # * Classe Scene_Title #============================================================================== class Scene_Title < Scene_Base #-------------------------------------------------------------------------- # * Alias del metodo di Aggiornamento #-------------------------------------------------------------------------- alias h87_update update unless $@ def update if Input.trigger?(Input::C) # Se si preme Invio pressione_invio end if Input.repeat?(Input::LEFT) #Se si preme Sinistra pressione_sinistra end if Input.repeat?(Input::RIGHT) #Se si preme Destra pressione_destra end #h87_update animazione_menu #Sequenza d'apertura del menu animazione_fumetto #sequenza di animazione del fumetto animazione_cursore @Baloon.opacity += 25 if @CommandsActive aggiorna_immagine if @agg_disp end #-------------------------------------------------------------------------- # * alias del metodo di chiusura #-------------------------------------------------------------------------- alias h87_terminate terminate unless $@ def terminate elimina_menu h87_terminate delete_objects end #-------------------------------------------------------------------------- # * Inizializza le variabili #-------------------------------------------------------------------------- def inizializza_variabili @title_state = 0 #lo stato del titolo $Extra_Game = Ex_Options.check_extra @cursore = 0 @cursore = 1 if @continue_enabled @oggetti = [] #Cambia l'ordine di queste righe per cambiare l'ordine del menu. @oggetti.push(0) #Nuovo Gioco @oggetti.push(1) #Continua @oggetti.push(3) if $imported["h87_Infos"] #Informazioni @oggetti.push(4) if MT_Setup::Extras and $Extra_Game #Extra @oggetti.push(5) if MT_Setup::SiteOpen != nil #Sito @oggetti.push(6) if $imported["H87_Updater"] and @agg_disp #Aggiornamento @oggetti.push(2) #Esci @oggetti.push(7) if $TEST and $imported["Y6-Iconview"] #------------------------------------------------ @num_oggetti = @oggetti.size @CommandsActive = false #all'inizio non possono essere mossi comandi @colore=0 #serve per memorizzare il colore dell'oggetto selezionato end #-------------------------------------------------------------------------- # * Ridefinizione della creazione della finestra di comando #-------------------------------------------------------------------------- def create_command_window inizializza_variabili @sfondobarra = Sprite.new @sfondobarra.bitmap = Cache.system(MT_Setup::BARGRAPH) @sfondobarra.y = MT_Setup::AltezzaBarra @sfondobarra.z = 99 @posix = MT_Setup::Distanza @selettore = [] for i in 0..@num_oggetti-1 #crea le immagini dei pulsanti @selettore[i] = Sprite.new @selettore[i].bitmap = Cache.system(MT_Setup::OBJGRAPH[@oggetti[i]]) @selettore[i].x = @posix @selettore[i].z = 99 @selettore[i].y = MT_Setup::AltezzaBarra + @sfondobarra.height/2 - @selettore[i].height/2 @posix += MT_Setup::Distanza + @selettore[i].width @upd_n = i if @oggetti[i] == 6 #memorizza la posizione dell'update end inizializza_fumetto # crea l'immagine del fumetto crea_immagine if $update_avaiable # crea il popup di aggiornamento if MT_Setup::Animazione #rende gli oggetti trasparenti se si anima @old_position = [] for i in [email protected] @old_position[i] = @selettore[i].y @selettore[i].y -= 21 @selettore[i].opacity = 0 @anim_counter = 0 end @timemax = MT_Setup::SPEEDANIM*@selettore.size end @CommandsActive = true unless MT_Setup::Animazione end #-------------------------------------------------------------------------- # * Crea l'immagine del fumetto di descrizione. #-------------------------------------------------------------------------- def inizializza_fumetto @Baloon = Sprite.new @Baloon.opacity = 0 @Baloon.z = 99 aggiorna_cursore end #-------------------------------------------------------------------------- # * Anima i componenti del menu #-------------------------------------------------------------------------- def animazione_menu if MT_Setup::Animazione and @title_state == 0 for i in [email protected] if @anim_counter > @timemax*i @selettore[i].opacity += 10 @selettore[i].y += 4 if @selettore[i].y < @old_position[i] @selettore[i].y -= 1 if @selettore[i].y > @old_position[i] end end @anim_counter += 1 if @selettore[@selettore.size-1].opacity >= 255 @CommandsActive = true aggiorna_cursore @title_state = 1 end end if @title_state == 1 and MT_Setup::Animazione for i in [email protected] @selettore[i].y -= 1 if @selettore[i].y > @old_position[i] end end end #-------------------------------------------------------------------------- # * Esecuzione del comando Invio #-------------------------------------------------------------------------- def pressione_invio @comando = @oggetti[@cursore] case @comando when 0 command_new_game when 1 command_continue when 2 command_shutdown when 3 command_infos when 4 command_extras when 5 command_website when 6 vai_aggiornamento when 7 command_iconview end end #-------------------------------------------------------------------------- # * Esecuzione del tasto Sinistra #-------------------------------------------------------------------------- def pressione_sinistra if @CommandsActive Sound.play_cursor @cursore -= 1 @cursore = @num_oggetti-1 if @cursore < 0 aggiorna_cursore end end #-------------------------------------------------------------------------- # * Esecuzione del tasto Destra #-------------------------------------------------------------------------- def pressione_destra if @CommandsActive Sound.play_cursor @cursore += 1 @cursore = 0 if @cursore > @num_oggetti -1 aggiorna_cursore end end #-------------------------------------------------------------------------- # * Sequenza di aggiornamento del cursore #-------------------------------------------------------------------------- def aggiorna_cursore @Baloon.bitmap = Cache.system(MT_Setup::BALOONGRAPH[@oggetti[@cursore]]) @prossimaX = @selettore[@cursore].x + @selettore[@cursore].width/2-MT_Setup::DDP @prossimaY = @selettore[@cursore].y + @selettore[@cursore].height+10 @selettore[@cursore].y += 7 if MT_Setup::Animazione and @CommandsActive @Baloon.x = @prossimaX if @Baloon.x == 0 @Baloon.y = @prossimaY if @Baloon.x == 0 @colore = 0 @cursore_in_movimento = true end #-------------------------------------------------------------------------- # * Animazione dei movimenti del fumetto #-------------------------------------------------------------------------- def animazione_fumetto if @cursore_in_movimento @distanzaX = @[email protected] @distanzaY = @[email protected] @Baloon.x += @distanzaX/MT_Setup::CursorSpeed @Baloon.y += @distanzaY/MT_Setup::CursorSpeed end end #-------------------------------------------------------------------------- # * Illumina l'oggetto selezionato #-------------------------------------------------------------------------- def animazione_cursore @colore +=3 if @colore < 60 for i in [email protected] if i == 1 and @continue_enabled == false grigio = 255 else grigio = 0 end if $imported["H87_Updater"] if Updater.forzato? and (i == 0 or i == 1) and @agg_disp grigio = 255 end end if i == @cursore @selettore[i].tone.set(@colore,@colore,@colore,grigio) else @selettore[i].tone.set(0,0,0,grigio) end end end #-------------------------------------------------------------------------- # * Provvede alla cancellazione degli oggetti di gioco #-------------------------------------------------------------------------- def delete_objects for i in [email protected] @selettore[i].dispose end @Baloon.dispose @sfondobarra.dispose end #-------------------------------------------------------------------------- # * Apre la pagina web #-------------------------------------------------------------------------- def command_website Sound.play_decision string = "explorer " + MT_Setup::SiteOpen Thread.new{system(string)} end #-------------------------------------------------------------------------- # * Porta alla mappa extra #-------------------------------------------------------------------------- def command_extras elimina_menu Sound.play_decision $game_map.setup(MT_Setup::Map_ID) $game_player.moveto(MT_Setup::Map_X, MT_Setup::Map_Y) $game_player.refresh $scene = Scene_Map.new RPG::BGM.fade(1500) close_command_window Graphics.fadeout(60) Graphics.wait(40) Graphics.frame_count = 0 RPG::BGM.stop $game_map.autoplay end #-------------------------------------------------------------------------- # * Crea il popup di aggiornamento #-------------------------------------------------------------------------- def crea_immagine @imm_popup = Sprite.new @imm_popup.bitmap = Cache.system(MT_Setup::Up_Popup) @imm_popup.x = @selettore[@upd_n].x + @selettore[@upd_n].width/2 - @imm_popup.width/2 @imm_popup.y = @selettore[@upd_n].y-5-@imm_popup.height @imm_popup.y += 14 if MT_Setup::Animazione end #-------------------------------------------------------------------------- # * Nasconde il Menu per non mostrarlo in altre scene. #-------------------------------------------------------------------------- def elimina_menu @title_state = 2 for i in [email protected] @selettore[i].opacity = 0 end @imm_popup.opacity = 0 if @imm_popup != nil @Baloon.opacity = 0 @sfondobarra.opacity = 0 end #-------------------------------------------------------------------------- # * Metodo ridefinito #-------------------------------------------------------------------------- alias h87_newg command_new_game def command_newgame elimina_menu h87_newg end #-------------------------------------------------------------------------- # * Metodo ridefinito #-------------------------------------------------------------------------- alias h87_end command_shutdown def command_shutdown elimina_menu h87_end end def open_command_window end def close_command_window end def dispose_command_window end #-------------------------------------------------------------------------- # * alias di load_database #-------------------------------------------------------------------------- alias h87_mt_load_database load_database unless $@ def load_database h87_mt_load_database load_settings end #-------------------------------------------------------------------------- # * carica le impostazioni universali #-------------------------------------------------------------------------- def load_settings if File.exist?(MT_Setup::GameSettings) $game_settings = load_data(MT_Setup::GameSettings) else $game_settings = H87_Settings.new save_data($game_settings,MT_Setup::GameSettings) end end end #scene_title #============================================================================== # * Classe Settings (per le impostazioni comuni ai salvataggi) #============================================================================== class H87_Settings attr_reader :type #-------------------------------------------------------------------------- # * inizializzazione #-------------------------------------------------------------------------- def initialize @type = {} end #-------------------------------------------------------------------------- # * restituisce l'hash di impostazioni #-------------------------------------------------------------------------- def type return @type end #-------------------------------------------------------------------------- # * cambia o aggiunge un elemento dell'hash #-------------------------------------------------------------------------- def type_set(type_name,valor) @type[type_name] = valor save_data($game_settings,MT_Setup::GameSettings) end end #settings class Game_Interpreter #-------------------------------------------------------------------------- # * comando per sbloccare gli extra #-------------------------------------------------------------------------- def unlock_extra Ex_Options.unlock end #-------------------------------------------------------------------------- # * comando per bloccare gli extra #-------------------------------------------------------------------------- def lock_extra Ex_Options.lock end #-------------------------------------------------------------------------- # * restituisce true se gli extra sono sbloccati #-------------------------------------------------------------------------- def extra_unlocked? return Ex_Options.check_extra end #-------------------------------------------------------------------------- # * comando per cambiare un'impostazione #-------------------------------------------------------------------------- def change_setting(type,value) $game_settings.type_set(type,value) end #-------------------------------------------------------------------------- # * comando per restituire un valore dei settaggi #-------------------------------------------------------------------------- def check_setting(type) if $game_settings.type[type] != nil return $game_settings.type[type] else print "Attenzione, non esiste valore per "+type+"!" end end end #game_interpreter
Demo dello script (vecchia versione): Mediafire 395Kb
Screenshot:
Istruzioni:
Piazzare lo script in Materials, sotto il GameUpdater System, se lo avete installato. Bisogna importare le immagini necessarie nella cartella Graphics/System (vedere demo), il resto delle impostazioni e istruzioni sono nello script.
Lo script adatta automaticamente e dinamicamente la dimensione delle varie immagini, anche diverse. Potrete facilmente cambiare l'ordine degli elementi nel menu, e settare gli effetti. Supporta anche le info di gioco, script che pubblicherò in futuro.
Come impostare e sbloccare gli Extra (ad esempio alla fine del gioco), le istruzioni sono contenute nello script.
Compatibilità:
Compatibile al 100% con Game_Updater System, con Yanfly6 Icon Module. Sovrascrive il metodo Update, qualsiasi cript che funziona sulla schermata del titolo potrebbe funzionare meglio al di sotto di esso.
Modificato da Holy87, 23 March 2013 - 15:36 PM.
Aggiornamento