Postów:
13
Dołączył:
2011-12-07
Napisano dnia: 2012-11-25 17:33:01
Witam.
Jako, że tworzę mod w stylu Resident Evil, to tym razem chciałbym dodać zmieniającą się muzykę podczas gry. Na zewnątrz powinny się powtarzać 3 utwory, a w kryjówce (dom z zapisem) - 1, inny utwór. W modzie w 3 miejscach dodałem bossów, więc bardzo zależy mi na tym, żeby po zbliżeniu się do któregoś z nich muzyka przestała grać (bo każdy z tych boss'ów ma swój unikalny utwór podczas walki). Podaję ich współrzędne:
1. 287.6322 1839.766 7.72656
2. 1764.887 -2282.461 26.79602
3. -1930.182 644.7468 46.5625
Taki skrypt jest możliwy?
Postów:
52
Dołączył:
2012-11-18
Napisano dnia: 2012-12-18 19:51:15
Podpinam się pod prośbę. Jak będzie wyglądał skrypt na muzykę płynącą z danego modelu? na bank da się to zrobić, w gta 3 muzyka leciała 24/7 gdy podszeszło się do jednego z kilku ciemnoczerwonych bloków nieopodal naszej pierwszej kryjówki.
Postów:
109
Dołączył:
2009-04-25
Napisano dnia: 2012-12-18 20:09:43
Ja bym zrobił to tak:
Kod:
:petla
wait 1
if
00EC: actor
$PLAYER_ACTOR 0 near_point 287.6322 1839.766 radius 20.0 20.0
jf @petla
018E: stop_sound
1@
:petla2
wait 1
if
00EC: actor
$PLAYER_ACTOR 0 near_point 1764.887 -2282.461 radius 20.0 20.0
jf @petla2
018E: stop_sound
1@
:petla3
wait 1
if
00EC: actor
$PLAYER_ACTOR 0 near_point -1930.182 644.7468 radius 20.0 20.0
jf @petla3
018E: stop_sound
1@
zaratustra napisał(a):
Jak będzie wyglądał skrypt na muzykę płynącą z danego modelu? na bank da się to zrobić
Według mnie, nie da się tak zrobić aby muzyka leciała z modelu. Ja zrobiłbym to za pomocą
00EC i
018C.
Postów:
52
Dołączył:
2012-11-18
Napisano dnia: 2012-12-18 21:04:25
źle się wyraziłem, chodziło mi o właśnie obszar w koło modelu, czyli po prostu radius w okół współrzędnych. a czy dźwięk będzie zanikał w miarę oddalania? czy zniknie całkowicie, gdy postawimy krok za daleko?
Postów:
109
Dołączył:
2009-04-25
Napisano dnia: 2012-12-19 08:18:56
zaratustra napisał(a):
czy dźwięk będzie zanikał w miarę oddalania? czy zniknie całkowicie, gdy postawimy krok za daleko?
Tego nie wiem, wydaje mi się, że nie.
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2012-12-19 18:35:45
To tylko albo domyślne dźwięki z SA, albo CLEO4 i audiostreamy 3d.
___________________
Moderator
Postów:
52
Dołączył:
2012-11-18
Napisano dnia: 2012-12-19 20:10:45
W moim przypadku chodzi o to,żeby w miarę zbliżania się do danego punktu, zgłaśniała się muzyka. Zależy mi na tym, żeby owe dźwięki były czerpane z jakiegoś pliku, niekoniecznie mp3, jakiegokolwiek. chciałbym zrobić takie miejsce (halę) z głośnikami itp, gdzie non stop leciałaby muzyka, stałby ped za konsoletą itp.. chciałbym jednak żeby nie był to interior, tylko na zewnątrz, pod namiotem..
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2012-12-20 11:37:39
Skorzystaj z odtwarzania plików MP3 w CLEO. Sprawdzaj, jak blisko jest gracz od obiektu i ustawiaj odpowiednio głośność:
Kod:
0ABC: set_audiostream
$hMP3 volume
0@
Reszta funkcji związanych z MP3:
http://www.gta-mods.pl/baza-opcodow/szukaj?search=mp3
___________________
Administrator
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2012-12-20 17:05:10
Lepiej użyć audiostreamów 3d, je da się podstawić pod obiekt lub współrzędne.
___________________
Moderator
Postów:
13
Dołączył:
2011-12-07
Napisano dnia: 2012-12-23 22:54:21
To może ja odświeżę moje pytanie - jak zrobić, żeby we wszystkich domach do zapisywania odtwarzał się ciągle 1 utwór? Sorry, ale jestem zielony, jeśli chodzi o tworzenie skryptów od podstaw.
Postów:
13
Dołączył:
2011-12-07
Napisano dnia: 2013-01-01 16:44:37
Odświeżam i przy okazji dodaję skrypt, który próbowałem zrobić. Zrobiłem to tak, żeby mp3 odtwarzało się w domu CJ'a na GS. No i jak załaduję zapis w tym domu, to słychać muzykę, ale jednocześnie wyskakuje błąd gta_sa.exe. Co trzeba poprawić, albo dodać?
Kod:
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
:NONAME_2
wait 250
if
Player.Defined(0)
if
00FE: actor $PLAYER_ACTOR sphere 0 in_sphere 2495.996 -1699.918 1014.742 radius 50.0 50.0 40.0
0AAC: $HMP3 = load_mp3 "CLEO\MUSIC\SAVEROOM.MP3"
0AAD: set_mp3 0@ perform_action 1
if
Player.Defined(0)
00F2: actor $PLAYER_ACTOR near_actor 0 radius 60.0 60.0 50.0
0AAD: set_mp3 0@ perform_action 0
jump @NONAME_2
Wiem, że jest prymitywny, ale sklejałem to z kilku innych skryptów. Mam jeszcze pytanie, jak zmniejszyć głośność odtwarzanego mp3?
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2013-01-01 17:01:49
To cud, że w ogóle było słychać tę muzykę.
1. Nie używaj zmiennych globalnych w CLEO.
2. Strasznie nieczytelnie skonstruowałeś te warunki.
3. Twój kod ładuje i odtwarza plik MP3 w kółko - bezsensu.
4. Kod SCM dawaj w znacznik BBcode
scm.
Tutaj poprawiony kod, który powinien działać, przeanalizuj sobie go:
Kod:
{
$CLEO .cs}
1@ = 0
:isPlayerDefined
wait 0
if
Player.Defined(0)
jf @isPlayerDefined
0AAC: 0@ = load_mp3
"CLEO\MUSIC\SAVEROOM.MP3"
:isActorInArea
wait 0
if
00FE: actor
$PLAYER_ACTOR sphere 0 in_sphere 2495.996 -1699.918 1014.742 radius 50.0 50.0 40.0
jf @stopMusic
1@ == 0
then
0AAD: set_mp3
0@ perform_action 1
end
jump
@isActorInArea
:stopMusic
if
1@ == 1
then
0AAD: set_mp3
0@ perform_action 0
end
jump
@isActorInArea
___________________
Administrator
Postów:
13
Dołączył:
2011-12-07
Napisano dnia: 2013-01-01 17:44:58
Dziękuję za pomoc i rady, działa elegancko. Tylko, że efekt jest inny od zamierzonego, ponieważ muzyka odtwarza się na zewnątrz, a chciałem aby była w domu CJ'a. Następna sprawa to to, że właśnie zależy mi na tym, żeby mp3 odtwarzało się cały czas. No i czy da się ją zciszyć którymś z tych opcodów?
Kod:
0ABB 0@ = audiostream $hMP3 volume
Kod:
0ABC set_audiostream $hMP3 volume 0@
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2013-01-01 18:31:16
Opisy są w bazie opcodów. Pierwszy odczytuje bieżący poziom głośności, a drugi ustawia na podany.
Zapomniałem poustawiać flagi 1@.
Kod:
{
$CLEO .cs}
1@ = 0
:isPlayerDefined
wait 0
if
Player.Defined(0)
jf @isPlayerDefined
0AAC: 0@ = load_mp3
"CLEO\MUSIC\SAVEROOM.MP3"
:isActorInArea
wait 0
if
00FE: actor
$PLAYER_ACTOR sphere 0 in_sphere 2495.996 -1699.918 1014.742 radius 50.0 50.0 40.0
jf @stopMusic
1@ == 0
then
0AAD: set_mp3
0@ perform_action 1
1@ = 1
end
jump
@isActorInArea
:stopMusic
if
1@ == 1
then
0AAD: set_mp3
0@ perform_action 0
1@ = 0
end
jump
@isActorInArea
___________________
Administrator
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2013-01-01 18:52:16
Pierwsze sprawdzenie (Player.Defined) i inicjalizacja wartości flagi 1@ na 0 są tu zbędne.
___________________
Moderator