Script tiré de rpgcreative
Code:
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)´,
´´)
Copier just tout ceci dans une nouvelle section de votre jeux. Pour faire jouer un fichier, metre un fichier video (.avi) dans un dossier nomé "movies" dans votre dossier de votre jeux (VotreNomJeux\movies). Maintenenant utiliser cella commande d´appelle "Scene_Movie.new(NomDuFichier)" ou le (NomDuFichier) est le même nom que le fichier dans votre dossier.
Okay, preceque rien n´a changer ici, mais c´est un truck très différent, alor je vais rassembler tout les autres trucks. Pour appeller le scrîpt maintenant (Vous avez surement lu plus haut) appeller "Scene_Movie("movie_name")" Sans "$scene = " devant lui. ceci va retenir la "scene" et la partie reviendra a la partie du code qu´il a laissé quand le film est fini. Avec c´est modification insignifiante, nous pouvons jouer des videos dans les battailles, ou nimporte ou. si vous voulez jouer plusieurs videos en l´un après l´autres (Pour example avant que le jeux commance, p-t un "developé Par", "produit Par", "intro" ou quelque chose d´autre allez dans la "main" section des scripts et trouver "$scene = Scene_Title.new". Just après ajouter ceci:
Code:
Scene_Movie.new("dev_par")
Scene_Movie.new("pro_par")
Scene_Movie.new("intro")
Ceci assume que vos fichier "dev_par.avi", "pro_par.avi", et "intro.avi".
Sont les bons nom des fichiers dans votre dossier, et vous etes prèt.
Pour appeller le scrîpt durant les battailles, il y a acctuelement plusieurs façon. Si vous pouvez metre la commande d´appelle du film (pour example, dans une action du monstre en question) appeller just ceci "Scene_Movie("NomDuFichier")" Et voila !. Ceci joura votre fichier, et retournera a la battaille ou vous l´aurez laissé.
FAQ:
1) ce scrîpt peut-il jouer des fichiers wmv/mpg/ou autres ?
Oui, ci vous modifiez ceci.
Code:
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
changer la fin pour ceci ".wmv"/".mpg"/ou autre.