赞 | 0 |
VIP | 0 |
好人卡 | 2 |
积分 | 1 |
经验 | 6204 |
最后登录 | 2014-3-26 |
在线时间 | 70 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 70 小时
- 注册时间
- 2009-10-10
- 帖子
- 18
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
这是在偶汉化一个外国游戏时发现的,原先奇怪为什么游戏体积那么大,后来发现光是film视频就占了一半的体积。貌似在国内的游戏中没发现有人用过视频的,这里把脚本贡献出来啦,呵呵。- #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # - Game_Film II - reloaded ^^
- # par berka
- # www.rpgmakervx-fr.com
- #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # Rgss 12 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
复制代码 |
|