-
Posts
1,288 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Everything posted by giver
-
Hai già provato con qualche script per il testo bordato (outline) ? I face quanto sono alti ? Ti andrebbe bene se il tutto sfora un po' nell'area dove stanno i battler dei mostri ? Oppure, ti andrebbe bene se i face (e/o il testo) vengono ridotti, in caso ti servano di quella dimensione in altri contesti ? Dovrebbe bastare qualche piccola modifica alla Window_BattleStatus, comunque . . . EDIT: Potresti mettere uno screen di come appare la situazione adesso ?
-
Provenendo dalla Ferramenta, probabilmante la palla di fuoco risulta fuori range "visivo" e non viene eseguita . . . Credo sia necessario identificare quali eventi rappresentano armi e far ritornare true al metodo in_range? se si tratta di uno di tali eventi . . . Non conosco lo XAS, quindi è un'ipotesi basata su quel poco che ho sentito dire riguardo allo script . . .
-
nihil-omen, utente di questo forum, ne ha creato uno simile per il proprio gioco, per l'intero rgssad, oltre ad altre features "particolari" come gli achievements . . . Il motivo per cui non esistono molti script a riguardo, o i fallimenti di molti progetti con l'online, sta nel fatto che, a differenza del VX, nell'XP c'è la possibilità di Hanging Script error se ci sono problemi nel mantenere la connessione o comunque se non si programma tale sistema a puntino . . . Poi, ma di questo non sono sicuro, l'RGSS dell'XP ha fatto a meno delle feature online del ruby, che vanno quindi reimpostate dall'esterno, tramite script, mentre il VX le ha conservate . . .
-
Queste quattro righe !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (in Scene_Menu ed in Scene_Status, non riesco a vedere a partire da che riga, non so è colpa del mio vecchio browser o è la nuova versione del forum che non mostra i numeri di riga, e neppure le righe alterne . . .) @background = Sprite.new @background.bitmap = RPG::Cache.picture("Sf.Finestre/" + "SfondoMenù") @background.x = 0 @background.y = 0 Tirale fuori dal LOOP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Almeno prima di Graphics.transition, ma meglio ancora proprio sotto la riga con def main
-
Per quel che mi ricordo, le barre di SephirothSpawn sono animate ridisegnandole tramite codice ad ogni fotogramma . . . (Certe cose è meglio farle a picture blittate, ma vabbè . . .) Comunque, di solito, più che nella quantità di immagini il problema è nel come vengono usate dal codice, e dall'elaborazione del testo disegnato, quindi mi aggrego a Guardian e ti invito a postare il codice . . . Non è che fai il refresh dell'intero contenuto delle finestre ad ogni fotogramma, vero ?
-
In battaglia, normalmente, i processi paralleli non funzionano . . . L'interpreter del bs è fatto proprio per elaborare gli eventi interrompendo il resto, visto che comunque è stato pensato per svolgimento a turni . . . Devi per forza agire sugli script, a mio parere, come minimo cambiando il conteggio dei turni, dato che comunque ci sarebbero altri eventi che funzionerebbero a turni, ma dovrebbero avere nel tuo bs un triggering simile a quello del veleno . . . Oppure, brutalmente, potresti invece incastrare un metodo che infligga lo slip damage all'interno dell'update di Game_System, che è lo stesso che gestisce il timer in battaglia . . . Ovviamente, ci sono anche altri modi, più complessi e raffinati, per ottenere ciò che ti serve, ma i due sopra fanno comunque il loro sporco lavoro, e questa non è la sede per le soluzioni complesse . . .
-
A-ehm . . . Gli script vanno sempre sotto Materials e sopra Main . . . E l'ordine che hanno nello script editor puè fare una grande differenza . . . Tra l'altro, dovrebbe essere fisiologicamente "impossibile", tranne tramite convulsi giri di copia-incolla, mettere script sotto Main . . . Cosa vi passa per la mente ?!? E se non funziona neanche dopo averli inseriti come si deve, vedremo se si può rimediare . . . Nota: Ma sei sicuro, poi, di aver scritto $scene = Scene_Bestiary.new e non semplicemente $scene = Scene_Bestiary o addirittura solo Scene_Bestiary ?
-
Spostandoti sulla mappa ? (non sto scherzando . . .) Se vuoi muoverlo in maniera arbitraria hai bisogno di uno script, credo . . . Il fatto che Sleeping Leonhart ne abbia creato uno apposta dovrebbe dire qualcosa . . .
-
Esiste un pacchetto di script rilasciato da Amaranth, usato per giochi commerciali, che ne include uno per l'input del Mouse . . . Ti suggerisco di lasciar perdere questo ed utilizzare invece quello . . .
-
Personalmente, dovendoselo fare da solo, gli suggerisco di partire a fare un input simile a quello di default (che è così per quelli che amano giocare col gamepad, come per la questione dei button: è stata una scelta progettuale della Enterbrain), e passare successivamente, se proprio necessario, all'input diretto da tastiera . . . Tanto, se programma come si deve il sistema d'uso delle "parole magiche", la sostituzione dovrebbe risultare assolutamente indolore . . .
-
Con la morte dell' eone tornano gli eroi [Risolto]
giver replied to Leon2236's question in Supporto XP
C'è uno script di Sleeping Leonhart che permette di gestire le evocazioni come le vuoi tu, magari potresti provare ad usarlo . . . (Aeon System) -
Ce l'hai presente il comando evento che permette al giocatore di Scegliere il Nome di un PG ? Che viene spesso usato per gestire eventi con password ? Io gli suggerito di usare quello, adattando il sistema per l'uso in battaglia . . . Questo screen mostra una cosa fatta dal "nostro" mikb89, per VX . . . http://img819.imageshack.us/img819/4623/textinsert.png Sarebbe davvero tanto terribile usare un'interfaccia del genere per l'inserimento delle "parole magiche" ? Bisogna per forza usare l'input diretto da tastiera ? @ wjzard: Come funzionano le cose di default ? Giocatore sceglie di usare SKILL -> Ne può scegliere una o ripensarci e fare altro -> Se sceglie una skill, gli vengono fatti scegliere i bersagli previsti, altrimenti può scegliere senza problemi un'altra opzione -> Viene risolta l'azione scelta . . . Come potrebbe essere il funzionamento per la tua idea ? Giocatore sceglie di usare SKILL -> Può inserire almeno una lettera e sperare che attivi una skill o può ripensarci e scegliere un'altra azione -> Se ha inserito almeno una lettera, viene verificato se attiva una skill o meno . . . Se esiste e può usarla, gli vengono fatti scegliere i bersagli, altrimenti la sua azione diventa Passa il Turno . . . -> Viene risolta l'azione selezionata . . . Ora, onestamente, è davvero così difficile modificare le cose in questo modo ?
-
Davvero. Il ruby è forse il linguaggio con il miglior rapporto semplicità di programmazione/potenza di elaborazione . . . Tra l'altro, la difficoltà più grande per implementare la tua idea è trasformare Window_Skill in un sistema che permetta di inserire le parole per tentare di usare le skills, ma per quello non dico che puoi copia-incollare il codice del sistema per l'inserimento del nome eroe, però siamo lì . . .
-
Non è che devi fare come ho detto . . . Sono solo suggerimenti. Per la prima questione, comunque, sì, intendevo usare il campo del nome della skill per indicare quale parola ne fa scattare l'effetto . . . Anche perchè mi pare di capire che per il sistema che hai in mente non sia necessaria la classica finestra con la lista delle skill conosciute da cui si sceglie quale usare, quindi puoi sfruttare quel valore in altro modo . . . E la seconda idea, sempre all'insegna del raggiungere l'obbiettivo faticando il meno possibile, cioè sfruttando ciò che già esiste senza ricongeniarlo inutilmente da zero, suggeriva di estendere il sistema che dice se puoi usare una certa skill aggiungendo il confronto di cui hai parlato, così puoi usare anche requisiti, già contemplati o meno (come un costo in MP o il possesso di un oggetto), per vedere se attiva un qualche effetto . . . Ti faccio un piccolo esempio in pseudocodice, nel senso che nomi e dislocazioni dei metodi che userò non rispecchiano necessariamente quelli reali . . . def skill_can_use?(magic_word) spell = cast(magic_word) return false if (spell.nil? or spell == "") return false if spell.mp_cost > mp # blocco di codice con altre condizioni # che si devono avverare per poter usare la skill end def cast(magic_word) for skill_key in $data_skills.keys skill = $data_skills[skill_key] next if skill.nil? return skill if skill.name == magic_word end return nil end Ovviamente, il metodo skill_can_use? verrà chiamato in battaglia dopo che il giocatore ha inserito la parola con cui spera di lanciare una skill invece che per vedere se scriverlo in grigio nella finestra delle skill utilizzabili . . . E così via, riciclando tutto il possibile, con modifiche più o meno grandi a come lo usa l'engine . . .
-
Mi sembra che avesse sfornato almeno la versione 3.2, ma per essere sicuri conviene andare sul suo sito personale che si trova linkato nella firma dei suoi post del forum . . .
-
1) Il pannello Skill del DataBase ? (Nome skill è la parola da scrivere per usarla) 2) Modificare il metodo skill_can_use? (in Game_Actor ?) aggiungendo la verifica della parola inserita, ed implementare un metodo cast(parola) ?
-
In effetti, se guardi i vecchi metodi calc_mp_cost e skill_can_use? non dovrebbero funzionare in quanto ritornano sicuramente un valore prima di fare il controllo per la nuova feature . . . Devi riscrivere la versione con alias intercettando il return del vecchio metodo in una locale, e sovrascriverne il valore nella if della nuova funzione, o mettere il controllo prima della chiamata all'alias . . .
-
E' dovuto al fatto che i parametri vengono chiamati str_plus, dex_plus, agi_plus, ecc, ma in realtà si tratta di str, dex, agi, ecc, non i veri str_plus & co., quindi ho rimodificato lo script perchè faccia i confronti con i valori "corretti" . . . Adesso dovrebbe funzionare tutto . . .
-
No, la prima risposta che gli era stata data effettivamente non può "fisiologicamente" far uscire l'opzione del 2% o meno, perchè 2% è minore di 20%, quindi non può stare nell'else del 20% . . . La nuova invece dovrebbe funzionare . . . EDIT - @ Guardian: Ma per testare certe cose i risultati vanno ovviamente forzati, mica è utile andare a tentativi sperando che esca il valore che serve . . .
-
Non so perchè, ma ero convinto che questa versione già facesse 'sta cosa . . . Evidentemente lo confondo con un altro script simile . . . Dovrebbe funzionare, così modificato . . . EDIT - Mi sono accorto che non esistono metodi per sapere i parametri str_plus, dex_plus, agi_plus e int_plus . . . Ho fatto un'aggiunta che dovrebbe risolvere questa cosa . . .
-
Modifica al colore dei font in battaglia.
giver replied to Remias's question in Richieste scripts RGSS (XP)
class Window_Base < Window # ------------------------------------ BATTLE_LABEL_COLOR = Color.new(0, 0, 102) # BLU relativamente scuro BATTLE_HPMP_BASE_COLOR = Color.new(51, 51, 51) # GRIGIO relativamente scuro BATTLE_HPMP_CRISIS_COLOR = Color.new(51, 51, 0) # "GIALLO" molto scuro BATTLE_HPMP_KOUT_COLOR = Color.new(102, 0, 51) # "ROSSO" molto scuro # ------------------------------------ def draw_actor_hp(actor, x, y, width = 144) self.contents.font.color = $scene.is_a?(Scene_Battle) ? BATTLE_LABEL_COLOR : system_color self.contents.draw_text(x, y, 32, 32, $data_system.words.hp) if width - 32 >= 108 hp_x = x + width - 108 flag = true elsif width - 32 >= 48 hp_x = x + width - 48 flag = false end if $scene.is_a?(Scene_Battle) self.contents.font.color = actor.hp == 0 ? BATTLE_HPMP_KOUT_COLOR : actor.hp <= actor.maxhp / 4 ? BATTLE_HPMP_CRISIS_COLOR : BATTLE_HPMP_BASE_COLOR else self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color end self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2) if flag self.contents.font.color = $scene.is_a?(Scene_Battle) ? BATTLE_HPMP_BASE_COLOR : normal_color self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1) self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s) end end # ------------------------------------ def draw_actor_sp(actor, x, y, width = 144) self.contents.font.color = $scene.is_a?(Scene_Battle) ? BATTLE_LABEL_COLOR : system_color self.contents.draw_text(x, y, 32, 32, $data_system.words.sp) if width - 32 >= 108 sp_x = x + width - 108 flag = true elsif width - 32 >= 48 sp_x = x + width - 48 flag = false end if $scene.is_a?(Scene_Battle) self.contents.font.color = actor.sp == 0 ? BATTLE_HPMP_KOUT_COLOR : actor.sp <= actor.maxsp / 4 ? BATTLE_HPMP_CRISIS_COLOR : BATTLE_HPMP_BASE_COLOR else self.contents.font.color = actor.sp == 0 ? knockout_color : actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color end self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2) if flag self.contents.font.color = $scene.is_a?(Scene_Battle) ? BATTLE_HPMP_BASE_COLOR : normal_color self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1) self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s) end end # ------------------------------------ end Scritto "al volo", nell'editor dei messaggi, quindi non ho idea di come renda o se dia errori di sintassi . . . Va messo almeno sotto lo script Window_Base . . . -
Credo che sia da aumentare la y nella chiamata al metodo della finestra di status del menù, visto che sono più alti di quelli delle RTP . . .
-
Dovresti dire come hai modificato il metodo draw_actor_graphic di Window_Base, ma dovrebbe bastare mettere un 9 al posto del 4 quando viene calcolato cw, ed eventualmente mettere il quadruplo di cw come primo valore del src_rect (se vuoi mostrare la posa centrale della prima riga) . . .
-
Modifica al colore dei font in battaglia.
giver replied to Remias's question in Richieste scripts RGSS (XP)
Window_Base. Nei def relativi al disegno di HP ed MP, devi inserire una if, più o meno così if $scene.is_a?(Scene_Battle) # oppure if $game_temp.in_battle self.contents.font.color = Color.new(51, 51, 51) # Grigio abbastanza scuro else # Istruzione originale per scegliere il colore del testo end -
Il ruby è case-sensitive, quindi considera differenti Input, con la maiuscola, rispetto a input, con la minuscola . . . Bisogna scriverlo pari-pari a come appare nello screenshot del tutorial affinchè non dia errori . . .
