Делаем новые миссии. CLEO - скрипты, cutscene, статьи, программы. Игровые новости.
 
27.9.07 18:46 |

Работа со звуками в GTA San Andreas

Раздел: Основы скриптинга | Автор: yelmi | Рейтинг: 7.63 (30) | Хитов 12796
Всем наверно известны такие варианты загрузки звуков как:

Код:
03CF: load_wav 15863 as 1 
03CF: load_wav 15805 as 2
03CF: load_wav 32401 as 3
03CF: load_wav 15863 as 4


при этом

Код:
03CF: load_wav 15863 as 1 
03CF: load_wav 15805 as 2


чаще всего применяются для загрузки диалогов, а

Код:
03CF: load_wav 32401 as 3
03CF: load_wav 15863 as 4


для загрузки игровых звуков.

Для проигрыша звука применяется такая команда:

Код:
03D1: play_wav 1 //2 //3 //4


Ну и соответственно выгрузка звука:

Код:
040D: unload_wav 1 //2 //3 //4



Выгружать звуки нужно обязательно, после их использования, иначе будут проблемы либо звуки вообще не будут воспроизводиться либо будут проигрываться не те, что нужно.
Пример диалога:

Код:
:ZVUK_5800
054C: use_GXT_table 'WUZI1'
//загружаем GXT раздел, необходим для отображения титров
03CF: load_wav 36600 as 1
03CF: load_wav 36601 as 2
:ZVUK_5802
if and
83D0: not wav 1 loaded //проверяем загрузку звука
83D0: not wav 2 loaded
jf @ZVUK_5803
wait 0 ms
jump @ZVUK_5802

:ZVUK_5803
03D1: play_wav 1 //проигрываем звук
00BC: text_highpriority 'STL1_AA' 10000 ms 1 //выводим титры

:ZVUK_5804
if
03D2: wav 1 ended //проверяем, закончился ли проигрыш звука
jf @ZVUK_5805
wait 0 ms
jump @ZVUK_5804

:ZVUK_5805
wait 4000 ms
03D5: remove_text 'STL1_AA' //удаляем текст
040D: unload_wav 1 //удаляем звук
wait 550 ms
03D1: play_wav 2
00BC: text_highpriority 'STL1_AB' 10000 ms 1

:ZVUK_5806
if
03D2: wav 2 ended
jf @ZVUK_5807
wait 0 ms
jump @ZVUK_5806

:ZVUK_5807
wait 4000 ms
03D5: remove_text 'STL1_AB'
040D: unload_wav 2



Для того чтобы двери, ворота или любой другой объект в игре «зазвучал» применяют такой опкод:

Код:
097B: play_audio_at_object 246@ event 1126
//проиграть возле объекта 246@ звук 1126


где
246@ - переменная объекта
1126 – звук (я так понимаю это код звукового файла, если не прав то знающие люди поправят).
Перечень звуков находится в файле GTA San AndreasdataAudioEvents.txt.
Но одного этого опкода не достаточно, для того чтобы звук был проигран, необходимо прежде его загрузить. Здесь как раз и применяется 03CF: load_wav 1823 as 3 или as 4.

Пример:

Код:
:ZVUK_3786
029B: 246@ = init_object #WAREHOUSE_DOOR2B at 2774.3611 -2417.8291 14.675
0400: create_coordinate 251@ 252@ 253@ from_object 246@ offset 0.0 0.0 4.0
var
$muve2 : Integer
end //end var
$muve2 = 0
03CF: load_wav 1823 as 3

:ZVUK_3787
0001: wait 0 ms
00D6: if
03CA: object 246@ exists
004D: jump_if_false @ZVUK_3789
097B: play_audio_at_object 246@ event 1035

:ZVUK_3789
0006: 32@ = 0 // integer values

:ZVUK_3790
00D6: if
001A: 20 > $muve2
004D: jump_if_false @ZVUK_3792
034E: move_object 246@ to 251@ 252@ 253@ speed 0.0 0.0 0.2 flag 0
097B: play_audio_at_object 246@ event 1035
0001: wait 30 ms
$muve2 +=1
000A: 32@ += 1 // integer values
0001: wait 0 ms
0002: jump @ZVUK_3790

:ZVUK_3792
00D6: if
03CA: object 246@ exists
004D: jump_if_false @ZVUK_3793
097B: play_audio_at_object 246@ event 1036

:ZVUK_3793
040D: unload_wav 3
01C4: remove_references_to_object 246@
// This object will now disappear when the player looks away


Здесь при перемещении ворот проигрывается звук.


Опкод:

Код:
097C: attach_wav 4 to_object 6@ //прикрепить звук 4 к объекту 6@


пример:

Код:
:IMPND_3038
03CF: load_wav 36000 as 4 //загружаем звук 36000 как 4

:IMPND_3076
wait 0 ms
if
03D0: wav 4 loaded
jf @IMPND_3076
097C: attach_wav 4 to_object 6@//прикрепить звук 4 к объекту 6@
03D1: play_wav 4 //проигрываем звук
03D7: set_wav 4 location 1589.0597 -1694.7285 10.4887
//разместить звук 4 в координатах 1589.0597 -1694.7285 10.4887


Так же можно присвоить определенный звук и актеру:

Код:

09D6: set_actor 1@ sound 5851 flags 1 1 0
// актер 1@ звук 5851 флаг 1 флаг 1 флаг 0
09F1: play_audio_at_actor $PLAYER_ACTOR event 1190
//воспроизвести актеру $PLAYER_ACTOR звук 1190


Можно проиграть определенный звук в заданных координатах.

Код:
018C: play_sound 1052 at 0.0 0.0 0.0 // где 0.0 0.0 0.0 – координаты
097A: play_audio_at 0.0 0.0 0.0 event 1136 //проиграть в координатах 0.0 0.0 0.0 звук 1136


Присвоить звук автомобилю:

Код:
0A16: link_wav 3 to_car 59@ // прикрепить звук 3 транспорту 59@ 
03D1: play_wav 3

09F7: play_audio_at_car $SWEETS_CAR event 1147
// воспроизвести транспорту $SWEETS_CAR звук 1147.


Имеются также такие опкоды:

Код:
0717: assign_actor 55@ to_dialogue_mode // присвоить актеру 55@ диалог

0A18: set_dialogue_classA_question_GXT 281@s answer_yes_GXT 283@ answer_no_GXT 285@s question_WAV 291@ answer_yes_WAV 292@ answer_no_WAV 293@
//загрузить текст 281@s текст 283@s текст 285@s звук 291@ звук 292@ звук 293@

0A3C: set_dialogue_classA_end_GXT 285@s WAV 297@ //загрузить текст 285@s звук 297@

0719: toggle_dialogue_mode //воспроизвести диалог


Еще такая тройка опкодов:

Код:
0952: load_soundtrack 0 //загрузить мелодию 0 
// (0,1, 2, 3…с числами можно поэкспериментировать)

0954: start_playing_loaded_soundtrack // проиграть загруженную мелодию

0955: end_playing_loaded_soundtrack // остановить и выгрузить мелодию


Вот вкратце все то, что мне удалось выяснить.

 

  1 2 3 4 5 6 7 8 9 10  

Родственные ссылки
» Другие статьи раздела Основы скриптинга
» Эта статья от пользователя yelmi

5 cамых читаемых статей из раздела Основы скриптинга:
» Работа со звуками в GTA San Andreas
» Директивы
» Контроль клавиатуры
» External Script – что это такое и как с ним работать?
» Панель, или список товаров. Часть II.

5 последних статей раздела Основы скриптинга:
» Директивы
» Дополнительные команды
» Ключевые слова
» Классы
» Циклы

¤ Перевести статью в страницу для печати
¤ Послать эту cтатью другу

MyArticles 0.6 beta for RUNCMS: by RunCms.ru


Реклама

Вверх     Вернуться на главную. Вход в Систему. Статьи. Скачать. Миссии. ФОРУМ Обратная связь.   
   
   
   
   
- Генерация страницы: 0.18 секунд -