-
Posts
646 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Everything posted by Keroro
-
Melosx ti ho già risposto su. EDIT: Spiegazione: Un'ora sono 3600 secondi, 5 ore 18000 secondi (Graphics.frame_count / Graphics.frame_rate)> 18000 restituisce true se sono passate 5 ore di gioco in una sola sessione
-
Problema con comandi in orizzontale + icone
Keroro replied to Melosx's question in Supporto RGSS2 (VX)
aggiungerei una scrollbar orizzontale U_U @command_window = Window_Command_Plus_Icons.new(544, [s1, s2, s3, s4, s5, s6 ] , 6, 0, 16) -
Quali sono i limiti del RUBY IN rpgmakerXP?
Keroro replied to Omega9999's question in Supporto RGSS (XP)
la risposta è sì per tutto -
Questo script è pieno di errori, sia leggeri che gravi, e per questo sconsiglio di usarlo.
-
Problema con comandi in orizzontale + icone
Keroro replied to Melosx's question in Supporto RGSS2 (VX)
E' un problema di spacing, prova: Nota per i mod: usando il tag code invece di codebox il codice viene tagliato dopo la quadra -
Risposta banale #Immaginando di aver assegnato alla switch 555 l'abilitazione dello shopif !$game_switches[555] && ((Graphics.frame_count / Graphics.frame_rate)> 18000) $game_switches[555] = trueend Perché questa soluzione non mi piace? Innanzitutto affinché la switch si accenda le ore di gioco devono essere strettamente continue, se salvo, chiudo, riapro e ricarico il timer è resettato (perché frame_count riparte da 0 sempre). Quindi bisogna trovare una soluzione più elaborata, ad esempio sommare i secondi ottenuti dall'ultimo salvataggio. Inoltre trovo frame_count su frame_rate un metodo poco affidabile di calcolare il tempo trascorso in quanto non ne conosco l'implementazione ed i frame tendono a fluttuare un casino per loro natura. Trovare però una soluzione più complessa mi ha spinto a creare qualcosa di carino che appena rifinito pubblico :)
-
Ah ma quindi estendete due volte la stessa classe? Ci credo che sorgono i casini!!! Scrivete nello stesso content, postate anche l'altro script
-
Non basta modificare le coordinate x dove vengono creati i face?
-
Perché ho detto che l'età dell'oro non è mai esistita? Perché i giochi odierni sono molto più avanti graficamente ed in programmazione (mentre le trame più o meno sono lì). Non posso chiamare età dell'oro uno show di dilettanti, la corrida. Per me è età dell'oro amici di maria de filippi. Che poi tra dilettanti ci fosse un altro spirito è un ovvio principio sociologico: al crescere della conoscenza corrisponde un aumento della competizione, oggi acuita dalla mancanza di attenzione dai media. Per me età dell'oro è quella a cui rpg2s sta tendendo, sono anni che l'rpgmaking si dice sia morto mentre questa community funziona sempre meglio
-
L'età dell'oro non è mai esistita
-
sì è fattibile, ti crei una classe derivata dallo sprite, carichi la pergamena come bitmap e sopra ci disegni le scritte con il draw_text
-
MOG - Scene Title Celia problema con lo script
Keroro replied to Bersekir's question in Richieste scripts RGSS (XP)
non è abbastanza alta Dovrebbe essere 640x480 per coprire tutto lo schermo -
Calma. L'html è un linguaggio di markup. Un editor WYSIWYG può essere sufficiente per molti siti.
-
Il bug dello stack è principalmente dovuto al fatto che il 99% degli scripter non sa come funzioni il Garbage Collector, il raccattamonnezza. Esso viene invocato anche dopo la pressione di F12 e pulisce tutto quello che viene buttato, ma se non butti qualcosa non è che capisce che deve raccattarlo, semplicemente rimane lì a occuparti lo stack. Per buttare tutto è necessario chiamare la funzione dispose di tutti gli oggetti che la richiedono ed impostare a nil tutte le variabili globali che introduciamo. Una buona programmazione quindi elimina il bug. In alternativa ci sono due pezze: la prima è eseguire all'inizio di tutto il metodo 'riavvia' che ho scritto nell'altro topic. la seconda è più subdola: il tasto F12 lancia un'eccezione che interrompe l'update della classe Graphics, se questa eccezione viene "raccolta" il gioco non viene riavviato. Se eliminiamo il problema del riavvio, generiamo però un altro problema: Visto che non è possibile modificare il funzionamento di update di Graphics, ma solo di apparecchiarli intorno con gli alias, non è possibie eliminare il fatto che la pressione del tasto F12 impedisce di aggiornare la grafica, e visto che la logica è indipendente dalla grafica succedono casini, tipo che il personaggio in movimento ha la posizione aggiornata a grafica solo quando smettiamo di premere f12... Domani sera, con un po' di sonno sulle spalle, creo un topic fatto bene :3 Per il modulo input sto cercando di sintetizzare il meglio di quello che vedo in giro, il problema però è che una classe personalizzata diventa indipendente dal menù di setting ottenuto premendo F1
-
Problema con il BS In tempo reale v. 4.1 di Near Fantastica
Keroro replied to Roxsas97's question in Supporto RGSS (XP)
Ho visto la demo di marigno ma è troppo incasinata XD. Fortunatamente mi è venuta in mente un'idea semplicissima per capire se un combattimento è finito: Creare una classe che conti le uccisioni. Prima dell'inizio della battaglia, cosa che puoi sempre determinare con un buon game design, salvi quanti mostri avevi ucciso fino a quel momento e quanti mostri deve uccidere. Nel momento in cui uccidi un mostro incrementi il contatore e controlli se ne hai uccisi X (per renderlo più bug free nel codice ho considerato almeno X) , se li hai uccisi imposti la switch ad ON. Del codice semplice semplice (se volete spiegazioni basta chiedere) #=============================================================================# ** Contatore banale by Keroro per rpg2s.net#============================================================================= class Contatore def initialize @zero = 0 @valore = 0 @limite = 0 @switch_id = 0 end #Se ha contato almeno @limite dall'avvio accende lo switch def controlla if (@valore-@zero) < @limite return false else $game_switches[@switch_id] = true return true end end #Incrementa il valore del numero fornito def incrementa(numero=1) @valore += numero end #Imposta l'incremento minimo per far accendere lo switch def avvia(limite,switch_id) @zero = @valore @limite = limite @switch_id = switch_id $game_switches[@switch_id] = false endend Inseriamo il contatore come variabile globale in un evento in inizio automatico che poi si annulla. (non ricordo se esiste qualcosa come .exists per controllare se già è stata definita quindi uso un confronto con nil ma non so quanto sia corretto, però funziona) @>Script if $kill_counter == nil@>Script $kill_counter = Contatore.new@>Script end@>Erase Event Per non alimentare il bug dello stack dobbiamo mettere a nil (o chiamare .dispose se l'oggetto è complesso) ogni variabile globale che introduciamo. Quindi resettiamo $kill_counter nel Main #==============================================================================# ** Main#------------------------------------------------------------------------------# After defining each class, actual processing begins here.#============================================================================== begin # Prepare for transition Graphics.freeze # Make scene object (title screen) $scene = Scene_Title.new # Call main method as long as $scene is effective while $scene != nil $scene.main end #QUI! $kill_counter = nil # Fade out Graphics.transition(20)rescue Errno::ENOENT # Supplement Errno::ENOENT exception # If unable to open file, display message and end filename = $!.message.sub("No such file or directory - ", "") print("Unable to find file #{filename}.")end Per incrementare il contatore dobbiamo scovare il punto in cui ci si accorge che il mostro è morto, cosa c'è di meglio del punto dopo aver rubato i suoi tesori e acquisito esperienza? Inoltre chiameremo lì anche la funzione di controllo in quanto non ha senso controllare in continuazione, ma solo quando il contatore muta :D class Action_Battle_System #[...] def event_non_dead?(enemy) #[...] treasure(enemy) $kill_counter.incrementa $kill_counter.controlla #[...] end #[...]end NOTA: Avrei potuto ottimizzare chiamando il metodo controlla all'interno del metodo incrementa o facendo un unico metodo, ho preferito evitare sia per chiarezza sia perché può essere utile salvarsi il valore true/false di controlla all'interno di una variabile === Per usarlo basta impostare prima del combattimento @>Script $kill_counter.avvia(5,3000) per far sì che la switch numero 3000 diventi ON dopo aver ucciso almeno 5 mostri. Spero di essere stato utile (e di aver guadagnato qualche rens u_u) -
Si possono inserire/sostituire files in un archivio encrypted?
Keroro replied to nihil-omen's question in Supporto RGSS (XP)
Per resettare il gioco puoi fare: def riavvia Thread.new{ system("Game") } exitend Crea un nuovo thread in cui avvia Game.exe (eseguibile di rpgmaker xp) ed esce dal thread corrente. Se hai rinominato l'exe devi cambiare di conseguenza la stringa da passare a system. Naturalmente prima di riavviarlo in faccia al giocatore conviene informarlo :rovatfl: -
Intendi il fare un modulo per l'input personalizzabile oppure risolvere il bug del tasto f12?
-
Mi sembra poco intelligente far derivare una scena da una classe di input. Converrebbe trasformare Keyboard_Input in un modulo, in modo da disporre delle funzioni di input anche nelle sottoclassi
-
Naturalmente la Window va istanziata nella Scene e va aggiunta la riga per propagare l'update (spero che il doppio post per maggiore chiarezza sia consentito XD) class Scene_Map #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Make sprite set @spriteset = Spriteset_Map.new # Make message window @message_window = Window_Message.new # Istanziamo la Finestra @pannello = Window_Shadow.new #[...] # Dispose of message window @message_window.dispose # Distruggiamo la Finestra @pannello.dispose #[...] end def update #[...] @pannello.update end #[...]end
-
E' solo la Scene che contiene il loop, in questo loop vengono prima aggiornati gli Input e poi viene chiamato il metodo update, che fa propagare l'update a cascata su ogni Window. Non puoi mettere un loop anche in Window o si incarta tutto. Così dovrebbe funzionare class Window_Shadow < Window_Base def initialize super(0, 0, 300, 64) end def update if Input.trigger?(Input::A) self.visible = !self.visible end endend
-
Fossi stato l'autore avrei usato alias consistenti, usa un'abbreviazione diversa del suo nick in ogni alias... modara_potat_leadded_adst_1gb3mdala_pat_deledr_rmvst_5xc2malg_lpot_dedlead_rfsh_7uj2 io userei la codifica autore_script_metodo, tutte le altre cose non servono a nulla :s malg_dlead_adstmalg_dlead_rmstmalg_dlead_rfsh Mi sono divertito a commentare per i neofiti :) #==============================================================================# ** Game_Player#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# Cambiamenti:# Metodi in alias - refresh#============================================================================== class Game_Player #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Refresh #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias malg_dlead_rfsh refresh def refresh (*args) # Se c'e' piu' di un personaggio in party ed il primo e' morto if $game_party.members.size > 1 && $game_party.members[0].dead? # Cerchiamo il primo vivo i = 1 while i != $game_party.members.size && $game_party.members[i].dead? i += 1 end # Se sono tutti morti scegliamo il primo in party i = 0 if i == $game_party.members.size #Facciamo il refresh actor = $game_party.members[i] @character_name = actor.character_name @character_index = actor.character_index # ==Compatibilita' Script<Personaggi Composti>== if self.methods.include? ("composite_character") @composite_character = $game_party.members[0].composite_character end # ==Fine Compatibilita'== else malg_dlead_rfsh (*args) # Vero Refresh end endend
-
Come procede il progetto? L'ho appena testato ed è simpatico, unico bug è che da quando ho iniziato a scrivere in chat non riesco più a muovermi, neanche se tolgo il focus dalla textbox, è normale? EDIT: Ho scordato di dirti che va più veloce di come avevi detto Browser firefox 3.6.14, stabile su 3.2-3.6 Richieste al secondo, con picchi di 4 e 2.6
-
Per prendere spunti ci sono tante fonti, ieri sera stavo cercando tra i libri (ma ne ho trovati solo in inglese e avevo poca voglia :s) Una mia amica si ricorda vagamente che su Alessandro avevano trasmesso un documentario in rai, le sembra di piero angela. Tanti anni fa avevo visto l'anime Alexander, carino ma troppo cerebrale per un adolescente, cercherò di rivedermelo, perché il tuo progetto mi ha stuzzicato la curiosità. La demo non l'ho finita per mancanza di tempo e perché dopo aver scelto di nuovo per sbaglio di parlare dell'odissea dopo averla già fatta e aver risposto all'iliade, mi sono spazientito XD. Unico appunto sul castello: avrei fatto sia la parte alta della porta sia il soffitto nero orizzontale attraversabili e sopra il livello del personaggio. Ho particolarmente gradito il calcio con shift contro i topi. Non penso di poterti aiutare con la programmazione perché non so usare rpgmaker.
-
Complimenti al podio ed anche a Seph per le valutazioni condivisibili
