Jump to content
Rpg²S Forum

DonDante

Utenti
  • Posts

    464
  • Joined

  • Last visited

Posts posted by DonDante

  1. A quanto pare sono il meno fantasioso di tutti, siccome ricorro solo io a questo sportello ormai...

    Mi sento un po tonto. :blush:

     

    Comunque sia:

    Nel mio gioco ci sarebbero 6 diversi elementi magici, per l'esattezza: Tuono, Ghiaccio, Vento, Fuoco, Terra ed Acido.

    Avevo concepito questi 6 elementi per creare poi due "superclassi"

    La prima, che ho chiamato Meteo comprende magie in grado di fondere le arti di Tuono, Ghiaccio e Vento, pensando

    che appunto sono elementi metereologici, quindi tormente di neve (vento e ghiaccio) tempeste (tuono e vento) e cose simili.

    allo stesso modo, volevo creare una superclasse che comprendesse Terra, fuoco ed Acido, al che avevo pensato a qualcosa

    che richiamasse i vulcani che sono di terra, ma hanno la lava che rappresenta il fuoco e lo zolfo che richiama l'acido, ma non mi viene un nome "semplice" per questa superclasse (come Meteo per l'appunto)

     

    Qualche colpo di genio?

  2. Veramente un bel lavoro!

    Se proprio vogliamo essere pidocchiosi e precisini, se guardi nel punto più a nord ovest, subito di fianco al tronchetto vicino alla cascata più a sinistra c'è un errore di mapping. Si vede solo la parte superiore di un albero senza alcun tronco.

     

    Perchè c'ho occhio. U_U

     

    Però è un bel lavoro sul serio!

  3. 'sera AlBar!

    I programmatori sono sempre più che bene accetti... molti (tra cui il sottoscritto) zoppicano un po quando si parla di script.

    Su che tipo di linguaggi lavori di solito?

  4. Allora, cercherò di essere il più chiaro possibile: vi avevo chiesto come facesse lo script a sapere quale charset prendere. Riprendo il mio esempio di prima col fantasma. Esporto monster1 e lo nomino Ghost. Vado in database e bla bla, ma su monster1 non c'è solo lo chardet del fantasma, ce ne sono molti altri, allora come faceva lo script a sapere che proprio il fantasma deve prendere, anzi, come fa a sapere qual'è il fantasma? Quindi ho pensato che Victor quando ha fatto lo script gli avesse "detto" quale immagine prendere per i nemici di default nel database. Ho fatto una prova, ho preso un nemico non di default, ho preso uno charset non di default e ho fatto lo stesso procedimento, e ciò che ho visto ha confermato la mia tesi, cioè quella che per i nemici non di default lo script non sa quale charset prendere. Da qui la domanda viene spontanea: come faccio a dire allo script cosa fare?

     

    Noterai che il charset del fantasma è il primo nella pagina dei mostri "Monster1"

    Ecco svelato il tuo mistero. Prende sempre il primo charset del riquadro.

  5. Per prenderlo da lì devo scaricarmi una demo, che contiene lo script...

    Perchè non apri invece un topic con lo script (in modo che rimanga visibile anche ad altri)

    e quindi posti la domanda?

    Oggi la mia connessione fa pena, non mi va di aspettare 45 minuti per il download...

  6. Ottimo! Spero di rilasciare qualcosa per la metà di luglio salvo imprevisti...

    Comunque era una sintesi molto eplicativa! :D

     

    Ps. Aggiunta una classe di magie, Magma.

  7. Uhm, vediamo un po come migliorarla...

     

    1) I tasti rimangono tagliati perchè probabilmente sono troppo grandi--- Riducili di qualche pixel.

    2) Riduci un po anche la grandezza del font. I numeri si accavallano alle scritte Punti vita e Punti Mana e fanno confusione.

    3)Modifica il cursore che indica la voce selezionata. Sta malissimo vedere il cursore che non è centrato alla voce.

    Puoi anche rimuovere il bordo bianco del cursore e lasciare solo un colore sfumato leggermente trasparente che daun effetto

    "luce"

    4) Le voci per il denaro e la location sono molto sfocate. Non converrebe utilizzare un font più nitido?

    5) Le due strisce blu dovrebbero avere un colore più simile a quello del resto della finestra. così sono un pugno in un occhio...

    Magari potrebbero riprendere quello dei bottoni.

    6) Il logo sulla striscia superiore ha a che fare con il gioco? In caso contrario lo toglierei...

  8. Ho fatto un po di esperimenti, tra cui:

     

    All'inizio della battaglia, uno stato blocca il gruppo di abilità che non voglio vengano visualizzate:

    Funziona, ma il nome rimane visibile, in grigio. Graficamente non è un granchè

     

    All' inizio della battaglia, cambia classe con una classe identica ma senza quel tipo abilità:

    Non va bene, in quanto le abilità passive offrono alcuni bonus ed eliminandole così di netto elimino i bonus

    (Uso uno script che lavora inserendo una notetag sull'abilità. se il Pg ha l'abilità X, allora ha lo stato X)

     

    Non esiste proprio il modo di nascondere la voce di un determinato gruppo di abilità dal menù di battaglia?

  9. Si, quando mi è venuto in mente il termine Gingilli me ne sono innamorato...

    Mi fa piacere sapere che le idee piacciono, mi sono applicato molto a studiare un sistema semplice ma non troppo

    utilizzato...

     

    Ps. Sieghart ha il dono della sintesi! :biggrin:

  10. Prima Scena:

    http://img708.imageshack.us/img708/2857/2t9f.jpg

     

    Di tanti posti in cui ci si può teletrasportare, proprio nella base operativa dei Crociati, Shu?

    La prima missione di Shu non si apre sotto i migliori auspici:

    Alla ricerca della stratega Eve, Shu si ritroverà braccato dai Crociati, in quanto il suo teletrasporto è finito dritto, dritto in un area riservata della base operativa dei Crociati sull' Habitat Zero.

    E' una missione finita ancor prima di cominciare?

     

     

    Protagonisti della Scena (Oltre a Shu)

     

    Scyla: Tiratore

    Scyla è una ragazza che vive sui monti della Zona Ambra di Ardite. Dolce e timida, ha imparato comunque a difendersi dai pericoli dell' Infestazione grazie alle sua abilità con l'arco.

    La sua straordinaria mira permette a Scyla di colpire i nemici in punti specifici, rallentandoli o stordendoli ed è in grado di scovare ogni minimo spiraglio nell'armatura avversaria, colpendo la dove fa più male

     

    http://imageshack.us/scaled/landing/849/gqs2.png

     

    Eve: Stratega

    Eve è la più giovane comandante delle forze dei Crociati. Determinata ed orgogliosa, Eve è un'abile stratega, dote che impiega sul campo di battaglia rendendola un formidabile avversario.

    Eve è infatti in grado di valutare lo scontro e reagire di conseguenza ed i suoi attacchi rispecchiano

    queste qualità, basandosi sul terreno dello scontro, la quantità di nemici presenti o anche sulla

    condizione fisica degli stessi.

     

    http://imageshack.us/scaled/landing/35/thws.png

     

    Argo: Oplita

    Argo è un veterano dei Crociati. Nelle varie battaglie a cui è partecipato nessuno dei suoi alleati è mai stato ferito, cosa che lo rende molto orgoglioso di se. Argo è un Oplita, ovvero un guerriero addestrato all'uso degli scudi. In battaglia Argo si preoccupa di difendere gli alleati, ma la sua prestanza fisica gli permette anche di usare pesanti cariche fisiche. Curiosamente non utilizza armi in battaglia, ma impugna un pesante scudo in ogni mano, rendendoli delle efficaci armi contundenti.

     

    http://imageshack.us/scaled/landing/46/hkrc.png

     

    Screenshot

    http://img28.imageshack.us/img28/9507/vdcf.jpg

     

    http://img593.imageshack.us/img593/8832/7t7s.jpg

  11. Per il Background puoi lavorare su due diversi Layer, che vanno poi importati rispettivamente nelle cartelle Titles1 e Titles2- (Il Titles2 sta "sopra" al Titles 1)

    Per i pulsanti, in realtà tutto dipende dalla Windowskin che utilizzi.

    Puoi modificarla caricandone una nuova in Graphic/system con il nome Window.

    Nel caso volessi provare a crearne una tua, segui il template della skin di default per capire come deve essere.

     

    Esistono infine una quantità di script che creano un Titles personalizzato...

    Ti consiglio di dare un occhiata alla sezione script per ulteriori informazioni

     

    ._____.

  12. Per il Background puoi lavorare su due diversi Layer, che vanno poi importati rispettivamente nelle cartelle Titles1 e Titles2- (Il Titles2 sta "sopra" al Titles 1)

    Per i pulsanti, in realtà tutto dipende dalla Windowskin che utilizzi.

    Puoi modificarla caricandone una nuova in Graphic/system con il nome Window.

    Nel caso volessi provare a crearne una tua, segui il template della skin di default per capire come deve essere.

     

    Esistono infine una quantità di script che creano un Titles personalizzato...

    Ti consiglio di dare un occhiata alla sezione script per ulteriori informazioni

  13. Parliamo un po di...

    GAMEPLAY

     

    TALENTI

     

    Ogni personaggio di Eridea sarà contraddistinto da tcniche di combattimento uniche, denominati Talenti, tutte studiate per creare strategie ben diverse e

    dare ad ognuno una caratterizzazione particolare.

    Questi Talenti saranno tutti imparabili mediante i Punti tecnica, punti che accumuleremo combattendo ed eliminando nemici.

    Tali talenti si dividono in tre categorie:

     

    Attivi

    I Talenti attivi rappresentano le mosse che il personaggio potrà compiere durante il combattimento.

    Passivi

    I Talenti passivi sono bonus che rimarranno attivi da quando il personaggio li ha imparati fino alla fine del gioco.

    Possono essere power up, resistenze elementali o di status, e tanta altra roba interessante...

    Campo

    I Talenti Campo permettono ad un personaggio di migliorare materiali, smontare oggetti in nostro possesso, migliorare armi e tanto altro.

    Possono essere usati solo in zone sicure, come le città abitate o la base, ed oltre al costo di punti Talento necessari ad impararle, consumano punti Talento ogni volta che vengono usate.

     

    MAGIE

     

    A differenza dei Talenti le magie non potranno essere imparate. Esisteranno invece, una lunga serie di Talismani, oggetti che una volta equipaggiati permetteranno di utilizzare una o più magie.

    Tali talismani tuttavia, avranno delle restrizioni, in modo che solo personaggi particolarmente dotati per la magia possano accedere a quelli più potenti.

    Inoltre, ogni personaggio avrà una particolare affinità elementale che gli permetterà di accedere a più magie, se equipaggia un talismano del suo stesso elemento.

    Gli elementi saranno:

     

    Tuono: Colpisce con tuoni e saette. Molti di questi attacchi causano stordimento e paralisi

    Vento: Colpisce con potenti lame di vento. Sono le magie meno dannose, ma le magie di cura fanno parte di questa categoria.

    Ghiaccio: Colpisce i nemici congelandoli. Molte di queste magie decrementano i parametri dei nemici.

    Fuoco: Colpisce i nemici con fuoco e lava. Sono le magie più potenti, ma difficilemnte hanno effetti secondari.

    Terra: Le magie di Terra colpiscono sempre tutti i nemici presenti, ma sono inneficaci sui nemici volanti.

    Acido: Colpisce con acidi ed altri veleni. Causano pochi danni, ma causano spesso stati alterati.

     

    Esisteranno poi, quattro classi speciali:

    Magma: Le magie Magma fondono le magie di Fuoco, Terra ed Acido, rendendole le più letali del mondo di Eridea.

    Meteo: Le magie Meteo sono combinazioni delle magie di Vento, Tuono e Ghiaccio. Sono molto potenti, ma anche molto costose.

    Anima: Le magie dell'Anima causano danni perfettamente calcolati al nemico. Ad esempio infliggendo un danno pari a 500 PV o dimezzando i PV dell'avversario. Non vengono applicate debolezze o resistenze per queste magie.

    Warp: Le magie Warp possono essere utilizzate solo da Shu. Shu imparerà, nel corso del gioco, ad utilizzare le sue abilità di warper nei modi più disparati e devastanti, arrivando addirittura ad aprire varchi dimensionali per far intervenire sul campo di battaglia creature mitologiche in grado di devastare i nemici. I Talismani Warp, tuttavia, sono estremamente rari.

     

    EQUIPAGGIAMENTO:

     

    Ogni personaggio potrà contare su 8 diversi slot di equipaggiamento.

    Tuttavia, questi 8 slot saranno estremamente personalizzati per cui, mentre un personaggio potrebbe avere 2 slot armi, uno per l'armatura e 5 per gli accessori, un altro potrebbe avere 1 slot armi e 7 slot Talismano.

    Insomma, non saprete cosa potrà servirvi, finchè non servirà!

    Comunque sia, gli slot esistenti saranno:

    Arma: Ovviamente, in questi slot saranno inserite le armi. Alcune armi come pistole ed archi richiederanno munizioni. In questo caso il comando attacca sarà bloccato in caso non si disponga di esse.

    Scudo: anche questo è chiaro: Qui potremo inserire uno scudo per aumentare la difesa

    Gingilli: P'Tit, il fratello di Shu, da bravo ingegnere è in grado di creare alcungi gingilli utili in battaglia. Chi equipaggia un gingillo sarà in grado di usare una nuova tecnica in battaglia, relativo al gingillo equipaggiato. Ad esempio, il gingillo "Lanciafiamme" permetterà a chi lo equipaggia di attaccare i nemici con una potente fiammata.

    Ogni gingillo utilizzerà materiali diversi per funzionare, come se fossero munizioni

    Faretre: Chi tuilizza un arco, dovrà necessariamente equipaggiare una faretra. Esistono faretre differenti in grado di contenere uno o più tipi di freccia. Gli arcieri potranno utilizzare in battaglia solo le frecce che la faretra è in grado di trasportare.

    Corpo: Che siano Armature o Tuniche, qui inseriremo oggetti che aumentano la difesa e danno diversi bonus

    Accessorio: gli accessori hanno diversi effetti: Aumentano le statistiche, offrono immunità o addirittura utilizzano oggetti automaticamente quando è necessario. Non possono, tuttavia, fornire nuove abilità

    Talismano: come spiegato prima, i Talismani permettono l'accesso alle magie.

     

     

    E, per ora, è tutto...

  14.                                          +++ MOG - Wallpaper EX (V1.1) +++

    Descrizione

    Inserisce un immagine di background alla pagina principale del menù

    Autore

    MogHunter

     

    Allegati

    Potrebbe servirvi questa immagine:

    http://img822.imageshack.us/img822/4900/l34f.png

    Istruzioni per l'uso

    Caricate due immagini in Graphics/System.

    La prima, denominata "Wallpaper" (senza virgolette ovviamente) sarà l'immagine di sfondo.

    La dimensione dovrà essere uguale a quella dello schermo (di default, 544X416 pixel)

    La seconda, denominata "Menu_Particles" (sempre senza virgolette) saranno gli oggetti che si muoveranno sullo sfondo. (Se non avete idee, potete usare quella che ho allegato qui sopra)

    Le Particles si possono disattivare e si può modificare il movimento delle stesse o la frequenza.

    Istruzioni nello script

     

    Script

     

     

    #==============================================================================
    # +++ MOG - Wallpaper EX (V1.1) +++
    #==============================================================================
    # By Moghunter
    # http://www.atelier-rgss.com
    #==============================================================================
    # - Adiciona um papel de parede e adiciona alguns efeitos animados.
    #==============================================================================
    # Para mudar de papel de parede no meio do jogo basta usar o código abaixo.
    #
    # $game_system.wallpaper = "FILE_NAME"
    #
    #==============================================================================
    # E para mudar de velocidade de scroll use o código abaixo.
    #
    # $game_system.wallpaper_scroll = [ SPEED_X, SPEED_Y]
    #
    #==============================================================================
    # Serão necessários os seguintes arquivos na pasta GRAPHICS/SYSTEM.
    # 
    # Menu_Particles.png
    # wallpaper
    #
    #==============================================================================
    # ? Histórico (Version History)
    #==============================================================================
    # v 1.1 - Melhoria no sistema de dispose de imagens.
    #==============================================================================
    module MOG_WALLPAPER_EX
      #Ativar Particulas animadas.
      PARTICLES = true
      #Numero de particulas.
      NUMBER_OF_PARTICLES = 10
      #Deslizar a imagem de fundo.
      BACKGROUND_SCROLL_SPEED = [0,0]
      #Definição da opacidade das janelas.
      WINDOW_OPACITY = 32
    end
    
    #==============================================================================
    # ? Game_System
    #==============================================================================
    class Game_System
      
      attr_accessor :wallpaper
      attr_accessor :wallpaper_scroll
      
     #--------------------------------------------------------------------------
     # ? Initialize
     #--------------------------------------------------------------------------  
      alias mog_wallpaper_initialize initialize
      def initialize
          mog_wallpaper_initialize
          @wallpaper = "Wallpaper"    
          @wallpaper_scroll = MOG_WALLPAPER_EX::BACKGROUND_SCROLL_SPEED
      end
      
    end  
    
    #==============================================================================
    # ? Menu Particles
    #==============================================================================
    class Menu_Particles < Sprite
      
     #--------------------------------------------------------------------------
     # ? Initialize
     #--------------------------------------------------------------------------             
      def initialize(viewport = nil)
          super(viewport)
          self.bitmap = Cache.system("Menu_Particles")
          reset_setting(true)
      end  
      
     #--------------------------------------------------------------------------
     # ? Reset Setting
     #--------------------------------------------------------------------------               
      def reset_setting(start)
          zoom = (50 + rand(100)) / 100.1
          self.zoom_x = zoom
          self.zoom_y = zoom
          self.x = rand(544)
          if start
             self.y = rand(416 + self.bitmap.height)
          else
             self.y = 416 + rand(32 + self.bitmap.height)
          end        
          self.opacity = 0
          self.blend_type = 1
          @speed_x = 0
          @speed_y = [[rand(3), 3].min, 1].max
          @speed_a = 0#rand(3)
      end
      
     #--------------------------------------------------------------------------
     # ? Dispose
     #--------------------------------------------------------------------------               
      def dispose
          super
          self.bitmap.dispose
      end  
      
     #--------------------------------------------------------------------------
     # ? Update
     #--------------------------------------------------------------------------               
      def update
          super
          self.x += @speed_x
          self.y -= @speed_y
          self.angle += @speed_a      
          self.opacity += 5
          reset_setting(false) if self.y < 0
      end  
      
    end
    
    
    #==============================================================================
    # ? LAYOUT_EX
    #==============================================================================
    module WALLPAPER_EX
      
      include MOG_WALLPAPER_EX
      
      #--------------------------------------------------------------------------
      # ? Start
      #--------------------------------------------------------------------------          
      def start
          super
          create_particles
      end   
      
      #--------------------------------------------------------------------------
      # ? Set Window OPACITY
      #--------------------------------------------------------------------------            
      def set_window_opacity    
          instance_variables.each do |varname|
              ivar = instance_variable_get(varname)
               if ivar.is_a?(Window) 
                  ivar.opacity = WINDOW_OPACITY  
              end
          end
      end
     
      #--------------------------------------------------------------------------
      # ? Create Particles
      #--------------------------------------------------------------------------  
      def create_particles
          return unless PARTICLES
          dispose_menu_particles
          @particle_viewport = Viewport.new(-32, -32, 576, 448)
          @particle_bitmap =[]
          for i in 0...NUMBER_OF_PARTICLES
              @particle_bitmap.push(Menu_Particles.new(@particle_viewport))
          end  
      end  
    
      #--------------------------------------------------------------------------
      # ? Create Background
      #--------------------------------------------------------------------------
      def create_background
          @background_sprite = Plane.new
          @background_sprite.bitmap = Cache.system($game_system.wallpaper) rescue nil
          @background_sprite.bitmap = SceneManager.background_bitmap if @background_sprite.bitmap == nil
      end
     
     #--------------------------------------------------------------------------
     # ? Dispose Light
     #--------------------------------------------------------------------------              
      def dispose_menu_particles
          return unless PARTICLES
          if @particle_bitmap != nil
             @particle_bitmap.each {|sprite| sprite.dispose} 
             @particle_viewport.dispose
             @particle_bitmap = nil
          end      
      end     
      
      #--------------------------------------------------------------------------
      # ? Dispose Background
      #--------------------------------------------------------------------------
      def dispose_background
          return if @background_sprite == nil
          @background_sprite.bitmap.dispose
          @background_sprite.dispose
          @background_sprite = nil
      end
      
      #--------------------------------------------------------------------------
      # ? Terminate
      #--------------------------------------------------------------------------  
      def terminate
          super
          dispose_menu_particles
      end    
      
      #--------------------------------------------------------------------------
      # ? Update
      #--------------------------------------------------------------------------  
      def update
          super
          update_background
          update_particle
      end
      
      #--------------------------------------------------------------------------
      # ? Update Background
      #--------------------------------------------------------------------------    
      def update_background
          @background_sprite.ox += $game_system.wallpaper_scroll[0]
          @background_sprite.oy += $game_system.wallpaper_scroll[1] 
      end
      
     #--------------------------------------------------------------------------
     # ? Update Particle
     #--------------------------------------------------------------------------              
     def update_particle
         return unless PARTICLES
         @particle_bitmap.each {|sprite| sprite.update }
     end  
      
    end
    
    #==============================================================================
    # ? Scene Menu
    #==============================================================================
    class Scene_Menu < Scene_MenuBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ? Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ? Scene Item
    #==============================================================================
    class Scene_Item < Scene_ItemBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ? Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ? Scene Skill
    #==============================================================================
    class Scene_Skill < Scene_ItemBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ? Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ? Scene Equip
    #==============================================================================
    class Scene_Equip < Scene_MenuBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ? Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ? Scene Status
    #==============================================================================
    class Scene_Status < Scene_MenuBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ? Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ? Scene File
    #==============================================================================
    class Scene_File < Scene_MenuBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ? Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ? Scene End
    #==============================================================================
    class Scene_End < Scene_MenuBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ? Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ? Window SaveFile
    #==============================================================================
    class Window_SaveFile < Window_Base
      
     #--------------------------------------------------------------------------
     # ? Initialize
     #--------------------------------------------------------------------------                  
      alias mog_wallpaper_initialize initialize 
      def initialize(height, index)
          mog_wallpaper_initialize(height, index)
          self.opacity = WALLPAPER_EX::WINDOW_OPACITY if can_opacity_window?
      end
        
     #--------------------------------------------------------------------------
     # ? Can Opacity Window
     #--------------------------------------------------------------------------                    
      def can_opacity_window?
          return true
      end  
    end
    
    $mog_rgss3_wallpaper_ex = true
    

     

     

    Bugs e Conflitti Noti

    N/A

    Altri dettagli

    Ricordate che la windowskin utilizzata non coprirà l'immagine, ma verrà automaticamente settata in trasparenza.

  15. Allora:

    D1: Usa questo script.

     

     

    #==============================================================================
    # +++ MOG - Wallpaper EX (V1.1) +++
    #==============================================================================
    # By Moghunter
    # http://www.atelier-rgss.com
    #==============================================================================
    # - Adiciona um papel de parede e adiciona alguns efeitos animados.
    #==============================================================================
    # Para mudar de papel de parede no meio do jogo basta usar o código abaixo.
    #
    # $game_system.wallpaper = "FILE_NAME"
    #
    #==============================================================================
    # E para mudar de velocidade de scroll use o código abaixo.
    #
    # $game_system.wallpaper_scroll = [ SPEED_X, SPEED_Y]
    #
    #==============================================================================
    # Serão necessários os seguintes arquivos na pasta GRAPHICS/SYSTEM.
    # 
    # Menu_Particles.png
    # wallpaper
    #
    #==============================================================================
    # ● Histórico (Version History)
    #==============================================================================
    # v 1.1 - Melhoria no sistema de dispose de imagens.
    #==============================================================================
    module MOG_WALLPAPER_EX
      #Ativar Particulas animadas.
      PARTICLES = true
      #Numero de particulas.
      NUMBER_OF_PARTICLES = 10
      #Deslizar a imagem de fundo.
      BACKGROUND_SCROLL_SPEED = [0,0]
      #Definição da opacidade das janelas.
      WINDOW_OPACITY = 32
    end
    
    #==============================================================================
    # ■ Game_System
    #==============================================================================
    class Game_System
      
      attr_accessor :wallpaper
      attr_accessor :wallpaper_scroll
      
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------  
      alias mog_wallpaper_initialize initialize
      def initialize
          mog_wallpaper_initialize
          @wallpaper = "Wallpaper"    
          @wallpaper_scroll = MOG_WALLPAPER_EX::BACKGROUND_SCROLL_SPEED
      end
      
    end  
    
    #==============================================================================
    # ■ Menu Particles
    #==============================================================================
    class Menu_Particles < Sprite
      
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------             
      def initialize(viewport = nil)
          super(viewport)
          self.bitmap = Cache.system("Menu_Particles")
          reset_setting(true)
      end  
      
     #--------------------------------------------------------------------------
     # ● Reset Setting
     #--------------------------------------------------------------------------               
      def reset_setting(start)
          zoom = (50 + rand(100)) / 100.1
          self.zoom_x = zoom
          self.zoom_y = zoom
          self.x = rand(544)
          if start
             self.y = rand(416 + self.bitmap.height)
          else
             self.y = 416 + rand(32 + self.bitmap.height)
          end        
          self.opacity = 0
          self.blend_type = 1
          @speed_x = 0
          @speed_y = [[rand(3), 3].min, 1].max
          @speed_a = 0#rand(3)
      end
      
     #--------------------------------------------------------------------------
     # ● Dispose
     #--------------------------------------------------------------------------               
      def dispose
          super
          self.bitmap.dispose
      end  
      
     #--------------------------------------------------------------------------
     # ● Update
     #--------------------------------------------------------------------------               
      def update
          super
          self.x += @speed_x
          self.y -= @speed_y
          self.angle += @speed_a      
          self.opacity += 5
          reset_setting(false) if self.y < 0
      end  
      
    end
    
    
    #==============================================================================
    # ■ LAYOUT_EX
    #==============================================================================
    module WALLPAPER_EX
      
      include MOG_WALLPAPER_EX
      
      #--------------------------------------------------------------------------
      # ● Start
      #--------------------------------------------------------------------------          
      def start
          super
          create_particles
      end   
      
      #--------------------------------------------------------------------------
      # ● Set Window OPACITY
      #--------------------------------------------------------------------------            
      def set_window_opacity    
          instance_variables.each do |varname|
              ivar = instance_variable_get(varname)
               if ivar.is_a?(Window) 
                  ivar.opacity = WINDOW_OPACITY  
              end
          end
      end
     
      #--------------------------------------------------------------------------
      # ● Create Particles
      #--------------------------------------------------------------------------  
      def create_particles
          return unless PARTICLES
          dispose_menu_particles
          @particle_viewport = Viewport.new(-32, -32, 576, 448)
          @particle_bitmap =[]
          for i in 0...NUMBER_OF_PARTICLES
              @particle_bitmap.push(Menu_Particles.new(@particle_viewport))
          end  
      end  
    
      #--------------------------------------------------------------------------
      # ● Create Background
      #--------------------------------------------------------------------------
      def create_background
          @background_sprite = Plane.new
          @background_sprite.bitmap = Cache.system($game_system.wallpaper) rescue nil
          @background_sprite.bitmap = SceneManager.background_bitmap if @background_sprite.bitmap == nil
      end
     
     #--------------------------------------------------------------------------
     # ● Dispose Light
     #--------------------------------------------------------------------------              
      def dispose_menu_particles
          return unless PARTICLES
          if @particle_bitmap != nil
             @particle_bitmap.each {|sprite| sprite.dispose} 
             @particle_viewport.dispose
             @particle_bitmap = nil
          end      
      end     
      
      #--------------------------------------------------------------------------
      # ● Dispose Background
      #--------------------------------------------------------------------------
      def dispose_background
          return if @background_sprite == nil
          @background_sprite.bitmap.dispose
          @background_sprite.dispose
          @background_sprite = nil
      end
      
      #--------------------------------------------------------------------------
      # ● Terminate
      #--------------------------------------------------------------------------  
      def terminate
          super
          dispose_menu_particles
      end    
      
      #--------------------------------------------------------------------------
      # ● Update
      #--------------------------------------------------------------------------  
      def update
          super
          update_background
          update_particle
      end
      
      #--------------------------------------------------------------------------
      # ● Update Background
      #--------------------------------------------------------------------------    
      def update_background
          @background_sprite.ox += $game_system.wallpaper_scroll[0]
          @background_sprite.oy += $game_system.wallpaper_scroll[1] 
      end
      
     #--------------------------------------------------------------------------
     # ● Update Particle
     #--------------------------------------------------------------------------              
     def update_particle
         return unless PARTICLES
         @particle_bitmap.each {|sprite| sprite.update }
     end  
      
    end
    
    #==============================================================================
    # ● Scene Menu
    #==============================================================================
    class Scene_Menu < Scene_MenuBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ● Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ● Scene Item
    #==============================================================================
    class Scene_Item < Scene_ItemBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ● Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ● Scene Skill
    #==============================================================================
    class Scene_Skill < Scene_ItemBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ● Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ● Scene Equip
    #==============================================================================
    class Scene_Equip < Scene_MenuBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ● Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ● Scene Status
    #==============================================================================
    class Scene_Status < Scene_MenuBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ● Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ● Scene File
    #==============================================================================
    class Scene_File < Scene_MenuBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ● Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ● Scene End
    #==============================================================================
    class Scene_End < Scene_MenuBase
      include WALLPAPER_EX
      
     #--------------------------------------------------------------------------
     # ● Start
     #--------------------------------------------------------------------------                
      alias mog_layout_ex_start start
      def start
          mog_layout_ex_start
          set_window_opacity
      end  
    end
    
    #==============================================================================
    # ● Window SaveFile
    #==============================================================================
    class Window_SaveFile < Window_Base
      
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------                  
      alias mog_wallpaper_initialize initialize 
      def initialize(height, index)
          mog_wallpaper_initialize(height, index)
          self.opacity = WALLPAPER_EX::WINDOW_OPACITY if can_opacity_window?
      end
        
     #--------------------------------------------------------------------------
     # ● Can Opacity Window
     #--------------------------------------------------------------------------                    
      def can_opacity_window?
          return true
      end  
    end
    
    $mog_rgss3_wallpaper_ex = true
    

     

     

    E' sufficiente incollarlo sotto Material e Sopra Main, dopodichè caricare un immagine in Graphic\System denominata Wallpaper

    Un altra immagine che ti servirà è questa:

    http://img822.imageshack.us/img822/4900/l34f.png

    Ovviamante, puoi personalizzare anche questa caricandone un'altra sotto il nome Menu_Particles

     

    La seconda domanda.... sinceramente non ho capito. ._.

×
×
  • Create New...