Jump to content
Rpg²S Forum

Dexter92

Utenti
  • Posts

    22
  • Joined

  • Last visited

Posts posted by Dexter92

  1. Sì, esatto ^^

    Sembra essere l'idea di ProGM: utilizzando la libreria SDL ed il ruby, hanno reimplementato le classi dell'RGSS (sebbene in modo incompleto)!

    Ciò significa che è possibile utilizzare l'RGSS al di fuori dal contesto di RPG Maker! In altre parole, è una potentissima libreria per creare un "qualsiasi" gioco in 2D!!! :waddaf: :waddaf: :waddaf:

    Si affianca alle sopra citate rubysdl - su cui in realtà è fondata -, rubygame e gosu.

    Con una convenienza non indifferente: è molto più semplice da usare per chi ha già scriptato in RPG Maker ^^

    Io personalmente lo trovo fantastico :blink: Dato che in passato ero scripter (ma non molto attivo a dirla tutta xD), provo un certo senso di piacere e nostalgia a poter riutilizzare l'RGSS in altri contesti ^^ E poi mi fa piacere poter sapere che l'RGSS può avere un futuro più vasto (dato che si basa su un intero linguaggio di programmazione - il ruby -, piuttosto che essere solo un linguaggio personalizzato di un software) ^^

  2. Ok, ho provato ad aprire la RGSS301.dll con PE explorer... Questo è il risultato che ho ottenuto:

     

    http://i44.tinypic.com/votuv4.png

     

    Ho preso uno screenshot della funzione RGSSInitialize3... Però come si può tentare di capire cosa fa? Immagino che l'informazione sia contenuta negli indirizzi da 100035E0 a 100035FF...

  3. Ciao!

    Mi stavo chiedendo se è possibile scoprire il nome delle funzioni contenute nella dll, per poterle importare in un progetto...

     

    Sempre ammesso che non esista un modo per "caricare" direttamente l'intera dll. Dubito però che questo sia possibile...

    Un esempio di facile comprensione riguarda RPG maker. Potrebbe aver definito:

    class Bitmap
      def fill_rect(*params)
        rgss = Win32API.new("RGSS301", altri parametri)
        rgss.call(*params)
      end
    end
    

    Continuando a considerare questo caso, è possibile trovare i parametri da passare a Win32API.new per chiamare la funzione della dll che corrisponde al metodo fill_rect della classe Bitmap?

  4. Ciao a tutti!

    Cercavo un metodo per far copiare dei file durante l'esecuzione del gioco...

    Ho visto che nel ruby bisogna ricorrere alla libreria fileutils, usando la funzione cp:

     

    FileUtils.cp #ecc...

     

    Il problema è che RPG VX-Ace non conosce FileUtils...

    Come si può rimediare al problema?

  5. Ciao a tutti!

    Esiste un modo per spostare uno viewport?

    Cioè, se per esempio volessi spostare una finestra con un'immagine più grande della finestra (ma che si vede solo all'interno grazie allo viewport),

    è possibile muovere lo viewport insieme alla finestra, in modo che la zona di visibilità dell'immagine sia coerente con la finestra?

    Altrimenti che alternative ci sono per risolvere un problema del genere?

  6. Ecco il mio: xD

    http://www.google.it/imgres?imgurl=http://tuttowebitalia.com/tavola-periodica-elementi/tavola-periodica-elementi.jpg&imgrefurl=http://www.picstopin.com/1833/peri%25C3%25B2dica-research-materials/http:%257C%257Cchemwiki*ucdavis*edu%257C%40api%257Cdeki%257Cfiles%257C7596%257C%3DNatriumkloridionegittermodell*png/&usg=__a7iLhgJRB9w3jokNb5aoaVen0XI=&h=526&w=900&sz=174&hl=it&start=0&zoom=1&tbnid=m2MjeR2MHeu5fM:&tbnh=139&tbnw=238&ei=vSy-UPqRAsjlswbvwYGIBw&itbs=1&iact=hc&vpx=2&vpy=169&dur=251&hovh=172&hovw=294&tx=188&ty=130&sig=106058199496851476994&page=1&ndsp=5&ved=1t:429,r:0,s:0,i:61&biw=1024&bih=655

    http://www.google.it/imgres?imgurl=http://tuttowebitalia.com/tavola-periodica-elementi/tavola-periodica-elementi.jpg&imgrefurl=http://www.picstopin.com/1833/peri%25C3%25B2dica-research-materials/http:%257C%257Cchemwiki*ucdavis*edu%257C%40api%257Cdeki%257Cfiles%257C7596%257C%3DNatriumkloridionegittermodell*png/&usg=__a7iLhgJRB9w3jokNb5aoaVen0XI=&h=526&w=900&sz=174&hl=it&start=0&zoom=1&tbnid=m2MjeR2MHeu5fM:&tbnh=139&tbnw=238&ei=vSy-UPqRAsjlswbvwYGIBw&itbs=1&iact=hc&vpx=2&vpy=169&dur=251&hovh=172&hovw=294&tx=188&ty=130&sig=106058199496851476994&page=1&ndsp=5&ved=1t:429,r:0,s:0,i:61&biw=1024&bih=655http://www.google.it/imgres?imgurl=http://tuttowebitalia.com/tavola-periodica-elementi/tavola-periodica-elementi.jpg&imgrefurl=http://www.picstopin.com/1833/peri%25C3%25B2dica-research-materials/http:%257C%257Cchemwiki*ucdavis*edu%257C%40api%257Cdeki%257Cfiles%257C7596%257C%3DNatriumkloridionegittermodell*png/&usg=__a7iLhgJRB9w3jokNb5aoaVen0XI=&h=526&w=900&sz=174&hl=it&start=0&zoom=1&tbnid=m2MjeR2MHeu5fM:&tbnh=139&tbnw=238&ei=vSy-UPqRAsjlswbvwYGIBw&itbs=1&iact=hc&vpx=2&vpy=169&dur=251&hovh=172&hovw=294&tx=188&ty=130&sig=106058199496851476994&page=1&ndsp=5&ved=1t:429,r:0,s:0,i:61&biw=1024&bih=655ass

  7. Grazie =)

    Però in caso se ti sei basato molto su quello di clyde credita lui all'interno dello script, se invece è lui ad aver scritto di non voler essere creditato... bhoo creditati tu dentro e scrivi basato su... XD

    Mah, va anche bene così...

    Mettiamola su questo piano: nessuno dei due deve essere creditato, così non ci sono problemi ed è tutto più semplice xD

  8. Error Debug Helper v1.0

    Descrizione

     

     

     

    Questo script serve a rintracciare tutte le chiamate che portano a metodi che generano errori, in questo modo sarà più facile individuarli.

     

    Autore

     

     

     

    Clyde(VX), modificato da Dexter92(VX-Ace)

     

     

    Istruzioni per l'uso

     

     

     

    Incollare sopra il main

     

     

    #===============================================================================
    # [VX-Ace] Error Debug Helper v1.0
    # Script by: "Non voglio essere creditato"
    #-------------------------------------------------------------------------------
    # ISTRUZIONI:
    # - Incollare sopra il main
    #-------------------------------------------------------------------------------
    # DESCRIZIONE:
    # Questo script serve a dare maggiori informazioni sull'errore, fornendo in
    # ordine cronologico inverso, le chiamate che hanno portato all'errore,
    # specificandone il nome dello script e la linea.
    #-------------------------------------------------------------------------------
    # ESEMPIO:
    #
    # TIPO errore:
    # NameError
    # DESCRIZIONE:
    # undefined local variable or method `prform_transition' for <Scene_Title:0x753486c>
    # chiamato da Scene_Base, linea 28
    # chiamato da Scene_Base, linea 13
    # chiamato da SceneManager, linea 23
    # chiamato da Error_Debug_Helper, linea 45
    # chiamato da Main, linea 7"
    #
    # TRADUZIONE:
    # Un metodo "prform_transition" che non esiste
    # è stato chiamato alla linea 28 di Scene_Base,
    # che è stata chiamata alla linea 13 di Scene_Base,
    # che è stata chiamata alla linea 23 di SceneManager,
    # che è stata chiamata alla linea 45 di Error_Debug_Helper,
    # che è stata chiamata alla linea 7 di Main.
    #
    # COMMENTO:
    # E' più facile individuare le cause di un'errore
    # sapendo esattamente il percorso seguito dall'esecuzione
    # soprattutto nel caso di errori dovuti a conflitti fra script.
    #===============================================================================
    class << SceneManager
     alias run_without_error_debug_helper run unless $@
    end
    
    module SceneManager
     def self.run
    run_without_error_debug_helper
     rescue Exception => error
    #carica gli script nel database e leggine i nomi [come da script editor]
    scripts_name = load_data('Data/Scripts.rvdata2').collect!{|script| script[1]}
    #inizializza una variabile per il testo del backtrack
    backtext = ""
    #Seleziona solo gli errori generati da script inseriti dall'utente,
    #tralasciando le chiamate agli script nascosti. L'ultimo elemento viene
    #rimosso perchè di fatto è una copia del penultimo...
    error.backtrace.select!{|str| str[0]=='{' }[1...-1].each do |str|
      /\A\{(?<index>\d{4})\}:(?<line>\d+):/ =~ str
         backtext += "\nchiamato da #{scripts_name[index.to_i]}, linea #{line}"
    end
    #NOTA: la stringa di errore contiene anche il nome del metodo in cui si
    #verifica l'errore e se si trova nell'eventuale blocco, ma questo è
    #superfluo se si conosce il numero della linea...
    #È per questo che prima ho rimosso l'ultimo elemento dell'array: la prima
    #chiamata si riferisce al blocco, la seconda al metodo in sè.
    text = "TIPO errore:\n#{error.class}\n"
    text += "DESCRIZIONE:\n#{error.message}"
    text += backtext	#apre una finestra per rivelare l'errore
    msgbox text #Con il raise finestre troppo grandi non visualizzano il messaggio
    Kernel.exit #exit eseguirebbe SceneManager.exit
     end
    end
    

     

     

     

    Bugs e Conflitti Noti

    N/A

     

    Altri Dettagli

     

    Si vede chiaramente che la struttuta è quella del vecchio script di Clyde, ho voluto modificare giusto l'indispensabile =)
  9. Per la programmazione del Ruby consiglio a tutti gli interessati la lettura del libro:

     

    Programming Ruby,

    di Dave Thomas

     

    Lo sto leggendo in questo periodo, e per ora è molto ben spiegato e si trova di tutto, dalle cose più banali a quelle più avanzate.

    Anche per chi è agli inizi il libro è leggibile: non parte a razzo descrivendo classe per classe, metodo per metodo. Invece ha un approccio che parte dal decrivere tutto nel generale, per poi approfondire sempre di più tutte le cose nello specifico... Così prima ti fai l'idea generale e poi, quando sei già più in confidenza, approfondisci gli argomenti che più ti interessano.

    L'unica "pecca", diciamo, è che nell'approfondire spesso ripete cose già dette in precedenza...

     

    Altra cosa non da meno: il libro è tutto in inglese, non credo che ci sia la versione in italiano...

     

    Neanche altre guide, a questo livello non ne ho trovate in italiano...

    Le uniche "guide" che ho visto in italiano erano più che altro libricini tascabili piuttosto sintetici...

  10. Ciao a tutti!

    Mi è venuto in mente un dubbio...

    Quando si prova a fornire ad un metodo di una classe built-in (in Ruby o RGSS) un parametro che non è compatibile l'errore viene rintracciato... Mi spiego con un esempio:

     

    class Window_Prova < Window

    def initialize

    super(10, 20, 100, "5")

    end

    end

     

    Eseguendo Window_Prova.new mi dà l'errore alla linea del super di Window_Prova dicendo che non è possibile convertire la stringa in un numero.

    Se però la classe fosse inclusa in una non built-in le cose sono diverse. Se ad esempio indicassi come superclasse Window_Base (o Window_Selectable) l'errore verrebbe indicato alla riga del super in Window_Base. In effetti è qui che sbaglia a passare i parametri (da Window_Prova a Window_Base i parametri vengono passati correttamente), però questo rende molti bug più difficili da scovare. Infatti in questi casi bisogna ricontrollare tutte le chiamate (dirette e indirette) fatte a quella classe, e assicurarsi che passino valori corretti. Un lavoro molto noioso, che se non si sa come ridimensionare in certi casi può diventare lunghissimo...

     

    Ora, volevo sapere se qualcuno conosce il modo per rintracciare l'errore al momento della chiamata del metodo.

    Visto che l'errore viene rintracciato anche per le chiamate a metodi built-in di RGSS (come ad esempio Window), mi viene da pensare che ci sia un metodo che serva in questo caso fornito dal Ruby, che poi sia stato implementato nelle classi nascoste di RPGVX...

    Ammesso che esista veramente questo metodo, qualcuno sa come si utilizza?

    (Altrimenti come fa il computer a sapere da dove parte l'errore?)

     

     

     

    Devo dire che l'esempio che ho postato è piuttosto stupido, quello che però sarebbe molto interessante è la soluzione a questo tipo di problema =) Grazie in anticipo!

  11. La faccenda si sta complicando un po' troppo...

    Giusto per curiosità, dove trovo lo script fatto per xp che disabilitava il tasto F12?

    A questo punto allora ridimensiono la mia richiesta:

    Sarebbe possibile attivare quel tasto in modo che venga eseguita l'azione una volta chiusa la funestra?

    Oppure far capire al programma che la finestra viene aperta e chiusa? Per esempio quando si richiude la finestra il programmma se ne accorge in qualche modo e viene eseguita un'altra azione...

    Questo sarebbe fattibile se esistesse una variabile globale (di cui bisogna però conoscere il nome) che ad esempio è true quando la finestrella è aperta. Il problema è che non so se ci sia e come si chiami...

  12. Per il tasto F12, in XP, qualcuno sovrascrisse la funzione chiamata da quel tasto per disabilitarlo . . .

    Quindi si potrebbe fare scoprendo che chiamata fa F1 e "svuotarla" del codice o sostituirne il codice . . .

     

    Però come si fa a scoprire qual è la funzione che chiama? Come avevano fatto su XP per F12?

  13. Ciao a tutti! Avrei bisogno di una consulenza:

    Durante il gioco è possibile, premendo il tasto F1, accedere alle impostazioni dell'audio, ecc... Ora, volevo sapere se in qualche modo è possibile disabilitare questa funzione in alcuni momenti del gioco. Ho provato con lo YEM Keyboard input a settare una azione da eseguire alla pressione di questo tasto, ma questa viene ignorata (non viene nemmeno eseguita alla chiusura della finestra!), si appare semplicemente la finestrina delle opzioni... Mi viene da pensare che sia un'impostazione del programma contenuta nell'exe...

    Qualcuno sa se esiste un modo, se possibile tramite script, per risolvere questo problema? Oppure anche un modo per eseguire l'istruzione alla chiusura della finestra delle opzioni...

    Grazie in anticipo =)

  14. Grazie per la proposta ^^

    Al momento però, visto che per problemi vari io e cero abbiamo perso tutti i file del nostro progetto, stavo ricostruendo gli script (per VX) che avevo fatto, nel frattempo così mi rimpratichisco un attimo... Ora sto lavorando sul menù di pausa =) Quando l'avrò terminato sarò ben contento di farvelo vedere ^^ Così mi dite anche cosa ne pensate e come migliorarlo =)

  15. Salve a tutto il forum ^^

    Dopo un po' di tempo che tenevo d'occhio questo sito ho finalmente deciso di iscrivermi xD

    Tempo fa (parlo di circa 5 anni addietro) ero impegnato in un progetto con l'utente "Cero". Ci siamo stati su circa 2 anni, poi però non è stato concluso molto... Ricordo che forse aveva appena postato una demo del nostro gioco. Si chiamava "l'Alleanza dei Dragoni", non so se qualche utente iscritto da tempo se lo ricorda... Subito avevamo fatto una versione in RPG maker XP, poi ci siamo addentrati nel VX. Il fatto è che solo in 2 c'erano tante cose da fare per produrre qualcosa di decente, e così dopo un po' di tempo avevamo deciso di smettere...

    In questo periodo mi è tornata la nostalgia di programmare con l'rgss e così mi sono iscritto =)

    Al momento sto frequentando il primo anno dell'università di chimica di torino e mi piacerebbe programmare qualcosetta nel tempo libero =) Premetto che sarei orientato verso lo scripting, preferibilmente per la versione VX. Mi piacerebbe trovare un team con cui lavorare =)

    Ora però dovrei rispolverare tutte le conoscenze che avevo acquisito, quindi non aspettatevi molto da me xD Qualcosa di soft per iniziare... =)

×
×
  • Create New...