Jump to content
Rpg²S Forum

lupius

Utenti
  • Posts

    92
  • Joined

  • Last visited

Posts posted by lupius

  1. La demo non c'è, purtroppo. La traduzione la sto iniziando, ho sentito adesso l'autore che mi ha dato l'ok per farla. Ma non l'ok per per postare qui lo script, quindi dovrai pazientare un attimo perché lui implementi la traduzione nel suo sito. Comunque è molto semplice, anche se offre una bella varietà. Per farlo girare avrai necessariamente bisogno di questo script, però:

     

    https://dl.dropboxusercontent.com/u/89346660/Bubs%20-%20Info%20Pages%20Window.txt

  2. Si, l' HUD è in restyling...

    Effettivamente faceva parecchio paura.

    .___.

     

    Contando la quantità spaventosa di ROSA stile Sorelle Clamp che c'è nelle immagini iniziali dell'hud, direi che state andando bene. Già mi immagino cose figherrime.

     

    quello che mi preoccupa è la parte che riguarda l'uso degli animus al difuori della battaglia è abbastanza simpatico mi ricorda pokemon oro dove portavi con te il pokemon

     

    Confesso che anche a me è venuta quest'idea, con un bel messaggio che dice "Jigglypuff usa LUCE!". Però vedo che si sono messi dietro a cose un po' più interessanti a livello di enigmi (almeno dalle premesse), i puzzle dei pokémon erano davvero base base base... Qui con due animus in contemporanea, anche tre, puoi fare puzzle da lasciarci il cervello...

  3. Finalmente zio Google oggi ha dovuto cedere sotto le mie pressioni e mi ha dato, dopo 3 pagine di niente, il risultato che speravo. Un bello script per inserire face grandi nei messaggi!! Oh yeah...

     

    AUTORE:

    Fomar0153

     

    DESCRIZIONE:

    Un semplicissimo ma utilissimo script che permette di inserire, al posto delle solite face 96x96, delle face grandi 272x288, misura che potete comunque cambiare a vostro piacemento nello script. Cercate di rispettare la misura esistente (o quella che inserirete voi) altrimenti la vostra immagine sarà fuori posizione.

     

    ISTRUZIONI:

    Importate nella cartella Graphics/Faces le immagini che volete utilizzare, rinominandole inserendo all'interno del nome del file il simbolo "!". Se volete cambiare simbolo di riconoscimento, potete farlo alla linea 23 dello script. Le immagini devono essere 272x288 pixel, ma potete cambiare questi valori alle linee 24 e 25 dello script.

    Screen:

     

     

     

    Script:

     

     

    =begin
    Faces to Busts
    by Fomar0153
    Version 1.0
    ----------------------
    Notes
    ----------------------
    Allows you to use busts in place of faces in the editor.
    ----------------------
    Instructions
    ----------------------
    All busts should be placed in the Faces folder.
    They should all contain a symbol in the filename by
    default it is "!"
    You can change the default values in the Fomar module.
    ----------------------
    Known bugs
    ----------------------
    None
    =end
    
    module Fomar
      BUST_SYMBOL = "!"
      BUST_WIDTH = 272
      BUST_HEIGHT = 288
    end
    
    class Window_Message < Window_Base
      #--------------------------------------------------------------------------
      # * Draw Face Graphic
      #     enabled : Enabled flag. When false, draw semi-transparently.
      #--------------------------------------------------------------------------
      def draw_face(face_name, face_index, x, y, enabled = true)
        if face_name.include?(Fomar::BUST_SYMBOL)
          if @position == 0
            y = (Graphics.height - Fomar::BUST_HEIGHT)
          else
            y = [2 * (Graphics.height - height) / 2 - Fomar::BUST_HEIGHT,0].max
          end
          screen.pictures[101].show(face_name, 0, 0, y, 100.0, 100.0, 255, 0)
        else
          super(face_name, face_index, x, y, enabled)
        end
      end
      #--------------------------------------------------------------------------
      # * New Page
      #--------------------------------------------------------------------------
      alias bust_new_page new_page
      def new_page(text, pos)
        screen.pictures[101].erase if screen.pictures[101]
        bust_new_page(text, pos)
      end
      #--------------------------------------------------------------------------
      # * Close
      #--------------------------------------------------------------------------
      def close
        screen.pictures[101].erase if screen.pictures[101]
        super
      end
      #--------------------------------------------------------------------------
      # * Screen
      #--------------------------------------------------------------------------
      def screen
        $game_party.in_battle ? $game_troop.screen : $game_map.screen
      end
      #--------------------------------------------------------------------------
      # * Get New Line Position
      #--------------------------------------------------------------------------
      def new_line_x
        if $game_message.face_name.empty? or $game_message.face_name.include?(Fomar::BUST_SYMBOL)
          return 0
        else
          return 112
        end
      end
    end
    
    class Sprite_Picture < Sprite
      #--------------------------------------------------------------------------
      # * Update Transfer Origin Bitmap
      #--------------------------------------------------------------------------
      alias bust_update_bitmap update_bitmap
      def update_bitmap
        if !@picture.name.empty? and @picture.name.include?(Fomar::BUST_SYMBOL)
          self.bitmap = Cache.face(@picture.name)
        else
          bust_update_bitmap
        end
      end
    end
    
    

     

     

  4. Se vuoi aggiungerlo al topic principale, questo è il link alle immagini per la cartella Weather, da incollare nella cartella Graphic per lo script del meteo.

     

    http://www.mediafire.com/?2q1ix4ublcc6u82

     

    Auguri per il lavorone!

    Grazie! Oggi butterò su ancora qualcosa... La menata è che è tutto in portoghese e, soprattutto, che spesso le istruzioni negli script hanno degli errori... uff... Grazie del link, lo implemento al messaggio!!

     

    EDIT:

     

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    Script per il Gameplay

    1) Moghunter Chain Commands V1.4

     

    Descrizione:

    Questo script permette di applicare una combinazione di tasti da immettere, in un lasso limitato di tempo, per raggiungere uno scopo. Possiamo quindi far immettere una combinazione di tasti per aprire un baule, sbloccare una porta o con qualsiasi altra cosa si possa interagire sulla mappa. Nello screen qua sotto, per esempio, bisogna immettere la sequenza per poter aprire la porta

    Screen:

     

    Istruzioni:

    Per modificare, aggiungere e togliere switch di comandi (ovvero gli "slot" a cui assegnate le combinazioni di comandi) andate alla linea 54

    Il resto delle istruzioni le trovate comodamente all'inizio dello script.

    Le immagini originali di Moghunter potete trovarle qui: http://www.mediafire.com/download.php?m29ejyo691w6k5l

     

    Script:

     

     

     

    #===============================================================================
    # +++ MOG - Chain Commands (v1.4) +++
    #===============================================================================
    # By Moghunter                                                                
    # http://www.atelier-rgss.com                      
    #===============================================================================
    # Sistema de sequência de botões para ativar switchs. 
    # 
    # Serão necessárias as seguintes imagens. (Graphics/System)
    #
    # Chain_Cursor.png
    # Chain_Command.png
    # Chain_Layout.png
    # Chain_Timer_Layout.png
    # Chain_Timer_Meter.png
    #
    #===============================================================================
    #
    # Para ativar o script use o comando abaixo.  (*Call Script)
    #
    # chain_commands(ID)
    #
    # ID - Id da switch.
    #
    #===============================================================================
    
    #==============================================================================
    # ● Histórico (Version History)
    #==============================================================================
    # v 1.4 - Correção do crash aleatório.
    # v 1.3 - Melhoria no sistema de dispose
    # v 1.2 - Melhoria na codificação e correção de alguns glitches.
    # v 1.1 - Animação de fade ao sair da cena de chain.
    #       - Opção de definir a prioridade da hud na tela.
    #==============================================================================
    
    module MOG_CHAIN_COMMANDS 
     #==============================================================================
     # CHAIN_COMMAND = { SWITCH_ID => [COMMAND] }
     #
     # SWITCH_ID = ID da switch 
     # COMMANDS = Defina aqui a sequência de botões. 
     #            (Para fazer a sequência use os comandos abaixo)   
     #  
     # "Down" ,"Up" ,"Left" ,"Right" ,"Shift" ,"D" ,"S" ,"A" ,"Z" ,"X" ,"Q" ,"W"
     # 
     # Exemplo de utilização
     #
     # CHAIN_SWITCH_COMMAND = { 
     # 25=>["Down","D","S","Right"],
     # 59=>["Down","Up","Left","Right","Shift","D","S","A","Z","X","Q","W"],
     # 80=>["Shift","D"]
     # } 
     #==============================================================================
     CHAIN_SWITCH_COMMAND = {
     5=>["X","Right","Left","Z","Z"], 
     6=>["Left","Right","Left","Right","Left","Right","Q","Z","Up","A","S",
          "Down","D","Z","Right","Up","Up","Z","W","Left","Down","D","A","W"],
     8=>["Up","Down","Left","Right","Z"]
     }
     #Duração para colocar os comandos. (A duração é multiplicado pela quantidade
     #de comandos) *60 = 1 sec
     CHAIN_INPUT_DURATION = 30 
     #Som ao acertar. 
     CHAIN_RIGHT_SE = "Chime1"
     #Som ao errar.
     CHAIN_WRONG_SE = "Buzzer1"
     #Switch que ativa o modo automático.
     CHAIN_AUTOMATIC_MODE_SWITCH_ID = 20
     #Definição da prioridade da hud na tela
     CHAIN_HUD_Z = 300
    end
    
    
    #===============================================================================
    # ■ Chain Commands
    #===============================================================================
    class Chain_Commands 
       include MOG_CHAIN_COMMANDS 
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------       
      def initialize
          @action_id = $game_temp.chain_switch_id
          @chain_command = CHAIN_SWITCH_COMMAND[@action_id]
          @chain_command = ["?"] if @chain_command == nil  
          duration = [[CHAIN_INPUT_DURATION, 1].max, 9999].min
          @timer_max = duration * @chain_command.size
          @timer = @timer_max
          @slide_time = [[60 / duration, 10].max, 60].min
          @change_time = 0
          if $game_switches[CHAIN_AUTOMATIC_MODE_SWITCH_ID] 
             @auto = true
          else
             @auto = false
          end
          @com = 0  
      end    
      
     #--------------------------------------------------------------------------
     # ● Main
     #--------------------------------------------------------------------------     
     def main
         dispose
         @background_sprite = Sprite.new
         @background_sprite.bitmap = SceneManager.background_bitmap2
         create_chain_command
         create_cusrsor
         create_layout
         create_meter
         create_text
         create_number 
         Graphics.transition
         loop do
              Graphics.update
               Input.update
               update
               break if SceneManager.scene != self
         end
         dispose
     end  
          
     #--------------------------------------------------------------------------
     # ● Create Cursor
     #--------------------------------------------------------------------------             
     def create_cusrsor
         @fy_time = 0
         @fy = 0
         @com_index = 0
         @cursor = Sprite.new
         @cursor.bitmap = Cache.system("Chain_Cursor")
         @cursor.z = 4 + CHAIN_HUD_Z
         @cursor_space = ((@bitmap_cw + 5) * @chain_command.size) / 2
         if @chain_command.size <= 20
            @cursor.x = (544 / 2) - @cursor_space + @cursor_space * @com_index 
         else   
            @cursor.x = (544 / 2)
         end  
         @cursor.y = (416 / 2) + 30    
     end 
     
     #--------------------------------------------------------------------------
     # ● Create Chain Command
     #--------------------------------------------------------------------------       
     def create_chain_command
         @image = Cache.system("Chain_Command")     
         width_max = ((@image.width / 13) + 5) * @chain_command.size
         @bitmap = Bitmap.new(width_max,@image.height * 2)
         @bitmap_cw = @image.width / 13
         @bitmap_ch = @image.height  
         index = 0
         for i in @chain_command
             command_list_check(i) 
             bitmap_src_rect = Rect.new(@com * @bitmap_cw, 0, @bitmap_cw, @bitmap_ch)
             if index == 0
                @bitmap.blt(index * (@bitmap_cw + 5) , 0, @image, bitmap_src_rect)
             else
                @bitmap.blt(index * (@bitmap_cw + 5) , @bitmap_ch, @image, bitmap_src_rect)
             end
             index += 1
         end
         @sprite = Sprite.new
         @sprite.bitmap = @bitmap
         if @chain_command.size <= 15
            @sprite.x = (544 / 2) - ((@bitmap_cw + 5) * @chain_command.size) / 2
            @new_x = 0
         else   
            @sprite.x = (544 / 2)
            @new_x = @sprite.x 
         end   
         @sprite.y = (416 / 2) + 30  - @bitmap_ch  - 15
         @sprite.z = 3 + CHAIN_HUD_Z
         @sprite.zoom_x = 1.5
         @sprite.zoom_y = 1.5
     end
     
     #--------------------------------------------------------------------------
     # * create_layout
     #--------------------------------------------------------------------------  
     def create_layout
         @back = Plane.new
         @back.bitmap = Cache.system("Chain_Layout")
         @back.z = 0
         @layout = Sprite.new
         @layout.bitmap = Cache.system("Chain_Timer_Layout")
         @layout.z = 1 + CHAIN_HUD_Z
         @layout.x = 160
         @layout.y = 150
      end
    
     #--------------------------------------------------------------------------
     # * create_meter
     #--------------------------------------------------------------------------  
     def create_meter
         @meter_flow = 0
         @meter_image = Cache.system("Chain_Timer_Meter")
         @meter_bitmap = Bitmap.new(@meter_image.width,@meter_image.height)
         @meter_range = @meter_image.width / 3
         @meter_width = @meter_range * @timer / @timer_max
         @meter_height = @meter_image.height
         @meter_src_rect = Rect.new(@meter_range, 0, @meter_width, @meter_height)
         @meter_bitmap.blt(0,0, @meter_image, @meter_src_rect) 
         @meter_sprite = Sprite.new
         @meter_sprite.bitmap = @meter_bitmap
         @meter_sprite.z = 2 + CHAIN_HUD_Z
         @meter_sprite.x = 220
         @meter_sprite.y = 159
         update_flow
     end  
     
     #--------------------------------------------------------------------------
     # ● Create Text
     #--------------------------------------------------------------------------        
     def create_text 
         @text = Sprite.new
         @text.bitmap = Bitmap.new(200,32)
         @text.z = 2 + CHAIN_HUD_Z
         @text.bitmap.font.name = "Georgia"
         @text.bitmap.font.size = 25
         @text.bitmap.font.bold = true
         @text.bitmap.font.italic = true
         @text.bitmap.font.color.set(255, 255, 255,220)
         @text.x = 230
         @text.y = 100
     end
     
     #--------------------------------------------------------------------------
     # ● Create Number
     #--------------------------------------------------------------------------        
     def create_number 
         @combo = 0
         @number = Sprite.new
         @number.bitmap = Bitmap.new(200,64)
         @number.z = 2 + CHAIN_HUD_Z
         @number.bitmap.font.name = "Arial"
         @number.bitmap.font.size = 24
         @number.bitmap.font.bold = true
         @number.bitmap.font.color.set(0, 255, 255,200)
         @number.bitmap.draw_text(0, 0, 200, 32, "Ready",1)         
         @number.x = 30
         @number.y = 100
     end 
     
     #--------------------------------------------------------------------------
     # ● Pre Dispose
     #--------------------------------------------------------------------------       
     def exit
         loop do 
             Graphics.update
             @sprite.x += 5 
             @layout.x -= 5
             @meter_sprite.x -= 5
             @text.x -= 2
             @text.opacity -= 5
             @sprite.opacity -= 5
             @layout.opacity -= 5
             @meter_sprite.opacity -= 5 
             @number.opacity -= 5
             @back.opacity -= 5
             @cursor.visible = false    
             break if @sprite.opacity == 0
         end
         SceneManager.call(Scene_Map)
     end
       
     #--------------------------------------------------------------------------
     # ● Dispose
     #--------------------------------------------------------------------------      
     def dispose
         return if @layout == nil
         Graphics.freeze
         @background_sprite.bitmap.dispose
         @background_sprite.dispose
         @bitmap.dispose
         @sprite.bitmap.dispose
         @sprite.dispose
         @cursor.bitmap.dispose
         @cursor.dispose  
         @meter_image.dispose
         @meter_bitmap.dispose
         @meter_sprite.bitmap.dispose
         @meter_sprite.dispose
         @layout.bitmap.dispose  
         @layout.dispose
         @layout = nil
         @back.bitmap.dispose
         @back.dispose
         @text.bitmap.dispose
         @text.dispose
         @number.bitmap.dispose
         @number.dispose
         @image.dispose 
     end
     
     #--------------------------------------------------------------------------
     # ● Update
     #--------------------------------------------------------------------------      
     def update
         update_command
         update_cursor_slide
         update_flow
         update_change_time
     end
     
     #--------------------------------------------------------------------------
     # ● Change_Time
     #--------------------------------------------------------------------------        
     def update_change_time
         return unless @auto
         @change_time += 1
         check_command(-1) if @change_time >= CHAIN_INPUT_DURATION - 1
     end
     
     #--------------------------------------------------------------------------
     # ● Update Flow
     #--------------------------------------------------------------------------       
     def update_flow
         @timer -= 1
         @meter_sprite.bitmap.clear
         @meter_width = @meter_range * @timer / @timer_max
         @meter_src_rect = Rect.new(@meter_flow, 0, @meter_width, @meter_height)
         @meter_bitmap.blt(0,0, @meter_image, @meter_src_rect)  
         @meter_flow += 20 
         @meter_flow = 0 if @meter_flow >= @meter_image.width - @meter_range       
         wrong_command if @timer == 0 and @auto == false
      end  
       
     #--------------------------------------------------------------------------
     # ● Update Command
     #--------------------------------------------------------------------------       
     def update_command
         return if @auto
         if Input.trigger?(Input::X)
            check_command(0)
         elsif Input.trigger?(Input::Z)  
            check_command(1)
         elsif Input.trigger?(Input::Y)  
            check_command(2)
         elsif Input.trigger?(Input::A)    
            check_command(3)
         elsif Input.trigger?(Input::C)           
            check_command(4)
         elsif Input.trigger?(Input::B)        
            check_command(5)
         elsif Input.trigger?(Input::L)        
            check_command(6)
         elsif Input.trigger?(Input::R)        
            check_command(7)        
         elsif Input.trigger?(Input::RIGHT)      
            check_command(8)
         elsif Input.trigger?(Input::LEFT)
            check_command(9)
         elsif Input.trigger?(Input::DOWN)
            check_command(10)
         elsif Input.trigger?(Input::UP)  
            check_command(11)
         end   
     end  
       
     #--------------------------------------------------------------------------
     # ● command_list_check
     #--------------------------------------------------------------------------       
     def command_list_check(command) 
         case command
             when "A"
                @com = 0  
             when "D"
                @com = 1  
             when "S"
                @com = 2
             when "Shift"
                @com = 3
             when "Z" 
                @com = 4
             when "X"
                @com = 5
             when "Q"
                @com = 6
             when "W"
                @com = 7            
             when "Right"
                @com = 8
             when "Left"
                @com = 9
             when "Down"
                @com = 10
             when "Up"  
                @com = 11
             else   
                @com = 12           
         end 
     end   
     
     #--------------------------------------------------------------------------
     # ● check_command
     #--------------------------------------------------------------------------            
     def check_command(com)
         index = 0
         if com != -1
            right_input = false
            for i in @chain_command
               if index == @com_index
                  command_list_check(i) 
                  right_input = true if @com == com
               end  
              index += 1  
           end  
         else  
           command_list_check(@com_index)
           @change_time = 0
           right_input = true
         end  
         if right_input 
            refresh_number
            next_command
         else  
            wrong_command
         end  
     end  
       
     #--------------------------------------------------------------------------
     # ● Next Command
     #--------------------------------------------------------------------------            
     def next_command   
         @com_index += 1   
         Audio.se_play("Audio/SE/" + CHAIN_RIGHT_SE, 100, 100)
         if @com_index == @chain_command.size
            $game_switches[@action_id] = true
            exit
            $game_map.need_refresh = true
         end  
         refresh_command 
         refresh_text(0) 
     end     
     
     #--------------------------------------------------------------------------
     # ● wrong_command
     #--------------------------------------------------------------------------              
     def wrong_command
         Audio.se_play("Audio/SE/" + CHAIN_WRONG_SE, 100, 100)
         refresh_text(1)
         exit
         $game_player.jump(0,0)
     end
       
     #--------------------------------------------------------------------------
     # ● Refresh Command
     #--------------------------------------------------------------------------                
     def refresh_command
         @sprite.bitmap.clear
         index = 0
         for i in @chain_command
             command_list_check(i) 
             bitmap_src_rect = Rect.new(@com * @bitmap_cw, 0, @bitmap_cw, @bitmap_ch)
             if @com_index == index
                @bitmap.blt(index * (@bitmap_cw + 5) , 0, @image, bitmap_src_rect)
             else
                @bitmap.blt(index * (@bitmap_cw + 5) , @bitmap_ch, @image, bitmap_src_rect)
             end
             index += 1
           end
         if @chain_command.size > 15  
            @new_x = (544 / 2) - ((@bitmap_cw + 5) * @com_index)
         else   
            @cursor.x = (544 / 2) - @cursor_space + ((@bitmap_cw + 5) * @com_index)
         end
     end  
     
     #--------------------------------------------------------------------------
     # ● Refresh Text
     #--------------------------------------------------------------------------               
     def refresh_text(type)
         @text.bitmap.clear
         if type == 0
            if @com_index == @chain_command.size
               @text.bitmap.font.color.set(55, 255, 55,220)
               @text.bitmap.draw_text(0, 0, 200, 32, "Perfect!",1)              
            else  
               @text.bitmap.font.color.set(55, 155, 255,220)
               @text.bitmap.draw_text(0, 0, 200, 32, "Success!",1)              
            end
         else
            @text.bitmap.font.color.set(255, 155, 55,220)
            if @timer == 0
               @text.bitmap.draw_text(0, 0, 200, 32, "Time Limit!",1)  
            else  
               @text.bitmap.draw_text(0, 0, 200, 32, "Fail!",1)   
            end
         end  
         @text.x = 230   
         @text.opacity = 255 
     end
     
     #--------------------------------------------------------------------------
     # ● Refresh Number
     #--------------------------------------------------------------------------               
     def refresh_number
         @combo += 1
         @number.bitmap.clear
         @number.bitmap.font.size = 34
         @number.bitmap.draw_text(0, 0, 200, 32, @combo.to_s,1)          
         @number.opacity = 255 
         @number.zoom_x = 2
         @number.zoom_y = 2
     end 
     
     #--------------------------------------------------------------------------
     # ● Update Cursor Slide
     #--------------------------------------------------------------------------           
     def update_cursor_slide    
         @sprite.zoom_x -= 0.1 if @sprite.zoom_x > 1
         @sprite.zoom_y -= 0.1 if @sprite.zoom_y > 1
         @text.x -= 2 if @text.x > 210 
         @text.opacity -= 5 if @text.opacity > 0
         @sprite.x -= @slide_time if @sprite.x > @new_x and @chain_command.size > 15
         if @number.zoom_x > 1
            @number.zoom_x -= 0.1
            @number.zoom_y -= 0.1
         end
         if @fy_time > 15
            @fy += 1
         elsif @fy_time > 0
            @fy -= 1
         else   
            @fy = 0
            @fy_time = 30
         end  
         @fy_time -= 1 
         @cursor.oy = @fy     
     end  
    end
    
    #==============================================================================
    # ■ Game Temp
    #==============================================================================
    class Game_Temp
    
     attr_accessor :chain_switch_id
     
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------         
      alias mog_chain_commands_initialize initialize
      def initialize
          @chain_switch_id = 0
          mog_chain_commands_initialize
      end  
        
    end
    
    #==============================================================================
    # ■ Game_Interpreter
    #==============================================================================
    class Game_Interpreter
      
     #--------------------------------------------------------------------------
     # ● Chain Commands
     #--------------------------------------------------------------------------           
      def chain_commands(switch_id = 0)
          return if switch_id <= 0
          $game_temp.chain_switch_id = switch_id
          SceneManager.call(Chain_Commands)
          wait(1)
      end
      
    end
    
    #===============================================================================
    # ■ SceneManager
    #===============================================================================
    class << SceneManager
      @background_bitmap2 = nil
      
      #--------------------------------------------------------------------------
      # ● Snapshot For Background2
      #--------------------------------------------------------------------------
      def snapshot_for_background2
          @background_bitmap2.dispose if @background_bitmap2
          @background_bitmap2 = Graphics.snap_to_bitmap
      end
      
      #--------------------------------------------------------------------------
      # ● Background Bitmap2
      #--------------------------------------------------------------------------
      def background_bitmap2
          @background_bitmap2
      end
      
    end
    
    #===============================================================================
    # ■ Scene Map
    #===============================================================================
    class Scene_Map < Scene_Base
      
      #--------------------------------------------------------------------------
      # ● Terminate
      #--------------------------------------------------------------------------  
      alias mog_chain_commands_terminate terminate
      def terminate
          SceneManager.snapshot_for_background2
          mog_chain_commands_terminate      
      end
      
    end  
    
    $mog_rgss3_chain_commands = true
    

     

     

  5. Io la butto li, eh... Ma se invece fosse il contrario? Se lui potesse nascondere i personaggi alla vista esterna (magari per un periodo limitato)? Visto che non rimane molto nel gruppo potreste fare un mini gioco dove delle guardie o dei mostri pattugliano una zona e bisogna oltrepassarla in modo stealth, e quindi poter sfruttare la sua abilità...
  6. Me, nel momento di leggere la citazione

     

    ...me lo merito.... Non leggerò più dal telefono, ok??! :blush:

     

    Per quanto riguarda il gioco, invece, mi rifaccio al posto di alegasta:

     

    Tutti e due sono al massimo di una barra (per adesso chiamiamola barra TP). Compare nella lista abilità la mossa Z.

    - X e Y si preparano a fare la mossa Z: ( per questo tipo di mossa puoi inserire qualsiasi cosa dal cliccare più velocemente in un tot di tempo a fare una combinazione, dialoghi veloci.).

    -X e Y lanciano l'attacco e fanno una danni esagerati.

    - Aumenta la variabile di legame di 1.

    - quando la variabile arriva ad un tot prefissato aumenta il legame da C a B. Si sblocca l'abilità ZZ più forte di Z e più difficile da fare.

     

    Pensando a questa formula mi è venuta in mente una cosa: sarà che sono un patito, ma a me piacciono le invocazioni o comunque abilità fantamitiche che hanno un motivo di esistere anche a livello di trama. Dotando gli Animus di un piano elementale di appartenenza (ma anche status, negativi o postivi)) sarebbe carino se la barra, una volta riempita, consentisse questa sorta di evocazione. Poi il livello di legame farebbe il resto, ovvero fornire più potenza agli attacchi portati dall'"invocazione". Inoltre, sulla base di questo, pensavo anche ad una sorta di catena di invocazioni, fattibile quando due o più personaggi hanno raggiunto la pienezza della barra. In quel caso gli Animus di questi due o più personaggi possono lanciare le proprie "invocazioni" in serie, magari inserendo, come dice alegasta, una serie di comandi per far riuscire la catena...

  7. per il Touhou Map Name ho visto che visualizzava due volte il nome della mappa, quindi ho commentato la linea 143 dello Scene_Map risolvendo il problema e visualizzando solo quello dello script di moghunter.

     

    Non ho capito... Qual era il problema? Io (in effetti ho dimenticato di dirlo) ho riscontrato un problema di ripetizione isterica ma ho risolto mettendo uno switch locale... Tu invece?

  8. Aspè.... Ho visto male, vedo tutto piccolissimo perché sono sul telefono!! Ero davvero convinto di averlo letto.... sob... Mi ci ero fatto la bocca. Comunque si che mi interessa, sono stracurioso! Curioseggiuo...
  9. Mi correggo, intendevo scrivere sottoclassi al posto dei talismani, così facendo si potrebbero inserire anche piccole variazioni delle classi originali (magari in rune o altro) ma con qualche differenza e con abilità extra, ad esempio:

     

    Classe Originale del pg: Guerriero

    Sottoclasse (Talismano) - Guerriero Magico di Fuoco (possibile equipaggiare solo dalla classe Guerriero) - Abilità Extra Attacco Fuoco e\o Magia di Fuoco

     

    In tutta sostanza non cambi nulla della prima classe (il Guerriero), la sottoclasse viene trattata + come una sorta di equip specifico per ogni classe primaria, ma con sostanziali differenze.

     

    Ancora più personalizzazione... bisognerà fare un'equilibrazione delle sottoclassi col goniometro... Bella come cosina... :wink: Dovrò fare un gioco da 120 ore per valorizzare tutto quello che vorrei inserire!!!!!

  10. Creare la classe come se fosse un oggetto (al posto dei talismani ad esempio), semplificherebbe di molto la cosa, così è possibile aggiungere anche un set di abilità ad ogni classe in questione, equipaggiando ogni determinata classe cambierebbero il tipo di abilità usabili.

     

    Fammi vedere se ho capito...

     

    Tu dici che indossando un talismano cambi la classe, e fin qui ci sono, per conferire magari le autoabilità di classe standard non date dall'arma. Quindi leghi al talismano il cambio classe, di modo che il sistema faccia switchare la classe appena indossa l'oggetto? Non sono sicuro di aver capito... :blink:

  11. Come detto puoi pure postarli sfusi in più topic cercando prima se sono stati postati già i singoli! ^ ^

     

    Comunque ricorda di descrivere per bene e mettere qualche screen di anteprima ^ ^

     

    Ok, grazie. Devo farci la mano col layout ^^

     

    EDIT: aggiunto gli script per visualizzazione animata del nome della mappa in stile Touhou e per i testi di descrizione in popupXD

  12. Apro questo topic in cui raccolgo gli script, uno per uno, contenuti nella mega-demo di Moghunter (per la discussione sulla demo andate qui: http://www.rpg2s.net/forum/index.php?showtopic=16291). Per ogni script cercherò di mettere anche le immagini (o alcune, perlomeno) della demo.

     

    Mano a mano aggiornerò questo messaggio coi nuovi script estrapolati, poi magari farò una raccolta in .rar per chi li vuole tutti insieme.

     

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Script Effetti Grafici

     

     

    1) Weather EX V1.6

     

    Autore: Moghunter

     

    Descrizione:

    Permette di creare effetti climatici. Tramite la ripetizione di piccole immagini, e a vari effetti di movimento delle stesse, permette di creare piogge torrenziali o piogge di fuoco, graziose foglie volanti o deboli nevicate romantiche... per non parlare della splendida pioggia lenta di lumini, il sogno degli innamorati XD

     

    Istruzioni:

    Per iniziare un effetto climatico richiamare lo script scrivendo

     

    weather(TYPE, POWER, IMAGE_FILE)

     

    dove TYPE va da 0 a 6 e POWER da 1 a 10, mentre IMAGE_FILE è il nome dell'immagine che volete richiamare. Es: weather(1, 5, "Rain_01A"). Le immagini da usare per questo script andranno messe in una sottocartella di Graphics denominata Weather (che dovrete crearvi). Non usate immagini troppo grosse o vi aspetta un lag da panico...

    Per istruzioni su ogni comando guardate all'interno dello script (che è in portoghese ma si capisce benissimo).

    Ah, si può usare anche nelle battaglie :)

     

    RACCOMANDAZIONE!: ho scoperto un piccolo bug. Se provate a far partire l'effetto in processo parallelo o in automatico impazzisce. Cercate quindi di farlo partire in un altro modo (per esempio posizionandolo sulla posizione di arrivo di un teletrasporto e settandolo su "a contatto con l'eroe")

     

    Screen: una bella pioggia di lumini

     

     

     

     

    Le immagini originali di Moghunter sono piccole e ripetute in sequenza più e più volte dallo script, con un effetto continuato, il che rende un ottimo risultato. Qui trovate tutta la raccolta delle immagini della sua demo

     

    http://www.mediafire...2q1ix4ublcc6u82.

     

    Grazie a Mithos per l'upload.

     

    Script

     

     

     

    #==============================================================================
    # +++ MOG - Weather EX (v1.6) +++
    #==============================================================================
    # By Moghunter 
    # http://www.atelier-rgss.com/
    #==============================================================================
    # Sistema de clima com efeitos animados.
    #==============================================================================
    # As imagens usadas pelo sistema do clima devem ser gravadas na pasta
    #
    # GRAPHICS/WEATHER/
    #
    #==============================================================================
    # UTILIZAÇÃO
    # 
    # Use o comando abaixo através da função chamar script.*(Evento)
    #
    # weather(TYPE, POWER, IMAGE_FILE)
    #
    # TYPE - Tipo de clima. (de 0 a 6)
    # POWER - Quantidade de partículas na tela. (de 1 a 10)
    # IMAGE_FILE - Nome da imagem.
    #
    # Exemplo (Eg)
    #
    # weather(0, 5, "Leaf")
    #
    #==============================================================================
    # Tipos de Clima.
    #
    # O sistema vem com 7 climas pré-configurados, que podem ser testados na demo
    # que vem com esse script.
    #
    # 0 - (Rain)  
    # 1 - (Wind)
    # 2 - (Fog)  
    # 3 - (Light)
    # 4 - (Snow)
    # 5 - (Spark)
    # 6 - (Random)
    #
    #==============================================================================
    # NOTA
    #
    # Evite de usar imagens muito pesadas ou de tamanho grande, caso for usar
    # diminua o poder do clima para evitar lag.
    #
    #==============================================================================
    #==============================================================================
    # Para parar o clima use o comando abaixo.
    #
    # weather_stop
    #
    #==============================================================================
    # Para parar reativar o clima com as caracteríticas préviamente usadas use o
    # comando abaixo.
    #
    # weather_restore
    #==============================================================================
    # Se você precisar ativar um novo clima mas deseja gravar as caracteríticas 
    # do clima atual para ser reativado depois use os códigos abaixo.
    #
    # weather_store
    # weather_restore_store
    #
    #==============================================================================
    
    #==============================================================================
    # ● Histórico (Version History)
    #==============================================================================
    # v 1.6 - Correção na ordem de dispose do Viewport o que causava Crash em 
    #         alguns projetos (Problemas de compatibilidade).
    # v 1.5 - Correção definitiva para erro de Crash randômico. 
    # v 1.4 - Melhoria no sistema de dispose. * (Para quem estiver tendo problema 
    #         com crashes randômicos.)
    # v 1.3 - Adição do comando weather_store e weather_recover_store
    # v 1.2 - Melhor codificação e compatibilidade.
    # v 1.1 - Correção do Bug de salvar através do evento.
    # v 1.0 - Weather EX ativo na batalha.
    #       - Função restore/pause que permite reativar o clima com as
    #         caracteríticas previamente usadas, ou seja, dá uma pausa no clima.
    # v 0.9 - Melhoria no sistema de dispose.
    #==============================================================================
    module MOG_WEATHER_EX
      #Prioridade do clima na tela.
      WEATHER_SCREEN_Z = 50 
      #Definição da eficiência do poder do clima.
      #NOTA -  Um valor muito alto pode causar lag, dependendo do tipo de clima e
      #        imagem usada.
      WEATHER_POWER_EFIC = 5
      #Ativar o clima no sistema de batalha.
      WEATHER_BATTLE = true
    end
    
    #==============================================================================
    # ■ Cache
    #==============================================================================
    module Cache
      
      #--------------------------------------------------------------------------
      # ● Weather
      #--------------------------------------------------------------------------
      def self.weather(filename)
          load_bitmap("Graphics/Weather/", filename)
      end
      
    end
    
    #==============================================================================
    # ■ Game System
    #==============================================================================
    class Game_System
      
      attr_accessor :weather
      attr_accessor :weather_restore
      attr_accessor :weather_record_set
      attr_accessor :weather_temp
      
      #--------------------------------------------------------------------------
      # ● Initialize
      #--------------------------------------------------------------------------  
      alias weather_ex_initialize initialize  
      def initialize
          @weather = [-1,0,""]
          @weather_restore = [-1,0,""]
          @weather_temp = [-1,0,""]
          @weather_record_set = [-1,0,""]
          weather_ex_initialize 
      end  
      
    end  
    
    #==============================================================================
    # ■ Game Temp
    #==============================================================================
    class Game_Temp
    
      attr_accessor :weather_ex_set
      attr_accessor :weather_fade
      
      #--------------------------------------------------------------------------
      # ● Initialize
      #--------------------------------------------------------------------------  
      alias mog_weather_ex_temp_initialize initialize
      def initialize
          @weather_ex_set = []
          @weather_fade = false
          mog_weather_ex_temp_initialize
      end  
      
    end
    
    #==============================================================================
    # ■ Game Interpreter
    #==============================================================================
    class Game_Interpreter
      
      #--------------------------------------------------------------------------
      # ● Weather
      #--------------------------------------------------------------------------    
      def weather(type = -1, power = 0, image = "")
          $game_temp.weather_fade = false
          $game_system.weather.clear
          $game_system.weather = [type,power,image]
      end
      
      #--------------------------------------------------------------------------
      # ● Weather Stop
      #--------------------------------------------------------------------------     
      def weather_stop
          $game_temp.weather_fade = false
          $game_system.weather.clear
          $game_system.weather = [-1,0,""]
          $game_system.weather_restore  = [-1,0,""]
          $game_system.weather_temp = [-1,0,""]      
      end
      
      #--------------------------------------------------------------------------
      # ● Weather Restore
      #--------------------------------------------------------------------------       
      def weather_restore
          $game_temp.weather_fade = false
          if $game_system.weather[0] != -1
             w = $game_system.weather
             $game_system.weather_restore = [w[0],w[1],w[2]] 
             $game_system.weather.clear
             $game_system.weather = [-1,0,""]
             return
          end
          w = $game_system.weather_restore 
          weather(w[0],w[1],w[2])
      end
      
      #--------------------------------------------------------------------------
      # ● Weather Fade
      #--------------------------------------------------------------------------         
      def weather_fade(value)
          $game_temp.weather_fade = value
      end
      
      #--------------------------------------------------------------------------
      # ● Weather Store
      #--------------------------------------------------------------------------           
      def weather_store
          w = $game_system.weather 
          $game_system.weather_record_set = [w[0],w[1],w[2]]
      end  
      
      #--------------------------------------------------------------------------
      # ● Weather Restore Store
      #--------------------------------------------------------------------------           
      def weather_restore_store
          w = $game_system.weather_record_set
          weather(w[0],w[1],w[2])      
      end    
      
    end  
    
    #==============================================================================
    # ■ Weather_EX
    #==============================================================================
    class Weather_EX < Sprite
      
      #--------------------------------------------------------------------------
      # ● Initialize
      #--------------------------------------------------------------------------  
      def initialize(viewport = nil ,type = 0, image_name = "",index = 0,nx,ny)
          super(viewport)
          self.bitmap = Cache.weather(image_name.to_s)
          self.opacity = 0
          @cw = self.bitmap.width
          @ch = self.bitmap.height
          @angle_speed = 0
          @x_speed = 0
          @y_speed = 0
          @zoom_speed = 0
          @opacity_speed = 0
          @type = type
          @index = index
          @old_nx = nx
          @old_ny = ny
          type_setup(nx,ny)
      end
      
      #--------------------------------------------------------------------------
      # ● Dispose
      #--------------------------------------------------------------------------    
      def dispose
          dispose_sprite_weather_ex
          super
      end
    
      #--------------------------------------------------------------------------
      # ● Dispose Sprite Weather EX
      #--------------------------------------------------------------------------      
      def dispose_sprite_weather_ex
          return if self.bitmap == nil
          self.bitmap.dispose
          self.bitmap = nil
      end
      
      #--------------------------------------------------------------------------
      # ● Pre Values
      #--------------------------------------------------------------------------    
      def pre_values(index)
          return if  $game_temp.weather_ex_set[index] == nil
          self.x = $game_temp.weather_ex_set[index][0]
          self.y = $game_temp.weather_ex_set[index][1]
          self.opacity = $game_temp.weather_ex_set[index][2]
          self.angle = $game_temp.weather_ex_set[index][3]
          self.zoom_x = $game_temp.weather_ex_set[index][4]
          self.zoom_y = $game_temp.weather_ex_set[index][4]
          $game_temp.weather_ex_set[index].clear
          $game_temp.weather_ex_set[index] = nil
      end  
      
      #--------------------------------------------------------------------------
      # ● Type Setup
      #--------------------------------------------------------------------------      
      def type_setup(nx = 0, ny = 0)
          @cw2 = [(672 + @cw) + nx, -(96 + @cw) + nx]
          @ch2 = [(576 + @ch) + ny, -(96 + @ch) + ny]
          check_weather_type
          pre_values(@index)
          @opacity_speed = -1 if $game_temp.weather_fade
      end
      
      #--------------------------------------------------------------------------
      # ● Update
      #--------------------------------------------------------------------------    
      def update_weather(nx = 0, ny = 0)
          self.x += @x_speed
          self.y += @y_speed
          self.opacity += @opacity_speed
          self.angle += @angle_speed
          self.zoom_x += @zoom_speed
          self.zoom_y += @zoom_speed
          check_loop_map(nx,ny)
          type_setup(nx,ny) if can_reset_setup?
      end  
    
      #--------------------------------------------------------------------------
      # ● Check Loop Map
      #--------------------------------------------------------------------------        
      def check_loop_map(nx,ny)
          if (@old_nx - nx).abs > 32
             @cw2 = [(672 + @cw) + nx, -(96 + @cw) + nx]
             self.x += nx
             self.x -= @old_nx if nx == 0
          end   
          if (@old_ny - ny).abs > 32
             @ch2 = [(576 + @ch) + ny, -(96 + @ch) + ny]
             self.y += ny
             self.y -= @old_ny if ny == 0
          end         
          @old_nx = nx
          @old_ny = ny    
      end  
        
      #--------------------------------------------------------------------------
      # ● Can Reset Setup
      #--------------------------------------------------------------------------      
      def can_reset_setup?
          return true if self.x > @cw2[0] or self.x <  @cw2[1]
          return true if self.y > @ch2[0]  or self.y < @ch2[1] 
          return true if self.opacity == 0
          return true if self.zoom_x > 2.0 or self.zoom_x < 0.5 
          return false
      end
      
     #--------------------------------------------------------------------------
     # ● Check Weather Type
     #--------------------------------------------------------------------------                         
     def check_weather_type 
         case @type
             when 0;   rain
             when 1;   wind   
             when 2;   fog
             when 3;   light
             when 4;   snow
             when 5;   spark
             when 6;   random                  
          end
     end
        
     #--------------------------------------------------------------------------
     # ● Snow
     #--------------------------------------------------------------------------                          
     def snow
         self.angle = rand(360)
         self.x = rand(@cw2[0])
         self.y = rand(@ch2[0])
         self.opacity = 1
         self.zoom_x = (rand(100) + 50) / 100.0
         self.zoom_y = self.zoom_x
         @y_speed = [[rand(5), 1].max, 5].min
         @opacity_speed = 5
         @angle_speed = rand(3)
     end   
     
     #--------------------------------------------------------------------------
     # ● Spark
     #--------------------------------------------------------------------------                           
     def spark
         self.angle = rand(360)
         self.x = rand(@cw2[0])
         self.y = rand(@ch2[0])
         self.opacity = 1
         self.zoom_x = (rand(100) + 100) / 100.0
         self.zoom_y = self.zoom_x
         self.blend_type = 1     
         @opacity_speed = 10
         @zoom_speed = -0.01
     end
     
     #--------------------------------------------------------------------------
     # ● Rain
     #--------------------------------------------------------------------------                          
     def rain
         self.x = rand(@cw2[0])       
         if @start == nil
            self.y = rand(@ch2[0]) 
            @start = true
         else
            self.y = @ch2[1]        
         end   
         self.opacity = 1
         self.zoom_y = (rand(50) + 100) / 100.0
         self.zoom_x = (rand(25) + 100) / 100.0
         @y_speed = [[rand(10) + 10, 10].max, 20].min
         @opacity_speed = 10
     end    
     
     #--------------------------------------------------------------------------
     # ● Fog
     #--------------------------------------------------------------------------                            
     def fog
         rand_angle = rand(2)
         self.angle = rand_angle == 1 ? 180 : 0
         self.x = rand(@cw2[0])
         self.y = rand(@ch2[0])
         self.opacity = 1
         self.zoom_x = (rand(100) + 50) / 100.0
         self.zoom_y = self.zoom_x
         @x_speed = [[rand(10), 1].max, 10].min
         @opacity_speed = 10
     end
     
     #--------------------------------------------------------------------------
     # ● Light
     #--------------------------------------------------------------------------                           
     def light 
         self.angle = rand(360)
         self.x = rand(@cw2[0])
         self.y = rand(@ch2[0])
         self.opacity = 1
         self.zoom_x = (rand(100) + 50) / 100.0
         self.zoom_y = self.zoom_x
         self.blend_type = 1
         @angle_speed = [[rand(3), 1].max, 3].min
         @y_speed = -[[rand(10), 1].max, 10].min
         @opacity_speed = 2
     end
     
     #--------------------------------------------------------------------------
     # ● Wind
     #--------------------------------------------------------------------------                          
     def wind
         self.angle = rand(360)
         self.x = rand(@cw2[0])
         self.y = rand(@ch2[0])
         self.opacity = 1
         self.zoom_x = (rand(100) + 50) / 100.0
         self.zoom_y = self.zoom_x
         @x_speed = [[rand(10), 1].max, 10].min
         @y_speed = [[rand(10), 1].max, 10].min
         @opacity_speed = 10
     end   
          
     #--------------------------------------------------------------------------
     # ● Random
     #--------------------------------------------------------------------------                          
     def random
         self.angle = rand(360)
         self.x = rand(@cw2[0])
         self.y = rand(@ch2[0])
         self.opacity = 1
         self.zoom_x = (rand(100) + 50) / 100.0
         self.zoom_y = self.zoom_x
         x_s = [[rand(10), 1].max, 10].min
         y_s = [[rand(10), 1].max, 10].min
         rand_x = rand(2)
         rand_y = rand(2)
         @x_speed = rand_x == 1 ? x_s : -x_s
         @y_speed = rand_y == 1 ? y_s : -y_s      
         @opacity_speed = 10
     end    
     
    end
    
    #==============================================================================
    # ■ Module Weather EX
    #==============================================================================
    module Module_Weather_EX
      
     #--------------------------------------------------------------------------
     # ● Create Weather EX
     #--------------------------------------------------------------------------                   
      def create_weather_ex
          dispose_weather_ex
          create_weather_viewport
          create_weather_sprite     
      end
      
     #--------------------------------------------------------------------------
     # ● Dispose Wheater EX
     #--------------------------------------------------------------------------                     
      def dispose_weather_ex
          dispose_weather_ex_sprite
          dispose_weather_ex_viewport
      end  
     
     #--------------------------------------------------------------------------
     # ● Create Weather Viewport
     #--------------------------------------------------------------------------                     
      def create_weather_viewport
          dispose_weather_ex_viewport
          @viewport_weather_ex = Viewport.new(-32, -32, 576, 448)
          @viewport_weather_ex.z = MOG_WEATHER_EX::WEATHER_SCREEN_Z
          @viewport_weather_ex.ox = ($game_map.display_x * 32)
          @viewport_weather_ex.oy = ($game_map.display_y * 32)      
      end  
    
     #--------------------------------------------------------------------------
     # ● Create Weather Sprite
     #--------------------------------------------------------------------------                       
      def create_weather_sprite
          dispose_weather_ex_sprite
          @old_weather = $game_system.weather
          return if $game_system.weather == [] or $game_system.weather[0] == -1
          @weather_ex = []
          index = 0
          power_efic = MOG_WEATHER_EX::WEATHER_POWER_EFIC
          power_efic = 1 if power_efic < 1
          power = [[$game_system.weather[1] * power_efic, power_efic].max, 999].min
          for i in 0...power
              @weather_ex.push(Weather_EX.new(@viewport_weather_ex,$game_system.weather[0],$game_system.weather[2],index, @viewport_weather_ex.ox, @viewport_weather_ex.oy))
              index += 1
          end            
      end
    
     #--------------------------------------------------------------------------
     # ● Dispose Weather EX Viewport 
     #--------------------------------------------------------------------------                       
      def dispose_weather_ex_viewport
          return if @viewport_weather_ex == nil 
          @viewport_weather_ex.dispose
      end  
      
     #--------------------------------------------------------------------------
     # ● Dispose Weather EX
     #--------------------------------------------------------------------------                   
      def dispose_weather_ex_sprite
          return if @weather_ex == nil
          index = 0
          for i in @weather_ex
              $game_temp.weather_ex_set[index] = [] if $game_temp.weather_ex_set[index] == nil
              $game_temp.weather_ex_set[index].push(i.x,i.y,i.opacity,i.angle,i.zoom_x)
              i.dispose
              index += 1
          end
          @weather_ex.each {|sprite| sprite.dispose}  
          @weather_ex.clear
          @weather_ex = nil
      end
      
     #--------------------------------------------------------------------------
     # ● Dispose Refresh
     #--------------------------------------------------------------------------                    
      def dispose_refresh
          $game_temp.weather_ex_set.clear
          return if @weather_ex == nil
          @weather_ex.each {|sprite| sprite.dispose}
          @weather_ex.clear
          @weather_ex = nil
      end  
      
     #--------------------------------------------------------------------------
     # ● Update Weather EX
     #--------------------------------------------------------------------------                   
      def update_weather_ex
          refresh_weather_ex
          update_weather_ex_viewport
          return if @weather_ex == nil
          @weather_ex.each {|sprite| sprite.update_weather(@viewport_weather_ex.ox,@viewport_weather_ex.oy)} 
      end
      
     #--------------------------------------------------------------------------
     # ● Update Weather Ex Viewport
     #--------------------------------------------------------------------------                     
      def update_weather_ex_viewport
          return if @viewport_weather_ex == nil
          @viewport_weather_ex.ox = ($game_map.display_x * 32)
          @viewport_weather_ex.oy = ($game_map.display_y * 32)
      end
     
     #--------------------------------------------------------------------------
     # ● Refresh Weather EX
     #--------------------------------------------------------------------------                     
      def refresh_weather_ex
          return if @old_weather == nil
          return if @old_weather == $game_system.weather
          dispose_refresh
          create_weather_sprite
      end  
    end  
    
    #==============================================================================
    # ■ Spriteset Map
    #==============================================================================
    class Spriteset_Map 
       include Module_Weather_EX  
       
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------                   
      alias mog_weather_ex_initialize initialize 
      def initialize          
          dispose_weather_ex    
          mog_weather_ex_initialize
          create_weather_ex
      end
    
     #--------------------------------------------------------------------------
     # ● Dispose
     #--------------------------------------------------------------------------                   
      alias mog_weather_ex_dispose dispose
      def dispose
          dispose_weather_ex    
          mog_weather_ex_dispose
      end  
    
     #--------------------------------------------------------------------------
     # ● Update
     #--------------------------------------------------------------------------                   
      alias mog_weather_ex_update update
      def update
          mog_weather_ex_update
          update_weather_ex
      end  
        
    end
    
    
    
    if MOG_WEATHER_EX::WEATHER_BATTLE 
    #==============================================================================
    # ■ Spriteset Battle
    #==============================================================================
    class Spriteset_Battle  
      
       include Module_Weather_EX  
       
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------                   
      alias mog_weather_ex_initialize initialize 
      def initialize          
          dispose_weather_ex    
          mog_weather_ex_initialize
          create_weather_ex
      end
    
     #--------------------------------------------------------------------------
     # ● Dispose
     #--------------------------------------------------------------------------                   
      alias mog_weather_ex_dispose dispose
      def dispose
          dispose_weather_ex    
          mog_weather_ex_dispose
      end  
    
     #--------------------------------------------------------------------------
     # ● Update
     #--------------------------------------------------------------------------                   
      alias mog_weather_ex_update update
      def update
          mog_weather_ex_update
          update_weather_ex
      end   
        
    end
    
    end
    
    #=============================================================================
    # ■ Scene Base
    #=============================================================================
    class Scene_Base
      
      #--------------------------------------------------------------------------
      # ● Weather Recover Data
      #--------------------------------------------------------------------------  
      def weather_recover_data
          if $game_system.weather.empty? or 
              $game_system.weather[0] == -1 
              if !$game_system.weather_restore.empty? and 
                 $game_system.weather_restore[0] != -1
                 v = $game_system.weather_restore
                 $game_system.weather = [v[0],v[1],v[2]]
              end
          end         
      end
      
      #--------------------------------------------------------------------------
      # ● Weather Restore
      #--------------------------------------------------------------------------       
      def weather_recover_scene
          return if $game_system.weather_temp.empty?
          return if $game_system.weather_temp[0] == -1
          w = $game_system.weather_temp
          $game_system.weather = [w[0],w[1],w[2]]
          $game_system.weather_temp.clear
          $game_system.weather_temp = [-1,0,""]
      end  
     
      #--------------------------------------------------------------------------
      # ● Main
      #--------------------------------------------------------------------------         
      alias mog_weather_ex_main main
      def main
          dispose_weather_ex_base
          weather_recover_scene if can_recover_weather_scene?
          mog_weather_ex_main
      end    
      
      #--------------------------------------------------------------------------
      # ● Can Recover Weather Scene
      #--------------------------------------------------------------------------         
      def can_recover_weather_scene?
          return true if SceneManager.scene_is?(Scene_Map)
          return true if SceneManager.scene_is?(Scene_Battle)
          return false
      end  
      
      #--------------------------------------------------------------------------
      # ● terminate
      #--------------------------------------------------------------------------         
      alias mog_weather_ex_terminate_base terminate
      def terminate
          mog_weather_ex_terminate_base
          dispose_weather_ex_base      
      end  
    
      #--------------------------------------------------------------------------
      # ● Dispose Weather EX Base
      #--------------------------------------------------------------------------           
      def dispose_weather_ex_base
          return if @spriteset == nil
          @spriteset.dispose_weather_ex rescue nil
      end        
      
    end
    
    #=============================================================================
    # ■ Scene Load
    #=============================================================================
    class Scene_Load < Scene_File
      
      #--------------------------------------------------------------------------
      # ● On Load Success
      #--------------------------------------------------------------------------
      alias mog_weather_ex_on_load_success on_load_success
      def on_load_success
          mog_weather_ex_on_load_success
          weather_recover_data
      end
    end
    
    #=============================================================================
    # ■ Scene Manager
    #=============================================================================
    class << SceneManager
      
      #--------------------------------------------------------------------------
      # ● Call
      #--------------------------------------------------------------------------         
      alias mog_weather_ex_call call
      def call(scene_class)
          weather_dispose
          mog_weather_ex_call(scene_class)
      end
      
      #--------------------------------------------------------------------------
      # ● Weather Restore
      #--------------------------------------------------------------------------       
      def weather_dispose
          return if $game_system.weather.empty?
          return if $game_system.weather[0] == -1
          w = $game_system.weather
          $game_system.weather_temp = [w[0],w[1],w[2]]
          $game_system.weather.clear
          $game_system.weather = [-1,0,""]
      end    
      
    end
    
    $mog_rgss3_weather_ex = true
    

     

     

     

     

     

    2) Touhou Map Name V1.3

     

    Descrizione:

    Permette di visualizzare il nome della mappa in stile Touhou, con un'animazione.

     

    Istruzioni:

    Avviate lanciando lo script con $game_temp.mapname = true. Importate in Graphics/System le immagini che volete utilizzare, chiamandole "Map_Name_Layout" e "Map_Name_Particle". Purtroppo non ho capito come modificare il font... I Particle sono le foglioline in trasparenza che vedete andare dal basso verso l'alto sulla scritta.

     

    TIP 1: Per evitare che l'effetto si ripeta istericamente, piazzate uno switch locale dopo l'evento, poi create una seconda pagina evento con lo switch attivato. Olè!

    TIP 2 (suggerito da KenzoMe92): se insieme all'effetto dovesse essere visualizzato normalmente il nome della mappa, andate nello script editor--->Scene_Map (quello di Ace)---> all'inizio della linea 143 aggiungete #.

     

    Screen:

     

     

     

    Script:

     

     

    #==============================================================================
    # +++ MOG - Touhou Map Name (v1.3) +++
    #==============================================================================
    # By Moghunter 
    # http://www.atelier-rgss.com/
    #==============================================================================
    # Sistema animado que apresenta o nome do mapa no estilo Touhou.
    #==============================================================================
    # Serão necessários as seguintes imagens na pasta Graphics/System/
    #
    # Map_Name_Particle.png
    # Map_Name_Layout.png
    #
    #==============================================================================
    # Use o código abaixo para ativar o script.
    #
    # $game_temp.mapname = true
    #
    #==============================================================================
    #==============================================================================
    # ● Histórico (Version History)
    #==============================================================================
    # v 1.3 - Melhor velocidade no sistema de animação.
    # v 1.2 - Melhoria no sistema de dispose de imagens.
    # v 1.1 - Nome do mapa somente é visível na cena de mapa, para evitar 
    # a imagem da hud sobrepor outras scenes.
    #==============================================================================
    
    module MOG_TOUHOU_MAP_NAME
      # Posição geral da hud.
      MAP_NAME_POSITION = [272,192]
      # Posição das letras.
      MAP_NAME_WORD_POSITION = [-30,18]
      # Posição das particulas.
      MAP_NAME_PARTICLE_POSITION = [-100,-50]
      # Prioridade da hud.
      MAP_NAME_Z = 50
      # Ativar o nome do mapa automaticamente.
      MAP_NAME_AUTOMATIC = false
    end
    
    #==============================================================================
    # ■ Game Temp
    #==============================================================================
    class Game_Temp
    
     attr_accessor :mapname_conf
     attr_accessor :mapname_layout_conf
     attr_accessor :mapname_duration
     attr_accessor :mapname
     
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------                   
      alias mog_map_name_initialize initialize
      def initialize
          @mapname_conf = [] 
          @mapname_layout_conf = []
          @mapname_duration = [false,-1,2]
          @mapname = false
          mog_map_name_initialize
      end  
    end
    
    #==============================================================================
    # ■ Game Player
    #==============================================================================
    class Game_Player < Game_Character  
    
     #--------------------------------------------------------------------------
     # ● Perform Transfer
     #--------------------------------------------------------------------------                     
      alias mog_touhou_map_name_perform_transfer perform_transfer
      def perform_transfer
          m_id = $game_map.map_id
          mog_touhou_map_name_perform_transfer
          if MOG_TOUHOU_MAP_NAME::MAP_NAME_AUTOMATIC
             if m_id != $game_map.map_id and $game_map.display_name != ""
                $game_temp.mapname = true
             end
          end    
      end
    
    end  
    
    #==============================================================================
    # ■ Map Name
    #==============================================================================
    class Map_Name < Sprite
      include MOG_TOUHOU_MAP_NAME
      
      attr_reader   :letter
      attr_reader   :turn
      attr_reader   :animation_duration
      attr_reader   :text_duration
      attr_reader   :duration
    
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------                 
      def initialize(letter,x,y, zoom, opac,duration, animation_dutation, text_duration,turn, center_x, viewport = nil)      
          super(viewport)
          @letter = letter
          @turn = turn
          @duration = duration
          @animation_duration = animation_dutation
          @animation_duration2 = animation_dutation
          @text_duration = text_duration
          self.bitmap = Bitmap.new(32,32)
          self.bitmap.font.size = 32
          self.bitmap.font.bold = true
          self.bitmap.font.italic = true
          self.bitmap.draw_text(0,0, 32, 32, @letter.to_s,0)
          self.z = 999
          self.zoom_x = zoom
          self.zoom_y = zoom
          self.ox =  -100
          self.oy =  -100
          self.x = x 
          self.y = y
          self.z = MAP_NAME_Z + 2
          self.opacity = opac
      end  
      
     #--------------------------------------------------------------------------
     # ● Dispose
     #--------------------------------------------------------------------------               
      def dispose
          super
          if self.bitmap != nil
             self.bitmap.dispose
          end
      end  
      
     #--------------------------------------------------------------------------
     # ● Update
     #--------------------------------------------------------------------------               
      def update
          super
          update_animation
      end
          
     #--------------------------------------------------------------------------
     # ● Update Animation
     #--------------------------------------------------------------------------                 
      def update_animation
          @animation_duration -= 1 if @animation_duration > 0
          return if @animation_duration > 0 
          if self.zoom_x > 1
             self.zoom_x -= 0.06
             self.x += 5
             self.y += 6        
             self.opacity += 35
             self.zoom_y = self.zoom_x
             if self.zoom_x <= 1
                self.zoom_x = 1
                self.zoom_y = self.zoom_x
                self.opacity = 255
                @text_duration = @duration - @animation_duration2
             end       
           else
              @text_duration -= 1
           end
      end
          
    end
    
    #==============================================================================
    # ■ Particle_Name_Map
    #==============================================================================
    class Particle_Name_Map < Sprite
      
      include MOG_TOUHOU_MAP_NAME
      
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------             
      def initialize(viewport = nil,x,y,ax,ay)
          super(viewport)
          self.bitmap = Cache.system("Map_Name_Particle")
          @pos = [x + self.bitmap.width,y - self.bitmap.height]
          @area = [ax - (self.bitmap.width * 4),ay - self.bitmap.height]
          reset_setting
      end  
      
     #--------------------------------------------------------------------------
     # ● Reset Setting
     #--------------------------------------------------------------------------               
      def reset_setting
          zoom = (50 + rand(100)) / 100.1
          self.zoom_x = zoom
          self.zoom_y = zoom
          self.x = @pos[0] + rand(@area[0])
          self.y = @pos[1] + rand(@area[1])
          self.z = MAP_NAME_Z + 1
          self.opacity = 0
          self.angle = rand(360)
          self.blend_type = 0
          @speed_x = 0
          @speed_y = [[rand(4), 4].min, 1].max
          @speed_a = rand(3)
          @fade_y = @pos[1] + 32
      end
      
     #--------------------------------------------------------------------------
     # ● Dispose
     #--------------------------------------------------------------------------               
      def dispose
          super
          self.bitmap.dispose
      end  
      
     #--------------------------------------------------------------------------
     # ● Update
     #--------------------------------------------------------------------------               
      def update
          super
          self.y -= @speed_y
          self.opacity -= self.y > @fade_y ? -8 : 5
          reset_setting if self.y < 0
      end  
      
     #--------------------------------------------------------------------------
     # ● Update Fade
     #--------------------------------------------------------------------------               
      def update_fade
          self.y -= @speed_y
          self.opacity -= 5
      end    
      
    end
    
    #==============================================================================
    # ■ Spriteset Map
    #==============================================================================
    class Spriteset_Map
     include MOG_TOUHOU_MAP_NAME
     
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------                 
      alias mog_mapname_initialize initialize
      def initialize
          @vis_time = 0
          @vis = map_name_visible?
          dispose_map_name
          create_map_name
          create_map_namelayout
          create_light      
          mog_mapname_initialize
      end
      
     #--------------------------------------------------------------------------
     # ● Create Map Name
     #--------------------------------------------------------------------------                 
      def create_map_name
          return if $game_temp.mapname_duration[2] > 0
          @map_name.each {|sprite| sprite.dispose} if @map_name != nil
          @map_name = [] 
          mapname = $game_map.display_name
          m_name = mapname.to_s.split(//)
          index = 0
          turn = 0
          duration = 20 * mapname.size      
          center_x = 10 * mapname.size
          $game_temp.mapname_duration[1] = (duration) + 64 if $game_temp.mapname_duration[1] <= 0
          x2 = (-170 + MAP_NAME_POSITION[0] + MAP_NAME_WORD_POSITION[0]) - center_x
          y2 = -170 + MAP_NAME_POSITION[1] + MAP_NAME_WORD_POSITION[1]
          if $game_temp.mapname_conf == [] 
             for i in m_name
                 @map_name.push(Map_Name.new(i[0],(index * 20) + x2,y2,1.8,0,duration, 20 * index,0,turn,center_x))
                 index += 1
                 turn = turn == 0 ? 1 : 0
             end 
          else
             c = $game_temp.mapname_conf   
             for i in 0...c.size
                 @map_name.push(Map_Name.new(c[index][0],c[index][1],c[index][2],c[index][3],c[index][4],c[index][5],c[index][6],c[index][7],turn,0))
                 index += 1
                 turn = turn == 0 ? 1 : 0 
             end        
          end
      end
      
     #--------------------------------------------------------------------------
     # ● Create Map Name Layout
     #--------------------------------------------------------------------------                   
     def create_map_namelayout
         return if $game_temp.mapname_duration[2] > 1
         if @map_name_layout != nil
            @map_name_layout.bitmap.dispose
            @map_name_layout.dispose
            @map_name_layout = nil
         end  
         @map_name_layout = Sprite.new
         @map_name_layout.bitmap = Cache.system("Map_Name_Layout.png")
         @map_name_layout.z = MAP_NAME_Z
         @map_name_org_position = [MAP_NAME_POSITION[0] - (@map_name_layout.bitmap.width / 2),MAP_NAME_POSITION[1] - (@map_name_layout.bitmap.height / 2)]
         if $game_temp.mapname_layout_conf == []
            @map_name_layout.x = @map_name_org_position[0] + 100
            @map_name_layout.y = @map_name_org_position[1]
            @map_name_layout.opacity = 0
         else
            @map_name_layout.x = $game_temp.mapname_layout_conf[0]
            @map_name_layout.y = $game_temp.mapname_layout_conf[1]
            @map_name_layout.opacity = $game_temp.mapname_layout_conf[2]
         end
     end  
     
      #--------------------------------------------------------------------------
      # ● Create Light
      #--------------------------------------------------------------------------  
      def create_light
          return if $game_temp.mapname_duration[2] > 1    
          x = MAP_NAME_POSITION[0] + MAP_NAME_PARTICLE_POSITION[0]
          y = MAP_NAME_POSITION[1] + MAP_NAME_PARTICLE_POSITION[1]    
          @particle_name =[]
          ax = @map_name_layout.bitmap.width - 32
          ay = @map_name_layout.bitmap.height - 32
          for i in 0...15
              @particle_name.push(Particle_Name_Map.new(nil,x,y,ax,ay))
          end  
      end 
     
     #--------------------------------------------------------------------------
     # ● Map Name Clear
     #--------------------------------------------------------------------------                   
     def map_name_clear
         @map_name.each {|sprite| sprite.dispose} if @map_name != nil
         @map_name = nil
         $game_temp.mapname_duration[0] = false
         $game_temp.mapname_duration[1] = -1
         $game_temp.mapname_conf.clear
         $game_temp.mapname_layout_conf.clear     
     end   
     
     #--------------------------------------------------------------------------
     # ● Layout Clear
     #--------------------------------------------------------------------------                         
      def layout_clear
          return if @map_name_layout == nil
          @map_name_layout.bitmap.dispose
          @map_name_layout.dispose
          @map_name_layout = nil
          $game_temp.mapname_layout_conf.clear
      end 
       
     #--------------------------------------------------------------------------
     # ● Dispose
     #--------------------------------------------------------------------------                 
      alias mog_mapname_dispose dispose 
      def dispose
          mog_mapname_dispose
          dispose_map_name
      end  
      
     #--------------------------------------------------------------------------
     # ● Dispose Map Mame
     #--------------------------------------------------------------------------                   
      def dispose_map_name
          dispose_map_name_word
          dispose_map_name_layout
          dispose_map_name_particle
     end
     
     #--------------------------------------------------------------------------
     # ● Dispose Map Mame Layout
     #--------------------------------------------------------------------------                     
     def dispose_map_name_layout
         return if @map_name_layout == nil
         $game_temp.mapname_layout_conf[0] = @map_name_layout.x
         $game_temp.mapname_layout_conf[1] = @map_name_layout.y
         $game_temp.mapname_layout_conf[2] = @map_name_layout.opacity
         @map_name_layout.bitmap.dispose
         @map_name_layout.dispose
     end      
         
     #--------------------------------------------------------------------------
     # ● Particle_Name Clear
     #--------------------------------------------------------------------------                         
      def dispose_map_name_particle
          return if @particle_name == nil
          @particle_name.each {|sprite| sprite.dispose} 
          @particle_name = nil         
      end 
     
     #--------------------------------------------------------------------------
     # ● Dispose Map Mame Word
     #--------------------------------------------------------------------------                     
     def dispose_map_name_word
         return if @map_name == nil
         index = 0
         for i in @map_name
             if $game_temp.mapname_conf[index] == nil
                $game_temp.mapname_conf[index] = ["",0,0,0,0,0,0,0,0]
             end  
             $game_temp.mapname_conf[index][0] = i.letter
             $game_temp.mapname_conf[index][1] = i.x
             $game_temp.mapname_conf[index][2] = i.y
             $game_temp.mapname_conf[index][3] = i.zoom_x
             $game_temp.mapname_conf[index][4] = i.opacity           
             $game_temp.mapname_conf[index][5] = i.duration  
             $game_temp.mapname_conf[index][6] = i.animation_duration
             $game_temp.mapname_conf[index][7] = i.text_duration
             i.dispose
             index += 1
         end
     end
          
     #--------------------------------------------------------------------------
     # ● Update
     #--------------------------------------------------------------------------                 
      alias mog_mapname_update update
      def update
          mog_mapname_update
          update_map_name
      end  
      
     #--------------------------------------------------------------------------
     # ● Map Name Visible?
     #--------------------------------------------------------------------------                    
      def map_name_visible?
          return false if !SceneManager.scene_is?(Scene_Map)
          return false if @vis_time > 0
          return true
      end
      
     #--------------------------------------------------------------------------
     # ● Refresh Map Name
     #--------------------------------------------------------------------------                   
      def refresh_map_name
          return unless $game_temp.mapname
          $game_temp.mapname = false
          map_name_clear
          layout_clear
          dispose_map_name_particle
          $game_temp.mapname_duration[2] = 0      
          create_map_name
          create_map_namelayout
          create_light
      end  
      
     #--------------------------------------------------------------------------
     # ● Update Map Name
     #--------------------------------------------------------------------------                   
      def update_map_name
          refresh_map_name 
          dispose_map_name_time
          update_word
          update_map_name_layout
      end 
      
     #--------------------------------------------------------------------------
     # ● Update Light
     #--------------------------------------------------------------------------              
     def update_light
         return if @particle_name == nil
         for sprite in @particle_name
             sprite.update
             sprite.visible = @vis
         end  
     end
          
     #--------------------------------------------------------------------------
     # ● Update Fade ight
     #--------------------------------------------------------------------------              
     def update_fade_light
         return if @particle_name == nil
         @particle_name.each {|sprite| sprite.update_fade}      
     end  
     
     #--------------------------------------------------------------------------
     # ● Update Map Name Layout
     #--------------------------------------------------------------------------                     
      def update_map_name_layout
          return if @map_name_layout == nil
          @vis = map_name_visible?
          if !@vis
             @vis_time = 1
          else
             @vis_time -= 1 if @vis_time > 0
          end  
          @map_name_layout.visible = @vis
          if @map_name != nil
             @map_name_layout.opacity += 5
             update_light
             if @map_name_layout.x > @map_name_org_position[0]
                @map_name_layout.x -= 1
             end  
          else
             @map_name_layout.x -= 2 
             @map_name_layout.opacity -= 8
             update_fade_light
             if @map_name_layout.opacity <= 0
                layout_clear 
                dispose_map_name_particle
                $game_temp.mapname_duration[2] = 2
             end   
          end
      end
      
     #--------------------------------------------------------------------------
     # ● Update Word
     #--------------------------------------------------------------------------                     
      def update_word
          return if @map_name == nil       
          for map_sprite in @map_name
              map_sprite.update 
              map_sprite.visible = @vis
          end  
      end  
      
     #--------------------------------------------------------------------------
     # ● Dispose Map Name Time
     #--------------------------------------------------------------------------                       
      def dispose_map_name_time
          if $game_temp.mapname_duration[1] > 0
             $game_temp.mapname_duration[1] -= 1 
             return
          end   
          return if $game_temp.mapname_duration[1] < 0
          map_name_clear
          $game_temp.mapname_duration[2] = 1
      end  
        
    end
    
    $mog_rgss3_touhou_map_name = true
    

     

     

     

     

     

     

    3) Event Text Popup V1.0

     

    Descrizione:

    Permette di visualizzare un commento in popup sulla mappa, come il nome dell mappa in cui si andrà se si prende una certa direzione o la descrizione di un oggetto sulla mappa.

     

    Istruzioni:

    Create un evento e dentro scrivete un commento contenente <Text = X> dove "X" è il testo che volete far comparire. Nelle istruzioni contenute nello script dice di usare il simpbolo " - " per staccare X da Text. Non è vero, bisogna usare "=". Burlone... Le istruzioni per il cambio font e il colore le trovate all'inizio dello script.

     

    Screen: è senza dubbio un cristallo verde

     

     

     

    Script:

     

     

    #==============================================================================
    # +++ MOG - Event Text Popup (v1.0) +++
    #==============================================================================
    # By Moghunter
    # http://www.atelier-rgss.com
    #==============================================================================
    # Apresenta o um texto em cima do evento.
    #==============================================================================
    # Para ativa basta colocar um comentário com o prefixo:
    #
    # <Text - X>
    #
    # X - Texto apresentado no evento.
    #
    # Exemplo
    #
    # <Text - Teleport>
    # <Text - Save Point>
    #
    #==============================================================================
    module MOG_EVENT_TEXT_POPUP
      #Definição da fonte.
      FONT_NAME = "Arial"
      FONT_SIZE = 16
      FONT_BOLD = true
      FONT_COLOR = Color.new(255,255,255)
      #Definição da prioridade do Texto
      SCREEN_Z = 1
    end  
    
    #==============================================================================
    # ■ Game CharacterBase
    #==============================================================================
    class Game_CharacterBase  
      attr_accessor :text
      attr_accessor :opacity
      attr_accessor :erased
    end
    
    #==============================================================================
    # ■ Game Event
    #==============================================================================
    class Game_Event < Game_Character  
      
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------                     
      alias mog_event_text_initialize initialize
      def initialize(map_id, event)
          mog_event_text_initialize(map_id, event)
      end  
      
     #--------------------------------------------------------------------------
     # ● Setup Page Setting
     #--------------------------------------------------------------------------                     
      alias mog_event_text_setup_page_settings setup_page_settings
      def setup_page_settings
          mog_event_text_setup_page_settings
          setup_event_text
      end
        
     #--------------------------------------------------------------------------
     # ● Setup Event Text
     #--------------------------------------------------------------------------                       
      def setup_event_text
          return if @list == nil
          for command in @list
          if command.code == 108
             if command.parameters[0] =~ /<Text = ([^>]*)>/
                @text = $1
             end  
           end
          end 
      end
    end  
    
    #==============================================================================
    # ■ Sprite Character Text
    #==============================================================================
    class Sprite_Character_Text < Sprite_Base
      
      include MOG_EVENT_TEXT_POPUP
      
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------                     
      def initialize(viewport = nil,character,sprite)
          super(viewport)
          text_size = character.text.to_s.split(//)
          w = 32 + (FONT_SIZE / 2) * text_size.size rescue nil
          w = 32 if w == nil or w < 32
          self.bitmap = Bitmap.new(w,32)
          self.bitmap.font.name = FONT_NAME
          self.bitmap.font.size = FONT_SIZE
          self.bitmap.font.bold = FONT_BOLD
          self.bitmap.font.color = FONT_COLOR
          self.bitmap.draw_text(0,0,self.width,self.height,character.text.to_s,1) rescue nil
          update_position(character,sprite) 
      end
      
     #--------------------------------------------------------------------------
     # ● Dispose
     #--------------------------------------------------------------------------                     
      def dispose
          super
          self.bitmap.dispose
      end  
     
     #--------------------------------------------------------------------------
     # ● Update Position
     #--------------------------------------------------------------------------                     
      def update_position(character,sprite)
          if character.erased
             self.visible = false
             return
          end  
          self.x = character.screen_x - self.width / 2
          self.y = character.screen_y - (sprite.height + self.height)
          self.z = character.screen_z + SCREEN_Z
          self.visible = character.transparent == true ? false : true
          self.opacity = character.opacity
      end 
      
    end
    
    #==============================================================================
    # ■ Sprite Character
    #==============================================================================
    class Sprite_Character < Sprite_Base
    
     #--------------------------------------------------------------------------
     # ● Initialize
     #--------------------------------------------------------------------------                    
      alias mog_event_text_initialize initialize
      def initialize(viewport, character = nil)
          mog_event_text_initialize(viewport, character)
          @character_text = ""
          create_event_text
      end  
      
     #--------------------------------------------------------------------------
     # ● Create Event Text
     #--------------------------------------------------------------------------                     
      def create_event_text
          return if @character == nil
          return if @character.text == nil
          return if @character.text == @character_text
          dispose_event_text
          @event_text = Sprite_Character_Text.new(viewport,@character,self)
          @character_text = @character.text
      end
    
     #--------------------------------------------------------------------------
     # ● Dispose
     #--------------------------------------------------------------------------                   
      alias mog_event_text_dispose dispose
      def dispose
          mog_event_text_dispose
          dispose_event_text
      end  
      
     #--------------------------------------------------------------------------
     # ● Dispose Event Text
     #--------------------------------------------------------------------------                     
      def dispose_event_text
          return if @event_text == nil
          @event_text.dispose
          @event_text = nil
      end
      
     #--------------------------------------------------------------------------
     # ● Update
     #--------------------------------------------------------------------------                     
      alias mog_event_text_update update
      def update
          mog_event_text_update
          create_event_text
          update_event_text
      end  
      
     #--------------------------------------------------------------------------
     # ● Update Event Text
     #--------------------------------------------------------------------------                     
      def update_event_text
          return if @event_text == nil
          @event_text.update_position(@character,self)
      end
        
    end 
    
    $mog_rgss3_event_text_popup = true
    

     

     

     

     

    4) CHARACTER EX V1.2

    Descrizione:

    Script piuttosto divertente, in realtà. Vi permette di poter giocare coi vostri chara, scegliendo di farli camminare basculando, o dargli un effetto tipo fantasma, di farli roteare come se fossero presi da una tromba d'aria o di farli diventare dei nanetti (e tante altre cose XD). Potete inoltre scegliere se far partire queste "trasformazioni" in automatico oppure scatenarle a seguito di un evento o toccando qualcosa. In parole povere, potete fare in modo che Alice mangi un fungo e diventi piccola... o che sia già piccola quando la incontrate! XD

     

    Istruzioni:

    Se volete che l'effetto parta in automatico appena entrate nella mappa, create un evento con la grafica del personaggio che desiderate e poi lanciate un commento con su scritto <Effects = EFFECT_TYPE> (dove EFFECT_TYPE è il tipo di effetto voluto).

     

    Se invece volete che l'effetto parta a seguito di un evento o di un'azione da parte dell'eroe, richiamate lo script scrivendo char_effect(EVENT_ID, EFFECT_TYPE) (dove EVENT_ID e l'ID dell'evento che volete modificare, ivi inclusi i vostri eroi).

    Tutti i tipi di variazioni disponibili sono all'inizo dello script. Sfogatevi!

    Screen: aberrazioni...

     


    Script:

     

     

    #==============================================================================
    # +++ MOG - Character EX (v1.2) +++
    #==============================================================================
    # By Moghunter 
    # http://www.atelier-rgss.com/
    #==============================================================================
    # Adiciona vários efeitos visuais animados nos characters.
    #==============================================================================
    
    #==============================================================================
    # ■ AUTO MODE (Animated Effects)
    #==============================================================================
    # Os efeitos começam automaticamente, coloque no evento os sequintes
    # comentários para ativar os efeitos.
    #
    # <Effects = EFFECT_TYPE> 
    #
    # EX
    #
    # <Effects = Breath>
    # <Effects = Ghost>
    # <Effects = Clear>   
    #
    #  <--- EFFECT_TYPE --->
    # 
    # ●   Breath 
    # Ativa o efeito de respiração. (LOOP EFFECT)
    #
    # ●   Big Breath
    # Ativa o efeito de loop de zoom in e out. (LOOP EFFECT)
    #
    # ●   Ghost
    # Ativa o efeito de desaparecer e aparecer. (LOOP EFFECT)
    #
    # ●   Swing
    # Ativa o efeito do character balançar para os lados.
    #
    # ●   Swing Loop
    # Ativa o efeito do character balançar para os lados. (LOOP EFFECT)
    #
    # ●  Spin
    # Faz o character girar em 360 graus
    #
    # ●  Spin Loop 
    # Faz o character girar em 360 graus. (LOOP EFFECT)
    #
    # ●  Slime Breath
    # Ativa o efeito de movimento semelhante ao de um slime. (LOOP EFFECT)
    #
    # ●  Crazy
    # 
    # Faz o character virar para esquerda e direita rapidamente. (LOOP EFFECT)
    #
    # ●  Appear
    # Ativa o efeito de aparição.
    #
    # ●  Disappear
    # Ativa o efeito de desaparecer.
    #
    # ●  Dwarf
    # Deixa o character anão.
    #
    # ●  Giant
    # Deixa o character gigante.
    #
    # ●  Normal
    # Faz o character voltar ao normal de forma gradual.
    #
    # ●  Clear
    # Cancela todos os efeitos.
    #
    #==============================================================================
    
    #==============================================================================
    # ■ MANUAL MODE (Animated Effects)
    #==============================================================================
    # Use o código abaixo através do comando chamar script. 
    #
    # char_effect(EVENT_ID, EFFECT_TYPE)
    #
    # EX -    char_effect( 10,"Breath")
    #         char_effect( 0, "Dwarf")     
    #
    # ● EVENT_ID
    # - Maior que 0 para definir as IDs dos eventos no mapa.
    # - Iguál a 0 para ativar os efeitos no personagem principal (Leader).
    # - Menor que 0 para definir as IDs dos sequidores.
    #
    # ● EFFECT_TYPE
    # - Use os mesmos nomes dos efeitos da ativação automática.
    # 
    #==============================================================================
    
    #==============================================================================
    # ■ EXTRA EFFECTS (Fix Values)
    #==============================================================================
    #
    # ●     <Zoom = X> 
    #   
    # ●     <Opacity = X> 
    #
    # ●     <Blend Type = X>   
    #    
    # ●     <Mirror = X>   
    #
    #==============================================================================
    
    #==============================================================================
    # ■ CANCEL EFFECTS        (Loop Effects)
    #==============================================================================
    #
    # ●     char_effect(EVENT_ID, "Clear")
    # EX -  char_effect(15, "Clear") 
    #
    # Para cancelar um evento(Personagem) especifico.
    #
    # ●     clear_all_events_effects
    # Para cancelar todos os efeitos dos eventos no mapa.
    #
    # ●     clear_all_party_effects     
    # Para cancelar todos os efeitos do grupo(Personagem).
    #
    # ●     clear_all_ex_effects
    # Para cancelar tudo.
    #
    #==============================================================================
    
    
    #==============================================================================
    # ● Histórico (Version History)
    #==============================================================================
    # v 1.2 - Adição dos comandos para definir valores fixos nos characters.
    # v 1.1 - Correção na definição da ID dos personagens aliados.
    #==============================================================================
    
    #==============================================================================
    # ■ Game_CharacterBase
    #==============================================================================
    class Game_CharacterBase
      
      attr_accessor :effects
      attr_accessor :opacity
      attr_accessor :erased
      attr_accessor :zoom_x
      attr_accessor :zoom_y
      attr_accessor :mirror
      attr_accessor :angle
      attr_accessor :blend_type
      
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------  
      alias mog_character_effects_initialize initialize
      def initialize
          @effects = ["",0,false]
          @zoom_x = 1.00
          @zoom_y = 1.00
          @mirror = false
          @angle = 0
          mog_character_effects_initialize
      end
      
      #--------------------------------------------------------------------------
      # ● Clear Effects
      #--------------------------------------------------------------------------      
      def clear_effects
          @effects = ["",0,false]
          @zoom_x = 1.00
          @zoom_y = 1.00
          @mirror = false
          @angle = 0
          @opacity = 255
          @blend_type = 0
      end  
      
      #--------------------------------------------------------------------------
      # ● update
      #--------------------------------------------------------------------------    
      alias mog_character_ex_effects_update update
      def update
          mog_character_ex_effects_update
          update_character_ex_effects
      end  
      
      #--------------------------------------------------------------------------
      # ● Update Character EX Effects
      #--------------------------------------------------------------------------      
      def update_character_ex_effects
          return if @erased or @effects[0] == ""
          check_new_effect if @effects[2]
          case @effects[0] 
             when "Breath";        update_breath_effect
             when "Ghost";         update_ghost_effect           
             when "Big Breath";    update_big_breath_effect
             when "Slime Breath";  update_slime_breath_effect               
             when "Spin Loop";     update_spin_loop_effect           
             when "Swing Loop";    update_swing_loop_effect
             when "Crazy";         update_crazy_effect           
             when "Appear";        update_appear_effect
             when "Disappear";     update_disappear_effect
             when "Swing";         update_swing_effect
             when "Spin";          update_spin_effect
             when "Dwarf";         update_dwarf_effect
             when "Giant";         update_giant_effect
             when "Normal";         update_normal_effect  
          end
      end
      
      #--------------------------------------------------------------------------
      # ● Check New Effect
      #--------------------------------------------------------------------------        
      def check_new_effect
          @effects[2] = false
          @effects[1] = 0
          unless @effects[0] == "Normal"
                 @opacity = 255
                 @angle = 0
                 @mirror = false
                 unless (@effects[0] == "Dwarf" or @effects[0] == "Giant") 
                      @zoom_x = 1.00
                      @zoom_y = 1.00
                 end                   
          end     
          case @effects[0] 
             when "Breath"
                @effects[1] = rand(60)
             when "Appear"
                @zoom_x = 0.1
                @zoom_y = 3.5
                @opacity = 0
             when "Ghost"
                @opacity = rand(255)
             when "Swing Loop"
                @angle = 20
                @effects[1] = rand(60)
             when "Spin Loop"
                @angle = rand(360)
             when "Slime Breath"
                @effects[1] = rand(60)
             when "Big Breath"
                @effects[1] = rand(60)
             when "Normal"
                pre_angle = 360 * (@angle / 360).truncate
                @angle = @angle - pre_angle
                @angle = 0 if @angle < 0
          end
      end  
      
      #--------------------------------------------------------------------------
      # ● Check New Effect
      #--------------------------------------------------------------------------          
      def update_breath_effect
          @effects[1] += 1
          case @effects[1]
             when 0..25
               @zoom_y += 0.005
               if @zoom_y > 1.12
                  @zoom_y = 1.12
                  @effects[1] = 26
               end  
             when 26..50
               @zoom_y -= 0.005
               if @zoom_y < 1.0 
                  @zoom_y = 1.0
                  @effects[1] = 51
               end           
             else
               @zoom_x = 1
               @zoom_y = 1
               @effects[1] = 0 
          end
      end
      
      #--------------------------------------------------------------------------
      # ● Update Ghost Effect
      #--------------------------------------------------------------------------            
      def update_ghost_effect
          @effects[1] += 1
          case @effects[1]
             when 0..55
                 @opacity += 5
                 @effects[1] = 56 if @opacity >= 255
             when 56..120
                 @opacity -= 5
                 @effects[1] = 121 if @opacity <= 0
             else
                @opacity = 0
                @effects[1] = 0
          end 
      end  
    
      #--------------------------------------------------------------------------
      # ● Update Swing Loop Effect
      #--------------------------------------------------------------------------              
      def update_swing_loop_effect
          @effects[1] += 1
          case @effects[1]
             when 0..40
                @angle -= 1
                if @angle < -19
                   @angle = -19
                   @effects[1] = 41
                end  
             when 41..80 
                @angle += 1
                if @angle > 19
                   @angle = 19
                   @effects[1] = 81
                end   
             else
                @angle = 20
                @effects[1] = 0
           end
      end  
    
      #--------------------------------------------------------------------------
      # ● Update Swing Effect
      #--------------------------------------------------------------------------              
      def update_swing_effect
          @effects[1] += 1
          case @effects[1]
             when 0..20
                @angle -= 1
             when 21..60 
                @angle += 1
             when 61..80  
                @angle -= 1
             else
                clear_effects
          end     
      end  
        
      #--------------------------------------------------------------------------
      # ● Update Spin Loop Effect
      #--------------------------------------------------------------------------                
      def update_spin_loop_effect
          @angle += 3
      end  
      
      #--------------------------------------------------------------------------
      # ● Update Spin Effect
      #--------------------------------------------------------------------------                
      def update_spin_effect
          @angle += 10
          clear_effects if @angle >= 360
      end    
      
      #--------------------------------------------------------------------------
      # ● Update Slime Breath Effect
      #--------------------------------------------------------------------------          
      def update_slime_breath_effect
          @effects[1] += 1
          case @effects[1]
             when 0..30
               @zoom_x += 0.005
               @zoom_y -= 0.005
               if @zoom_x > 1.145 
                  @zoom_x = 1.145
                  @zoom_y = 0.855
                  @effects[1] = 31
               end             
             when 31..60
               @zoom_x -= 0.005
               @zoom_y += 0.005    
               if @zoom_x < 1.0
                  @zoom_x = 1.0
                  @zoom_y = 1.0
                  @effects[1] = 61
               end             
             else
               @zoom_x = 1
               @zoom_y = 1.0
               @effects[1] = 0 
          end
      end  
     
      #--------------------------------------------------------------------------
      # ● Update Big Breath Effect
      #--------------------------------------------------------------------------          
      def update_big_breath_effect
          @effects[1] += 1
          case @effects[1]
             when 0..30
               @zoom_x += 0.02
               @zoom_y = @zoom_x 
               if @zoom_x > 1.6   
                  @zoom_x = 1.6         
                  @zoom_y = @zoom_x 
                  @effects[1] = 31
               end
             when 31..60
               @zoom_x -= 0.02
               @zoom_y = @zoom_x 
               if @zoom_x < 1.0    
                  @zoom_x = 1.0
                  @zoom_y = @zoom_x 
                  @effects[1] = 61 
               end   
             else
               @zoom_x = 1
               @zoom_y = 1
               @effects[1] = 0 
          end
      end    
      
      #--------------------------------------------------------------------------
      # ● Update Disappear Effect
      #--------------------------------------------------------------------------            
      def update_disappear_effect
          @zoom_x -= 0.01
          @zoom_y += 0.05
          @opacity -= 3      
      end
      
      #--------------------------------------------------------------------------
      # ● Update Appear Effect
      #--------------------------------------------------------------------------            
      def update_appear_effect
          @zoom_x += 0.02
          @zoom_x = 1.0 if @zoom_x > 1.0
          @zoom_y -= 0.05
          @zoom_y = 1.0 if @zoom_y < 1.0
          @opacity += 3
          clear_effects if @opacity >= 255
      end  
    
      #--------------------------------------------------------------------------
      # ● Update Crazy Effect
      #--------------------------------------------------------------------------              
      def update_crazy_effect
          @effects[1] += 1
          case @effects[1]
             when 1..5
               @mirror = false
             when 6..10
               @mirror = true
             else
               @mirror = false
               @effects[1] = 0 
          end      
      end  
      
      #--------------------------------------------------------------------------
      # ● Update Dwarf Effect
      #--------------------------------------------------------------------------                
      def update_dwarf_effect
          if @zoom_x > 0.5
             @zoom_x -= 0.01
             @zoom_y -= 0.01
          end       
      end
      
      #--------------------------------------------------------------------------
      # ● Update Giant Effect
      #--------------------------------------------------------------------------                
      def update_giant_effect
          if @zoom_x < 1.8
             @zoom_x += 0.01
             @zoom_y += 0.01
          end       
      end   
      
      #--------------------------------------------------------------------------
      # ● Update Normal
      #--------------------------------------------------------------------------                  
      def update_normal_effect  
          if @zoom_x > 1.0 
             @zoom_x -= 0.01
             @zoom_x = 1.0 if @zoom_x < 1.0  
          elsif @zoom_x < 1.0 
             @zoom_x += 0.01
             @zoom_x = 1.0 if @zoom_x > 1.0              
          end
          if @zoom_y > 1.0 
             @zoom_y -= 0.01
             @zoom_y = 1.0 if @zoom_y < 1.0  
          elsif @zoom_y < 1.0 
             @zoom_y += 0.01
             @zoom_y = 1.0 if @zoom_y > 1.0              
         end        
         if @opacity < 255
            @opacity += 2 
            @opacity = 255 if @opacity > 255
         end
         if @angle > 0 
            @angle -= 5 
            @angle = 0 if @angle < 0
         end   
         if (@zoom_x == 1.0 and @zoom_y == 1.0 and @opacity == 255 and @angle == 0)
            clear_effects
         end  
      end  
      
    end
    
    #==============================================================================
    # ■ Game Event
    #==============================================================================
    class Game_Event < Game_Character  
      
     #--------------------------------------------------------------------------
     # ● Setup Page Setting
     #--------------------------------------------------------------------------                     
      alias mog_character_effects_setup_page_settings setup_page_settings
      def setup_page_settings
          mog_character_effects_setup_page_settings
          setup_character_ex_effects
      end
        
     #--------------------------------------------------------------------------
     # ● Setup Character Effects
     #--------------------------------------------------------------------------                       
      def setup_character_ex_effects
          return if @list == nil
          for command in @list
          if command.code == 108
             if command.parameters[0] =~ /<Effects = ([^>]*)>/
                @effects = [$1,0,true]
             end   
             if command.parameters[0] =~ /<Zoom = (\d+)>/i 
                @zoom_x = $1.to_i
                @zoom_y = @zoom_x
             end   
             if command.parameters[0] =~ /<Opacity = (\d+)>/i 
                @opacity = $1.to_i
             end   
             if command.parameters[0] =~ /<Blend Type = (\d+)>/i   
                @blend_type = $1.to_i           
             end 
             if command.parameters[0] =~ /<Mirror = (\w+)>/i
                @mirror = $1
             end            
           end
          end 
      end
    end  
    
    #==============================================================================
    # ■ Sprite Character
    #==============================================================================
    class Sprite_Character < Sprite_Base
      
      #--------------------------------------------------------------------------
      # ● Update Other
      #--------------------------------------------------------------------------    
      alias mog_character_ex_effects_update_other update_other
      def update_other
          mog_character_ex_effects_update_other
          update_other_ex
      end  
    
      #--------------------------------------------------------------------------
      # ● Update_other_EX
      #--------------------------------------------------------------------------      
      def update_other_ex
          self.zoom_x = @character.zoom_x
          self.zoom_y = @character.zoom_y
          self.mirror = @character.mirror
          self.angle = @character.angle    
      end  
      
    end
    
    #==============================================================================
    # ■ CHARCTER EX EFFECTS COMMAND
    #==============================================================================
    module CHARACTER_EX_EFFECTS_COMMAND
      
      #--------------------------------------------------------------------------
      # ● Char Effect
      #--------------------------------------------------------------------------      
      def char_effect(event_id = 0, effect_type = "Breath")
          if event_id < 0
             target = $game_player.followers[event_id.abs - 1] rescue nil
          elsif event_id == 0
             target = $game_player rescue nil
          else  
             target = $game_map.events[event_id] rescue nil
          end
          execute_char_effect(target,effect_type) if target != nil
     end  
          
      #--------------------------------------------------------------------------
      # ● Execute Char Effect
      #--------------------------------------------------------------------------        
      def execute_char_effect(target,effect_type)
          if effect_type == "Clear"
             target.clear_effects rescue nil
             return
          end           
          target.effects[0] = effect_type.to_s rescue nil
          target.effects[2] = true rescue nil
      end
      
      #--------------------------------------------------------------------------
      # ● Clear_All_Events Effects
      #--------------------------------------------------------------------------            
      def clear_all_events_effects
          for event in $game_map.events.values
              event.clear_effects
          end  
      end
    
      #--------------------------------------------------------------------------
      # ● Clear_All_Party Effects
      #--------------------------------------------------------------------------              
      def clear_all_party_effects
          $game_player.clear_effects
          for folower in $game_player.followers
              folower.clear_effects
          end
      end
        
      #--------------------------------------------------------------------------
      # ● Clear_All_Char_Effects
      #--------------------------------------------------------------------------          
      def clear_all_ex_effects
          clear_all_events_effects
          clear_all_party_effects
      end
      
    end  
    
    #==============================================================================
    # ■ Game Interpreter
    #==============================================================================
    class Game_Interpreter
       include CHARACTER_EX_EFFECTS_COMMAND
    end  
    
    #==============================================================================
    # ■ Game_CharacterBase
    #==============================================================================
    class Game_CharacterBase
        include CHARACTER_EX_EFFECTS_COMMAND
    end
    
    $mog_rgss3_character_ex = true
    

     

     

  13. Si, così è comodo e fattibile.

    Esempio:

    Aym usa le spade.

    Imposti sulla spada "Aggiungi Abilità" ---> "Spada Sacra" "Sciabolata" e imposti l'abilità "Spada Sacra" come "Magia" e "Sciabolata" come tecnica.

    Quindi, se la classe di Aym gli permette di usare le magie potrà usare spada sacra, mentre se gli permette di usare le tecniche userà Sciabolata.

    Mi sembra un buon compromesso...

    l'importante è il non dover sprecare due trurni, o nessuno userà mai un cambio classe in battaglia...

     

    Infatti. Dovrò cambiare il numero massimo di tipi di abilità, facendo abilità esclusive per ogni classe così da poter creare abilità singole per ogni classe. Ci piaaaaceeee

  14. Ciao dopo aver letto tutte le conversazione sulla trama e gameplay ho notato che nessuno si è offerto come mapper .. quindi se hai bisogno sono disponibile :biggrin:

     

    Ci sentiamo in mp così mi fai vedere un po' di cosine... :smile:

     

    L'unico difetto sarebbe che così in battaglia il cambio classe occupa due turni: Uno per il cambio classe ed uno per il re-equip.

    giocando con le variabili si potrebbero creare dei set personalizzati che si auto-equippano al cambio classe...

    Macchinoso ma si può fare...

     

    Macchinosetto, effettivamente, però sarebbe la cosa migliore. Forse, però, se il giocatore ha già scelto l'equip per quella classe, dal menù, al cambio classe in battaglia si ha già l'equip precedentemente impostato. Oppure.... oppure... Si può fare anche un'altra cosa: equipaggiamenti unici per il personaggio e non per classi. Per esempio: il protagonista Aym avrà, per l'intero gioco, un set di equip solo suoi che cambiano proprietà a seconda della classe che sceglie. Che dite?

×
×
  • Create New...