-
Posts
463 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Valentino
-
-
"Frustato a sangue sulla schiena si ritira nel suo stanzino e comincia a scriptare" ç_ç
-
Ecco fatto, inserite le 2 versioni ^^
"Piangendo perchè Aliuzz non li lascia un attimo di tregua ç_ç"
-
Ah allora forse è piu semplice di quello che ho fatto XD
Cioe basterebbe verificare ogni volta l'ultima opzione e fare tipo
un random da 0 a 100 se è minore di 10 allora permette di ripetere senno fa
un altra frase XD
-
-
Valentino's Random System
Descrizione
Dato che ho notato il lamentarsi del random di rpgmaker mi sono dato da fare XD
Questo script permette di rendere il random più random XD Cioe è stato creato per i messaggi, ma può avere anche altri utilizzi. In pratica lo script fa si che il valore ottenuto col random non sia mai il precedente (o se le scelte sono piu di due, anche il penultimo valore), il valore viene attribuito a una variabile del gioco e può essere utilizzata con gli eventi XD
Ah si, un valore prima di ripetersi, dovrà aspettare che vengano ottenuti tutti gli altri valori ^^
Il fatto dell'ultimo e del penultimo valore servono per quando si ridà la possibilità di ottenere tutti i valori, e quindi per evitare che venga un valore da poco ottenuto XDAutore
Avon Valentino (Io)
Allegati
Demo Link:
VERS 1
http://www.mediafire.com/?25hufmdfm9ox4j8
VERS 2
http://www.mediafire.com/download.php?fced0pd8b8s1x4c
Script:
VERSIONE 1, Valori sempre diversi
#Script creato da Valentino Avon, se lo usate, creditatemi ;) #Spiegazione: Per ottenere l'effetto random, inserire come primo comando #di un evento il commento "random", e un secondo commento come secondo #comando: $game_map.events[iD_EVENTO].num(MIN,MAX) #dove MIN e MAX sono due valori estremi (per rappresentare il numero di scelte) #Per esempio se MIN è 1 e MAX è 4 l'evento prenderà tutti i valori tra 1 e 4 #compresi. #Questo servirà per fare le condizioni nell'evento. #Dopo i due commenti inserire un call script con scritto: #$game_map.events[iD_EVENTO].random(ID_VARIABILE) #con questo viene attivato il processo di random che determina un valore sempre #diverso, e lo restituisce alla variabile definita da ID_VARIABILE. #Successivamente si inseriscono tutte le condizioni SE riferite alla variabile #per fare accadere quello che si vuol fare accadere XD class Game_Event < Game_Character attr_accessor :numeri attr_accessor :backup alias random_initialize initialize def initialize(map_id, event) random_initialize(map_id, event) @numeri = [] @backup = [] @ultima = nil @penultima = nil @conto = 0 end def set_num if @list[0].parameters[0] == "random" script = @list[1].parameters[0] #+ "n" result = eval(script) end end #impostare numeri def num(min,max) for i in min..max @numeri.push(i) end @backup = @numeri.dup end #random della variabile def random(var) @conto += 1 if @numeri.empty? @numeri = @backup.dup end loop do n_1 = rand(@numeri.size) p1 = @numeri[n_1] $game_variables[var] = p1 break if prob(var) end @numeri.delete($game_variables[var]) @penultima = $game_variables[var] if @backup.size > 2 and @conto == 1 @ultima = $game_variables[var] if @backup.size > 1 and @conto == 2 if @backup.size == 2 @ultima = $game_variables[var] end if @conto == 2 @conto = 0 end return $game_variables[var] end def prob(var) if @penultima == $game_variables[var] or @ultima == $game_variables[var] return false end return true end end class Game_Map alias events_setup setup def setup(map_id) events_setup(map_id) for i in @map.events.keys @events[i].set_num end end end
VERSIONE 2, Valori ripetuti con una probabilita configurabile
#Script creato da Valentino Avon, se lo usate, creditatemi ;) #Spiegazione: Per ottenere l'effetto random, inserire come primo comando #di un evento il commento "random", e un secondo commento come secondo #comando: $game_map.events[iD_EVENTO].num(MIN,MAX) #dove MIN e MAX sono due valori estremi (per rappresentare il numero di scelte) #Per esempio se MIN è 1 e MAX è 4 l'evento prenderà tutti i valori tra 1 e 4 #compresi. #Questo servirà per fare le condizioni nell'evento. #Dopo i due commenti inserire un call script con scritto: #$game_map.events[iD_EVENTO].random(ID_VARIABILE) #con questo viene attivato il processo di random che determina un valore sempre #diverso, e lo restituisce alla variabile definita da ID_VARIABILE. #Successivamente si inseriscono tutte le condizioni SE riferite alla variabile #per fare accadere quello che si vuol fare accadere XD #percentuale di probabilita che permette nel caso la ripetizione dello stesso messaggio PROBABILITA = 10 class Game_Event < Game_Character attr_accessor :numeri alias random_initialize initialize def initialize(map_id, event) random_initialize(map_id, event) @numeri = [] @ultima = nil end def set_num if @list[0].parameters[0] == "random" script = @list[1].parameters[0] #+ "n" result = eval(script) end end #impostare numeri def num(min,max) for i in min..max @numeri.push(i) end end #random della variabile def random(var) loop do n_1 = rand(@numeri.size) p1 = @numeri[n_1] $game_variables[var] = p1 break if prob(var) end @ultima = $game_variables[var] if @numeri.size > 1 return $game_variables[var] end def prob(var) if @ultima == $game_variables[var] and rand(100) >= PROBABILITA return false else return true end end end class Game_Map alias events_setup setup def setup(map_id) events_setup(map_id) for i in @map.events.keys @events[i].set_num end end end
Istruzioni per l'uso
Trovate tutto all'interno dello script, se lo usate creditatemi

Bugs e Conflitti Noti
Non dovrebbero essercene... Per qualsiasi cosa contattatemi!
-
Grande Vale!!!XD
Grazie mille XD Comunque ti avevo detto, la pecca è la grafica XD
-
Bon ma non sarebbe bello rimanere tanto depotenziato XD Cioe alla fine sarebbe un po una rogna
-
No cioè devi togliere l'assegnazione di 100 alla variabile che contiene la finestra, a me funge!
-
Ahhhhhhhhhhhhhhhhhhh adesso ho capito l'errore, perchè hai dato alla variabikle che contiene la finestra il valore 100, che si sostituisce alal finestra e quindi da errore perchè fa il refresh di 100 XD
-
Secondo me la mappa del covo degli shinigami è un po ripetitiva, troppi cristalli XD, secondo me dovresti aggiungere qualche dettaglio sostituendolo a un po di cristalli
La grotta invece in sè è abbastanza carina, solo che è un po' strettina XD Ma in fondo, non ce male.
L'unica cosa: il laghetto a sinistra perfettamente parallelo al muro non so non mi ispira tanto XD
Comunque, vedo che usi gli autotiles quadrati, io quelli che arrotondano gli spigoli se vuoi :D
Un consiglio: Prova anche a fare vari livelli, mettendo tipo una mini scaletta per esempio per il pezzo a destra, renderebbe molto di più :)
Ok ora puoi bastonarmi XD
-
Togli lo spazio che hai lasciato tra self.contents.draw_text e la parentesi :)
-
class Window_Rianimazione < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 320, 100) self.contents = Bitmap.new(width - 32, height - 32) refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.draw_text (0, 0, 120, 32, $game_variables[0005].to_s, 2) end end
Mmm Perchè hai reso la finestra una finestra selezionabile se gli fai scrivere solo un valore?
Per quel tipo di finestre la finesra da cui far ereditare le funzioni è la Window_Base,
Comunque, togli l'update e prova a mettere dopo la pressione del tasto C
@window_rianimazione.refresh
cosi: (Nella scena, non nella Window)
def update if Input.trigger?(Input::C) $game_variables[0005] += 1 @window_rianimazione.refresh end end
-
Diciamo che il secondo metodo è quello più pulito visto che creando una nuova scena quelle di base rimangono invariate.
Ora ho un altro problema :
class Scene_Rianimazione def main @window_rianimazione = Window_Rianimazione.new @window_rianimazione = 100 @time = 0 @spriteset = Spriteset_Map.new Graphics.transition loop do Graphics.update Input.update update time if $scene != self break end end Graphics.freeze @spriteset.dispose @window_rianimazione.dispose end def update @window_rianimazione.update if Input.trigger?(Input::C) $game_variables[0005] += 1 end end end def time @time += 1 if @time > 50 if $game_variables[0005] >= 10 $scene = Scene_Lotta.new else $game_variables[0005] <= 0 $scene = Scene_Title.new end end end
Mi dà un errore alla riga dove ho scritto window_Rianimazione.update.
Però se lo tolgo dopo la finestra non si aggiornerebbe sul valore della variabile [0005]...Ed inoltre alla pressione del tasto C la variabile stessa non aumenta O.o Non riesco ad uscirne..
Bisognerebbe vedere la struttura della Window Rianimazione per poter dire qualcosa
-
Ma non basterebbe che il codice venga riscritto così ?
if $game_temp.gameover # Switch to game over screen $game_temp.gameover = false $game_switches[2] = true $game_map.need_refresh = true return end
Putroppo così facendo mi bloccava lo stesso O_o XD
-
Woww XD Beeello vedere che vi battete per me
Apparte gli scherzi XD
@Zoro the gallade
Preannuncio che fare mappe non è il mio punto di forza, ma se vuoi posso fartene qualcuna, ma entrare in un altro progetto nono XD Sono gia molto impegnato, ed è un mese emezzo che sto andando avanti a compiti e interrogazioni...
Comunque, come dicevo prima, se vuoi te ne modifico qualcuna ma giusto QUALCUNA XD Perchè non mi pare giusto nei confronti di chi comunque mi chiede dei lavori e paga in rens :)
-
Ragazzi ho un problema,volevo modificare il gameover automatico alla morte dell'eroe...Allora ho modificato in questo modo la scene_map:
if $game_temp.gameover # Switch to game over screen $game_switches[2] = true return end
Però così facendo il gioco rimane immobile in mappa...L'evento che si dovrebbe attivare con la switch non parte...Dove ho sbagliato?
Ci ho messo un po per capirlo, ma alla fine ce l'ho fatta XD
Intanto sostituisci quello che hai scritto con:
if $game_temp.gameover # Switch to game over screen #$scene = Scene_Gameover.new $game_switches[2] = true $game_map.need_refresh = true return end
Poi vai nel interpreter 7 e trova il comando 353
Copia questo e sostituiscilo a quello:
def command_353 # Set game over flag $game_temp.gameover = true @index += 1 # End return false end
-
non è proprio quello ma ci sei andato vicino XD per avere il numero di eroi del party il comando è:
$game_party.actors.size
Cioe se tu per esempio devi verificare che ci siano almeno 4 eroi nel party metti condizione:
if $game_party.actors.size > 3QUALCOSA_SUCCEDEend
E cosi via...
-
Ma è IMPOSSIBILE XDXD La variable calcio non è stata creata XDXD
Riesci a mandarmi il progetto (quello nuovo appena creato), e vedo sto errore e controll per bene O_o
Ora è una questione di principio XD
-
Hai provato a mettere in un nuovo progetto?
perchè a me funziona...
-
Eh allora è impossibile che dia errore sul game system...
Hai per caso caricato una partita salvata?
-
Purtroppo no °_° Ora ti posto quello che ho copiato nella classe e che continua a darmi per errato!
class Window_Command < Window_Selectable def command return @commands[index] endend class Scene_Lotta def main comandi = ["Pugno","Suplex","Dropkick","Irish whip"] comandi.unshift("Calcio") if $game_actors[1].sp == $game_actors[1].maxsp @select_window = Window_Command.new(192, comandi) @select_window.x = 0 @select_window.y = 100 @select_window.opacity = 100 @window_hud_tigre = Window_HUD_Tigre.new @spriteset = Spriteset_Map.new Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @select_window.dispose @spriteset.dispose @window_hud_tigre.dispose end def update @select_window.update @window_hud_tigre.update if Input.trigger?(Input::C) case @select_window.command when "Calcio" $game_variables[4] += 5 when "Pugno" $game_variables[1] += 3 when "Suplex" $game_variables[1] += 20 when "Dropkick" $game_variables[1] += 15 when "Irish whip" $game_variables[1] += 5 end $game_system.se_play($data_system.decision_se) $game_map.need_refresh = true $scene = Scene_Map.new end endendOddio XD Rpg maker schizza male XD Prova a fare cosi:
Fai clic destro sulla lista degli script (a sinistra)
fai FIND
E scrivi Calcio
Vedi se trova qualcosa...
Se trova qualcosa vuol dire che non hai cancellato tutta la parte che non serve
-
No, se hai preso il mio ultimo script e l'hai sostituito a tutto la variabile calcio non c'è più, è impossibile che ti dia quell'errore, probabilmente hai mantenuto qualche pezzo e allora dato che nello script che ti ho dato non ce più, da errore!
Copia esattamente sostituendo tutto

-
Mi dà un errore di metodo evidenziando la classe window_command O.o
Strano a me non da nessun errore e fila tutto liscio O_o
Comunque avevo dimenticato di aggiungere ai dispose lo @spriteset.dispose
class Window_Command < Window_Selectable def command return @commands[index] endend class Scene_Lotta def main comandi = ["Pugno","Suplex","Dropkick","Irish whip"] comandi.unshift("Calcio") if $game_actors[1].sp == $game_actors[1].maxsp @select_window = Window_Command.new(192, comandi) @select_window.x = 0 @select_window.y = 100 @select_window.opacity = 255 @window_hud = Window_HUD.new @window_hud.opacity = 255 @spriteset = Spriteset_Map.new Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @select_window.dispose @spriteset.dispose @window_hud.dispose end def update @select_window.update @window_hud.update if Input.trigger?(Input::C) case @select_window.command when "Calcio" $game_variables[4] += 5 when "Pugno" $game_variables[1] += 3 when "Suplex" $game_variables[1] += 20 when "Dropkick" $game_variables[1] += 15 when "Irish whip" $game_variables[1] += 5 end $game_system.se_play($data_system.decision_se) $game_map.need_refresh = true $scene = Scene_Map.new end endendNon so perchè ma senza la prima volta andava normale, poi crashava XD
Prova con questo a me va ^^
-
Sono cattivo e non te lo dico U_U ma chissà potrebbe essere:
$game_screen.weather(nil, 1, 0)
oppure
$game_screen.weather(nil, 1, 0, 0)
dato che nella descrizione servono 4 parametri XD, dovrei vedere lo script, ma ricordo che per una versione che io funzionava ^^
EDIT: ah questa di usare gli eventi non la sapevo XD

*Valentino's Random System
in Scripts RGSS (XP)
Posted · Edited by Valentino
Ho messo la versione 2 perchè succeda che tutte le opzioni di messaggio possano uscire, ma la probabilità che esca la stessa di quella precedente è di default il 10 percento ^^
@SIMO696
Grazie mille! ^^