#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Game_Film II - reloaded ^^ # par berka # www.rpgmakervx-fr.com #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Rgss 1&2 v 1.0 #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # -Utilisation- # écrivez dans un event, commande insérer un script: # # #minimum requis: # [film] # obligatoire ! # film = monfilm.avi # ou mpg... nom du fichier à lire # # #configuration optionnelle, l'ordre n'est pas important # mettre les 4 coordonnées sinon aucune ! # x = 12 # position horizontale # y = 1 # position verticale # w = 150 # redimensionnement du film: largeur # h = 150 # redimensionnement du film: hauteur # # full = true # active (ou pas) le plein écran dans le mode fenetré # vol = 750 # entre 0 et 1000 volume sonore du film # bass = 999 # entre 0 et 1000 volume des basses: tres faible nuance # aig = 250 # entre 0 et 1000 volume des aigus: tres faible nuance # #commandes: # bouton B pour quitter, C pour interrompre/reprendre la lecture #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # pourquoi un nouveau script de video ? # simplement pour ne plus avoir à répondre à toutes ces questions sur la video ! # ce script est le plus simple possible: j'ai testé toutes les erreurs possibles # l'appel est personalisable # le format de la video est auto-détecté # ajout du plein écran # de la gestion du volume # Un dossier Films est automatiquement créé dans votre projet. # vous y déposez les vidéos à lire ! # Il vaut mieux prendre de petites videos: parce que les démos de 200 Mo... #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
class Game_Film def initialize(hash) hash.has_key?(:film) ? film=hash[:film] : return hash.has_key?(:x) ? @x=hash[:x]+" " : @x="0" hash.has_key?(:y) ? @y=hash[:y]+" " : @y="0" hash.has_key?(:w) ? @w=hash[:w]+" " : @w="" hash.has_key?(:h) ? @h=hash[:h]+" " : @h="" hash.has_key?(:vol) ? @vol=hash[:vol]+" " : @vol="1000" hash.has_key?(:bass) ? @bass=hash[:bass]+" " : @bass="1000" hash.has_key?(:aig) ? @aig=hash[:aig]+" " : @aig="1000" hash.has_key?(:pos) ? @pos="at pos #{hash[:pos].to_i*1000} " : @pos="at pos 0 " @full=hash[:full] if hash.has_key?(:full) @full&&dim_ecran !=[640,480] ? @plee="fullscreen " : @plee="" @type=" " @type=" type mpegvideo" if File.extname(film)==(".mpg"||".mpeg") @type=" type avivideo" if File.extname(film)==".avi" @nom='./Films/'+film (p "fichier #{@nom} non trouvé";return) if !FileTest.exist?(@nom) @film=Win32API.new('winmm','mciSendString','ppll','v') lecture end def handle jeu="\0"*256 ini=Win32API.new('kernel32','GetPrivateProfileStringA','pppplp', 'l') ini.call('Game','Title','',jeu,255,".\\Game.ini") return Win32API.new('user32','FindWindowEx','llpp','l').call(0,0,nil,jeu.delete!("\0")) end def lecture v,t,status,pause=version,Time.now," "*255,false @film.call("open #{@nom} alias FILE#{@type} style child parent "+handle.to_s,0,0,0) @film.call("put FILE window at #{@x}#{@y}#{@w}#{@h}",status,255,0) @film.call("setaudio File volume to #{@vol}",status,255,0) @film.call("setaudio File bass to #{@bass}",status,255,0) @film.call("setaudio File trebble to #{@bass}",status,255,0) @film.call("play FILE #{@plee} notify",status,255,handle) loop{sleep(0.1) Input.update @film.call("status FILE mode notify",status,255,0) break if status.unpack("aaaa")=="stop".split(//)||Input.trigger?(Input::B) if Input.trigger?(Input::C) if !pause;@film.call("pause FILE notify",status,255,handle);pause=true else;@film.call("play FILE #{@plee} notify",status,255,handle);pause=false end end (t=maj(t))if v=='xp'} @film.call("close FILE notify",0,0,handle) $scene=Scene_Map.new end def dim_ecran lw=Win32API.new('user32','GetSystemMetrics','i','i') return lw.call(0),lw.call(1) end def maj(t) (Graphics.update;return Time.now)if t.sec<=Time.now.sec-9||t.min !=Time.now.min return t end def version;FileTest.exist?('./Data/scripts.rvdata') ? 'vx': 'xp';end end Dir.open("./Films") rescue Dir::mkdir("./Films",0777) class Game_Interpreter;def eval(script);cmd_eval(script);end;end#rmvx class Interpreter;def eval(script);cmd_eval(script);end;end#rmxp def cmd_eval(script) if script.include?("[film]") hash={} script.gsub!("[film]"){} list=script.split("\n") list.each{|e|e.gsub!(" "){};f=e.split("=");hash[f[0].to_sym]=f[1] if !f[1].nil?} Game_Film.new(hash) else;return Kernel.eval(script) end end
Group: +Gold Member
Posts: 4,136
Type: Scripter
RM Skill: Undisclosed
Yeah, you can't really do anything about that. Fullscreen mode just stretches the display, so depending of the initial quality of your video, the result will be more or less pixelated.
__________________________
FRACTURE - a SMT inspired game (demo) made by Rhyme, Karsuman and me. Weep and ragequit.