[XP] Pomoc - skrypt na filmiki - Wersja do druku
Ultima Forum
[XP] Pomoc - skrypt na filmiki - Wersja do druku

+- Ultima Forum (https://forum.ultimateam.pl)
+-- Dział: RPG Maker (/Forum-RPG-Maker)
+--- Dział: Wsparcie (/Forum-Wsparcie)
+--- Wątek: [XP] Pomoc - skrypt na filmiki (/Thread-XP-Pomoc-skrypt-na-filmiki)



Pomoc - skrypt na filmiki - curiosis - 09-07-16 18:31

Witajcie, mam problem ze skryptem na filmiki .avi. Na moim komputerze, gdzie mam zainstalowanego RMXP wszystko działa, ale jak chciałem sprawdzić na laptopie, gdzie nie mam zainstalowanego RMXP wszystko się psuje.

Jak włączam nową grę na laptopie to muzyka leci, ale nie pokazuje się obraz, jest tylko czarny. Pomóżcie przyjaciele.

Tutaj ten skrypt:

===========================================

#### Autor skryptu: Inconnun
# Skrypt został znaleziony na stronie RPG Creative [www.rpgcreative.net]
# Jednak jeżeli widzisz tę notatkę, to znaczy że pobrałeś go z Twierdzy RPG Makera
# http://www.rpgmaker.pl
#
################### Ważne!!!!!!
# Teraz daj 'Wywołaj skrypt w zdarzeniu' i napisz to coś:
# Scene_Movie.new("NAZWA TWOJEGO FILMU.avi")
#
# Pamiętaj aby twój filmik znalazł się w folderze o nazwie 'Movies', który będzie
# w folderze twojego projektu.
########################

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
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 == 1280
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 == 1280
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)','')
#end code (koniec kodu)

==============================================


RE: Pomoc - skrypt na filmiki - Venesard - 09-07-16 23:49

Przypuszczalnie problem nie leży po stronie braku makera a po stronie nieodpowiednich kodeków do filmu.


RE: Pomoc - skrypt na filmiki - Yoroiookami - 10-07-16 01:00

Jak już Venesard wspomniał, to wina kodeków. Na twierdzy zapomnieli o tym wspomnieć. Kiedyś tłumaczyłem podobny skrypt.
http://forum.ultimateam.pl/Thread-XP-VX-VXAce-Filmiki-w-Grze
Jak wspomniałem w temacie najlepiej używać domyślnych kodeków. Xvidy i tym podobne się nie nadają. Albo możesz zostawić instalator kodeków w folderze z grą.


RE: Pomoc - skrypt na filmiki - curiosis - 13-07-16 02:00

Dzięki, teraz działa na wszystkich komputerach :)