#1 14-11-2020 14:06

Remca12
Registered: 30-06-2019
Posts: 29

Телефон в гта 3. И всё о телефоне.

Здравствуйте. у меня вопросы по телефонам (телефонные будки по карте расставлены). Я узнал у нужных мне координаты, но я не понимаю как запускать телефон. И как я понял проще будет выяснять в какой зоне находится игрок. Как проверить что игрок находится в зоне где проходим миссию Туризмо и миссии Дональда Лава ?

{$CLEO .cs}
0000:
//да-да скрипт сырой, но только пока что он такой.
:PHHE
thread 'PHHE'
wait 0
if
0256:   player 0 defined //жив ли Клод?
jf @PHHE

024A: 0@ = get_phone_at 604.506 -229.501 //создаём телефон (или телефонная будка)
024A: 1@ = get_phone_at -278.51 -1591.95//другой телефон
//
029B: 0@ = init_object #FAKETARGET at 604.506 -229.501 10.723 //В Портленде рядом с миссиями Эль-Бурро.
029B: 1@ = init_object #FAKETARGET at -278.51 -1591.95 31.8195 //В Стаунтоне рядом с миссиями Дональда Лава.
//если игрок находится в нужной нам зон где стоит телефонная будка, то будет проигрываться звук телефона 
//и появится маркер на который игрок сможет встать.

0226: 3@ = actor $PLAYER_ACTOR health
00D6: if and //сравниваю жизни игрока
3@ >= 80 //если у игрока больше 80 жизней
3@ <= 100 //и при этом меньше 100

then //т.е. от 80 до 100, то тогда заканчиваем скрипт и выводим диалоги (health1-4; Как кстати выводить диалоги? Те что мне нужны находятся в gxt-файле, american.gxt) что игрок полностью здоров и т.д.



//Т.е. скорая не приедет и игрока лечить не будет.
end_thread 
else //иначе: к нам приедет скорая и будет нас лечить 

if 
0121:   player $PLAYER_CHAR in_zone 'TOWERS'  // там  нужный мне телефон в Портленде
then
0405: enable_phone 0@ 
end

if
0121:   player $PLAYER_CHAR in_zone 'SHOPING'  // там  нужный мне телефон в Стаунтоне
then
0405: enable_phone 1@
end

//перед телефонами будут маркеры чтобы игрок на них встал (только если у игрока меньше 80 жизней)
//Временно взято из примеров:
024F: create_corona 1.0 5 0 with_color 0 200 200 at_point $X_1 $Y_1 $Z_1 //координаты прямо перед телефонной будкой.
//телефону 0@
024F: create_corona 1.0 5 0 with_color 0 200 200 at_point $X_2 $Y_2 $Z_2
//и к телефону 1@

if and
00F6: player $PLAYER_CHAR 0 $X_1 $Y_1 $Z_1 radius 1.0 1.0 2.0
00F9: player $PLAYER_CHAR stopped 0 $X_1 $Y_1 $Z_1 radius 1.0 1.0 2.0 
jf @PHHE
//
end

if
//
0447: player $PLAYER_CHAR lifting_a_phone //если игрок поднял трубку
then //и его жизнь меньше 80. то тогда
018C: play_sound 94 at 0.0 0.0 0.0 //не знаю как проиграть звук выстрела снайперки (и потом перезарядки), но именно он и будет проигрываться.
//  
0223: set_actor $PLAYER_ACTOR health_to 0 //убиваем игрока
024E: disable_phone 0@ //выключаем телефон
0108: destroy_object 0@ //уничтожаем телефон
024E: disable_phone 1@ //выключаем телефон
0108: destroy_object 1@ //уничтожаем телефон
end

0A93: terminate_this_custom_script

//P.S. По-задумке, над игроком происходят 2 события: либо его лечат или не лечат в зависимости от того сколько жизней у игрока. либо игрока сразу убивают со снайперки (с заморозкой игрока чтобы он не мог двигаться).

Last edited by Remca12 (14-11-2020 19:18)

Offline

Board footer

Powered by FluxBB