Zelaron Gaming Forum

Zelaron Gaming Forum (http://zelaron.com/forum/index.php)
-   RPGMaker (http://zelaron.com/forum/forumdisplay.php?f=188)
-   -   AVI Player in RMXP (http://zelaron.com/forum/showthread.php?t=39921)

Atnas 2006-06-29 04:25 PM

AVI Player in RMXP
 
LO, BEHOLD, FINNALLY! I found a way to play avi files in an rmxp game! *does dance*

Class Scene_Movie
Quote:

class Scene_Movie
##Copy this into a new section of your game.
##To play a file, move the avi file into a "movies" subdirectory (yourgame\data,
##yourgame\graphics, yourgame\movies).
##Then call "Scene_Movie.new(filename)" where filename is your movies actual filename
## (minus the .avi). exp Scene_Movie.new("???")
## If you want to play multiple movies in a row
##(for example before the game starts, maybe a "developed by", "produced by", "intro movie"
## set or something... Go to the "main" section of code and find the line "$scene = Scene_Title.new".
##Just after that line add:
##CODE
##Scene_Movie.new("dev_by")
##Scene_Movie.new("pro_by")
##Scene_Movie.new("intro")
##$scene = Scene_Movie.new("intro",8,false)assuming the filename of the intro movie is "intro.avi" and it's 8 seconds long.
##class Scene_Movie
def initialize(movie)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
main
end

def main

game_name = "\0" * 256
@readini.call('Game','Title','',game_name,255,".\\ Game.ini")
game_name.delete!("\0")
@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

status = " " * 255
movie.call("play FILE",0,0,0)
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update
@message.call(@temp.to_i,11,1,0)
Input.update
movie.call("status FILE mode",status,255,0)
true_status = status.unpack("aaaa")
if true_status.to_s != "play"
break
end
if Input.trigger?(Input::B)
Input.update
break
end
end
movie.call("close FILE",0,0,0)
bail
end

def bail
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)', '')

Lenny 2006-06-30 07:59 AM

Well ain't that something?

Have you given it a try yet?

T'would be nice to be able to play little cutscenes.

Atnas 2006-06-30 09:47 AM

I'll be trying it out as soon as I can <.>
I'm on laptop probation right now.

llamallover2021 2006-06-30 02:48 PM

Why? Didja type a bad word? Didja? Didja?

Atnas 2006-06-30 03:05 PM

Na... the usual... Something I didn't do... innapropriate hand gestures... 'naughty' words... Blasphemy... S'all good.

phsyco025 2006-07-13 07:56 PM

so to use this script after u put it in do u go to message and put in "call FILENAME" or wut?

Atnas 2006-07-14 07:47 AM

Scene_Movie.new(filename)

Use the call script command on the last page and replace (filename) with the name of youur movie, minus the .avi.... Let's say I had a movie named:

The Teletubbies, The Conspiracy.avi
I would just type
Quote:

Originally Posted by code
Scene_Movie.new(The Teletubbies, The Conspiracy)

Of course it would have to be in the said directory.... Movies.

phsyco025 2006-07-14 09:57 AM

kk thx and hows that tileset coming along?

Atnas 2006-07-14 02:39 PM

I have a few deadlines to meet... I'll let you know when I'm open again to finish it.(should be sunday, sorry it's taking so long, I'm really busy.)


All times are GMT -6. The time now is 10:35 PM.

Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
This site is best seen with your eyes open.