5!m0
-
Posts
37 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by 5!m0
-
-
le intermittenze sono dovute a questo
@movie.call("play FILE",0,0,0) loop do sleep(1) @message.call(@temp.to_i,11,0,0) Graphics.updatexkè, movie.call è il comando per far partire il filmato, graphics.update è l'aggiornamento della grafica e loop do è una ripetizione. è la ripetizione dell'aggiornamento della grafica. è per questo che il filmato fa intermittenze
potete consigliare anche come fare per risolvere
-
Ora vi spiego:
per il filmato iniziale, lo schermo fa un' "intermittenza" (cioè fa lo schermo nero per un attimo e poi si continua a vedere il filmato) ogni 2 secondi
per quelli che mettete durante il gioco non mi pare che "fanno intermittenze" ma si deve aspettare che il gioco metta a schermo intero quindi si perdono due secondi di filmato ed è anche possibile perdersi un messaggio(se ne mettete uno dopo il filmato. nel caso ne mettiate uno dopo il filmato, sopra c'è un "trucchetto" per non perderlo)
vedete anche ogni tanto sopra, xkè metto anke gli aggiornamenti dello script
-
Quoto! Se c'è qualche problema è bene specificare prima che sia inserito nella sezione apposita! Se non sbaglio nell'altro topic hai detto che c'è ancora lo stesso problema, solo che cade ogni 2 secondi invece che frequentemente come prima, sei riuscito a fixarla quella cosa? °ç° altrimenti andrà bene solo per i filmati da 2 secondi xD
E' strano, ma mi pare che solo per il filmato iniziale salti un po' ogni due secondi
-
Vi svelerò oggi il trucco per far andare a schermo intero i video
1. Video .avi (ris. 640x480 consigliata)
2. Fare una cartella Movies e mettere dentro i filmati e rinominateli in 0.avi, 1.avi ecc... ("0" sarà un eventuale filmato prima del Title)
3. Fate ora come vi dico, attenti a seguire tutti i passaggi
Video sch. int. con video iniziale
Create due classi: Scene_MovieA e Scene_MovieB
Incollate in A questo:
class Scene_MovieA def initialize(movie,length,x=fullscreen,y=fullscreen,x2=fullscreen,y2=fullscreen) @readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l' @movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi" @counter = length end def main game_name = "\0" * 256 @readini.call('Game','Title','',game_name,255,".\\Game.ini") game_name.delete!("\0") Graphics.transition @wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L') @temp = @wnd.call(0,0,nil,game_name).to_s @movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V') @movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0) @message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V') @detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L') @width = @detector.call(0) if @width == fullscreen fullscreen Graphics.update sleep(1) Graphics.update sleep(1) Graphics.update sleep(1) end @movie.call("play FILE",0,0,0) loop do sleep(1) @message.call(@temp.to_i,11,0,0) Graphics.update @message.call(@temp.to_i,11,1,0) Input.update if Input.trigger?(Input::B) break end @counter = @counter - 1 if @counter <= 0 break end end @movie.call("close FILE",0,0,0) $scene = Scene_Title.new Graphics.freeze end end def fullscreen() $full.call(18,0,0,0) $full.call(13,0,0,0) $full.call(18,0,2,0) $full.call(13,0,2,0) end $full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')E in B questo:
class Scene_MovieB def initialize(movie,length,x=fullscreen,y=fullscreen,x2=fullscreen,y2=fullscreen) @readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l' @movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi" @counter = length end def main game_name = "\0" * 256 @readini.call('Game','Title','',game_name,255,".\\Game.ini") game_name.delete!("\0") Graphics.transition @wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L') @temp = @wnd.call(0,0,nil,game_name).to_s @movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V') @movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0) @message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V') @detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L') @width = @detector.call(0) if @width == fullscreen $full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','') $full.call(18,0,0,0) $full.call(13,0,0,0) $full.call(18,0,2,0) $full.call(13,0,2,0) Graphics.update sleep(1) Graphics.update sleep(1) Graphics.update sleep(1) end @movie.call("play FILE",0,0,0) loop do sleep(1) @message.call(@temp.to_i,11,0,0) Graphics.update @message.call(@temp.to_i,11,1,0) Input.update if Input.trigger?(Input::B) break end @counter = @counter - 1 if @counter <= 0 break end end @movie.call("close FILE",0,0,0) $scene = Scene_Map.new Graphics.freeze end end def fullscreen() $full.call(18,0,0,0) $full.call(13,0,0,0) $full.call(18,0,2,0) $full.call(13,0,2,0) end $full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')Ora cambiate su Main questo:
$scene=Scene_Title.new
In questo:
$scene=Scene_MovieA.new("0",2)"0" è il filmato e 2 sono i secondi, cambiateli a seconda del nome e durata del video. Il video iniziale dev'essere unico. Non usatelo più volte, si potrebbe corrompere lo script. Non modificare una sillaba nello script per non interrompre il ciclo ricorrente e bloccarlo senza farlo funzionare più.
Adesso in Scene_Title e precisamente sopra "def main":
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','') $full.call(18,0,0,0) $full.call(13,0,0,0) $full.call(18,0,2,0) $full.call(13,0,2,0)Così facendo, però, dovrete, per chiamare un filmato tramite evento, chiamare lo script
$scene=Scene_MovieB("NOMEFILESENZAESTENZIONE", DURATAINSECONDI)video sch. int. senza video iniziale
Utilizzare questo codice in una classe Scene_Movie:
class Scene_Movie def initialize(movie,length,x=fullscreen,y=fullscreen,x2=fullscreen,y2=fullscreen) @readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l' @movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi" @counter = length end def main game_name = "\0" * 256 @readini.call('Game','Title','',game_name,255,".\\Game.ini") game_name.delete!("\0") Graphics.transition @wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L') @temp = @wnd.call(0,0,nil,game_name).to_s @movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V') @movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0) @message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V') @detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L') @width = @detector.call(0) if @width == 640 fullscreen Graphics.update sleep(1) Graphics.update sleep(1) Graphics.update sleep(1) end @movie.call("play FILE",0,0,0) loop do sleep(1) @message.call(@temp.to_i,11,0,0) Graphics.update @message.call(@temp.to_i,11,1,0) Input.update if Input.trigger?(Input::B) break end @counter = @counter - 1 if @counter <= 0 break end end @movie.call("close FILE",0,0,0) $scene = Scene_Map.new Graphics.freeze if @width == 640 fullscreen end end end def fullscreen() $full.call(18,0,0,0) $full.call(13,0,0,0) $full.call(18,0,2,0) $full.call(13,0,2,0) end $full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')Anche qui in Scene_Title sopra "def main":
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','') $full.call(18,0,0,0) $full.call(13,0,0,0) $full.call(18,0,2,0) $full.call(13,0,2,0)E non cambiare niente in Main. Per chiamare lo script usare:
$scene=Scene_Movie("NOMEFILESENZAESTENZIONE", DURATAINSECONDI)Per i filmati durante il gioco ci sono piccolissimi problemi. Infatti, se dopo il filmato avete messo un messaggio non lo leggerete e si mangerà anche 2 secondi del filmato. Rimedio? Se dopo il filmato dovete mettere un messaggio, ne mettete un'altro vuoto prima di questo. Esempio:
$scene=Scene_MoviesB.new("3",47)
Messaggio:
Messaggio: Ciao!
Per il filmato, basta modificarlo mettendo un'immagine nera per i primi due secondi (dico due ma vedete voi se più o meno) e il gioco è fatto! Esempio:
Filmato: 5sec \=1 sec. imm. nera !=1sec filmato
Filmato norm.:!!!!!
Filmato modificato:\\!!!!!
Un grazie è sempre gradito!
------------------------------------------------------------------------------------------------------------------------------------------
AGGIORNAMENTO DEL 24/10/11
Problema: alcuni video iniziali nn si vedono a schermo intero
Risoluzione:
Mettete in Scene_MovieA al posto di:
if @width == fullscreen fullscreen
Questo:
if @width == fullscreen $full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','') $full.call(18,0,0,0) $full.call(13,0,0,0) $full.call(18,0,2,0) $full.call(13,0,2,0)In caso di problemi, fate un commento o contattatemi via PM
----------------------------------------------------------------------------------------------------------------------------------------
ULTERIORE AGGIORNAMENTO DEL 24/10/11
Vi sto facendo un lavoretto veloce veloce, eh raga?
Problema: Intermittenze nel video iniziale
Risoluzione:
Sostituite Scene_MovieA con questo:
class Scene_MovieA def initialize(movie,length,x=fullscreen,y=fullscreen,x2=fullscreen,y2=fullscreen) @readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l' @movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi" @counter = length end def main game_name = "\0" * 256 @readini.call('Game','Title','',game_name,255,".\\Game.ini") game_name.delete!("\0") Graphics.transition @wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L') @temp = @wnd.call(0,0,nil,game_name).to_s @movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V') @movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0) @message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V') @detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L') @width = @detector.call(0) if @width == fullscreen $full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','') $full.call(18,0,0,0) $full.call(13,0,0,0) $full.call(18,0,2,0) $full.call(13,0,2,0) Graphics.update sleep(1) Graphics.update sleep(1) Graphics.update sleep(1) end @movie.call("play FILE",0,0,0) Graphics.update loop do sleep(1) @counter = @counter - 1 if @counter <= 0 Graphics.update break end end @movie.call("close FILE",0,0,0) $scene = Scene_Title.new Graphics.freeze end end def fullscreen() $full.call(18,0,0,0) $full.call(13,0,0,0) $full.call(18,0,2,0) $full.call(13,0,2,0) end $full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')dopo aver incollato il codice fate applica e cliccate più volte su salva. non facendolo, mi si avviava il filmato bene e poi il gioco a finestra.
Poi faccio anche per i filmati normali.
x problemi contattatemi via PM
-
Se ce la fai son contento °ç° magari poi ci posti lo script corretto: tu prendi gli onori e noi carichiamo i video °ç°
fatto!
salta sempre, ma meno frequentemente (1 o 2 sec tra salto e l'altro)
entro domani posterò il codice su un topic "Video a schermo intero". Mi raccomando visitalo Logum!
-
Non credo sia possibile, anni fa quando tentavo inesorabilmente di mettere un video su un progetto il massimo che riuscii ad ottenere fu con gioco in visualizzazione finestra, appena passavo a schermo intero con alt+invio iniziava ad andare a tratti video e a tratti schermo nero =\
è possibile invece
def initialize(movie, x=fullscreen, y=fullscreen)
succede la cosa che dici tu ma se mi ci metto su posso risolverla
-
e per eseguire mantenendo lo schermo intero?
-
Come faccio a togliere il margine sopra al testo?
immagine:
http://www.flickr.com/photos/68879625@N02/...in/photostream/
-
E questo cos'ha a che vedere con il Pandora's Box?
E' uno script che esce da entro al pacchetto
-
Lo script AMS Marcelo Cavaco - 3 Linhas lascia un po' di margine sopra al testo, ma questo nn m'importa solo che nelle scelte non vengono evidenziate bene le risposte
Screen:
http://www.flickr.com/photos/68879625@N02/6263376865/
Vedi il margine sopra al testo?
http://www.flickr.com/photos/68879625@N02/...in/photostream/
Vedi? E' la posizione di "Si" ma non della scritta
-
domada interessante
se faccio un gioco come ne ottengo un trial?
cioè vorrei fare che il gioco debba essere attivato entro non so quanto se no non ti fa giocare più
capito?
grazie

*Video a schermo intero
in Scripts RGSS (XP)
Posted · Edited by 5!m0
Grazie, Logum! in fondo sei stato tu a spingermi a fare questo. e io nn avevo mai lavorato sugli script.
e posto continuamente aggiornamenti, visto?