Wiele osób narzeka na to, że RPGXP jest gorszy, bo nie można w nim odtwarzać filmików avi. Wiecie, kilka osób też to drażniło, i postanowili z tym coś zrobić. Mianowicie napisali kod w ruby, który właśnie umożliwi odtwarzanie plików *.AVI. Mały minus polega na tym, że trzeba się niestety z tym trochę pobawić.
Pierwsze co zrobimy to w głównym folderze naszego projektu tworzymy nowy folder o nazwie ‘Movies’ (tak, z dużej literki, przez v napisane dokładnie jak obok). Każdy projekt ma 3 foldery: Data, Graphics, Audio; No i tam właśnie gdzie widzimy te foldery zakładamy folder o nazwie ‘Movies’. Łatwiej się już nie da wytłumaczyć.
Filmie *.AVI wrzucamy do tego tam stworzonego folderu. Odpalamy RPGXP, wchodzimy do edytora skryptów ruby. Wstawiamy sobie nowy skrypt (klasę, cokolwiek to tam jest i się nazywa) – nazwijmy to Scene_Movie no i wklejamy tam poniższy podany kod:
Spoiler:
Kod:
#### Autor skryptu: Magmar
# 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
# 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
@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)','')
#end code
#koniec kodu
No i w sumie to by było na tyle. A, właśnie jeszcze później jak zrobić, aby wywołać nasz filmik. Robimy sobie jakieś tam zdarzenie, no i w poleceniach zdarzenia istnieje takie coś jak wywołaj skrypt. No to dajmy na to coś, wyskoczy nam jakieś okno z skryptem do napisania. Napiszcie w nim coś takiego:
Kod:
Scene_Movie.new("NAZWA TWOJEGO FILMU.avi")
OK. Koniec. Filmik odtwarza się jeden raz.
Ważna informacja, skrypt został testowany na patchu 1.03, Niestety na wersji 1.00 skrypt na odtwarzanie plików *.AVI - niedziała.
________________________
Ostatnio zmieniony przez Ayene Wto 09 Mar, 2010 17:59, w całości zmieniany 1 raz
Ja też nie jestem pewien z czym masz problem, skoro ci działa i chodzi tylko o przycinanie się...to nie wiem czy jest co poprawiać. xD Ale ktoś na pewno ci pomoże.
[ Dodano: Czw 11 Mar, 2010 19:27 ]
Ciekawostką jest to, że jeszcze niedawno mi działało, a teraz za nic nie reaguje...
Kolejny EDIT!
Wiecie że ten skrypt kłóci się z anty lagami? o_O
Skasowałem antylag i pięknie działa. O_O
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum