Jump to content
Rpg²S Forum

Keroro

Utenti
  • Posts

    646
  • Joined

  • Last visited

Posts posted by Keroro

  1. Avevo visto gli eventi corretti e mi sono dimenticato di creare un nuovo progetto XD

    Il problema è che asta è qualcosa di lungo (basta chiedere alle pornostar XD)

    Bastone è ben diverso da mazza e martelli, entrambi caratterizzati da una estremità rinforzata.

    Per il mago ad una mano c'è la bacchetta e a due mani il bastone

     

    Nel database non vedo altri bastoni appartenenti ad altre classi ;O

     

    EDIT: Nuovi errori:

    Glossario->Livello: Livelo

  2. Ho detto ufficiale perché è stata la versione di riferimento di rpgmaker.it e vgmaker.com, se si fanno scelte per continuità ha senso guardare alle origini.

     

    Errori:

     

    Glossario->Tipi di Armi

    09:Staffa, in italiano staffa significa tutt'altro, la traduzione di Staff è Bastone.

     

    Armi->

    Hanno staffa nel titolo: 049-050-052-053

    055:Acciarino - "Un'antica piscolta che monta una doppietta." XD La piscolta è una pistola laureata XD

    004:Ascia di Mitril. Il materiale in realtà si scrive "Mithril"

    Mitril:

    Armi: 004-010-016-034-040-046-052-058

    Armature 019-024-029-034-044-049

     

    è rimasto l'errore

    Stati->Morte->Quando Inflitto a eroe: è catudo in battaglia

  3. I cliché di questa sezione sono i topic sui cliché, sui confronti fra tool, sul making che muore, sugli abbandoni (per cui sarebbe il caso aprire uno Sportello Psicologico).

    Da un anno ad un altro i cliché piacciono sempre meno.

     

    Anche i cliché con le trame mi piacciono sempre meno, più tempo passi a giocare e più diventano scontati e quasi insopportabili, ora come ora per me è impossibile giocare ad un rpg classico proprio per questo motivo

  4. Non ho idea di come non me ne sia accorto!!!

    A questo serve la community!

    Status non è un linguaggio proprio dei GDR, ma è un termine coniato dalla serie Final Fantasy. In inglese State si traduce con stato, e States con stati.

    Status è una parola latina ed in italiano non si declina al plurale.

     

    Castare dovrebbe andare, anche potere, tuttavia [cit. XD] preferisco anche io abilità! ^ ^

    Già :3

    Qualcosa che so fare: Abilità

    Potere in italiano ha gli stessi significati di Power inglese.

    Allacciarsi le scarpe è un'abilità, non un potere.

    Tocco eroe è stato sempre tocco eroe in tutti i vecchi tool, certo contatto sembra essere più appropriato! xD

    ^ ^

    Ti devo contraddire, la traduzione ufficiale di rpgmaker2000 di Master riportava Contatto e si parla di più di 10 anni fa...

     

    Domani ho tempo da dedicare a rpgmaker, vediamo se spunteranno altri errori ^^

  5. E' piena di errori ed alcune label sfondano il margine (es. Database->Eroi. Caratteristiche. Aggiungi tipo abilità)

     

     

    SaveMessage = "In quale File vuoi slavare?"

    EscapeFailure = "Tuttavia, non è riuscito nell'ipresa!"

    PlayerPosError = "Non hai settato la posizione iniziale del giocatore."

    (settato non è italiano -> impostato)

     

    Database->Glossario-> tipi Poteri con la minuscola

    Database->Stati->Morte: è catudo in battaglia!

    Database->Stati->Silenzio: non può castare Magie!

    (castare non è italiano)

     

    Prima pagina Menù eventi:

    Change Name

    Change Classe

     

    Inconsistenze tra singolare e plurale tra nome del bottone e nome della finestra

    Label tagliate..

    ---

    Traduzioni che non mi piacciono

     

    Attivazione evento: "Tocco con l'eroe" invece di "Contatto con l'eroe"

    Database: "Potere" invece di "Abilità"

    Glossario: "Chiudi" invece di "Esci dal Gioco"

    Glossario: "Termina Gioco" invece di "Esci"

    Database->Stati invece di "Status"

  6. Wow, che figata, sembra di stare dentro street fighter!

     

    Ho notato che il nome del personaggio è parzialmente nascosto dalla gui, ho sostituito

    s[15].y = @y[index] + 2

     

    con

    s[15].y = @y[index] + 6

     

    Dimmi che ne pensi e se da te si vede meglio ^^

     

    EDIT: In realtà senza kanji è un po' triste il font di default in bianco, hai qualche idea per renderlo più gradevole? cambio di font per renderlo in grassetto? decorazioni da applicare ad un testo?

  7. Allora è mio dovere spiegare tutto!

     

    Modulo

    Il modulo è un modo per raggruppare più metodi sullo stesso tema senza la necessità di creare una classe, è un modo anche per evitare che il nome del tuo metodo sia uguale a quello di un altro (in RM VX-ACE non si pone il problema, tutto è dentro un modulo o una classe, non ci sono metodi "volanti" ma se andiamo ad aggiungere del nostro codice conviene seguire questa prassi).

     

    Per creare un modulo di nome Saluti:

    module Saluti
    end

     

    Ora vogliamo metterci dentro qualche metodo per salutare, per farlo prima scriviamo i metodi:

    def buongiorno(nome_utente)
     msgbox("Buongiorno " + nome_utente +"!")
    end
    def buonasera(nome_utente)
     msgbox("Buonasera " + nome_utente +"!")
    end
    

     

    Poi li trasferiamo dentro il modulo avendo l'accortezza di mettere self. come prefisso al nome del metodo.

    Self.metodo serve a far sì che il metodo possa essere chiamato SENZA dover istanziare la classe o il modulo con il costrutto .New

    module Saluti
     def self.buongiorno(nome_utente)
    msgbox("Buongiorno " + nome_utente +"!")
     end
     def self.buonasera(nome_utente)
    msgbox("Buonasera " + nome_utente +"!")
     end
    end
    #per chiamare uno dei metodi
    Saluti.buongiorno("Carlo")
    

     

    Ora facciamo un passo indietro...

     

    Stringhe

    Ruby è scritto in C ed eredita dei metodi interessanti, come quello che utilizzo nel codice di sopra: sprintf

    sprintf serve a creare una stringa con testo formattato a piacimento e quante variabili vuoi tu, per segnalare che vuoi una variabile in quel punto metti un % seguito dalla prima lettera del tipo della variabile (%s -> stringa, %d-> decimale, %f-> float), quindi per includere una stringa metto un %s.

    Posso includere quante variabili voglio, ma gli devo fornire altrettante variabili come argomento

    Esempio.

    messaggio ="Ciao %s"
    msgbox(messaggio) #Stampa "Ciao %s"
    messaggio2 = sprintf(messaggio, "tiauz")  #Crea la stringa "Ciao tiauz" e la mette dentro messaggio2
    msgbox(messaggio2) #lo stampa

    Per questa esigenza si poteva benissimo usare il concatenamento, è pensato però per essere più flessibile.

    messaggio = "Scrivo questo messaggio per %s e per tutti coloro che vogliano saperne di più, [%s]"
    msgbox(sprintf(messaggio,"tiauz","Keroro"))

    Esiste anche un altro modo di chiamare sprintf, tramite l'operatore %, che richiama i simboli da sostituire.

    Se i simboli da sostituire sono più di uno essi vanno messi in un array

    messaggio % argomento
    oppure
    messaggio % [argomento1, argomento2,argomento3]

    Esempio

    messaggio ="Ciao %s"
    msgbox(messaggio % "Gianni")

    Però è una rottura continuare con i msgbox XD

    Molto meglio spostarsi su qualcosa di più succoso!

    In un evento ad attivazione con tasto inseriamo questo script

    Nota: Con \n all'interno della stringa diciamo di andare a capo

    hero = "Nome: %s Classe: %s\nLivello: %d"
    io = ["Cristiano","Sciamano",71]
    messaggio = hero % io
    $game_variables[50] = messaggio

    E poi facciamo uno Show Message indicando di stampare \V[50]

    http://img829.imageshack.us/img829/3575/sprintfa.png

    Otterremo questo risultato

     

    http://img96.imageshack.us/img96/5936/sprintf2.png

     

     

    I valori si potevano benissimo leggere dall'Actor ma non ho voluto complicare in quanto dobbiamo tornare al nostro modulo :D

     

    Dopo quanto appreso quindi decidiamo di mettere i messaggi di saluto come costanti dentro il modulo per poterle cambiare facilmente senza intervenire sulle classi.

    Mettiamo quindi in Materials il modulo completo

     

    module Saluti
     MSG_GIORNO = "Buongiorno %s\nmi sei mancato tanto <3\n[Forever Alone]"
     MSG_SERA = "Ma ti sembra l'ora di tornare a casa?\nGiuro, \
    		  %s, la prossima volta..."
     MSG_BACIA ="%s... oh prode %s,\n mi prostro ai suoi piedi..."
    
     def self.buongiorno(nome_utente)
    return MSG_GIORNO % nome_utente
     end
     def self.buonasera(nome_utente)
    MSG_SERA % nome_utente
     end
     def self.baciapiedi(nome_utente,classe)
    MSG_BACIA % [nome_utente,classe]
     end
    end

     

    Note sul codice: il simbolo \ serve a mandare a capo il codice senza interrompere la riga, viene usato per non fare righe troppo lunghe, sarebbe bene non superare mai gli 80 caratteri (e non far comparire lo scrolling laterale nello script editor).

    Il comando return è facoltativo, un metodo restituisce il valore dell'oggetto sull'ultima riga, i tre metodi si equivalgono.

     

    Passiamo ora al codice da mettere nell'evento.

    $game_variables[50] = \
    Saluti.buongiorno("Amorino")

    La casella dello script è ridicolmente piccola e manda a capo per i fatti suoi, uso \ per evitare equivoci.

    E mostriamo il messaggio

    http://img259.imageshack.us/img259/889/modulo.png

    Risultato

     

    http://img196.imageshack.us/img196/5020/modulo2.png

     

     

    Ora devo andare a pranzo, spero di aver eliminato una parte dei dubbi ^^

  8. Hai fatto bene a mostrarmi le tue perplessità!

    Ho migliorato lo script e adesso non rompe più nessuna compatibilità, adesso modifica solo le classi per rimpiazzare lo Scene_Name.

     

     

    Nel futuro intendo proseguire con questa politica: compatibile al 100% si risparmia un sacco di codice ^_^

  9. Lo script originale mirava a estendere senza rompere la compatibilità e per farlo usava un sistema che mi sembrava artificioso.

    Quello che ho presentato qui sopra era una strada per sviluppare un sistema autonomo, con l'obiettivo di non aver più bisogno di premere F1 per i tasti ma poterli modificare all'interno del gioco, in una Window_Keyboard (che verrà rilasciata nella prossima versione).

     

    In realtà a fronte dell'esperienza maturata credo di aver capito come avere il porco e la corda, come mantenere una compatibilità assoluta senza fix e senza rinunciare a poter programmare usando tutti i tasti, ma mi ci vorrà un'altra giornata per farlo

     

    Comunque per aprire il menù anche con X basta modificare def menu

    def menu
     Input.trigger(:ESC) or Input.trigger(:X)
    end

  10. @Guardian: Sì

    Penso ad esempio ai vecchi Visual Basic, ho solo 3 tipi base di testo, InputLine, TextArea e RTF Object (i nomi sono di fantasia perché non li ricordo, InputLine è un testo su una linea singola, TextArea un area di testo, RTF Object un oggetto che permette RTF: Rich Text Format).

    Volendo creare un'area di testo colorata e con font potenzialmente diversi, l'unico oggetto prestampato che mi salva un po' di lavoro è l'RTF Object, non ho bisogno del suo menù incorporato da Office e quindi lo disabilito.

    Quando creo l'eseguibile quel menù ci sarà comunque.

  11. Potresti strutturarlo come il modulo Cache

    module MyModule
    ERROR_MESSAGE = "Impossibile trovare il file %s"
    
    def self.check?(folder_name, filename)
      !Dir.glob(folder_name+filename).empty?
    end
    
    def self.file_check(folder_name,filename)
     msgbox(sprintf(ERROR_MESSAGE,filename)) if !check?(folder_name,filename)
    end
    end
    

  12. No è che per le conferme di default rpgmaker usa Input.trigger(:C) e per :C intende INVIO o Z, non il tasto :C.

    E' ovvio che se ridefinisco :C per avere tutte le lettere dell'alfabeto poi devo anche cambiare tutte le occorrenze in cui usano :C, semplicemente speravo che le scene usassero Window_Selectable invece di un accesso diretto alle funzioni :)

    EDIT: Mi ero scordato della fondamentale Window_Message :D

     

    UPPATA VERSIONE CORRETTA

×
×
  • Create New...