Picture Manager
DescrizioneMi stupisce che la Enterbrain si ostina a dare così poco controllo sulle pictures (sebbene ora il limite massimo è 100). Questo script è stato ideato per ampliare l'utilizzo delle pictures.
Funzionalità
Questo script consiente una gestione delle picture avanzata, senza influire sui comandi standard di RPG Maker. In particolare, le caratteristiche aggiuntive sono:
- Gestione di un numero "illimitato" di pictures;
- Controllo avanzato sui singoli parametri delle picture;
- Cancellazione picture multipla;
- Controllo rotazione avanzato;
- Scambio e clonazione di pictures
Autore
Morshudiego
Istruzioni per l'uso
Creare una nuova voce sopra Main ed inserire lo script.
Script
Spoiler
################################################################# # + PICTURE MANAGER + # Versione: # - 1.0.0 # Autore: # - Morshudiego # Condizioni d'uso: # - Crediti non necessari, ma apprezzati. # - Libertà di utilizzo e modifica a fini NON COMMERCIALI. # # Puoi trovare altri script su "http://www.rpg2s.net/" ################################################################# # + CHANGELOG + # 1.0.0 (16/10/2014) # Rilascio ################################################################# # + DESCRIZIONE + # Questo script consiente una gestione delle picture avanzata, # senza influire sui comandi standard di RPG Maker. # In particolare, le caratteristiche aggiuntive sono: # - Gestione di un numero "illimitato" di pictures; # - Controllo avanzato sui singoli parametri delle picture; # - Cancellazione picture multipla; # - Controllo rotazione avanzato; # - Clonazione pictures # - Scambio di posto pictures ################################################################# # + CONFIGURAZIONE + # Plug and play. ################################################################# # + COMANDI + # Per questi comandi ogni parametro verrà chiamato con un termine # specifico: # # n = l'ID dell'immagine (numero) # name = Il nome del file immagine senza estensione. (stringa) # ox = Il punto di origine dell'immagine. (numero: 0 per "in alto # a sinistra, 1 per "centrale") # x = La coordinata x dell'immagine (numero) # y = La coordinata y dell'immagine (numero) # zx = La larghezza dell'immagine (numero, 100 di default) # zy = L'altezza dell'immagine (numero, 100 di default) # alpha = L'opacità dell'immagine (numero, 255 di default) # blend = Il blending dell'immagine (numero: 0 - no blending, # 1 - aggiungi, 2 - sottrai. Default = 0) # angle = L'angolazione dell'immagine (numero) # # <COMANDI STANDARD> # # * PictureManager.show(n,name,ox,x,y,zx,zy,alpha,blend) # Crea una immagine. È identico al comando evento di RPG Maker. # # * PictureManager.move(n,ox,x,y,zx,zy,alpha,blend,dur) # Muove l'immagine. È identico al comando evento di RPG Maker. # dur = numero di frames di durata del movimento. # # * PictureManager.erase(n) # Cancella l'immagine. Identico al comando evento di RPG Maker. # # <ACQUISIZIONE DATI> # # * PictureManager.parametro(n) # Ritorna il valore del parametro scelto (al posto della # parola "parametro" usare il parametro scelto) # # <COMANDI AVANZATI> # # * PictureManager.create(n,name,ox,x,y,zx,zy,alpha,blend) # Crea una immagine. I parametri non specificati verranno # automaticamente inizializzati. # # * PictureManager.delete(n, n2) # Elimina l'immagine n. Se viene specificato n2, elimina le # immagini che vanno da n a n2. # # * PictureManager.set(n, "param", value) # Setta il parametro "param" dell'immagine n al valore value. # # * PictureManager.rotate(n,grades,perpetual) # Ruota l'immagine n di un numero di gradi uguale a grades. # se perpetual è true l'immagine continuerà a muoversi. # se perpetual è false l'immagine compierà un solo scatto. # perpetual può essere omesso (sarà considerato false) # # * PictureManager.stop_rotation(n) # Ferma la rotazione dell'immagine n. # # * PictureManager.tint(n,rgb,dur) # Colora l'immagine n del colore rgb, impiegando dur frames. # La variabile RGB deve essere scritta così: # [rosso, verde, blu, grigio] (grigio può essere omesso) # Alla variabile rgb si può passare un array. # Dur può essere omesso (e varrà 1 in tal caso) # # * PictureManager.clone(n1, n2, keep_xy) # Crea una copia dell'immagine n1 e la mette nell'immagine n2 # (per copia si intende l'ESATTA copia, quindi tutti i parametri # comprese coordinate.) # se keep_xy è true l'immagine n2 manterrà le sue coordinate # originali. # keep_xy può essere omesso. (e verrebbe considerato false) # # * PictureManager.swap(n1, n2, keep_xy) # Scambia l'immagine n1 con l'immagine n2. # Anche qui keep_xy può essere omessa (risultando false) e # mantiene le coordinate originali se true. ################################################################# module PictureManager def self.name(n); $game_map.screen.pictures[n].name; end def self.ox(n); $game_map.screen.pictures[n].origin; end def self.x(n); $game_map.screen.pictures[n].x; end def self.y(n); $game_map.screen.pictures[n].y; end def self.zx(n); $game_map.screen.pictures[n].zoom_x; end def self.zy(n); $game_map.screen.pictures[n].zoom_y; end def self.alpha(n); $game_map.screen.pictures[n].opacity; end def self.blend(n); $game_map.screen.pictures[n].blend_type; end def self.angle(n); $game_map.screen.pictures[n].angle; end def self.show(n,name,ox,x,y,zx,zy,alpha,blend) $game_map.screen.pictures[n].show(name,ox,x,y,zx,zy,alpha,blend) end def self.move(n,ox,x,y,zx,zy,alpha,blend,dur) $game_map.screen.pictures[n].move(ox,x,y,zx,zy,alpha,blend,dur) end def self.erase(n) $game_map.screen.pictures[n].erase end def self.create(n,name="",ox=0,x=0,y=0,zx=100,zy=100,alpha=255,blend=0) PictureManager.show(n,name,ox,x,y,zx,zy,alpha,blend) end def self.delete(n,mult=nil) if mult != nil for i in n..mult; PictureManager.erase(i); end else PictureManager.erase(n) end end def self.set(n, param, value) name = (param == "name" ? value : PictureManager.name(n)) ox = (param == "ox" ? value : PictureManager.ox(n)) x = (param == "x" ? value : PictureManager.x(n)) y = (param == "y" ? value : PictureManager.y(n)) zx = (param == "zx" ? value : PictureManager.zx(n)) zy = (param == "zy" ? value : PictureManager.zy(n)) alpha = (param == "alpha" ? value : PictureManager.alpha(n)) blend = (param == "blend" ? value : PictureManager.blend(n)) if param == "angle" angle = value - PictureManager.angle(n) else angle = PictureManager.angle(n) end PictureManager.create(n,name,ox,x,y,zx,zy,alpha,blend) PictureManager.rotate(n, angle) end def self.rotate(n,grades,perpetual=false) $game_map.screen.pictures[n].rotate(grades*2) if perpetual == false $game_map.screen.pictures[n].update_rotate $game_map.screen.pictures[n].rotate(0) end end def self.stop_rotation(n) PictureManager.rotate(n, 0, true) end def self.tint(n,rgb,dur=1) rgb[3] ||= 0 color = Tone.new(rgb[0],rgb[1],rgb[2],rgb[3]) $game_map.screen.pictures[n].start_tone_change(color,dur) end def self.clone(from, to, keep_xy=false) PictureManager.create(to, PictureManager.name(from), (keep_xy ? PictureManager.ox(to): PictureManager.ox(from)), (keep_xy ? PictureManager.x(to): PictureManager.x(from)), (keep_xy ? PictureManager.y(to): PictureManager.y(from)), PictureManager.zx(from), PictureManager.zy(from), PictureManager.alpha(from), PictureManager.blend(from), ) PictureManager.set(to, "angle", PictureManager.angle(from)) end def self.swap(n1, n2, keep_xy=false) PictureManager.clone(n2, 0, keep_xy) PictureManager.clone(n1, n2, keep_xy) PictureManager.clone(0, n1, keep_xy) PictureManager.delete(0) end end ################################################################# # M M OOO RRRR SSSS H H U U DDDD I EEEEE GGG OOO # # MM MM O O R R S H H U U D D I E G O O # # M M M O O RRRR SSS HHHHH U U D D I EEE G GGG O O # # M M O O R R S H H U U D D I E G G O O # # M M OOO R R SSSS H H UUU DDDD I EEEEE GGG OOO # #################################################################
Bugs e Conflitti Noti
N/D
Template compilato con Script Templater.
Modificato da Morshudiego, 16 October 2014 - 22:45 PM.