Автор Тема: Звуки для камеры которой игрок фотографирует.  (Прочитано 535 раз)

foga66

  • Гость
Здравствуйте, в main.scm весь код для воспроизведения звука фотоаппарата
прописан ниже. Прошу пожалуйста небольшой проверки и возможно улучшения в коде, потому что возможно я что-то упустил или сделал не так.

Код для вайс сити, прошу не путать с гта са, он оживляет фотоаппарат парой звуков, это можно сказать небольшое дополнение к плагину от GHOST которому удалось сделать функциональным фотоаппарат как в гта са.

Сам код прописан до 0 миссии, а стартер среди прочих стартеров.
Насчёт 00d7 я поставил стартер потому что в конце команда return,
а всё потому что в коде вызывается gosub когда игрок имеет фотоаппарат. Насчёт 004F того можно ли его юзать немного сомневаюсь, просто сравнивая коды разные замечал что 00d7 стоит там где есть return, а там где 004F чаще заканчивается код jump.
Уточняющий вопрос: мне использовать в моём случае 004F или 00d7 ? Уточните пожалуйста почему. На сайте гтамодс я описания опкодов читал, но вопросы остались, да и на будущее полезно будет знать.

Строку POR3_19 означающую что плёнка закончилась я добавлю позже в
секцию main когда буду добавлять её в .gxt файлы, потому что
данная строка использовалась только в конкретной миссии.
Она просто обозначает что если плёнка чтобы делать снимки игроку
кончилась, то игрока об этом уведомят. Благо другие короткие уведомления выводятся плагином GHOST, например когда вы сделали снимок.

00D7: start_new_script @CAMPH without_parameters

:CAMPH
03A4: script_name 'CAMPH'
wait 1000
0004: $CAMdeadslut = 0 // $ = int
//0004: $CAMcam_audio1 = 0 // $ = int
//0004: $CAMcam_audio2 = 0 // $ = int
//0006: TIMERB = 0 // @ = int

while true
wait 0
    if
    02D7:   player $PLAYER_CHAR current_weapon == 36
    then
    0050: gosub @CAMPH_10651
    else
    wait 0
    end
end
:CAMPH_10651
//01B1: give_player $PLAYER_CHAR weapon 36 ammo 12 // Load the weapon model before using this

0419: $CAMcamera_film = player $PLAYER_CHAR weapon 36 ammo

00D6: if //esli plenka zakonchilas to
0038:   $CAMcamera_film == 0 // $ == int
004D: jump_if_false @CAMPH_10686
0004: $CAMdeadslut = 4 // $ = int nam ob etom soobshat

:CAMPH_10686
00D6: if
0019:   TIMERB > 280 // @ > int
004D: jump_if_false @CAMPH_10892
00D6: if
0038:   $CAMcam_audio1 == 1 // $ == int
004D: jump_if_false @CAMPH_10892
00D6: if
0038:   $CAMcam_audio2 == 1 // $ == int
004D: jump_if_false @CAMPH_10892
00D6: if
02D7:   player $PLAYER_CHAR current_weapon == 36
004D: jump_if_false @CAMPH_10892
00D6: if
00E1:   player 0 pressed_button 6
004D: jump_if_false @CAMPH_10892
00D6: if
00E1:   player 0 pressed_button 17
004D: jump_if_false @CAMPH_10892
03D1: play_wav 1
0004: $CAMcam_audio1 = 0 // $ = int
03D1: play_wav 2
0004: $CAMcam_audio2 = 0 // $ = int
0006: TIMERB = 0 // @ = int
00D6: if
0038:   $CAMdeadslut == 4 // $ == int
004D: jump_if_false @CAMPH_10892
00BC: text_highpriority 'POR3_19' time 5000 1  // ~r~You ran out of film!

:CAMPH_10840
00D6: if
83D2:   not wav 1 ended
004D: jump_if_false @CAMPH_10866
0001: wait 0 ms
0002: jump @CAMPH_10840

:CAMPH_10866
00D6: if
83D2:   not wav 2 ended
004D: jump_if_false @CAMPH_10892
0001: wait 0 ms
0002: jump @CAMPH_10866

:CAMPH_10892
00D6: if
0038:   $CAMcam_audio1 == 0 // $ == int
004D: jump_if_false @CAMPH_10955
03CF: load_wav 'CAML' as 1

:CAMPH_10922
00D6: if
83D0:   not wav 1 loaded
004D: jump_if_false @CAMPH_10948
0001: wait 0 ms
0002: jump @CAMPH_10922

:CAMPH_10948
0004: $CAMcam_audio1 = 1 // $ = int

:CAMPH_10955
00D6: if
0038:   $CAMcam_audio2 == 0 // $ == int
004D: jump_if_false @CAMPH_11018
03CF: load_wav 'CAMR' as 2

:CAMPH_10985
00D6: if
83D0:   not wav 2 loaded
004D: jump_if_false @CAMPH_11011
0001: wait 0 ms
0002: jump @CAMPH_10985

:CAMPH_11011
0004: $CAMcam_audio2 = 1 // $ = int

:CAMPH_11018
0051: return

//0002: jump @CAMPH_10651
« Последнее редактирование: Апрель 05, 2024, 03:27:00 am от foga66 »

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 710
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Звуки для камеры которой игрок фотографирует.
« Ответ #1 : Апрель 06, 2024, 03:26:40 am »
К сожалению, на детальные разборы скриптов сейчас времени не хватает, но немного проясню ситуацию.

Не совсем уверен, о каком плагине GHOST идет речь, но лет 10-12 назад я писал скрипт и плагин, которые позволяли делать снимки в Вайсе. Не уверен, что плагин нормально работает с современными системами, но основная проблема всей этой затеи (со звуками) была в том, что Вайс сильно ограничен в воспроизведении звуков, и если загрузить звук не в то время - это повредит ход работы других скриптов и миссий.
Помню, я в своем коде скрипта выкрутился так, что подзагружал звуки фотоаппарата только когда игрок прицеливается с него. В этом раскладе маловероятно, что какие-то другие скрипты будут загружать свои звуки в это время. Хотя и это возможно.

Цитировать
мне использовать в моём случае 004F или 00d7 ?
Насколько мне известно, 00D7 и 004F работают одинаково, просто 004F позволяет еще отправлять параметры в новосозданный тред (но это не обязательно).





« Последнее редактирование: Апрель 06, 2024, 03:28:54 am от Shagg_E »

foga66

  • Гость
Re: Звуки для камеры которой игрок фотографирует.
« Ответ #2 : Апрель 06, 2024, 03:02:09 pm »

Не совсем уверен, о каком плагине GHOST идет речь, но лет 10-12 назад я писал скрипт и плагин, которые позволяли делать снимки в Вайсе.

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 710
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Звуки для камеры которой игрок фотографирует.
« Ответ #3 : Апрель 07, 2024, 06:20:58 am »
А, ну так это не его плагин - он просто ссылку указал. Автор - nick7 aka Lego. Ну, ничего не могу сказать по поводу того плагина, т.к. не юзал его, только мб затестил по приколу (когда он вышел - я уже свой написал)