Перейти к содержимому


Фотография

Скриптинг в LCS и VCS (PSP/PS2)


Сообщений в теме: 74

#61 LEX SAFONOV

LEX SAFONOV

    Активный участник

  • Пользователи
  • PipPipPip
  • 56 сообщений

Отправлено 27 August 2012 - 09:32

круто! )) и что теперь можно телепортироваться везде по городу? :)
(как в чит девайсе ПСП-шном?)


Не совсем, там набор локаций, в которые игрока можно телепортнуть.

#62 maXedR

maXedR

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений
  • Город:Львов


Отправлено 27 August 2012 - 09:49

@SILENT_Pavel
А у тебя есть описание функций дебаг-меню?
(ну какими комбинациями клавиш что сделать можно)

#63 tram73

tram73

    Активный участник

  • Пользователи
  • PipPipPip
  • 40 сообщений
  • Пол:Мужчина
  • Город:Архангельск


Отправлено 27 August 2012 - 10:00

>>LEX SAFONOV
ясно, но всеравно интересные функции ))
почти ж как читдевайс

>>maXedR
вот тут описание:
http://forums.gtamod...a...ost&p=10040

#64 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 27 August 2012 - 10:40

SILENT_Pavel

А просмотр зданий как бы просто крутится вокруг выбранного здания в городе и все? Вообще все здания в игре?

На самом деле можно перемещаться только по нескольким локациями (но их около сорока штук).
Камера не вращается, стоит на месте.

И просмотр моделек персонажей ничего не делает кроме просмотра? в всс вроде цвет менялся одежды

Ну да, только просмотр, изменение цветов одежды в LCS не предусмотрено.

Старые функции работают вместе с этими одновременно или нет?

Пока нет, с точки зрения логики кода я не совсем корректно запускал данные потоки).
Еще буду работать в этом направлении, все должно вызваться из-под @debmenu.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#65 SILENT_Pavel

SILENT_Pavel

    Активный участник

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 27 August 2012 - 12:52

Dageron
Здорово это все, ну вроде бы это все, не считая погоды. Из того что не вырезано. p.s. а нет, еще осталась отладка AI, в всс вроде только ли? Осталось всс поглядеть потом когда время будет.
Апд: на гтафорумсах один человек создал генератор хендлинг модов для читдевайса: тут

Сообщение отредактировал SILENT_Pavel: 18 September 2012 - 05:46


#66 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 28 August 2012 - 14:10

кстати, а в VCS никто не открывал бизнес-дебаг? там вроде можно строить, ломать и т.д. здания.
я мейн толком не смотрел, но функций в дебаге действительно должно быть гораздо больше.

А есть для ЛСС опкоды какие-нить обновленные?

Вот последняя версия со всеми обновлениями.

а нету для VCS последней версии?

Сообщение отредактировал Lego: 28 August 2012 - 14:13


#67 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 02 September 2012 - 10:55

а нету для VCS последней версии?

Под VCS нет, надо переносить опкоды из LCS-овского *.ini.

кстати, а в VCS никто не открывал бизнес-дебаг? там вроде можно строить, ломать и т.д. здания.
я мейн толком не смотрел, но функций в дебаге действительно должно быть гораздо больше.

Строить и ломать непосредственно там ничего нельзя). Можно только переводить объекты бизнес-сети в разные состояния - "разрушено", "строительство", "продажа". Например, "разрушено" значит что здание будет как после нападения на бизнес-сеть в игре (модель заменена на разрушенную); "строительство" значит что оно будет некоторое время огорожено и нельзя зайти внутрь (см. скриншот); и т.д.

Надеюсь, до отладочного меню из VCS тоже руки дойдут, но пока бы LCS заставить полноценно работать (я уже придумал как, но придется переделывать проверки на нажатие кнопок, а я не знаю их коды).
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#68 SILENT_Pavel

SILENT_Pavel

    Активный участник

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 10 September 2012 - 01:54

Нашел очень интересную особенность функции просмотра зданий и интерьеров в составе Дебага.
Практически в любом случае после спауна на выбранное здание, резко меняются камеры в салоне автомобиля вокруг спавненного здания где-то в радиусе половины города, в котором произошел спавн. При этом если нажать L1 - камера резко перемещается в салон и в 90% случаев становится в положение ровно от глаз гг в салоне на месте водительского сидения. Для читдевайса на псп это не ново, но тамошний код во первых работает только с ~40% автомобилей, а во вторых очень дерганный, тут же как по маслу практически всегда мягко и пропорционально (если играть на псп, то имеет смысл врубить код на скрытие главного персонажа, дабы он не заслонял вид в салоне). Жаль только что пропадает если выехать за радиус. Ну и в приложении интересные пункты из дебага персонажей (мертвый хозяин ночного клуба в дебаге шевелится как живой).

ИзображениеИзображение

Сообщение отредактировал SILENT_Pavel: 10 September 2012 - 01:54


#69 LEX SAFONOV

LEX SAFONOV

    Активный участник

  • Пользователи
  • PipPipPip
  • 56 сообщений

Отправлено 10 September 2012 - 14:32

Народ, а как всё таки работает опкод 05AE? Ясен пень, что как функция, это я знаю. Я никак не впарю логику передачи параметров потоку.

#70 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 10 September 2012 - 18:54

не знаю, насколько пень ясен - нужно смотреть в иде, как минимум, за что отвечает неизвестный параметр.

в остальном - логика видна из самого SCM:
- выполнение скрипта переходит по указанному адресу наподобие gosub (на указанную метку), при этом локальные переменные заменяются на передаваемые начиная с нуля и далее.
- выполнеие "функции" происходит до опкоов true, false или return.
- при изменении передаваемых локальных переменных, их значения изменятся и в потоке (или функции), вызвавшем эту функцию (то есть работают аналогично ссылкам в C++)
т.е. например так:
:change
0@ = 1@
return

// ...

0@ = 4
call_with_params @change 0@ 12 // лень расписывать весь опкод, это чисто демонстрация
// а вот тут 0@  уже равно 12. отмечу, что в данном коде 0@ на второй строке и на 7ой - разные локалные переменные

в GTA SA, кстати, есть некая аналогия - gosub с параметрами.

Сообщение отредактировал Lego: 10 September 2012 - 18:55


#71 LEX SAFONOV

LEX SAFONOV

    Активный участник

  • Пользователи
  • PipPipPip
  • 56 сообщений

Отправлено 26 September 2012 - 07:33

И так, как и обещал, начинаю выкладывать сконверченые миссии из ЛСС.
Начну пожалуй с миссии Slacker, т.к. я недавно выкладывал ролик с начальной сценкой от туда.
Собсно разбор звуков занял довольно много времени, т.к. я тогда старался скопировать оригинальную систему, вызывать там кусок кода через gosub и т.п., но понял что это бесполезно, т.к. функции довольно геморные и запутанные. Решил делать по анологии с вайсом, пример:
Работа со звуком:

//Грузим где нить звук
:Sound
03CF: load_wav 'VIC2_AA' as 1

//Проверяем циклом, что звук не загружен.
//Если звук будет загружен, то игра перейдёт дальше, если нет, то будет дальше циклично работать по циклу.
//Самое важное в цикле "wait 0", думаю я сейчас покажусь кэпом для многих людей, знающих програмирование,
//но если не поставить задержку, то игру зациклит.
:Sound_2
if
83D0: not wav 1 loaded
jf @Sound_4
wait 0
jump @Sound_2

//если звук загружен, то вопроизводим.
:Sound_4
03D1: play_wav 1

//А вот этот блок для пропуска ролика, когда у нас уже звук начал вопроизводиться.
//Суть в чём - здесь тоже цикл и тоже с нулевой задержкой, дабы игру не циклило в этом месте.
//Однако тут есть ещё проверка на нажатость клавиши спринт(по уполчанию это крест на джое и shift на клаве).
//Если мы жамкнем клавишу, когда впроизводится звук, то игра сразу же перейдёт в конец ролика,
//если просто закончится вопроизведение звука, то игра пойдёт
//дальше по нашему ролику.
:Sound_6
if
83D2: not wav 1 ended
jf @Sound_8
wait 0
if
80E1: not key_pressed 0 16
jf @Sound_20
wait 0
jump @Sound_6

//Представим, что здесь ролик будет идти дальше и тут у нас опять будут по новой грузиться звуки и т.п.
:Sound_8
040D: unload_wav 1
..........

//Представим, что здесь конец ролика и тут уже всё окончательно выгружается.
:Sound_20
040D: unload_wav 1
..........

Работа с затемнением-просветлением
Да и это тоже по особенному сделали в ЛСС. Смотрим
//Задаётся цвет затемнения-просветления.
//И включается затемнение-просветление.
:Fade
0169: set_fade_color 0 0 0
fade 0 1000

//А вот чтобы игра у нас не затупила(как например в Scooter-Shoter, там был баг,
//что затемнение-просветление вообще не срабатывало без этого блока)
//Смысл - игра циклично проверяет работает ли у нас ещё режим затемнения-просветления,
//если да, то циклично проверяем это опять, если затемнение-//просветление уже прошло, то идём дальше
:Fade_2
if
fading
jf @Mission_55
wait 0
jump @Fade_2

//Предствим, что тут у нас дальше код миссии
:Mission_55
..............

Спросите вы - "а нафига оно вообще?", а вот вам и ответ - представим себе такую ситуацию:
:Mission
0169: set_fade_color 0 0 0
fade 0 1000


:Mission_2
.............


:Mission_5
0169: set_fade_color 0 0 0
fade 1 1000
............................

Без этих блоков затемнения в начале не будет вообще, даже точнее - вообще не произойдёт никаких затемнений-просветлений.

Ну и наконец ещё одно - задержка с возможностью пропуска ролика.
В ЛСС сделали довольно хитрую систему задержки, где ещё вдобавок можно пропустить ролик.
Смотрим:
//Записываем текущее время в милисекундах в переменную $CURRENT_TIME1
:Game
01BD: $CURRENT_TIME1 = current_time_in_ms


//Далее пишем ещё раз текущее время в милисекундах в другую переменную $CURRENT_TIME2
//Берём ещё одну переменную в качестве счётчика - $VAR
//Сначала присваиваем ей значение $CURRENT_TIME2, а потом вычитаем из неё $CURRENT_TIME1.
//Полученное значение и является нашей своебразной задержкой.
//Смысл в том, что игровое время постоянно прибавляется и полученным результатом мы видим сколько милисекунд прошло в данный момент
//Так же как и с системой звука мы проверяем циклично сколько милисекунд прошло через $VAR и проверяем нажатость клавиши. Если клавиша нажата, то ролик
//пропускается, если не нажата и время уже прошло сколько нужно, то идём дальше по ролику.
:Game_2
01BD: $CURRENT_TIME2 = current_time_in_ms
0085: $VAR = $CURRENT_TIME2 // integer values and handles
0060: $VAR -= $CURRENT_TIME1 // integer values
if
not $VAR > 3000
jf @Game_4
if
80E1: not key_pressed 0 16
jf @Game_8
wait 0
jump @Game_2

//Представим, что тут продолжение ролика
:Game_4
......................

//Представим, что тут его конец.
Game_8
.....................

Думаю я и так запарил так сказать своими поучениями)
Вот сам код миссии, возможно он будет обновляться, т.к. некоторые элементы я посносил(ума не приложу нафига засовывали тучу ненужных переменных как проверки, и без них можно спокойно обойтись, вдобавок зачем то сделали проверку на вертолёт, вроде... Сделали ненужного актёра синдако, которого мы в конце никаким боком не видим)
Вообщем, вотъ:
//-------------Mission 48---------------
// Originally: Slacker (Vincenzo)

:VIC2
thread 'VIC2' // Slacker
increment_mission_attempts
gosub @VIC2_1267
if
wasted_or_busted
jf @VIC2_35
jump @VIC2_6732


:VIC2_35
end_thread






//////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_1267
$ONMISSION = 1
054C: use_GXT_table 'VIC2' // Slacker
if
player.defined($PLAYER_CHAR)
jf @VIC2_1314
Player.CanMove($PLAYER_CHAR) = false
01F7: set_player $PLAYER_CHAR ignored_by_cops_state_to 1
01B8: set_player $PLAYER_CHAR armed_weapon_to 0
02A3: toggle_widescreen 1
///////////////////////////////////////////////////////////








:VIC2_1314
//04BB: select_interiour 2 // select render area, here vincenzo interiour
wait 0
//05AE: constant_params 2 variable_params 0 unknown 0 call_with_params @NONAME_1_11402 2 1 // Create objects threads
//05AE: constant_params 4 variable_params 0 unknown 0 call_with_params @NONAME_1_11035 1 1 0 0 //
03CF: load_wav 'VIC2_AA' as 1
03CF: load_wav 'VIC2_AB' as 2
//023C: load_special_actor 1 'IGDIAZ '
//038B: load_requested_models
023C: load_special_actor 5 'IGBUDDY'
038B: load_requested_models

:VIC2_1320
wait 0
if
823D: not special_actor 5 loaded
jf @VIC2_1325
wait 0
jump @VIC2_1320


:VIC2_1325
022B: create_forbidden_for_peds_cube 998.865 -260.7609 50.0 1006.658 -242.3217 60.0
01EB: set_traffic_density_multiplier_to 0
01E8: create_forbidden_for_cars_cube 731.03 -1108.65 11.0 916.29 -1051.9 18.0
009A: $VINCENZO = create_actor pedtype 4 model #SPECIAL05 at 773.776 -1118.799 11.8221
0173: set_actor $VINCENZO z_angle_to 179.3877
wait 1000
015F: set_camera_position 771.44 -1113.5 12.34 0 0 0
0160: point_camera 772.01 -1114.3 12.23 2
if
//player.defined($PLAYER_CHAR)
not Actor.Dead($PLAYER_ACTOR)
jf @VIC2_1581
0055: put_player $PLAYER_CHAR at 772.223 -1111.051 11.8221
0171: set_player $PLAYER_CHAR z_angle_to 180.1273
0211: actor $PLAYER_ACTOR walk_to 772.934 -1114.942



:VIC2_1581
if
not Actor.Dead($VINCENZO)
jf @VIC2_1665
0173: set_actor $VINCENZO z_angle_to 14.0
0372: set_actor $VINCENZO anim 24 wait_state_time 99999999 ms
jump @VIC2_1638



:VIC2_1607
0169: set_fade_color 0 0 0
fade 1 1500

:VIC2_1619
if
fading
jf @VIC2_1638
wait 0
jump @VIC2_1619

:VIC2_1638
if or
83D0: not wav 1 loaded
83D0: not wav 2 loaded
jf @VIC2_1640
wait 0
jump @VIC2_1638


:VIC2_1640
if
829F: not player $PLAYER_CHAR stopped
jf @VIC2_1665
if
80E1: not key_pressed 0 16
jf @VIC2_2372
wait 0
jump @VIC2_1640



:VIC2_1665
if
not Actor.Dead($VINCENZO)
jf @VIC2_1681
0173: set_actor $VINCENZO z_angle_to 14.0

:VIC2_1681
if
not Actor.Dead($VINCENZO)
jf @VIC2_1964
0372: set_actor $VINCENZO anim 23 wait_state_time -1 ms



//////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_1725
00BC: text_highpriority 'VIC2M1' 3000 1 // We've got a dealer, working our North Chinatown patch.
03D1: play_wav 1

:VIC2_1735
if
83D2: not wav 1 ended
jf @VIC2_1740
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_2372
wait 0
jump @VIC2_1735


:VIC2_1740
040D: unload_wav 1
jump @VIC2_1776
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_1776
00BE: text_clear_all
00BB: text_lowpriority 'VIC2M2' 3000 1 // The lazy bastard ain't brought any cash in, in days.
03D1: play_wav 2
if
player.defined($PLAYER_CHAR)
jf @VIC2_2398
if
not Actor.Dead($VINCENZO)
jf @VIC2_2398
0372: set_actor $VINCENZO anim 19 wait_state_time 8200 ms


:VIC2_1800
if
83D2: not wav 2 ended
jf @VIC2_1810
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_2372
wait 0
jump @VIC2_1800


:VIC2_1810
040D: unload_wav 2
03CF: load_wav 'VIC2_AC' as 1
jump @VIC2_1815


:VIC2_1815
if
83D0: not wav 1 loaded
jf @VIC2_1858
wait 0
jump @VIC2_1815
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_1858
00BE: text_clear_all
00BB: text_lowpriority 'VIC2M3' 3500 1 // Maybe he needs some encouragement to get off his ass and do some work.
03D1: play_wav 1



:VIC2_1860
if
83D2: not wav 1 ended
jf @VIC2_1865
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_2372
wait 0
jump @VIC2_1860




:VIC2_1865
040D: unload_wav 1
03CF: load_wav 'VIC2_AD' as 1
jump @VIC2_1870

:VIC2_1870
if
83D0: not wav 1 loaded
jf @VIC2_1911
wait 0
jump @VIC2_1870
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_1911
00BE: text_clear_all
00BB: text_lowpriority 'VIC2M4' 3000 1 // Acting like a bitch... he kinda reminds me of you.
03D1: play_wav 1

:VIC2_1920
if
83D2: not wav 1 ended
jf @VIC2_1925
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_2372
wait 0
jump @VIC2_1920




:VIC2_1925
040D: unload_wav 1
03CF: load_wav 'VIC2_AF' as 2
jump @VIC2_1930

:VIC2_1930
if
83D0: not wav 2 loaded
jf @VIC2_1964
wait 0
jump @VIC2_1930
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_1964
00BE: text_clear_all
if
not Actor.Dead($VINCENZO)
jf @VIC2_2006
053D: (unknown) $VINCENZO


:VIC2_2006
if
not Actor.Dead($PLAYER_ACTOR)
jf @VIC2_2045
0372: set_actor $PLAYER_ACTOR anim 49 wait_state_time -1 ms




:VIC2_2023
00BB: text_lowpriority 'VIC2M5' 2300 1 // ~w~What are you trying to say?
03D1: play_wav 2



:VIC2_2030
if
83D2: not wav 2 ended
jf @VIC2_2035
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_2372
wait 0
jump @VIC2_2030




:VIC2_2035
040D: unload_wav 2
03CF: load_wav 'VIC2_AG' as 1
jump @VIC2_2040

:VIC2_2040
if
83D0: not wav 1 loaded
jf @VIC2_2045
wait 0
jump @VIC2_2040
/////////////////////////////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_2045
00BE: text_clear_all
if
not Actor.Dead($VINCENZO)
jf @VIC2_2282
0377: set_actor $VINCENZO anim 19 wait_state_time 1000 ms



:VIC2_2147
00BB: text_lowpriority 'VIC2M6' 2300 1 // I ain't TRYING to say nothing!
03D1: play_wav 1



:VIC2_2155
if
83D2: not wav 1 ended
jf @VIC2_2160
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_2372
wait 0
jump @VIC2_2155




:VIC2_2160
040D: unload_wav 1
03CF: load_wav 'VIC2_AH' as 2
jump @VIC2_2165

:VIC2_2165
if
83D0: not wav 2 loaded
jf @VIC2_2198
wait 0
jump @VIC2_2165
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////



///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_2198
00BE: text_clear_all
00BB: text_lowpriority 'VIC2M7' 5000 1 // I'm telling you to get over there and make sure this asshole starts bringing in some god damn money!
03D1: play_wav 2
if
not Actor.Dead($VINCENZO)
jf @VIC2_2398
053D: (unknown) $VINCENZO


:VIC2_2240
if
not Actor.Dead($VINCENZO) dead
jf @VIC2_2398
0372: set_actor $VINCENZO anim 44 wait_state_time 6000 ms


:VIC2_2355
if
83D2: not wav 2 ended
jf @VIC2_2282
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_2372
wait 0
jump @VIC2_2355
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_2282
00BE: text_clear_all
040D: unload_wav 1
040D: unload_wav 2
if
not Actor.Dead($VINCENZO)
jf @VIC2_2297
053D: (unknown) $VINCENZO

:VIC2_2297
if
not Actor.Dead($VINCENZO)
jf @VIC2_2314
0372: set_actor $VINCENZO anim 21 wait_state_time -1 ms

:VIC2_2314
00BE: text_clear_all
if
not Actor.Dead($PLAYER_ACTOR)
jf @VIC2_2372
011C: actor $PLAYER_ACTOR clear_objective
053D: (unknown) $PLAYER_ACTOR
0211: actor $PLAYER_ACTOR walk_to 772.223 -1111.051


:VIC2_2372
if
not Actor.Dead($PLAYER_ACTOR)
jf @VIC2_2398
053D: (unknown) $PLAYER_ACTOR
0579: stop_actor $PLAYER_ACTOR
///////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_2398
0169: set_fade_color 0 0 0
fade 0 1000



:VIC2_2400
if
fading
jf @VIC2_2410
wait 0
jump @VIC2_2400




:VIC2_2410
040D: unload_wav 1
040D: unload_wav 2
00BE: text_clear_all
01EB: set_traffic_density_multiplier_to 1.0
01E7: remove_forbidden_for_cars_cube 1081.03 -1108.65 9.0 1266.29 -1051.9 18.0
Actor.DestroyInstantly($VINCENZO)
wait 0
//04BB: select_interiour 0
0296: unload_special_actor 5
wait 0
02A3: toggle_widescreen 0
Camera.Restore_WithJumpcut()
01E8: create_forbidden_for_cars_cube 493.9 -635.2 10.0 544.7 -622.97 20.0
if
player.defined($PLAYER_CHAR)
jf @VIC2_2567
011C: actor $PLAYER_ACTOR clear_objective
0171: set_player $PLAYER_CHAR z_angle_to 0
0055: put_player $PLAYER_CHAR at 770.79 -1108.12 10.8202




:VIC2_2567
if
player.defined($PLAYER_CHAR)
jf @VIC2_2594
0171: set_player $PLAYER_CHAR z_angle_to 0
Player.CanMove($PLAYER_CHAR) = true
01F7: set_player $PLAYER_CHAR ignored_by_cops_state_to 0
///////////////////////////////////////////////////////////////////////////////////////////////////////






















:VIC2_2594
1@ = 0
37@ = 0
31@ = 0
0@ = 0
2@ = 0
14@ = 0
13@ = 0
12@ = 1
11@ = 0
8@ = 0
7@ = 0
9@ = 0
//0247: request_model 284
Model.Load(#MOLOTOV)
Model.Load(#WFOSH) // Old woman
Model.Load(#WMYCR) // Dealer1
Model.Load(#BMYCR) // Dealer2
Model.Load(#BMOTR) // Homeless model
Model.Load(#FREEWAY) // Bike model
Model.Load(#PGA)
//023C: load_special_actor 6 'IGBUDY2' //Here Special Actor Biker, but i'm nothing model
038B: load_requested_models
03E6: remove_text_box
00BC: text_highpriority 'VIC2_D' 8000 ms 1 // ~w~Pick up Vincenzo's dealer from ~y~St. Mark's district.

:VIC2_2600
if or
not Model.Available(#MOLOTOV)
not Model.Available(#WFOSH)
not Model.Available(#WMYCR)
not Model.Available(#BMYCR)
not Model.Available(#BMOTR)
not Model.Available(#FREEWAY)
not Model.Available(#PGA)
//023D: special_actor 6 loaded
jf @VIC2_2605
wait 0
jump @VIC2_2600


:VIC2_2605
018A: $CHECKPOINT = create_checkpoint_at 993.213 -251.4959 48.7163
00A5: $BIKE = create_car #FREEWAY at 986.484 -241.3229 48.6144
0224: set_car $BIKE health_to 1000
0175: set_car $BIKE z_angle_to 231.2066
009A: $BIKER = create_actor pedtype 4 model #PGA at 985.26 -241.1276 48.6254
0173: set_actor $BIKER z_angle_to 343.9173
04EB: actor $BIKER crouch -1 1 ms
009A: $HOMELESS = create_actor pedtype 19 model #BMOTR at 982.91 -251.9 48.6447
0173: set_actor $HOMELESS z_angle_to 90.0
0372: set_actor $HOMELESS anim 24 wait_state_time 99999999 ms
01B2: give_actor $HOMELESS weapon 15 ammo 1
0@ = 1
0169: set_fade_color 0 0 0
fade 1 1000

:VIC2_2610
if
fading
jf @VIC2_2897
wait 0
jump @VIC2_2610




///////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_2897
wait 0
if
player.defined($PLAYER_CHAR)
jf @VIC2_3184
if
not 0@ == 0
jf @VIC2_2929
gosub @VIC2_6829 //done


:VIC2_2929
if
not 0@ == 0
jf @VIC2_2951
gosub @VIC2_6829 // done



:VIC2_2951
if
00F5: player $PLAYER_CHAR near_point 1 993.213 -251.4959 49.7163 radius 4.0 4.0 4.0
jf @VIC2_3159
if
31@ == 0
jf @VIC2_3121
if
player.defined($PLAYER_CHAR)
jf @VIC2_3015
Player.CanMove($PLAYER_CHAR) = false

:VIC2_3015
0169: set_fade_color 0 0 1
fade 0 1000

:VIC2_3016
fading
jf @VIC2_3017
wait 0
jump @VIC2_3016


:VIC2_3017
009A: $DEALER = create_actor pedtype 4 model #BMYCR at 986.047 -259.15 48.6382
03FE: set_actor $DEALER money 0
01ED: reset_actor $DEALER flags
0173: set_actor $DEALER z_angle_to 270.0
009F: set_actor $DEALER objective_to-1
gosub @VIC2_5741 // done
//05AE: constant_params 1 variable_params 0 unknown 42 call_with_params @VIC2_917 0
00BC: text_highpriority 'VIC2OB1' 5000 ms 1 // ~w~Take the dealer to ~y~work.
018A: 4@ = create_checkpoint_at 520.6115 -633.0263 14.97
0169: set_fade_color 0 0 0
fade 1 500 ms
31@ = 1




:VIC2_3121
if
player.defined($PLAYER_CHAR)
jf @VIC2_3159
if
not Actor.Dead($DEALER)
jf @VIC2_3159
01DF: tie_actor $DEALER to_player $PLAYER_CHAR
0319: set_actor $DEALER wander_state_to 1
jump @VIC2_3184






////////////////////////////////////////////////////////////
:VIC2_3159
if
not 0@ == 0
jf @VIC2_3177
gosub @VIC2_6829 // done

:VIC2_3177
jump @VIC2_2897

:VIC2_3184
8@ = 1
2@ = 4
03CF: load_wav 'VIC2_DC' as 1
/////////////////////////////////////////////////////////






////////////////////////////It's While///////////////////////////////////////////////////////
:VIC2_3198
wait 0
if
player.defined($PLAYER_CHAR)
jf @VIC2_4804
if
not 0@ == 0
jf @VIC2_3227
gosub @VIC2_6829 //done



////////////////////////////////////////////////////////////////////////////////////
:VIC2_3227
if
player.defined($PLAYER_CHAR)
jf @VIC2_3315
if
not Actor.Dead($DEALER)
jf @VIC2_3315
if
0320: actor $DEALER in_range_of_player $PLAYER_CHAR
jf @VIC2_3315
if
00F5: player $PLAYER_CHAR 1 near_point 520.6115 -633.0263 14.97 radius 4.0 4.0 4.0
jf @VIC2_3315
if
00EC: actor $DEALER 0 near_point 520.6115 -633.0263 radius 4.0 4.0
jf @VIC2_3315
jump @VIC2_4811
////////////////////////////////////////////////////////////////////////////////////



///////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_3315
if
player.defined($PLAYER_CHAR)
jf @VIC2_3566
if
not Actor.Dead($DEALER)
jf @VIC2_3566
if
0320: actor $DEALER in_range_of_player $PLAYER_CHAR
jf @VIC2_3566
if
00DF: actor $DEALER driving
jf @VIC2_3566
if
80E3: not player $PLAYER_CHAR 0 near_point 520.6115 -633.0263 radius 360.0 360.0
jf @VIC2_3566
if
1@ == 0
jf @VIC2_3447
if
03D0: wav 1 loaded
jf @VIC2_3447
00BE: text_clear_all
00BB: text_lowpriority 'VIC2_I' 1500 1 // ~w~Oh, man...
03D1: play_wav 1
03CF: load_wav 'VIC2_DA' as 2
1@ = 1
//////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////
:VIC2_3447
if
1@ == 1
jf @VIC2_3515
if
03D2: wav 1 ended
jf @VIC2_3515
if
03D0: wav 2 loaded
jf @VIC2_3515
00BE: text_clear_all
040D: unload_wav 1
00BB: text_lowpriority 'VIC2_G5' 4000 1 // ~w~I don't feel too good... I think I might have a fever or something.
03D1: play_wav 2
03CF: load_wav 'VIC2_DB' as 1
1@ = 2
//////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////
:VIC2_3515
if
1@ == 2
jf @VIC2_3566
if
03D2: wav 2 ended
jf @VIC2_3566
if
03D0: wav 1 loaded
jf @VIC2_3566
040D: unload_wav 2
03D1: play_wav 1
03CF: load_wav 'VIC2_BF' as 2
1@ = 3
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



///////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_3566
if
Actor.Dead($DEALER)
jf @VIC2_3996
00BA: text_styled 'M_FAIL' 1000 ms 1 // MISSION FAILED!
00BA: text_styled 'VIC2_J' 5000 ms 8 // ~r~Vincenzo's dealer got wasted!
jump @VIC2_6732
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_3996
if
not Actor.Dead($DEALER)
jf @VIC2_4112
if
player.defined($PLAYER_CHAR)
jf @VIC2_4112
if
00DF: actor $DEALER driving
jf @VIC2_4112
if and
0320: actor $DEALER in_range_of_player $PLAYER_CHAR
2@ == 5
jf @VIC2_4112
if
03D2: wav 2 ended
jf @VIC2_4112
if
03D0: wav 1 loaded
jf @VIC2_4112
040D: unload_wav 2
00BB: text_lowpriority 'VIC2_G2' 3700 1 // ~w~The Sindaccos are moving in! If I go back there, I'm a dead man!
03D1: play_wav 1
03CF: load_wav 'VIC2_BI' as 2
2@ = 6
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_4112
if
not Actor.Dead($DEALER)
jf @VIC2_4228
if
player.defined($PLAYER_CHAR)
jf @VIC2_4228
if
00DF: actor $DEALER driving
jf @VIC2_4228
if and
0320: actor $DEALER in_range_of_player $PLAYER_CHAR
2@ == 6
jf @VIC2_4228
if
03D2: wav 1 ended
jf @VIC2_4228
if
03D0: wav 2 loaded
jf @VIC2_4228
040D: unload_wav 1
00BB: text_lowpriority 'VIC2_G3' 1100 1 // ~w~Sure... sure...
03D1: play_wav 2
03CF: load_wav 'VIC2_BJ' as 1
2@ = 7
////////////////////////////////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_4228
if
not Actor.Dead($DEALER)
jf @VIC2_4344
if
player.defined($PLAYER_CHAR)
jf @VIC2_4344
if
00DF: actor $DEALER driving
jf @VIC2_4344
if and
0320: actor $DEALER in_range_of_player $PLAYER_CHAR
2@ == 7
jf @VIC2_4344
if
03D2: wav 2 ended
jf @VIC2_4344
if
03D0: wav 1 loaded
jf @VIC2_4344
040D: unload_wav 2
00BB: text_lowpriority 'VIC2_G4' 2900 1 // ~w~I'm telling you man! The Sindaccos are dealing.
03D1: play_wav 1
2@ = 8
///////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_4344
if and
not Actor.Dead($DEALER)
80DF: not actor $DEALER driving
9@ == 0
8@ == 1
jf @VIC2_4399
0187: 3@ = create_marker_above_actor $DEALER
0165: set_marker 3@ color_to 2
018B: show_on_radar 3@ 0
9@ = 1
8@ = 1
/////////////////////////////////////////////////////////////////////////////////





//////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_4399
if and
not Player.Wasted($PLAYER_CHAR)
not Actor.Dead($DEALER)
not 11@ == 1
2@ == 4
jf @VIC2_4529
if
00DF: actor $DEALER driving
jf @VIC2_4529
if and
00E3: player $PLAYER_CHAR 0 near_point 520.6115 -633.0263 radius 350.0 350.0
0320: actor $DEALER in_range_of_player $PLAYER_CHAR
jf @VIC2_4529
if
03D2: wav 1 ended
jf @VIC2_4529
if
03D0: wav 2 loaded
jf @VIC2_4529
040D: unload_wav 1
00BB: text_lowpriority 'VIC2_G' 4300 1 // ~w~Listen man! I told Vinnie already... Chinatown's no go for the Leones now!
03D1: play_wav 2
03CF: load_wav 'VIC2_BH' as 1
11@ = 1
2@ = 5
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////




////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_4529
if
not Actor.Dead($DEALER)
jf @VIC2_4794
if
player.defined($PLAYER_CHAR)
jf @VIC2_4794
if and
8320: not actor $DEALER in_range_of_player $PLAYER_CHAR
80DF: not actor $DEALER driving
12@ == 1
13@ == 0
jf @VIC2_4615
0164: disable_marker 4@
018B: show_on_radar 3@ 3
00BC: text_highpriority 'VIC2_F2' 5000 ms 1 // ~w~You left ~b~Vincenzo's dealer ~w~behind, go back and get him.
12@ = 0
13@ = 1
14@ = 1
/////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////
:VIC2_4615
if
not Actor.Dead($DEALER)
jf @VIC2_4751
if and
0320: actor $DEALER in_range_of_player $PLAYER_CHAR
14@ == 1
jf @VIC2_4675
00BC: text_highpriority 'VIC2OB1' 5000 ms 1 // ~w~Take the dealer to ~y~work.
03D5: remove_text 'VIC2_F2' // ~w~You left ~b~Vincenzo's dealer ~w~behind, go back and get him.
14@ = 0

:VIC2_4675
if
0320: actor $DEALER in_range_of_player $PLAYER_CHAR
jf @VIC2_4692
12@ = 1

:VIC2_4692
if and
13@ == 1
0320: actor $DEALER in_range_of_player $PLAYER_CHAR
jf @VIC2_4729
018B: show_on_radar 3@ 0
018A: 4@ = create_checkpoint_at 520.6115 -633.0263 14.97
13@ = 0

:VIC2_4729
if
00E9: player $PLAYER_CHAR 0 near_actor $DEALER radius 8.0 8.0
jf @VIC2_4751
01DF: tie_actor $DEALER to_player $PLAYER_CHAR

:VIC2_4751
if and
not Actor.Dead($DEALER)
00DF: actor $DEALER driving
8@ == 1
9@ == 1
jf @VIC2_4794
0164: disable_marker 3@
8@ = 1
9@ = 0

:VIC2_4794
jump @VIC2_3198

:VIC2_4804
jump @VIC2_6732
/////////////////////////////////////////////////////////////////////////






/////////////////////////////////////////////////////////////////
:VIC2_4811
Player.CanMove($PLAYER_CHAR) = false
01F7: set_player $PLAYER_CHAR ignored_by_cops_state_to 1
Car.RemoveReferences($BIKE)
0169: set_fade_color 0 0 0
fade 0 500



:VIC2_4833
if
fading
jf @VIC2_4852
wait 0
jump @VIC2_4833

:VIC2_4852
if
not Actor.Dead($DEALER)
jf @VIC2_4868
022F: set_actor $DEALER stop_looking





:VIC2_4868
02A3: toggle_widescreen 1
00BE: text_clear_all
0395: clear_area 1 at 520.6115 -633.0263 range 80.0 100.0
if
player.defined($PLAYER_CHAR)
jf @VIC2_5045
if
00E0: player $PLAYER_CHAR driving
jf @VIC2_5045
00DA: $PLAYER_CAR = player $PLAYER_CHAR car
0174: $PLAYER_CAR_Z = car $PLAYER_CAR z_angle
00AB: put_car $PLAYER_CAR at 520.6115 -633.0263 13.7827

:VIC2_5013
if
180.0 > $PLAYER_CAR_Z
jf @VIC2_5039
0175: set_car $PLAYER_CAR z_angle_to 90.0
jump @VIC2_5045

:VIC2_5039
0175: set_car $PLAYER_CAR z_angle_to 270.0

:VIC2_5045
00BE: text_clear_all
015F: set_camera_position 512.25 -631.18 16.25 0 0 0
0160: point_camera 513.07 -631.76 16.23 2
009A: $DEALER2 = create_actor pedtype 4 model #WMYCR at 516.9637 -638.0945 13.9326
0173: set_actor $DEALER2 z_angle_to 0
009A: $OLD_WOMEN = create_actor pedtype 5 model #WFOSH at 512.3 -635.4324 13.9326
009F: set_actor $OLD_WOMEN objective_to-1
if
not Actor.Dead($DEALER)
jf @VIC2_5227
02F2: unknown_actor $DEALER flag 1
022E: set_player $PLAYER_CHAR look_at_actor $DEALER


:VIC2_5227
if
player.defined($PLAYER_CHAR)
jf @VIC2_5267
if
not Actor.Dead($DEALER2)
jf @VIC2_5267
if
80E0: not player $PLAYER_CHAR driving
jf @VIC2_5267
022E: set_player $PLAYER_CHAR look_at_actor $DEALER2


:VIC2_5267
if
not Actor.Dead($DEALER)
jf @VIC2_5336
01E0: clear_leader $DEALER
if
00DF: actor $DEALER driving
jf @VIC2_5308
0362: remove_actor $DEALER from_car_and_place_at 520.56 -635.23 13.9326


:VIC2_5308
if
80DF: not actor $DEALER driving
jf @VIC2_5336
00A1: put_actor $DEALER at 520.56 -635.23 13.9326


:VIC2_5336
if
not Actor.Dead($DEALER2)
jf @VIC2_5371
0211: actor $DEALER walk_to 517.63 -637.46
0319: set_actor $DEALER wander_state_to 0
020E: actor $DEALER2 look_at_actor $DEALER
020E: actor $DEALER look_at_actor $DEALER2






:VIC2_5371
0169: set_fade_color 0 0 0
fade 1 1000






:VIC2_5372
01BD: $CURRENT_TIME1 = current_time_in_ms


:VIC2_5373
01BD: $CURRENT_TIME2 = current_time_in_ms
0085: $VAR = $CURRENT_TIME2 // integer values and handles
0060: $VAR -= $CURRENT_TIME1 // integer values
if
not $VAR > 2300
jf @VIC2_5410
if
80E1: not key_pressed 0 16
jf @VIC2_5640
wait 0
jump @VIC2_5373




:VIC2_5410
if
not Actor.Dead($DEALER2)
jf @VIC2_5464
if
not Actor.Dead($DEALER)
jf @VIC2_5464
03F9: make_actors $DEALER2 $DEALER converse_in 3400 ms



:VIC2_5415
01BD: $CURRENT_TIME1 = current_time_in_ms


:VIC2_5420
01BD: $CURRENT_TIME2 = current_time_in_ms
0085: $VAR = $CURRENT_TIME2 // integer values and handles
0060: $VAR -= $CURRENT_TIME1 // integer values
if
not $VAR > 1000
jf @VIC2_5464
if
80E1: not key_pressed 0 16
jf @VIC2_5640
wait 0
jump @VIC2_5420




:VIC2_5464
if
not Actor.Dead($DEALER)
jf @VIC2_5482
0372: set_actor $DEALER anim 25 wait_state_time 3000 ms

:VIC2_5482
if
not Actor.Dead($OLD_WOMEN)
jf @VIC2_5533
if
not Actor.Dead($DEALER)
jf @VIC2_5533
04C2: unknown_actors $OLD_WOMEN $DEALER



:VIC2_5485
01BD: $CURRENT_TIME1 = current_time_in_ms


:VIC2_5490
01BD: $CURRENT_TIME2 = current_time_in_ms
0085: $VAR = $CURRENT_TIME2 // integer values and handles
0060: $VAR -= $CURRENT_TIME1 // integer values
if
not $VAR > 400
jf @VIC2_5533
if
80E1: not key_pressed 0 16
jf @VIC2_5640
wait 0
jump @VIC2_5490



:VIC2_5533
if
not Actor.Dead($DEALER2)
jf @VIC2_5578
0377: set_actor $DEALER2 anim 19 wait_state_time 3000 ms



:VIC2_5535
01BD: $CURRENT_TIME1 = current_time_in_ms


:VIC2_5540
01BD: $CURRENT_TIME2 = current_time_in_ms
0085: $VAR = $CURRENT_TIME2 // integer values and handles
0060: $VAR -= $CURRENT_TIME1 // integer values
if
not $VAR > 2100
jf @VIC2_5578
if
80E1: not key_pressed 0 16
jf @VIC2_5640
wait 0
jump @VIC2_5540


:VIC2_5578
if
not Actor.Dead($DEALER)
jf @VIC2_5670
053D: (unknown) $DEALER
if
not Actor.Dead($DEALER2)
jf @VIC2_5670
053D: (unknown) $DEALER2
03F9: make_actors $DEALER2 $DEALER converse_in 34000 ms


:VIC2_5580
01BD: $CURRENT_TIME1 = current_time_in_ms


:VIC2_5585
01BD: $CURRENT_TIME2 = current_time_in_ms
0085: $VAR = $CURRENT_TIME2 // integer values and handles
0060: $VAR -= $CURRENT_TIME1 // integer values
if
not $VAR > 350
jf @VIC2_5640
if
80E1: not key_pressed 0 16
jf @VIC2_5640
wait 0
jump @VIC2_5585



:VIC2_5640
0169: set_fade_color 0 0 0
fade 0 1000

:VIC2_5651
if
fading
jf @VIC2_5670
wait 0
jump @VIC2_5651

:VIC2_5670
00BE: text_clear_all
040D: unload_wav 1
040D: unload_wav 2
Actor.DestroyInstantly($DEALER)
Actor.DestroyInstantly($DEALER2)
Actor.DestroyInstantly($OLD_WOMEN)
0164: disable_marker 4@
Camera.Restore_WithJumpcut()
02A3: toggle_widescreen 0
0169: set_fade_color 0 0 0
fade 1 1000
if
player.defined($PLAYER_CHAR)
jf @VIC2_5734
Player.CanMove($PLAYER_CHAR) = true
01F7: set_player $PLAYER_CHAR ignored_by_cops_state_to 0

:VIC2_5734
jump @VIC2_6762














////////////////////////////////////////////////////////////////////////////////////////
:VIC2_5741
if
player.defined($PLAYER_CHAR)
jf @VIC2_5765
0470: $PLAYER_ACTOR_ARMED_WEAPON = actor $PLAYER_ACTOR armed_weapon
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0




:VIC2_5765
02A3: toggle_widescreen 1
0395: clear_area 1 at 982.34 -255.65 range 6.0 6.0
03CF: load_wav 'VIC2_BA' as 1
03CF: load_wav 'VIC2_BB' as 2
if
player.defined($PLAYER_CHAR)
jf @VIC2_5886
01F7: set_player $PLAYER_CHAR ignored_by_cops_state_to 1
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 1
if
00E0: player $PLAYER_CHAR driving
jf @VIC2_5864
012A: put_player $PLAYER_CHAR at 989.84 -256.31 48.6496 and_remove_from_car
jump @VIC2_5883

:VIC2_5864
0055: put_player $PLAYER_CHAR at 989.84 -256.31 48.6496

:VIC2_5883
wait 0

:VIC2_5886
if
player.defined($PLAYER_CHAR)
jf @VIC2_5908
0579: stop_actor $PLAYER_ACTOR
0372: set_actor $PLAYER_ACTOR anim 0 wait_state_time -1 ms



:VIC2_5908
015F: set_camera_position 981.34 -255.65 49.73 0 0 0
0160: point_camera 982.22 -256.13 49.73 2
wait 0
0460: set_camera_pointing_time 0 15000
015F: set_camera_position 983.44 -256.81 49.73 0 0 0
0160: point_camera 984.32 -257.29 49.73 1
if
player.defined($PLAYER_CHAR)
jf @VIC2_6010
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0

:VIC2_6010
if
not Actor.Dead($DEALER)
jf @VIC2_6029
04C2: unknown_actors $PLAYER_ACTOR $DEALER
020F: actor $DEALER look_at_player $PLAYER_CHAR




:VIC2_6029
0169: set_fade_color 0 0 1
fade 1 1000


:VIC2_6030
if
fading
jf @VIC2_6035
wait 0
jump @VIC2_6030



:VIC2_6035
if or
83D0: not wav 1 loaded
83D0: not wav 2 loaded
jf @VIC2_6066
wait 0
jump @VIC2_6035



/////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_6066
if
not Actor.Dead($PLAYER_ACTOR)
jf @VIC2_6084
0372: set_actor $PLAYER_ACTOR anim 19 wait_state_time 3200 ms

:VIC2_6084
00BB: text_lowpriority 'VIC2_E' 4500 1 // ~w~So, Vincenzo tells me you're too chicken-shit to work your patch?
03D1: play_wav 1


:VIC2_6090
if
83D2: not wav 1 ended
jf @VIC2_6095
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_6586
wait 0
jump @VIC2_6090


:VIC2_6095
040D: unload_wav 1
jump @VIC2_6135
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////





////////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_6135
00BE: text_clear_all
if
not Actor.Dead($DEALER)
jf @VIC2_6155
0372: set_actor $DEALER anim 19 wait_state_time 2000 ms

:VIC2_6155
00BB: text_lowpriority 'VIC2_E2' 4000 1 // ~w~Hey man! I'm no chicken-shit!
03D1: play_wav 2


:VIC2_6160
if
83D2: not wav 2 ended
jf @VIC2_6165
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_6586
wait 0
jump @VIC2_6160


:VIC2_6165
040D: unload_wav 2
03CF: load_wav 'VIC2_BC' as 1
jump @VIC2_6170


:VIC2_6170
if
83D0: not wav 1 loaded
jf @VIC2_6209
wait 0
jump @VIC2_6170
////////////////////////////////////////////////////////////////////////////////////////////////








//////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_6209
00BE: text_clear_all
00BB: text_lowpriority 'VIC2_EX' 3000 1 // ~w~I... er... I've been ill is all!
03D1: play_wav 1


:VIC2_6287
if
not Actor.Dead($DEALER)
jf @VIC2_6326
053D: (unknown) $DEALER


:VIC2_6326
if
not Actor.Dead($DEALER)
jf @VIC2_6368
0372: set_actor $DEALER anim 42 wait_state_time 600 ms


:VIC2_6368
if
not Actor.Dead($DEALER) dead
jf @VIC2_6383
053D: (unknown) $DEALER

:VIC2_6383
if
not Actor.Dead($DEALER) dead
jf @VIC2_6425
0372: set_actor $DEALER anim 19 wait_state_time 3000 ms



:VIC2_6410
if
83D2: not wav 1 ended
jf @VIC2_6415
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_6586
wait 0
jump @VIC2_6410


:VIC2_6415
040D: unload_wav 1
03CF: load_wav 'VIC2_BD' as 2
jump @VIC2_6420


:VIC2_6420
if
83D0: not wav 2 loaded
jf @VIC2_6425
wait 0
jump @VIC2_6420
////////////////////////////////////////////////////////////////////////////////////////////////////









///////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_6425
00BB: text_lowpriority 'VIC2_E3' 4000 1 // ~w~I'll go back to work tomorrow... or, maybe, the day after.
03D1: play_wav 2



:VIC2_6430
if
not Actor.Dead($PLAYER_ACTOR) dead
jf @VIC2_6500
011C: actor $PLAYER_ACTOR clear_objective


:VIC2_6435
if
83D2: not wav 2 ended
jf @VIC2_6440
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_6586
wait 0
jump @VIC2_6435


:VIC2_6440
040D: unload_wav 2
03CF: load_wav 'VIC2_BE' as 1
jump @VIC2_6445


:VIC2_6445
if
83D0: not wav 1 loaded
jf @VIC2_6500
wait 0
jump @VIC2_6445
///////////////////////////////////////////////////////////////////////////////////////////////////////////////







//////////////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_6500
if
player.defined($PLAYER_CHAR)
jf @VIC2_6514
053D: (unknown) $PLAYER_ACTOR

:VIC2_6514
if
player.defined($PLAYER_CHAR)
jf @VIC2_6595
0372: set_actor $PLAYER_ACTOR anim 19 wait_state_time 3000 ms

:VIC2_6533
00BE: text_clear_all
00BB: text_lowpriority 'VIC2_E4' 4500 1 // ~w~Oh, I think you're going to work today... like it or not!
03D1: play_wav 1


:VIC2_6540
if
83D2: not wav 1 ended
jf @VIC2_6586
wait 0
if
80E1: not key_pressed 0 16
jf @VIC2_6586
wait 0
jump @VIC2_6540
///////////////////////////////////////////////////////////////////////////////////////////////////////////







/////////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_6586
00BE: text_clear_all
0169: set_fade_color 0 0 1
fade 0 1000

:VIC2_6590
if
fading
jf @VIC2_6595
wait 0
jump @VIC2_6590



:VIC2_6595
00BE: text_clear_all
040D: unload_wav 1
040D: unload_wav 2
if
player.defined($PLAYER_CHAR)
jf @VIC2_6620
053D: (unknown) $PLAYER_ACTOR

:VIC2_6620
if
not Actor.Dead($DEALER) dead
jf @VIC2_6633
053D: (unknown) $DEALER




:VIC2_6633
02A3: toggle_widescreen 0
wait 0
if
player.defined($PLAYER_CHAR)
jf @VIC2_6673
011C: actor $PLAYER_ACTOR clear_objective
01B9: set_actor $PLAYER_ACTOR armed_weapon_to $PLAYER_ACTOR_ARMED_WEAPON
01F7: set_player $PLAYER_CHAR ignored_by_cops_state_to 0
053D: (unknown) $PLAYER_ACTOR
0230: set_player $PLAYER_CHAR stop_looking



:VIC2_6673
if
not Actor.Dead($DEALER)
jf @VIC2_6686
Actor.DestroyInstantly($DEALER)

/////////////////////////////////////////////////////////////////////////////////////////////////
:VIC2_6686
009A: $DEALER = create_actor pedtype 4 model #BMYCR at 986.047 -259.15 48.6382
01ED: reset_actor $DEALER flags
020F: actor $DEALER look_at_player $PLAYER_CHAR
009F: set_actor $DEALER objective_to-1
0164: disable_marker $CHECKPOINT
Player.CanMove($PLAYER_CHAR) = true
Camera.Restore_WithJumpcut()
return
//////////////////////////////////////////////////////////////////////////////////////////////////





/////////////////////////MISSION FAILED!////////////////////////////////////////

:VIC2_6732
03EB: clear_small_messages_only
//0370: toggle_unknown 1
00BA: text_styled 'M_FAIL' 1000 ms 1 // MISSION FAILED!
jump @VIC2_7016
return
/////////////////////////////////////////////////////////////////////




//////////////////////////////MISSION PASSED!////////////////////////////////////////////////////////////
:VIC2_6762
01E3: text_1number_styled 'M_PASS' 100 1000 ms 1 // ~Y~MISSION PASSED! ~n~$~1~
Player.Money($PLAYER_CHAR) += 100
0394: play_music 1
0110: clear_player $PLAYER_CHAR wanted_level
030C: set_mission_points += 1
0318: set_latest_mission_passed 'VIC2' // Slacker
//05AE: constant_params 2 variable_params 0 unknown 42 call_with_params @MARGOV_509 0 2
jump @VIC2_7016
return
//////////////////////////////////////////////////////////////////////////////////////////





///////////////////////////////////////////////////////////////////////////
:VIC2_6829
if
player.defined($PLAYER_CHAR)
jf @VIC2_7014
if
not Actor.Dead($HOMELESS)
jf @VIC2_6928
if or
031F: actor $HOMELESS hit_by_actor $PLAYER_ACTOR
00E9: player $PLAYER_CHAR near_actor 0 $HOMELESS radius 2.5 2.5
jf @VIC2_6928
if
37@ == 0
jf @VIC2_6911
0372: set_actor $HOMELESS anim 0 wait_state_time -1 ms
37@ = 1
jump @VIC2_6928

:VIC2_6911
if
37@ == 1
jf @VIC2_6928
01D0: actor $HOMELESS avoid_player $PLAYER_CHAR

:VIC2_6928
if
not Actor.Dead($BIKER)
jf @VIC2_7014
if
04F1: unknown_check $BIKE
jf @VIC2_6989
if
not Car.Wrecked($BIKE) wrecked
jf @VIC2_6989
0227: $BIKE_HEALTH = car $BIKE health
if or
00DC: player $PLAYER_CHAR driving $BIKE
1000 > $BIKE_HEALTH
jf @VIC2_6989
01CC: actor $BIKER kill_player $PLAYER_CHAR



:VIC2_6989
if or
031F: actor $BIKER hit_by_actor $PLAYER_ACTOR
0457: player $PLAYER_CHAR aiming_at_actor $BIKER
jf @VIC2_7014
01CC: actor $BIKER kill_player $PLAYER_CHAR

:VIC2_7014
return
//////////////////////////////////////////////////////////////////



:VIC2_7016
01F7: set_player $PLAYER_CHAR ignored_by_cops_state_to 0
0164: disable_marker 4@
0572: unknown_actor $DEALER dead_but_valid
jf @VIC2_7037
0164: disable_marker 3@

:VIC2_7037
0572: unknown_actor $HOMELESS dead_but_valid
jf @VIC2_7064
not Actor.Dead($HOMELESS)
jf @VIC2_7064
0377: set_actor $HOMELESS anim 23 wait_state_time -1 ms

:VIC2_7064
0164: disable_marker $CHECKPOINT
Model.Destroy(#MOLOTOV)
Model.Destroy(#WFOSH)
Model.Destroy(#WMYCR)
Model.Destroy(#BMYCR)
Model.Destroy(#BMOTR)
Model.Destroy(#FREEWAY)
0296: unload_special_actor 6
Car.RemoveReferences($PLAYER_CAR)
Car.RemoveReferences($BIKE)
Actor.RemoveReferences($DEALER)
Actor.RemoveReferences($HOMELESS)
Actor.RemoveReferences($BIKER)

01E7: remove_forbidden_for_cars_cube 493.9 -635.2 10.0 544.7 -623.9 20.0
022A: remove_forbidden_for_peds_cube 998.865 -260.7609 40.0 1006.658 -242.3217 60.0
$ONMISSION = 0
mission_cleanup
end_thread


А чё здесь такое со спойлерами? Вроде хотел скрыть всё для компактности, а не работает, чёрные полосы везде...

Сообщение отредактировал Chipsman: 26 September 2012 - 16:33


#72 Sweet

Sweet

    Активный участник

  • Пользователи
  • PipPipPip
  • 418 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород


Отправлено 26 September 2012 - 15:17

Здесь нету спойлеров. Используй pastebin

#73 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 27 September 2012 - 04:02

>> Here Special Actor Biker, but i'm nothing model
беги лес, беги. лес, которым управляют.

чё-то непонятно. теперь что, эти куски кода мне каждый раз использовать в том месте где у Р* был вызов скриптовой функции.
как-то неудобно, по моему. лучше уж через глобалки установить значения переменных и вызвать gosub:
//05AE: constant_params 2 variable_params 0 unknown 0 call_with_params @NONAME_1_11402 2 1
$arg0 = 2
$arg1 = 1
gosub @MY_VERSION_OF_NONAME_1_11402 // если $arg0 и $arg1 используются при вызове не забыть сохранить значения в другие переменные, так как другой поток может изменить их.


#74 LEX SAFONOV

LEX SAFONOV

    Активный участник

  • Пользователи
  • PipPipPip
  • 56 сообщений

Отправлено 27 September 2012 - 14:54

беги лес, беги. лес, которым управляют.

Забей, я инглиш на доложном уровне не знаю просто) А русский шрифт у меня не отображается в билдере. Поэтому наскрёб первое что взбрело в голову. Суть в том, что используется специальный актёр байкер. А ставить спец актёра из вайса лень было, отладкой занимался.

как-то неудобно, по моему. лучше уж через глобалки установить значения переменных и вызвать gosub

Да так то да, но для роликов это вполне рабочий и безглючный вариант, и путаницы гораздо меньше. Большего и не нужно(да это ещё при том, что там чуть ли не в каждой миссии такие ролики). А вот для изменения объектов да, нужно будет оперировать глобальными переменными.

Сообщение отредактировал LEX SAFONOV: 27 September 2012 - 15:00


#75 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 28 October 2012 - 06:07

Нашли комбинацию, активирующую еще одну debug-функцию:
HOLD L1 + Down - включить отладочный режим (обязательно!)
HOLD L1 + Select - убрать пешеходов и автотранспорт (дороги будут пустыми)
Ссылка на main.scm старая.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012



Ответить



  


Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных