Jump to content
Rpg²S Forum

Nemius Loireag

Utenti
  • Posts

    58
  • Joined

  • Last visited

Posts posted by Nemius Loireag

  1. Dead God Tale (Racconti di un dio senza vita)

    TITLE:

     

    http://img187.imageshack.us/img187/4641/titlexu9.jpg

     

     

    Storia:

    Nemius è un ragazzo di sedici anni che nonostante sia orfano ha avuto molti aiuti nella sua vita, cresciuto da un intero villaggio fino all'età scolastica ha imparato che nulla è dovuto ma deve essere guadagnato.

    All'età scolastica l'intero villaggio si è preso la responsabilità di mandarlo alla migliore accademia del continente, la famosa accademia di Cordilan. Subito il ragazzo ha dato prova di meritarsi un tale privilegio diventando il primo della classe soprattutto riguardo la magia.

    Tutti gli studenti vivono nei dormitori scolastici tranne Nemius che per ridurre le tasse scolastiche dorme in una torre arredata a camera dal preside, gli unici legami che Nemius lega è con un guerriero elfico di nome Aaron che impulsivo e arrogante seguirà l'amico in ogni scorreria.

    Del sesso opposto Nemius conosce Noppix, una dolce schiava dai capelli rossi che studia da chierica e la sua amica Sara molto attaccata al potere della natura. La vita di Nemius procede tranquilla per affrontare i suoi esami finchè tutto va a rotoli, Noppix viene venduta ad un sadico e Nemius per salvarla muore...ma sarà davvero la fine?

     

    Introduzione:

    Tutta al vicenda si basa su una serie di racconti che sto scrivendo, perciò ogni capitolo di gioco conterrà uno o più racconti. L'idea è rilasciare ogni capitolo come upgrade del precedente, in modo che l'ultimo rilascio comprenda la storia completa dall'inizio alla fine.

     

    Personaggi:

     

    http://img120.imageshack.us/img120/3699/nemiusyv7.png

    Nome: Nemius Loireag

    Classe: Mago

    Particolarità:

    Dal carattere solitario e scostante non viene mai preso in considerazione dagli altri studenti, tutte le studentesse lo adorano per la sua bellezza ma non si avvicinano a causa del suo modo di fare. Dietro a questa sua maschera si nasconde però una persona leale e gentile, pronto a tutto per dare a coloro che hanno bisogno. Il suo motto è "Se vuoi avere devi essere disposto a dare". E' innamorato di Noppix e morirà per salvarla.

     

    http://img145.imageshack.us/img145/6285/noppixny2.png

    Nome: Noppix

    Classe: Chierica

    Particolarità:

    E' una schiava il cui padrone ha deciso di mandarla a scuola per apprendere la grande arte della preghiera mistica, lei adora il suo padrone e lo rispetta moltissimo, quando egli morirà verrà venduta ad un sadico da cui verrà torturata. Noppix è un nome che si è scelto lei, nessuno conosce quello vero.

     

    http://img145.imageshack.us/img145/5793/aaronyc8.png

    Nome: Aaron Tir'Dir

    Classe: Guerriero

    Particolarità

    Elfo molto forte ma allo stesso tempo impulsivo e arroganto come l'amico, riconosce la forza d'animo di Nemius e con lui si butta in ogni bravata. Figlio di una famiglia nobiliare subirà una grave perdità che lo segnerà profondamente rendendolo più saggio

     

    http://img145.imageshack.us/img145/121/sarawm5.png

    Nome: Sara Ewan

    Classe: Druida

    Particolarità

    Segretamente Innamorata di Nemius non si dichiarerà mai per rispetto dell'amica, non avrà una parte molto grande ma la si incontrerà anche più avanti nei capitoli.

     

    Altri personaggi nei prossimi capitoli...

     

    Caratteristiche:

    - Per il momento non ho previsto nessun BS particolare (devo ancora pensarci :D) perciò sono ben voluti consigli e altro.

    - Sistema di Quest personalizzato per la gestione della storia principale ed eventuali sottoQuest

    - Grafica Full RTP (se qualche grafico mi aiuta ben vengano miglioramenti)

    - Neo Message System

     

    Screenshot:

     

     

    Camera di Nemius

    http://img167.imageshack.us/img167/5559/cameraeroezg8.jpg

    Dormitori

    http://img329.imageshack.us/img329/7392/dormitorijj1.jpg

    Aula

    http://img167.imageshack.us/img167/5835/aulafu4.jpg

    Cortile

    http://img167.imageshack.us/img167/6627/cortilelv9.jpg

     

     

     

    Crediti:

    Inseriti Man mano

     

    GAME OVER:

     

    http://img75.imageshack.us/img75/8345/gameovervi1.jpg

  2. Basta fare un evento come quello che hai detto, circondato da eventi, sempre al tocco dell'eroe che quando ci passa la scritta scompare..Lo fai con le picture..In quella che appare ci metti "mostra immagine", e agli altri "Cancella immagine"!

     

    Ho risolto via script...ho preso lo script del messaggio per il nome mappa e l'ho modificato in modo da mostrare un messaggio a video come processo parallelo solo per qualche secondo...i tempi di attesa li ho impostati nell'evento scatenante...se volete posto script e configurazione dell'evento...

  3. Proverò a questo punto tramite script...la difficoltà è avere l'evento "Uscita dalla casella di evento"

     

    sai per caso come fare un messaggio a tempo? (che rimane per un certo periodo di tempo e poi scompare?

     

    New: Ho trovato un metodo creandomi un nuovo script...lo gestisco tramite l'evento... se può essere utile lo posso postare nella sezione script...anche se in realtà ho copiato uno script già postato e l'ho modificato per quello che mi serviva

  4. x lusianl: Creandolo come eroe avrei lo spiacevole effetto di un muro che si muove...

    x shuuchan: purtroppo gli extraTileset ho finito lo spazio disponibile per gli slot disponibili così cercavo un metodo alternativo...

     

    finirò per creare un characterset di soli tilesetA e userò quelli per simulare la cosa...

  5. Forse risulterà strana come domanda... mi serve un evento che permetta di passare sotto i tileset A

     

    In pratica vorrei simulare la passabilità a stella solo per alcuni tileset senza bisogno di dover creare un nuovo tileset, un'alternativa è creare un charset sopra il PG che non facca nulla, però con la grafica non me la cavo così bene e preferirei evitare...qualche consiglio?

     

    nello screen quello che vorrei fare è che i tile con la riga verde abbiano passabilità a stella, quelli con la riga rossa non siano passabili (volendo sarebbe utile per simulare anche passaggi segreti..)

     

    http://img178.imageshack.us/img178/3244/passabilittl3.jpg

     

    Conoscete un metodo?

  6. Azz...

    L'antilag io non lo uso quindi non l'ho notato...effettivamente aggiungendo l'antilag mi da una serie di simpatici errori...qualcuno che ci capisce più di me sa come risolvere?

     

    Nel frattempo aggiungo temporaneamente l'incompatibilità con l'antiLag nel post principale

  7. Se vedi i trattini significa che lo "stato della missione" è 0 o 1, se vuoi vedere i dettagli devi impostare la missione come Accettata (impostandolo a 2 secondo le impostazioni di Default).

     

    Per fare questo devi, tramite evento, richiamare lo script

     

    $quest[X].state_number = Y

     

    dove X è l'ID della missione e Y è lo stato che vuoi impostare (in questo caso 2)

  8. Beh non mi definisco uno scripter anche perchè Ruby non lo conosco così bene (mi ci sto avvicinando da poco) però sono un programmatore che sa sviluppare in Java e altri linguaggi, per questo ti so rispondere....

     

    2) Il fatto se usare o meno un ciclo o una ricorsione dipende unicamente dal numero di volte che devi eseguire quelle istruzioni...

    di base se è sempre un numero limitato (e piccolo) di volte (e quindi di cicli) meglio usare la ricorsione per maggiore velocità

    se il numero di cicli è fisso in base al fatto se è un numero di cicli piccoli o meno puoi decidere a scelta di usare ricorsione o cicli (meglio i For)

    se il numero di cicli è variabile e imprecisato di solito è meglio usare cicli while volendo nessuno vieta, in caso di cicli nidificati, di fare un mix di ricorsione e di cicli tenendo conto di quando si usa uno e quando l'altro...

     

    Sinceramente non conosco così bene Ruby per risponderti sui puntatori, però trattandosi di programmazione ad oggetti di solito i puntatori non si usano proprio..

  9. Ti spiego i due modi:

     

     

    Il più semplice è rendere invisibile e inattiva l'opzione

    Nello script Scene_menu alla riga 59 circa ti dovresti trovare:
       s5 = Vocab::save
    
    devi semplicemente sostituirlo con:
    
       s5 = ""
    
    Successivamente alla riga 94 ti troverai:
         when 4      # Save
           $scene = Scene_File.new(true, false, false)
    
    dove basta commentare l'apertura del menu facendolo diventare:
    
         when 4      # Save
           #$scene = Scene_File.new(true, false, false)
    
    In questo modo al posto dell'opzione Save avrai una riga vuota che non farà nulla quando ci premi il tasto
    

     

    Il modo più complicato è togliere del tutto l'opzione

    Per fare questo devi fare una modifica un pò particolare e non devi in modo assoluto disabilitare il menu salva dagli eventi (altrimenti disabiliterai il menu sbagliato   )
    
    Sempre sotto lo script Scene_Menu alla riga 61 troverai:
       @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    
    devi togliere il comando s5 dall'array facendolo diventare:
       @command_window = Window_Command.new(160, [s1, s2, s3, s4, s6])
    
    successivamente devi togliere la gestione del salva e allineare tutti gli altri
    alla riga 89 ti dovresti trovare:
         case @command_window.index
         when 0      # Item
           $scene = Scene_Item.new
         when 1,2,3  # Skill, equipment, status
           start_actor_selection
         when 4      # Save
           $scene = Scene_File.new(true, false, false)
         when 5      # End Game
           $scene = Scene_End.new
         end
    
    devi modificarlo facendolo diventare:
         case @command_window.index
         when 0      # Item
           $scene = Scene_Item.new
         when 1,2,3  # Skill, equipment, status
           start_actor_selection
         when 4      # End Game
           $scene = Scene_End.new
         end
    
    oppure se non vuoi cancellarlo poi farlo diventare (commenti la gestione del salva e allinei i successivi:
         case @command_window.index
         when 0      # Item
           $scene = Scene_Item.new
         when 1,2,3  # Skill, equipment, status
           start_actor_selection
         #when 4      # Save
           #$scene = Scene_File.new(true, false, false)
         when 4      # End Game
           $scene = Scene_End.new
         end
    

     

    spero sia tutto chiaro...

     

    una precisazione: le modifiche che ti sto dicendo sono da fare su uno Script Scene_menu vergine e che non ha subito modifiche per altri script...

  10. Se a Sleeping Leonhart non dispiace posso rispondere io ad alcune domande di shuuchan...

     

    1) Le contrazioni si possono usare ovunque c'è da ricordare però che contrazioni di quel tipo sono limitate a una sola istruzione (quella che hai postato è un "If compresso") e non possono quindi essere usate per gestire blocchi di istruzioni più complessi

     

    2)Nessuno vieta la ricorsione dove è possibile, è questione di scelta ricorda però che se con i cicli hai un problema di lentezza con la ricorsione presenti un problema di memoria che dipende direttamente dal numero di volte che effettui la ricorsione

     

    3)Spero di non fare una gaff nella risposta a questo punto, variabili di istanza (o di classe) restano vive finchè esiste l'istanza della classe e va quindi a occupare memoria. Se si abusa delle variabili di istanza si finisce per occupare memoria inutilmente (andando ad appesantire l'esecuzione del programma (o del gioco in questo caso) per evitare ciò è spesso più utile utilizzare variabili temporanee di metodo che esistono solo per il breve momento di esecuzione del metodo.

    per l'uso delle variabili c'è da tenere conto di questi piccoli accorgimenti:

     

    - Variabile Globale (da usare il meno possibile) solo se deve essere accessibile ovunque nel programma

    - Variabile di Classe solo se strettamente necessario per la definizione della classe stessa (solitamente sono quelle variabili che vanno a definire la classe)

    - Variabili temporanee sono utilizzabili ovunque e hanno vita molto breve (si usano spesso all'interno di metodi per i calcoli al volo)

     

    Spero che sia tutto chiaro (e se sbaglio correggetemi)

  11. Se la disabiliti in tutte le mappe e fai richiamare il menu di salvataggio solo da evento allora ti conviene eliminare l'opzione dal menu...altrimenti è un pò brutto avere un'opzione che non sarà mai utilizzabile..
  12. Scusate il ritardo, per inserire l'opzione nel menu devi fare così:

     

     

    Nello script Scene_Menu

    nella sezione Create Command Window vedrai una serie di definizioni (attorno alla riga 54)

     

        s1 = Vocab::item
       s2 = Vocab::skill
       s3 = Vocab::equip
       s4 = Vocab::status
       s5 = Vocab::save
       s6 = Vocab::game_end

     

    quello che ho fatto io è aggiungere una riga dopo lo status facendo e scalando i successivi in questo modo:

     

        s1 = Vocab::item
       s2 = Vocab::skill
       s3 = Vocab::equip
       s4 = Vocab::status
       s5 = "Missioni"
       s6 = Vocab::save
       s7 = Vocab::game_end

     

    poco dopo sostituisci la riga:

        @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])

     

    con la riga:

        @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])

     

    nel comando precedente vai a specificare l'ordine delle opzioni, se vuoi un ordine diverso nell'array scrivi i vari sX dove ti pare.

     

    Ultimo step è aggiungere la chiamata allo script delle quest modificando (attorno alla riga 88) il case:

     

          case @command_window.index
         when 0      # Item
           $scene = Scene_Item.new
         when 1,2,3  # Skill, equipment, status
           start_actor_selection
         when 4      # Save
           $scene = Scene_File.new(true, false, false)
         when 5      # End Game
           $scene = Scene_End.new
         end

     

    con il seguente:

          case @command_window.index
         when 0      # Item
           $scene = Scene_Item.new
         when 1,2,3  # Skill, equipment, status
           start_actor_selection
         when 4      # Quest Log
           $scene = Scene_Quest.new
         when 5      # Save
           $scene = Scene_File.new(true, false, false)
         when 6      # End Game
           $scene = Scene_End.new
         end

     

     

    ps x shuuchan: Io ho solo preso uno script già esistente e l'ho tradotto e modificato per i miei scopi...non ho un così grande merito...

  13. L'evento ti crea la missione, per aprire la schermata devi richiamare lo script

     

    $scene = Scene_Quest.new

     

    volendo lo puoi aggiungere come opzione del menù aggiungendo alcune righe...se ti interessa ti dico come

  14. Quest System

    Descrizione

    Questo script permette di creare e gestire le missioni all'interno del vostro gioco, in particolare si tratta di un registro passivo contenente i dati delle missioni, volendo questo script con qualche piccola accortezza può essere usato come diario di viaggio

    Autori (crediti)

    Versione rilasciata: 3.0
    Creatore della versione XP: Samo, the thief
    Conversione per VX: Mecha (aka. MechaGS)
    Traduzione e Modifiche: Nemius
    Rilasciato il 16/07/2008

    Istruzioni per l'uso

    Copiare lo script sotto Materials e seguire le istruzioni specificate nell'intestazione dello script

    Script e Allegati
    Allegati
    Template.rar

    Script

    =begin
    
     Quest Script v3.0 stabile di Samo, the thief
     Portato a RPG Maker VX da Mecha (aka. MechaGS)
     Modificato e tradotto da Nemius Loireag
     
     (E' stato completamente convertito per RPG Maker VX pertanto non richiede lo
     script di compatibilità di XP.)
      
     Semplificato l'header dello script per semplificare.
     
     La versione diffusa è la 2.2 in inglese di SAMO e convertito da Mecha, premetto
     di non essere un programmatore esperto ma ho voluto tradurre lo script e 
     aggiungere qualche miglioria (o almeno quelle che lo sono state per me)
     
    ~Cosa è cambiato dalle versioni precedenti?
     
     -Bug rimossi nel salvataggio e nel caricamento
     -Metodo più semplice per la creazione delle quest
     -Rimosse Variabili globali inutilizzate
     -Maggior Velocità
     
     Modifiche di Nemius
     -Gestita una linea in più
     -Migliore visualizzazione on screen
     -Gestione punti reputazione e riepilogo missioni
     -Aggiunta la visualizzazione delle ricompense
    
    
    ~Come si Installa? (Edited by MechaGS for RPG Maker VX Installation)
    
     -Aggiungere questo script sotto Materials
     
    Nello script Scene_Title, aggiungi dopo la linea:-
     
        $game_player        = Game_Player.new
    
    la seguente riga di codice
        #----------------ADD BEGIN------------------------
        $quest = {}
        #-----------------ADD END-------------------------
     
    ~Come creare le missioni?
      
      All'interno di un qualsiasi evento, per la creazione di una Missione, è 
      necessario aggiungere un Call Script come specificato di seguito.
      
      L'unica accortezza e come ID della quest mettere un numero crescente 
      partendo da 0, mettendo un ID già esistente la missione precedente 
      verrebbe sovrascritta.
    
      
    ~Call Script:
      
      $quest[x] = Quest.new(nome, immagine, linee, difficoltà, stato, reputazione, oro, exp)
      x deve essere un numero.
      
      Un esempio:-
      
      $quest[0] = Quest.new("Nome Missione", 
      "Immagine", 
      "1- Prima riga della missione", 
      "2- Seconda riga della missione", 
      "3- Terza riga della missione", 
      "4- Quarta riga della missione",
      "5- Quinta riga della missione",
       1, 1, 100, 10, 20)
      
      Se una delle Linee non è necessaria scrivere semplicemente i doppi apici e 
      non verrà visualizzata.
      
    ~Grande! Ma in questo modo le missioni sono sempre uguali
      Come faccio per aggiornarle?
      
      $quest[x].parametro = valore
      
      i parametri sono i seguenti:
      
      name
      image
      state_number
      difficulty_level
      line1
      line2
      line3
      line4
      line5
      reputation
      gold
      experience
      
      Il valore inserito farà in modo di cambiare il parametro della missione
      aggiornandola a piacimento.
      
      Un esempio potrebbe essere:-
      $quest[0].state_number = 99
      
      Questo comando farà si che la missione assuma stato 99, cioè COMPLETA
      e verrà quindi visualizzata come tale.
      
    
    ~Quali risorse mi servono?
      Solo il template salvato nel pacchetto dello script.
        
    
    ~Salvare / Caricare le Missioni
      Per gestire il salvataggio e rispettivo caricamento delle missioni effettuate
      è necessario modificare uno degli script nel seguente modo
        
    Nello script Scene_File, aggiungi dopo la linea:-
      
      Marshal.dump($game_player,         file)
    
    la seguente riga di codice
      #----------------ADD BEGIN------------------------
      Marshal.dump($quest,               file)
      #-----------------ADD END-------------------------
      
    Nello script Scene_File, aggiungi dopo la linea:-
      
      $game_player         = Marshal.load(file)
    
    la seguente riga di codice
      #----------------ADD BEGIN------------------------
      $quest               = Marshal.load(file)
      #-----------------ADD END-------------------------
      
    Ora potrai salvare correttamente anche le missioni!
      
    
    ~C'è qualcos'altro da sapere?
      -Se trovi bug, avvisa e si provvederà.
      -Se ti piace la nuova versione, perfavore, dillo.
      -Se hai suggerimenti, perfavore, scrivimi.
      
      Buona Fortuna!
    
    Crediti
      Samo, the thief. <-- Creatore Originale (XP) --> (Creation Asylum)
      Mecha (aka. MechaGS) <-- Convertito per VX --> (GameSkank)
      Nemius <-- Traduzione e Modifica
    
    =end
    
    #Script per la gestione delle missioni di SAMO e modificata e tradotta da Nemius
    
    #==============================================================================
    # ¦ Window_Command_Quest
    # creato per la gestione dei colori
    #------------------------------------------------------------------------------
    
    class Window_Command_Quest < Window_Selectable
      #--------------------------------------------------------------------------
      def initialize(width, commands)
        super(0, 0, width, commands.size * 32 + 32)
        @item_max = commands.size
        @commands = commands
        self.contents = Bitmap.new(width - 32, @item_max * 32)
        refresh
        self.index = 0
      end
      #--------------------------------------------------------------------------
      def refresh
        self.contents.clear
        for i in 0...@item_max
          draw_item(i, normal_color)
        end
      end
      #--------------------------------------------------------------------------
      def draw_item(index, color)
        self.contents.font.color = color
        rect = Rect.new(4, 24 * index, self.contents.width - 8, 24)
        self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
        self.contents.draw_text(rect, @commands[index])
      end
      #--------------------------------------------------------------------------
      def disable_item(index)
        draw_item(index, text_color(7)) #Colore delle missioni in stato NON INIZIATA
      end
      #---------------------------------------------------------------------
      def complete_item(index)
        draw_item(index, text_color(3)) #Colore delle missioni in stato COMPLETA
      end
      #---------------------------------------------------------------------
      def just_finish_item(index)
        draw_item(index, text_color(14)) #Colore delle missioni in stato CONCLUSA
      end
    end
    #Command_Quest finisce qui, non modificare nulla di questa classe.
    
    #---------------------------------------------------
    #===================================================
    # - CLASSE Scene_Quest
    #===================================================
    #---------------------------------------------------
    class Scene_Quest
    
    #---------------------------------------------------------------------------------
    #---------------------------------------------------------------------------------
      def initialize(quest_index = 0)
        @quest_index = quest_index
        $MAP_BACKGROUND = true      #Mappa in Background. True o false? imposta come preferisci.
        @quest_options = []
        $quests_reputation = 0
        $quests_completed = 0
      end
      
      #------------------------------------------------
      
    def main
      if $MAP_BACKGROUND
        @spriteset = Spriteset_Map.new
        end
        @window5 = Window_Quest_Diary.new
        @window5.z= 300
          
        for i in 0.. $quest.size - 1
           name = $quest[i].name
           @quest_options.push(name)
         end
        for i in 0.. $quest.size - 1
          if $quest[i].state_number == 99
            $quests_reputation += $quest[i].reputation
            $quests_completed += 1 
          end
         end
    
        @window6 = Window_Reputation.new
        @window6.z= 300
        
        @command_window = Window_Command_Quest.new(160, @quest_options)
        @command_window.index = @quest_index
        @command_window.z = 255
        @command_window.height = 150
         for i in 0.. $quest.size - 1
         if $quest[i].state_number == 1
          @command_window.disable_item(i)
         elsif $quest[i].state_number == 99
          @command_window.complete_item(i)
        elsif  $quest[i].state_number == 98
          @command_window.just_finish_item(i)
       end   
     end
    Graphics.transition (20)
        loop do
          Graphics.update
          Input.update
         update
          if $scene != self
            break
          end
        end
        Graphics.transition
        Graphics.freeze
        @command_window.dispose
        @quest_options.clear
        @window5.dispose
        @window6.dispose
      if $MAP_BACKGROUND
        @spriteset.dispose
      end
       $quest_seen = false
      end
    #---------------------------------------------------------------------------------
    
    #---------------------------------------------------------------------------------
      def update
        @command_window.update
        if @command_window.active
          update_command
          return
        end
        if Input.trigger?(Input::B)
          if @command_window.active == false
            Sound.play_cancel
            @command_window.active = true
            @window1.dispose
            @window2.dispose
            @window3.dispose
            @window4.dispose
            @window7.dispose
          else
            Sound.play_cancel
            $scene = Scene_Map.new 
          end
    
          return
        end
      end
    #---------------------------------------------------------------------------------
      def update_command
        if Input.trigger?(Input::B)
          Sound.play_cancel
          $scene = Scene_Map.new
          return
        end
        if Input.trigger?(Input::C)
          
           for i in 0.. $quest.size - 1
            case @command_window.index
              when i
                if $quest[i].state_number == 1
                Sound.play_buzzer
                return
              end
              Sound.play_decision
               $ACTUAL_QUEST = $quest[i]
              update_quest
          end
        end
      end
      end
      
      def update_quest
        @command_window.active = false
        @window1 = Window1.new
        @window2 = Window2.new
        @window3 = Window_Quest_Difficulty.new
        @window4 = Window_Quest_Status.new
        @window7 = Window_Rewards.new
        @window1.z= 220
        @window2.z= 200
        @window3.z= 230
        @window4.z= 230
        @window7.z= 230
        end
    
    end
    
    
    class Window1 < Window_Base
    
    #---------------------------------------------------------------------------------     
      def initialize
        super(160, 0, 245,60)
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.name = "Comic Sans MS"
        self.contents.font.size = 28
        self.contents.font.color = text_color(3) #Colore del Nome della Missione
        self.contents.draw_text(0, 0, 400, 30, $ACTUAL_QUEST.name)
      end
    
    
      #--------------------------------
    
    #--------------------------------
    end
    
    
    
    class Window2 < Window_Base
    
    #---------------------------------------------------------------------------------     
      def initialize
        super(160, 60, 385, 357)
    
    
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.name = "Comic Sans MS"
        self.contents.font.size = 26
        self.contents.font.color = text_color(0) # Colore delle righe della Quest
        src_rect = Rect.new(0, 0, 370, 100) # Dimensione dell'Immagine 350*70
        image = Cache.picture($ACTUAL_QUEST.image)
        self.contents.blt(0, 10, image, src_rect, 255)
        self.contents.draw_text(0, 100, 500, 33, $ACTUAL_QUEST.line1)
        self.contents.draw_text(0, 125, 500, 33, $ACTUAL_QUEST.line2)
        self.contents.draw_text(0, 150, 500, 33, $ACTUAL_QUEST.line3)
        self.contents.draw_text(0, 175, 500, 33, $ACTUAL_QUEST.line4)
        self.contents.draw_text(0, 200, 500, 33, $ACTUAL_QUEST.line5)
      end
    
    end
    #---------------------------------------------------------------------------------   
    # questa finestra mostra il livello di difficoltà.
     class Window_Quest_Difficulty < Window_Base
      def initialize
        super(0, 230, 160, 80)
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.name = "Comic Sans MS"
        self.contents.font.size = 20
        self.opacity = 255
        self.contents.font.color = text_color(4)
        self.contents.draw_text(0, 0, 100, 20, "Difficoltà:")
        self.contents.font.color = text_color($ACTUAL_QUEST.difficulty[0])
        self.contents.font.size = 26
        self.contents.draw_text(0, 20, 100, 26, $ACTUAL_QUEST.difficulty[1])
      end
    
    end
     
    #---------------------------------------------------
    # questa finestra mostra lo stato della missione.
    
     class Window_Quest_Status < Window_Base
      def initialize
        super(0, 150, 160, 80)
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.name = "Comic Sans MS"
        self.contents.font.size = 20
        self.opacity = 255
        self.contents.font.color = text_color(4)
        self.contents.draw_text(0, 0, 100, 20, "Stato:")
        self.contents.font.color = text_color(14)
        self.contents.font.size = 26
        self.contents.draw_text(0, 20, 100, 26, $ACTUAL_QUEST.state)
      end
    
    end
    
    #---------------------------------------------------
    # questa finestra mostra un riepilogo di reputazione e di missioni completate.
    
     class Window_Reputation < Window_Base
      def initialize
        super(0, 310, 160, 107)
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.name = "Comic Sans MS"
        self.contents.font.size = 16
        self.opacity = 255
        self.contents.font.color = text_color(4)
        self.contents.draw_text(0, 0, 140, 16, "Reputazione:")
        self.contents.font.color = text_color(30)
        self.contents.font.size = 20
        self.contents.draw_text(0, 16, 140, 20, $quests_reputation)
        self.contents.font.size = 16
        self.contents.font.color = text_color(4)
        self.contents.draw_text(0, 36, 140, 16, "Missioni Complete:")
        self.contents.font.color = text_color(30)
        self.contents.font.size = 20
        self.contents.draw_text(0, 52, 140, 20, $quests_completed)
      end
    
    end
    
    #---------------------------------------------------
    #Questa finestra mostra le ricompense della missione selezionata
    
     class Window_Rewards < Window_Base
      def initialize
        super(160, 337, 385, 80)
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.name = "Comic Sans MS"
        self.contents.font.size = 20
        self.opacity = 255
        self.contents.font.color = text_color(4)
        self.contents.draw_text(0, 0, 100, 20, "Ricompensa:")
        self.contents.draw_text(0, 25, 100, 20, "Monete d'Oro:")
        self.contents.draw_text(160, 25, 90, 20, "Esperienza:")
        self.contents.font.color = text_color(30)
        self.contents.font.size = 20
        self.contents.draw_text(100, 25, 60, 20, $ACTUAL_QUEST.gold)
        self.contents.draw_text(250, 25, 100, 20, $ACTUAL_QUEST.experience)
      end
    
    end
    
    #---------------------------------------------------
    #Questa è la finestra del titolo pagina
    
     class Window_Quest_Diary < Window_Base
      def initialize
        super(405, 0, 140, 60)
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.name = "Comic Sans MS"
        self.contents.font.size = 20
        self.opacity = 255
        self.contents.font.color = text_color(4)
        self.contents.draw_text(0, 0, 100, 33, "Diario Missioni")
      end
    
    end
    
    #______________________________________________________________________________
    #______________________________________________________________________________
    #================================================================
    #================================================================
    #================================================================
    #CLASSE QUEST DI SAMO MODIFICATA DA NEMIUS
    #Processo principale, questo crea le missione e restituisce tutti i dati
    #Solo le Parti con #EDITABILE possono essere modificate, non toccare il resto.
    #================================================================
    #================================================================
    #================================================================
    #______________________________________________________________________________
    #______________________________________________________________________________
    
    
    
    
    class Quest
    
    attr_accessor :name
    attr_accessor :image
    attr_accessor :line1
    attr_accessor :line2
    attr_accessor :line3
    attr_accessor :line4
    attr_accessor :line5
    attr_accessor :gold
    attr_accessor :experience
    attr_accessor :reputation
    attr_reader :difficulty_level
    attr_reader :state_number
    attr_reader :difficulty
    attr_reader :state
    
    #-----------------------------------------------------
      def initialize(name, image, line1, line2, line3, line4, line5, difficulty_level, state_number, reputation, gold, experience) 
        @name = name
        @image = image
        @line1 = line1
        @line2 = line2
        @line3 = line3
        @line4 = line4
        @line5 = line5
        @difficulty_level = difficulty_level
        set_difficulty_name
        @state_number = state_number
        set_state_name
        @reputation = reputation
        @gold = gold
        @experience = experience
      end
      
     #----------------------------------------------------- 
      def set_state_name
        #EDITABILE modifica il case aggiungendo eventuali nuovi stati con valore
        #compreso tra 3 e 97 inserendo un nuovo when
        #NON MODIFICARE I VALORI GIA' CONFIGURATI
        #when statement
    
        case @state_number
              when 0
          @state = "------"
              when 1
          @state = "Non Iniziata" #Missione creata ma non ancora disponibile nel menu
              when 2
          @state = "Accettata" #Missione disponibile e in svolgimento
              when 98
          @state = "Conclusa" #es. Missione effettuata ma manca il ritiro della Ricompensa
              when 99
          @state = "Completa" #Missione completata al 100%
          
        end
      end
    #-----------------------------------------------------      
      def set_difficulty_name
      case    @difficulty_level
        #EDITABILE modifica il case aggiungendo eventuali nuove difficoltà con valore
        #qualsiasi (non togliere lo 0) inserendo un nuovo when.
        #i valori devo essere inseriti nel seguente formato:
        #  [colore, "nome della difficoltà"]
      
          when 0    #Nessuno 
            @difficulty = [0, " "]
          when 1    #MOLTO FACILE
             @difficulty = [3, "MOLTO FACILE"]
          when 2    #FACILE
             @difficulty = [11, "FACILE"]
          when 3    #NORMALE
             @difficulty = [16, "NORMALE"]
          when 4    #MODERATO
             @difficulty = [14, "MODERATO"]
          when 5    #DIFFICILE
             @difficulty = [10, "DIFFICILE"]
           end
         end
    def name
      if @state_number == 1
        return '----'
      else
        return @name
      end  
    end
    
    def state_number=(value)
      @state_number = value
      set_state_name
    end  
    
    def difficulty_level=(value)
      @difficulty_level = value
      set_difficulty_name
    end  
    
        
     end
     
     
     #-----FINE-------------
     
    class Scene_Save < Scene_File
    
    alias samo_new_save write_save_data
    
    def write_save_data(file)
    File.open(Quests, "Missioni") { |f|
      Marshal.dump(obj, f)
    }
      end
    end
    
    
    class Scene_Load < Scene_File
    
    alias samo_new_load read_save_data
    
    def read_save_data(file)
    File.open(Quests, "Missioni") { |f|
      obj = Marshal.load(f)
    }
    
    end
    end
    






    Immagini

    http://img141.imageshack.us/img141/6803/schermatamissionila2.jpg




    Spero che vi sia di qualche utilità
    Ciao!

  15. Come faccio a gestire un Cronometro?

     

    Mi spiego meglio, come faccio a conteggiare quanto tempo trascorre da un evento all'altro? (es. cronometrare una prova)

     

    Poi come si usa il Controllo Timer? A quanto ho capito è un conto alla rovescia ma come faccio a gestire quando scade il tempo?

  16. Premetto che di RGSS ci capisco molto poco e sarebbe necessario l'intervento di uno scripter per spiegare la cosa in dettaglio o per contraddirmi se dico una cavolata.

     

    Da quello che so cmq nella gestione della battaglia deve essere gestito in qualche modo che lo status Morte deve far scomparire il nemico e se tutti i nemici (o gli alleati) sono in status Morte la battaglia si conclude con vittoria o sconfitta.

     

    Nel tuo caso c'è da gestire la battaglia in modo che in caso sia di Morte che di Bannato allora fa scomparire il nemico. Poi per una corretta gestione se tutti i nemici (o gli alleati) sono in status Morte o Bannato allora la battaglia si conclude con vittoria o sconfitta

    In pratica il risultato finale è che Anche con lo status Bannato il mostro viene considerato morto.

     

    Non conoscendo però l'RGSS non so cosa sia necessario modificare per gestire questa cosa...

  17. Sono un Quasi-Niubbo ma direi che per far considerare il mostro sconfitto con uno status alternativo a Morto non deve essere configurato il sistema di battaglia?

     

    Mi aspetterei che venga fatto un controllo sullo status Morto a cui in questo caso aggiungere anche lo status Bannato, non sono sicuro di essere stato molto chiaro...

×
×
  • Create New...