Здравствуйте, в 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