Č normale che nella demo va e in un nuovo progetto con solo lo script di supporto dā questo errore:
Allora č possibile che proprio quello script di supporto dā problemi di compatibilitā ^^
#22 Inviato 04 August 2013 - 20:32 PM
"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]
Miei script per RPG Maker VX Ace:
#23 Inviato 04 August 2013 - 20:34 PM
Nuovi progetti:
Come allegare immagini al forum Bottega Rise of The Hero
Script
KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace
#24 Inviato 05 August 2013 - 00:39 AM
Mmmh sicuro? Non mi pare ci siano versioni con script sballati! D:
^ ^
(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
disponibile su Google Play, qui i dettagli! ^ ^
completo! Giocabile online, qui i dettagli! ^ ^
REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^
🖤
E:3
by Testament (notare dettaglio in basso a destra)! E:3
by Idriu E:3
Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"
<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
by Flame ^ ^
Grazie Testament XD Fan n°1 ufficiale di PQ! :D
Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)
Rosso Guardiano della
Rpg2s RPG BY FORUM:
PV totali 2
PA totali 16
Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.
Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan
Spada a due mani elsa lunga
Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)
Scrinieri da lanciere (2 PA)
Elmo del Leone (5 PA)
Corazza del Leone in Ferro Corrazzato (7 PA)
ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)
Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca
Semi di Balissa
CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani
Fagotto per Adara (fazzoletto ricamato)
#25 Inviato 05 August 2013 - 18:38 PM
L'Universal Module l'hai incollato sopra a quello degli obiettivi, vero?
"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]
Miei script per RPG Maker VX Ace:
#26 Inviato 05 August 2013 - 19:53 PM
si, naturalmente
Nuovi progetti:
Come allegare immagini al forum Bottega Rise of The Hero
Script
KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace
#27 Inviato 06 August 2013 - 10:04 AM
si, naturalmente
Hai altri script nel progetto? Puoi elencarmeli?
"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]
Miei script per RPG Maker VX Ace:
#28 Inviato 06 August 2013 - 14:26 PM
Ehi holy ho scaricato la demo e ci ho fatto il mio progetto e quindi ci ho inseriti altri script...perō quando cerco di fuggire da una battaglia e fallisce mi si blocca...non sarā un errore di incompatibilitā perchč li ho rinossi tutti e rifatto...uguale
#29 Inviato 06 August 2013 - 14:28 PM
Ehi holy ho scaricato la demo e ci ho fatto il mio progetto e quindi ci ho inseriti altri script...perō quando cerco di fuggire da una battaglia e fallisce mi si blocca...non sarā un errore di incompatibilitā perchč li ho rinossi tutti e rifatto...uguale
Dettagli sull'errore come tipo e riga sarebbero graditi, non sono ancora un indovino...
"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]
Miei script per RPG Maker VX Ace:
#31 Inviato 06 August 2013 - 14:32 PM
E' questa la cosa bella...si blocca e basta la canzone continua ma non mi fa fare pių nulla xD
Cioč, non esce alcun messaggio di errore?
"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]
Miei script per RPG Maker VX Ace:
#33 Inviato 06 August 2013 - 14:48 PM
Ho capito l'origine dell'errore. Sostituisci il metodo def self.process_escape con questo
def self.process_escape success = h87ach_pe $game_party.total_escapes += 1 if success return success end
Quando finisco di aggiungere altre migliorie pubblicherō lo script aggiornato.
"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]
Miei script per RPG Maker VX Ace:
#34 Inviato 06 August 2013 - 16:08 PM
Hai altri script nel progetto? Puoi elencarmeli?
Nuovi progetti:
Come allegare immagini al forum Bottega Rise of The Hero
Script
KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace
#35 Inviato 06 August 2013 - 16:12 PM
"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]
Miei script per RPG Maker VX Ace:
#36 Inviato 06 August 2013 - 16:19 PM
Nuovi progetti:
Come allegare immagini al forum Bottega Rise of The Hero
Script
KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace
#37 Inviato 06 August 2013 - 17:30 PM
Entrambi non danno problemi... Mi puoi dire cosa c'č scritto alla riga dell'errore e quando lo fa?
"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]
Miei script per RPG Maker VX Ace:
#38 Inviato 06 August 2013 - 17:35 PM
def get_achievement_state
name = sprintf("Ach%3d",@id)
if $game_settings[name] != nil
@unlocked = true
@date = $game_settings[name]
else
@unlocked = false
@date = ""
end
end
la riga evidenziata č quella dell'errore, avviene all'avvio del test o del gioco fuori dall'editor.
Nuovi progetti:
Come allegare immagini al forum Bottega Rise of The Hero
Script
KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace
#39 Inviato 06 August 2013 - 17:41 PM
Lo script degli obiettivi č configurato cosė:
$imported = {} if $imported == nil $imported["H87_Achievements"] = true #=============================================================================== # SISTEMA OBIETTIVI #=============================================================================== # Autore: Holy87 # Versione: 1.0 # Difficoltā utente: ??? # RICHIEDE IL MODULO UNIVERSALE #------------------------------------------------------------------------------- # Questo script ti permetterā di implementare obiettivi e trofei nel gioco! Ora # anche il tuo gioco puō essere professionale come quelli pių famosi. # Gli obiettivi sbloccati verranno automaticamente memorizzati anche se non hai # salvato la partita, e sono indipendenti dal salvataggio. Questo significa che # puoi creare obiettivi che richiedono di giocare la stessa partita pių volte, # come "Finisci il gioco con il finale migliore" e "Finisci il gioco con il # finale peggiore". # Puoi impostare gli obiettivi per essere sbloccati tramite eventi nel gioco, # oppure all'attivazione di alcune switch o variabili, oppure al raggiungimento # di un certo numero di battaglie, denaro accumulato ecc..., tutto in modo # semplice e che non richiede particolari abilitā nello script! # Questo script puō: # ? Mostrare la lista degli obiettivi sbloccati nella schermata principale # ? mostrare un pop-up universale al raggiungimento di un determinato obiettivo # ? i pop-up sono universali, possono essere mostrati non solo in mappa, ma # anche dal menu, in battaglia e ovunque! # ? Se pių obiettivi vengono sbloccati contemporaneamente (cosa rara, ma # possibile), lo script provvederā a mostrare i pop-up successivi appena dopo # la scoparsa del precedente. # ? Si possono impostare gli obiettivi "nascosti" #------------------------------------------------------------------------------- # Istruzioni: # Copiare lo script sotto Materials, prima del Main. Icone degli obiettivi, # immagine di sfondo della schermata e immagine del pop-up vanno tutti nella # cartella Graphics\Pictures. # Creare gli obiettivi nella sezione pių in basso seguendo le istruzioni. # Se vuoi sbloccare un obiettivo da evento, usa un Chiama Script con questo # comando: unlock_achievement(id), dove id č l'ID dell'obiettivo. # #------------------------------------------------------------------------------- # Compatibilitā: # Compatibile con tutti gli script, compreso "Menu Titolo Personalizzato". #------------------------------------------------------------------------------- # Note: # Il rilevamento degli obiettivi da switch e variabili funziona solo se cambiate # da evento e non da Switch. Questo per evitare lag. # Sempre per evitare lag, il controllo sul tempo di gioco viene effettuato # quando si cambia schermata. #------------------------------------------------------------------------------- module H87_Achievements #=============================================================================== # ** CONFIGURAZIONE ** #=============================================================================== #Inserimento dell'elenco dei trofei. Inserire come da esempio: #1 => [A,B,C,D,E,F,G,H], #2 => [A,B,C,D,E,F,G,H], #3 .... #A: File immagine che rappresenta l'icona del trofeo #B: Nome dell'obiettivo #C: Descrizione dell'obiettivo (vai a capo con il carattere "|") #D: Punteggio ottenuto conquistando l'obiettivo #E: false se č visibile, true se č nascosto e visibile solo al compimento #F: Come si sblocca # 0: In modo manuale # 1: All'attivazione di un preciso switch # 2: Al valore di una precisa variabile # 3: Denaro # 4: Denaro totale ottenuto # 5: Livello raggiunto con un qualsiasi eroe # 6: Passi totali # 7: Salvataggi # 8: Combattimenti vinti # 9: Fughe # 10: Combattimenti totali # 11: Oro speso al negozio # 12: Oro guadagnato dalla vendita di oggetti # 13: Tempo di gioco totale (in ore) # 14: Numero ottenuto di uno specifico tipo di oggetto #G: Solo nei casi dal 2 in poi, inserire il valore da raggiungere. #H: Nel caso di switch o variabile, inserire l'ID della # switch o della variabile. Nel caso 14, inserire l'ID dell'oggetto. # -------------------------------------------------------------------------- # * Sezione Obiettivi # -------------------------------------------------------------------------- Trophies = { #ID A B C D E F G H 1 => ["Prima missione","Inizia l'avventura!","Accetta la prima missione",10,false, 1, nil,1], 2 => ["Boss", "Ammazzaboss", "Sconfiggi il boss", 50,false, 0], 3 => ["Livello", "Livello 5!", "Raggiungi il livello 5", 20,false, 5, 5], 4 => ["Passi2", "Maratoneta", "Compi 200 passi", 10,true,6,200], 5 => ["Passi", "Combattente", "Vinci 10 combattimenti", 20,false, 8, 10], 6 => ["Soldi", "Soldi!", "Guadagna 20 argenti", 20,false, 4,2000], 7 => ["Scrigni", "Trovatore", "Apri 5 scrigni", 10,true,2, 5, 1], 8 => ["Salvataggio", "Prudente", "Salva il gioco 3 volte", 10,true,7, 3], } # -------------------------------------------------------------------------- # * Sezione Vocaboli # -------------------------------------------------------------------------- # Testo del menu nella schermata del titolo ACHVTEXT = "Obiettivi" # Testo del nome obiettivo se nascosto HIDDTEXT = "Obiettivo nascosto" # Testo descrizione dell'obiettivo se nascosto (un | va a capo) HIDDDESC = "Continua a giocare per sbloccare quest'obiettivo." # Testo dei punteggi ottenuti dagli obiettivi sbloccati POINTEXT = "Punteggio:" # Testo del totale degli obiettivi sbloccati UNLKTEXT = "Sbloccati:" # Testo che viene mostrato se l'obiettivo č bloccato LOCKTEXT = "Obiettivo bloccato" #Testo che viene mostrato se l'obiettivo č stato sbloccato DATETEXT = "Ottenuto il" #Testo del valore dell'obiettivo VALRTEXT = "punti" #Testo sul pop-up quando č stato sbloccato un obiettivo UNLOCKNEW = "Obiettivo completato!" # -------------------------------------------------------------------------- # * Sezione Immagini # -------------------------------------------------------------------------- # Imposta true se le finestre della schermata degli obiettivi devono essere # trasparenti. Transparent = false # Seleziona il file immagine usato come sfondo nella finestra degli obiettivi. BACKIMAGE = "" # "" se non lo vuoi # Seleziona il file immagine che viene usato per mostrare il popup quando # viene completato un obiettivo. RECTIMAGE = "Achievements_Rect" # Solo se hai anche lo script Menu Titolo Personalizzato, imposta l'immagine # del pulsante "Trofei" nella schermata principale OBJIMAGE = "T_Trofei" # Anche qui solo se hai lo script MTP, imposta l'immagine del fumetto. BALIMAGE = "B_Trofei" # Velocitā di scorrimento delle immagini nella schermata degli obiettivi SPEED = 2 #1: immediato 2: velocissimo 3: veloce 4: normale # -------------------------------------------------------------------------- # * Sezione Pop-Up # -------------------------------------------------------------------------- # Per quanti frame deve restare il pop-up prima di scomparire? BANNERTIME = 300 # Impostazioni per la scritta superiore del pop-up ("Obiettivo sbloccato") UTF = "Arial" #Font UTG = 20 #Grandezza UTC = [255,255,255] #Colore (Rosso,Verde,Blu) UTB = true #Testo in grassetto? (true=grassetto) UTI = false #Testo in corsivo? (true=corsivo) UTS = false #Ombra testo? (true=si) #Impostazioni per la scritte inferiore (nome dell'obiettivo) DTF = "Arial" #Font DTG = 15 #Grandezza DTC = [255,255,255] #Colore (Rosso,Verde,Blu) DTB = false #Testo in grassetto? (true=grassetto) DTI = false #Testo in corsivo? (true=corsivo) DTS = false #Ombra testo? (true=si) ADJUSTX = 0 #modifica la distanza dal centro (coord x) ADJUSTY = 0 #modifica la distanza dal centro (coord y) # -------------------------------------------------------------------------- # * Sezione Audio # -------------------------------------------------------------------------- # Scegli se al completamento di un obiettivo si esegue un SE o un ME (fanfara) PlayME = true #true = ME, false = SE # Inserisci il nome del file audio da riprodurre SE = "Fanfare1" # -------------------------------------------------------------------------- # * Sezione Altro # -------------------------------------------------------------------------- # Extra: Seleziona i membri del gruppo che non vuoi che siano considerati # quando si controlla il livello massimo del gruppo (ID separati da virgola) ExludedMembers = [] #=============================================================================== # ** FINE CONFIGURAZIONE ** # Attenzione: Non modificare ciō che c'č oltre, a meno che tu non sappia ciō che # fai! C'č gente che si č suicidata per molto meno, fidati. #=============================================================================== #=============================================================================== # ** modulo H87_Achievements #=============================================================================== # -------------------------------------------------------------------------- # * Esegue il controllo sugli obiettivi # -------------------------------------------------------------------------- def self.check(type,param = 0) case type when 1 # se controllo switch if $cache_switches_achievements.include?(param) and $game_switches[param] for i in 1..$game_achievements.size achievement = $game_achievements[i] next if achievement.unlocked? next if achievement.condition != 1 if achievement.object == param $cache_switches_achievements.delete_at(param) unlock_achievement(i) end end end when 2 # se controllo variabili if $cache_variables_achievements.include?(param) for i in 1..$game_achievements.size achievement = $game_achievements[i] next if achievement.unlocked? next if achievement.condition != 2 if achievement.object == param and $game_variables[param] >= achievement.max_value $cache_variables_achievements.delete_at(param) unlock_achievement(i) end end end else extra_check(type,param) # se altro end end # -------------------------------------------------------------------------- # * Esegue un controllo sul resto delle condizioni # -------------------------------------------------------------------------- def self.extra_check(type,param) for i in 1..$game_achievements.size achievement = $game_achievements[i] next if achievement.unlocked? next if achievement.condition != type vv = achievement.max_value case type when 3 # oro del gruppo unlock_achievement(i) if $game_party.gold >= vv when 4 # oro totale guadagnato unlock_achievement(i) if $game_party.total_gold >= vv when 5 # livello massimo raggiunto unlock_achievement(i) if $game_party.total_max_level >= vv when 6 # passi totali unlock_achievement(i) if $game_party.steps >= vv when 7 # conteggio salvataggi unlock_achievement(i) if $game_system.save_count >= vv when 8 # vittorie totali unlock_achievement(i) if $game_party.total_victories >= vv when 9 # fughe totali unlock_achievement(i) if $game_party.total_escapes >= vv when 10 #battaglie totali unlock_achievement(i) if $game_party.total_battles >= vv when 11 #totale oro speso unlock_achievement(i) if $game_party.total_gold_spent >= vv when 12 #totale oro guadagnato vendendo unlock_achievement(i) if $game_party.total_sell >= vv when 13 #totale ore di gioco unlock_achievement(i) if total_hours >= vv when 14 #totale numero di un oggetto unlock_achievement(i) if $game_party.total_items($data_items[param].id) >= vv end end end # -------------------------------------------------------------------------- # * Restituisce le ore totali di gioco # -------------------------------------------------------------------------- def self.total_hours sec = Graphics.frame_count / Graphics.frame_rate return sec / 3600 end # -------------------------------------------------------------------------- # * Comando che sblocca l'obiettivo # id = id obiettivo # -------------------------------------------------------------------------- def self.unlock_achievement(id) return if id > $game_achievements.size return if $game_achievements[id].unlocked? $game_achievements[id].unlock SceneManager.scene.push_banner(id) end # -------------------------------------------------------------------------- # * Restituisce i punti ottenuti da tutti gli obiettivi sbloccati # -------------------------------------------------------------------------- def self.gained_points count = 0 for i in 1..$game_achievements.size ach = $game_achievements[i] count += ach.reward if ach.unlocked? end return count end # -------------------------------------------------------------------------- # * Restituisce il totale punti di tutti gli obiettivi # -------------------------------------------------------------------------- def self.total_points count = 0 for i in 1..$game_achievements.size ach = $game_achievements[i] count += ach.reward end return count end # -------------------------------------------------------------------------- # * Restituisce il numero degli obiettivi sbloccati # -------------------------------------------------------------------------- def self.unlockeds count = 0 for i in 1..$game_achievements.size ach = $game_achievements[i] count += 1 if ach.unlocked? end return count end # -------------------------------------------------------------------------- # * Restituisce il numero di obiettivi totali # -------------------------------------------------------------------------- def self.total_achievements return $game_achievements.size end end #=============================================================================== # ** classe Scene_Achievements #------------------------------------------------------------------------------ # Questa č la schermata dove vengono visualizzati gli obiettivi #============================================================================== class Scene_Achievements < Scene_MenuBase # -------------------------------------------------------------------------- # * start # -------------------------------------------------------------------------- def start super create_background create_status_window create_achievement_window create_info_window if H87_Achievements::Transparent @status_window.opacity = 0 @info_window.opacity = 0 end end # -------------------------------------------------------------------------- # * aggiornamento # -------------------------------------------------------------------------- def update super exit if Input.trigger?(Input::B) @achievement_window.update end # -------------------------------------------------------------------------- # * aggiunta dello sfondo # -------------------------------------------------------------------------- def create_background super @plus_sprite = Sprite.new @plus_sprite.bitmap = Cache.picture(H87_Achievements::BACKIMAGE) end # -------------------------------------------------------------------------- # * eliminazione dello sfondo # -------------------------------------------------------------------------- def dispose_background super @plus_sprite.dispose end # -------------------------------------------------------------------------- # * gestione uscita dalla schermata # -------------------------------------------------------------------------- def terminate super dispose_background dispose_achievement_window dispose_info_window dispose_status_window end # -------------------------------------------------------------------------- # * creazione finestra di status # -------------------------------------------------------------------------- def create_status_window @status_window = Window_AchievementStatus.new @status_window.y = Graphics.height - @status_window.height end # -------------------------------------------------------------------------- # * creazione finestra informazioni # -------------------------------------------------------------------------- def create_info_window y = @achievement_window.height w = Graphics.width h = Graphics.height - y - @status_window.height @info_window = Window_AchievementInfo.new(0,y,w,h) @achievement_window.set_info(@info_window) end # -------------------------------------------------------------------------- # * creazione finestra degli obiettivi # -------------------------------------------------------------------------- def create_achievement_window @achievement_window = Window_Achievements.new end # -------------------------------------------------------------------------- # * eliminazione della finestra obiettivi # -------------------------------------------------------------------------- def dispose_achievement_window @achievement_window.dispose end # -------------------------------------------------------------------------- # * eliminazione finestra status # -------------------------------------------------------------------------- def dispose_status_window @status_window.dispose end # -------------------------------------------------------------------------- # * eliminazione finestra info # -------------------------------------------------------------------------- def dispose_info_window @info_window.dispose end # -------------------------------------------------------------------------- # * uscita e ritorno alla mappa/titolo # -------------------------------------------------------------------------- def exit Sound.play_cancel SceneManager.return end end #=============================================================================== # ** classe Window_Achievements (non č una vera finestra!) #------------------------------------------------------------------------------ # Mostra le icone degli obiettivi come elenchi #============================================================================== class Window_Achievements # -------------------------------------------------------------------------- # * inizializzazione # -------------------------------------------------------------------------- def initialize @index = 0 refresh end # -------------------------------------------------------------------------- # * refresh # -------------------------------------------------------------------------- def refresh @emblems = [] for i in 1..$game_achievements.size @emblems.push(create_emblem($game_achievements[i])) end end # -------------------------------------------------------------------------- # * settaggio del riferimento della finestra info da aggiornare # -------------------------------------------------------------------------- def set_info(info_window) @info_window = info_window update_info end # -------------------------------------------------------------------------- # * creazione degli emblemi # achievement: obiettivo # -------------------------------------------------------------------------- def create_emblem(achievement) sprite = Sprite.new sprite.bitmap = Cache.picture(achievement.icon) if achievement.unlocked? sprite.opacity = 255 else sprite.opacity = 50 if achievement.hidden? sprite.tone.set(-255,-255,-255,255) end end sprite.ox = sprite.width/2 sprite.oy = sprite.height/2 sprite.y = self.height / 2 return sprite end def width; return Graphics.width; end #restituisce la larghezza def height; return 150; end #restituisce l'altezza # -------------------------------------------------------------------------- # * eliminazione degli emblemi # -------------------------------------------------------------------------- def dispose for i in [email protected] @emblems[i].dispose end end # -------------------------------------------------------------------------- # * aggiornamento # -------------------------------------------------------------------------- def update left if Input.repeat?(Input::LEFT) right if Input.repeat?(Input::RIGHT) update_objects end # -------------------------------------------------------------------------- # * azione sinistra # -------------------------------------------------------------------------- def left return if @index <= 0 @index -= 1 Sound.play_cursor update_info end # -------------------------------------------------------------------------- # * azione destra # -------------------------------------------------------------------------- def right return if @index >= @emblems.size-1 @index += 1 Sound.play_cursor update_info end # -------------------------------------------------------------------------- # * aggiornamento degli oggetti # -------------------------------------------------------------------------- def update_objects for i in [email protected] update_emblem(i) end end # -------------------------------------------------------------------------- # * aggiornamento della singola icona # index = indice dell'icona # -------------------------------------------------------------------------- def update_emblem(index) emblem = @emblems[index] sp = H87_Achievements::SPEED if @index == index if emblem.zoom_x < 1 distanza = 1 - emblem.zoom_x emblem.zoom_x += distanza/sp emblem.zoom_y += distanza/sp end else if emblem.zoom_x > 0.5 distanza = 0.5 - emblem.zoom_x emblem.zoom_x += distanza/sp emblem.zoom_y += distanza/sp end end if emblem.x != graphic_center(index) distanza = graphic_center(index) - emblem.x emblem.x += distanza / sp end end # -------------------------------------------------------------------------- # * restituisce la posizione che deve avere ogni icona # -------------------------------------------------------------------------- def graphic_center(index = @index) center = self.width/2 if index > @index center += (@emblems[index].width + @emblems[@index].width)/2 for i in @index+1..index-1 center += @emblems[i].width# * @emblems[i].zoom_x end elsif index < @index center -= ((@emblems[index].width + @emblems[@index].width)/2) for i in index+1..@index-1 center -= @emblems[i].width# * @emblems[i].zoom_x end end return center end # -------------------------------------------------------------------------- # * aggiornamento della finestra info con l'indice attuale # -------------------------------------------------------------------------- def update_info @info_window.set($game_achievements[@index+1]) end end #window_achievement #=============================================================================== # ** classe Window_AchievementStatus #------------------------------------------------------------------------------ # Finestra che mostra il numero di obiettivi sbloccati #============================================================================== class Window_AchievementStatus < Window_Base # -------------------------------------------------------------------------- # * inizializzazione # -------------------------------------------------------------------------- def initialize super(0,Graphics.height-(line_height*32),Graphics.width,line_height+32) refresh end # -------------------------------------------------------------------------- # * refresh # -------------------------------------------------------------------------- def refresh self.contents.clear points = H87_Achievements.gained_points totalp = H87_Achievements.total_points text = sprintf("%s %d/%d",H87_Achievements::POINTEXT,points,totalp) self.contents.draw_text(4,0,self.width-32,line_height,text) unlock = H87_Achievements.unlockeds totala = H87_Achievements.total_achievements text = sprintf("%s %d/%d",H87_Achievements::UNLKTEXT,unlock,totala) self.contents.draw_text(4,0,self.width-46,line_height,text,2) end end #window_achievementstatus #============================================================================== # ** Window_AchievementInfo #------------------------------------------------------------------------------ # Finestra che mostra le informazioni sull'obiettivo #============================================================================== class Window_AchievementInfo < Window_Base # -------------------------------------------------------------------------- # * inizializzazione # -------------------------------------------------------------------------- def initialize(x,y,w,h) super(x,y,w,h) @achievement = nil refresh end # -------------------------------------------------------------------------- # * refresh # -------------------------------------------------------------------------- def refresh self.contents.clear return if @achievement == nil valuename = H87_Achievements::VALRTEXT if [email protected]? and @achievement.hidden? name = H87_Achievements::HIDDTEXT desc = H87_Achievements::HIDDDESC.split("|") value = "???" else name = @achievement.name desc = @achievement.description.split("|") value = @achievement.reward end self.contents.font.color = crisis_color default_size = self.contents.font.size self.contents.font.size = default_size + 15 self.contents.draw_text(4,0,self.width-36,line_height*2,name,1) self.contents.font.size = default_size self.contents.font.color = normal_color text = sprintf("%s %s",value.to_s,valuename) self.contents.draw_text(4,line_height*3,self.width-36,line_height,text,1) unless ([email protected]? and @achievement.hidden?) for i in 0..desc.size-1 l = i+1 self.contents.draw_text(4,line_height*(4+i),self.width-36,line_height,desc[i],1) end if @achievement.unlocked? self.contents.font.color = power_up_color text = H87_Achievements::DATETEXT else self.contents.font.color = power_down_color text = H87_Achievements::LOCKTEXT end date = sprintf("%s %s",text,@achievement.date) self.contents.draw_text(4,line_height*(5+l),self.width-36,line_height,date,1) end # -------------------------------------------------------------------------- # * settaggio dell'obiettivo # achievement: obiettivo # -------------------------------------------------------------------------- def set(achievement) @achievement = achievement refresh end end #window_achievementinfo #============================================================================== # ** Achievement #------------------------------------------------------------------------------ # Questa classe si occupa della creazione materiale dell'obiettivo. L'istanza # di questa classe fa riferimento a $game_achievements. #============================================================================== class Achievement include H87_Achievements #inclusione del modulo attr_reader :id #ID obiettivo attr_reader :name #nome obiettivo attr_reader :description #descrizione attr_reader :icon #icona usata attr_reader :condition #condizione attr_reader :reward #punteggio ottenuto attr_reader :date #data di ottenimento attr_reader :object #oggetto del valore def hidden?; return @hidden; end #restituisce true se nascosto def max_value; return @max_value; end #restituisce il valore da sbloccare def unlocked?; return @unlocked; end #restituisce true se č sbloccato # -------------------------------------------------------------------------- # * azione di sblocco dell'obiettivo # -------------------------------------------------------------------------- def unlock; return if unlocked? @unlocked = true $cache_variables_achievements.delete(@object) if @contidion == 2 $cache_switches_achievements.delete(@object) if @contidion == 1 date = Time.new date_text = sprintf("%d/%d/%d",date.day,date.month,date.year) $game_settings[sprintf("Ach%3d",@id)] = date_text end # -------------------------------------------------------------------------- # * inizializzazione # trophy_id: id dell'obiettivo # -------------------------------------------------------------------------- def initialize(trophy_id) achievement = Trophies[trophy_id] @id = trophy_id @name = achievement[1] @icon = achievement[0] @description = achievement[2] @reward = achievement[3] @hidden = achievement[4] @condition = achievement[5] @object = 0 if @condition > 0 @max_value = achievement[6] @object = achievement[7] if @condition == 1 or @condition == 2 else @max_value = 0 end get_achievement_state end # -------------------------------------------------------------------------- # * aggiorna lo stato dell'obiettivo # -------------------------------------------------------------------------- def get_achievement_state name = sprintf("Ach%3d",@id) if $game_settings[name] != nil @unlocked = true @date = $game_settings[name] else @unlocked = false @date = "" end end end #achievement #============================================================================== # ** Scene_Base #------------------------------------------------------------------------------ # Aggiunta degli alias che gestiscono i banner #============================================================================== class Scene_Base # -------------------------------------------------------------------------- # * alias start per aggiungere il banner universale # -------------------------------------------------------------------------- alias h87ach_startb start unless $@ def start h87ach_startb H87_Achievements.check(13) if $game_achievements != nil end # -------------------------------------------------------------------------- # * aggiornamento # -------------------------------------------------------------------------- alias h87upd_update update unless $@ def update h87upd_update update_ach_animat end # -------------------------------------------------------------------------- # * aggiunta di un nuovo banner chiamando l'oggetto # -------------------------------------------------------------------------- def push_banner(achievement_id) $achievement_animations.push_banner($game_achievements[achievement_id]) end # -------------------------------------------------------------------------- # * aggiornamento dei banner # -------------------------------------------------------------------------- def update_ach_animat $achievement_animations.update end end #scene_base #============================================================================== # ** Scene_Title #------------------------------------------------------------------------------ # Aggiunta dei comandi e del caricamento degli obiettivi #============================================================================== class Scene_Title < Scene_Base # -------------------------------------------------------------------------- # * nascondi il popup # -------------------------------------------------------------------------- alias h87_ach_title_start start unless $@ def start h87_ach_title_start $achievement_animations.hide if $achievement_animations != nil end # -------------------------------------------------------------------------- # * aggiunta del comando # -------------------------------------------------------------------------- alias achiev_command_window create_command_window unless $@ def create_command_window achiev_command_window @command_window.set_handler(:achievements, method(:go_achievements)) end # -------------------------------------------------------------------------- # * metodo di passaggio alla schermata degli obiettivi # -------------------------------------------------------------------------- def go_achievements Sound.play_ok SceneManager.call(Scene_Achievements) end end #scene_title class Window_TitleCommand < Window_Command alias achiev_command_list make_command_list unless $@ def make_command_list achiev_command_list add_command(H87_Achievements::ACHVTEXT, :achievements) end end #window_titlecommand #============================================================================== # ** DataManager #------------------------------------------------------------------------------ # Aggiunta del caricamento degli obiettivi #============================================================================== module DataManager class << self alias ach_load_n_db load_normal_database alias ach_load_b_db load_battle_test_database end # -------------------------------------------------------------------------- # * caricamento nd # -------------------------------------------------------------------------- def self.load_normal_database ach_load_n_db init_achievements end # -------------------------------------------------------------------------- # * caricamento btd # -------------------------------------------------------------------------- def self.load_battle_test_database ach_load_b_db init_achievements end # -------------------------------------------------------------------------- # * caricamento di $game_achievements # -------------------------------------------------------------------------- def self.init_achievements $game_achievements = load_achievements $achievement_animations = Achievement_Banner.new $cache_variables_achievements = load_variable_achievements $cache_switches_achievements = load_switches_achievements end # -------------------------------------------------------------------------- # * caricamento degli obiettivi # -------------------------------------------------------------------------- def self.load_achievements a = {} for i in 1..H87_Achievements::Trophies.size do a[i] = Achievement.new(i) end return a end # -------------------------------------------------------------------------- # * caricamento della cache delle variabili # per limitare lag, viene creata una cache di variabili da tenere sotto # controllo quando si controllano gli obiettivi, cosė da non controllarle # tutte. # -------------------------------------------------------------------------- def self.load_variable_achievements a = [] for i in 1..$game_achievements.size do trophy = $game_achievements[i] a.push(trophy.object) if trophy.condition == 2 and !trophy.unlocked? end return a end # -------------------------------------------------------------------------- # * caricamento della cache degli obiettivi # -------------------------------------------------------------------------- def self.load_switches_achievements a = [] for i in 1..$game_achievements.size do trophy = $game_achievements[i] a.push(trophy.object) if trophy.condition == 1 and !trophy.unlocked? end return a end end #============================================================================== # ** Game_Interpreter #------------------------------------------------------------------------------ # Aggiunta dei comandi evento e dei controlli a switch e variabili #============================================================================== class Game_Interpreter # -------------------------------------------------------------------------- # * Sblocco dell'obiettivo # -------------------------------------------------------------------------- def unlock_achievement(id) H87_Achievements.unlock_achievement(id) end # -------------------------------------------------------------------------- # * comando di schermata degli obiettivi # -------------------------------------------------------------------------- def open_achievement SceneManager.call(Scene_Achievements) end end #============================================================================== # ** Game_Variables #------------------------------------------------------------------------------ # aggiunta del controllo sulle variabili #============================================================================== class Game_Variables # -------------------------------------------------------------------------- # * riscrittura # -------------------------------------------------------------------------- def []=(variable_id, value) @data[variable_id] = value H87_Achievements.check(2,variable_id) end end #============================================================================== # ** Game_Switches #------------------------------------------------------------------------------ # aggiunta del controllo sugli Switch #============================================================================== class Game_Switches # -------------------------------------------------------------------------- # * riscrittura # -------------------------------------------------------------------------- def []=(switch_id, value) @data[switch_id] = value H87_Achievements.check(1,switch_id) on_change end end #============================================================================== # ** Achievements_Graphic #------------------------------------------------------------------------------ # Classe che gestisce la grafica del pop-up #============================================================================== class Achievement_Graphic def x;return @sprite.x;end def y;return @sprite.y;end # -------------------------------------------------------------------------- # * inizializzazione # -------------------------------------------------------------------------- def initialize(achievement) @achievement = achievement @disappeared = false @counter = 0 create_main_graphics end # -------------------------------------------------------------------------- # * creazione della grafica necessaria # -------------------------------------------------------------------------- def create_main_graphics create_sprite create_achievement_image create_achievement_text end # -------------------------------------------------------------------------- # * creazione dello sprite del banner # -------------------------------------------------------------------------- def create_sprite @sprite = Sprite.new @sprite.bitmap = Cache.picture(H87_Achievements::RECTIMAGE) @sprite.opacity = 0 @sprite.oy = @sprite.height/2 @sprite.x = ([email protected])/2 + H87_Achievements::ADJUSTX @sprite.y = Graphics.height/2 + H87_Achievements::ADJUSTY @sprite.y += 50 @sprite.z = 500 end # -------------------------------------------------------------------------- # * creazione dello sprite dell'immagine obiettivo # -------------------------------------------------------------------------- def create_achievement_image @emblem = Sprite.new @emblem.bitmap = Cache.picture(@achievement.icon) @emblem.ox = @emblem.width/2 @emblem.oy = @emblem.height/2 setup_emblem end # -------------------------------------------------------------------------- # * impostazione posizione rispetto al banner # -------------------------------------------------------------------------- def setup_emblem @emblem.x = @sprite.x @emblem.y = @sprite.y @emblem.z = @sprite.z+1 @emblem.opacity = @sprite.opacity end # -------------------------------------------------------------------------- # * scrittura del testo sulla bitmap del banner # -------------------------------------------------------------------------- def create_achievement_text x = @emblem.width/2 y = (@sprite.height/2) - 24 @sprite.bitmap.font.name = H87_Achievements::UTF @sprite.bitmap.font.size = H87_Achievements::UTG c= H87_Achievements::UTC @sprite.bitmap.font.color = Color.new(c[0],c[1],c[2]) @sprite.bitmap.font.bold = H87_Achievements::UTB @sprite.bitmap.font.italic = H87_Achievements::UTI @sprite.bitmap.font.shadow = H87_Achievements::UTS @sprite.bitmap.draw_text(x,y,@sprite.width-x,24,H87_Achievements::UNLOCKNEW) @sprite.bitmap.font.name = H87_Achievements::DTF @sprite.bitmap.font.size = H87_Achievements::DTG c= H87_Achievements::DTC @sprite.bitmap.font.color = Color.new(c[0],c[1],c[2]) @sprite.bitmap.font.bold = H87_Achievements::DTB @sprite.bitmap.font.italic = H87_Achievements::DTI @sprite.bitmap.font.shadow = H87_Achievements::DTS @sprite.bitmap.draw_text(x,y+24,@sprite.width-x,24,@achievement.name) end # -------------------------------------------------------------------------- # * aggiornamento # -------------------------------------------------------------------------- def update @counter += 1 @sprite.y -= 1 if @sprite.y > Graphics.height/2 + H87_Achievements::ADJUSTY if @counter < H87_Achievements::BANNERTIME @sprite.opacity += 4 else @sprite.opacity -= 10 end setup_emblem @disappeared = true if @sprite.opacity <= 0 end # -------------------------------------------------------------------------- # * restituisce true se č scomparso # -------------------------------------------------------------------------- def disappeared? return @disappeared end # -------------------------------------------------------------------------- # * eliminazione del banner # -------------------------------------------------------------------------- def dispose @emblem.opacity = 0 @sprite.opacity = 0 @emblem.dispose @sprite.bitmap.dispose @sprite.dispose end end #achievement_graphic #============================================================================== # ** Achievement_Banner #------------------------------------------------------------------------------ # Classe che gestisce l'aggiornamento e la comparsa di tutti i pop-up #============================================================================== class Achievement_Banner # -------------------------------------------------------------------------- # * inizializzazione # -------------------------------------------------------------------------- def initialize @waiting_list = [] #lista d'attesa per altri obiettivi @banner = nil end # -------------------------------------------------------------------------- # * aggiunta di un nuovo banner # achievement: obiettivo # -------------------------------------------------------------------------- def push_banner(achievement) if @banner != nil @waiting_list.push(achievement) else add_banner(achievement) end end # -------------------------------------------------------------------------- # * aggiunta del banner # achievement: obiettivo bersaglio # -------------------------------------------------------------------------- def add_banner(achievement) RPG::ME.stop if H87_Achievements::PlayME play_sound @banner = Achievement_Graphic.new(achievement) end # -------------------------------------------------------------------------- # * esecuzione del suono # -------------------------------------------------------------------------- def play_sound if H87_Achievements::PlayME RPG::ME.new(H87_Achievements::SE).play else RPG::SE.new(H87_Achievements::SE).play end end # -------------------------------------------------------------------------- # * aggiornamento # -------------------------------------------------------------------------- def update if @banner != nil @banner.update next_banner if @banner.disappeared? end end # -------------------------------------------------------------------------- # * passa al prossimo banner # -------------------------------------------------------------------------- def next_banner @banner.dispose if @waiting_list.size > 0 add_banner(@waiting_list[0]) @waiting_list.delete_at(0) else @banner = nil end end # -------------------------------------------------------------------------- # * nascondi tutti i banner # -------------------------------------------------------------------------- def hide return if @banner == nil @waiting_list = [] @banner.dispose @banner = nil end end #achievement_banner #============================================================================== # ** Game_Party #------------------------------------------------------------------------------ # Aggiunta dei controlli per lo sblocco degli obiettivi #============================================================================== class Game_Party < Game_Unit # -------------------------------------------------------------------------- # * alias metodo gain_gold # -------------------------------------------------------------------------- alias h87_Ach_gain_gold gain_gold unless $@ def gain_gold(n) h87_Ach_gain_gold(n) gain_total_gold(n) end # -------------------------------------------------------------------------- # * alias metodo gain_item # -------------------------------------------------------------------------- alias h87ach_gain_item gain_item unless $@ def gain_item(item, n, include_equip = false) h87ach_gain_item(item, n, include_equip) gain_item_in_total(item,n) if n > 0 and item.is_a?(RPG::Item) end # -------------------------------------------------------------------------- # * aggiunge l'hash degli oggetti totali # -------------------------------------------------------------------------- def gain_item_in_total(item,n) @total_items = {} if @total_items == nil @total_items[item.id] = 0 if @total_items[item.id] == nil @total_items[item.id] += n H87_Achievements.check(14,item.id) end # -------------------------------------------------------------------------- # * restituisce il totale di oggetti ottenuti # -------------------------------------------------------------------------- def total_items(id) @total_items = {} if @total_items == nil return 0 if @total_items[id] == nil return @total_items[id] end # -------------------------------------------------------------------------- # * restituisce l'oro totale ottenuto nel corso del gioco # -------------------------------------------------------------------------- def total_gold @total_gold = 0 if @total_gold == nil return @total_gold end # -------------------------------------------------------------------------- # * aggiunge l'oro al totale # -------------------------------------------------------------------------- def gain_total_gold(n) @total_gold = 0 if @total_gold == nil @total_gold += n H87_Achievements.check(3) H87_Achievements.check(4) end # -------------------------------------------------------------------------- # * restituisce il max livello del gruppo escludendo alcuni personaggi # -------------------------------------------------------------------------- def total_max_level ml = 0 for member in $game_party.members next if H87_Achievements::ExludedMembers.include?(member.id) ml = member.level if member.level > ml end return ml end # -------------------------------------------------------------------------- # * alias metodo increase_steps per aggiungere un controllo # -------------------------------------------------------------------------- alias h87ach_is increase_steps unless $@ def increase_steps h87ach_is H87_Achievements.check(6) end # -------------------------------------------------------------------------- # * restituisce il totale speso nei negozi # -------------------------------------------------------------------------- def total_gold_spent @total_gold_spent = 0 if @total_gold_spent == nil return @total_gold_spent end # -------------------------------------------------------------------------- # * aggiunge un valore al totale speso nei negozi # -------------------------------------------------------------------------- def total_gold_spent=(n) @total_gold_spent = 0 if @total_gold_spent == nil @total_gold_spent = n H87_Achievements.check(11) end # -------------------------------------------------------------------------- # * restituisce le battaglie totali che ha effettuato il giocatore # -------------------------------------------------------------------------- def total_battles @total_battles = 0 if @total_battles == nil return @total_battles end # -------------------------------------------------------------------------- # * cambia le battaglie totali # -------------------------------------------------------------------------- def total_battles=(n) @total_battles = 0 if @total_battles == nil @total_battles = n H87_Achievements.check(10) end # -------------------------------------------------------------------------- # * restituisce le vittorie totali del giocatore # -------------------------------------------------------------------------- def total_victories @total_victories = 0 if @total_victories == nil return @total_victories end # -------------------------------------------------------------------------- # * cambia le vittorie totali # -------------------------------------------------------------------------- def total_victories=(n) @total_victories = 0 if @total_victories == nil @total_victories = n end # -------------------------------------------------------------------------- # * restituisce le fughe totali del giocatore # -------------------------------------------------------------------------- def total_escapes @total_escapes = 0 if @total_escapes == nil return @total_escapes end # -------------------------------------------------------------------------- # * cambia le fughe totali # -------------------------------------------------------------------------- def total_escapes=(n) @total_escapes = 0 if @total_escapes == nil @total_escapes = n end # -------------------------------------------------------------------------- # * restituisce il denaro totale guadagnato vendendo oggetti # -------------------------------------------------------------------------- def total_sell @total_sell = 0 if @total_sell == nil return @total_sell end # -------------------------------------------------------------------------- # * cambia il totale oggetti # -------------------------------------------------------------------------- def total_sell=(n) @total_sell = 0 if @total_sell == nil @total_sell = n H87_Achievements.check(12) end end #game_party #============================================================================== # ** Game_System #------------------------------------------------------------------------------ # Aggiunta controlli per il numero di salvataggi #============================================================================== class Game_System # -------------------------------------------------------------------------- # * aggiunge il controllo salvataggi al conteggio # -------------------------------------------------------------------------- alias h87ach_on_before_save on_before_save unless $@ def on_before_save h87ach_on_before_save H87_Achievements.check(7) end end #game_system #============================================================================== # ** Scene_Battle #------------------------------------------------------------------------------ # Controllo obiettivi quando si combatte #============================================================================== class Scene_Battle < Scene_Base # -------------------------------------------------------------------------- # * alias start per aumentare le battaglie totali # -------------------------------------------------------------------------- alias h87ach_start start unless $@ def start h87ach_start $game_party.total_battles += 1 end end #scene_battle module BattleManager class << self alias h87ach_process_victory process_victory alias h87ach_pe process_escape end # -------------------------------------------------------------------------- # * alias vittoria per aumentare le vittorie totali # -------------------------------------------------------------------------- def self.process_victory h87ach_process_victory $game_party.total_victories += 1 end # -------------------------------------------------------------------------- # * alias fuga per aumentare le fughe totali # -------------------------------------------------------------------------- def self.process_escape h87ach_pe $game_party.total_escapes += 1 end end #battlemanager #============================================================================== # ** Scene_Shopp #------------------------------------------------------------------------------ # Controllo obiettivi sull'acquisto #============================================================================== class Scene_Shop < Scene_MenuBase # -------------------------------------------------------------------------- # * Alias dell'azione di acquisto # -------------------------------------------------------------------------- alias h87ach_do_buy do_buy unless $@ def do_buy(number) h87ach_do_buy(number) $game_party.total_gold_spent += (number * buying_price) end #-------------------------------------------------------------------------- # * Alias della vendita #-------------------------------------------------------------------------- alias h87ach_do_sell do_sell unless $@ def do_sell(number) h87ach_do_sell(number) $game_party.total_sell += (number * selling_price) end end #scene_shop #============================================================================== # ** Scene_Map #------------------------------------------------------------------------------ # Aggiunta dei banner degli obiettivi #============================================================================== class Scene_Map < Scene_Base alias h87_ach_start start unless $@ def start h87_ach_start H87_Achievements.check(8) H87_Achievements.check(9) end end #============================================================================== # ** Game_Actor #------------------------------------------------------------------------------ # Controllo sul livello superiore #============================================================================== class Game_Actor < Game_Battler # -------------------------------------------------------------------------- # * alias del metodo level_up per controllare gli obiettivi su livello # -------------------------------------------------------------------------- alias h87a_lu level_up unless $@ def level_up h87a_lu H87_Achievements.check(5) end end
e l'ordine č (dal pių in alto al pių in basso):
Script di supporto(H87), Logo(H87), Obiettivi(H87), Monete(H87), Crediti finali(H87), Banca(Dekita), Bestiario(Bisba94), Word wrap(Math), Diary(Math), Titolo(KZM), Recupero su level up(KZM).
Modificato da KenzoMe92, 06 August 2013 - 17:49 PM.
Nuovi progetti:
Come allegare immagini al forum Bottega Rise of The Hero
Script
KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace
#40 Inviato 06 August 2013 - 17:44 PM
Hai incollato entrambi sotto Materials, vero? Faresti prima a passarmi il file scripts
Modificato da Holy87, 06 August 2013 - 17:44 PM.
"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]
Miei script per RPG Maker VX Ace: