Создание солдат телохранителей
Делаем армейцев-телохранителей .
В этом коде мы будем делать армейцев - телохранителей , а именно , после того , как игрок
будет нажимать сочетание клавиш - shift+c , около него будут появлятся армейские бараки(название машины)
и телохранитель-армеец , который будет стоять на кузове машины , и палить в ментов , и участников банд .
Вот теперь рассмотрим данный код:
В начале создадим поток кода в начале main'а
находим в main'е строку - 01F5: $PLAYER_ACTOR = create_emulated_actor_from_player $PLAYER_CHAR
и внизу этой строки пишем :
004F: create thread ЈЈTestBarracks
Далее идём в самый низ main'а , где и будет начинатся наш код , пишем следующее (то что в скобках писать не нужно) :
:TestBarracks1
0001: wait 0 ms (выжидаем 0 мс)
00D6: if 0 (если)
0256: player $PLAYER_CHAR defined (игрок найден)
004D: jump if false ЈЈTestBarracks1 (ежели нет , то переходим в начало потока)
00D6: if 0 (если)
0038: $ONMISSION == 0 ;; integer values (включена миссия - 0)
004D: jump if false ЈЈTestBarracks1 (ежели нет , то переходим в начало потока)
00D6: if 0 (если)
03EE: player $PLAYER_CHAR controllable (игрок управляем)
004D: jump if false ЈЈTestBarracks1 (ежели нет , то переходим в начало потока)
00D6: if 0 (если)
80E0: NOT player $PLAYER_CHAR driving (игрок не находится в машине)
004D: jump if false ЈЈTestBarracks1 (ежели нет , то переходим в начало потока)
00D6: if 0 (если)
00E1: key pressed 0 16 (зажата кнопка - shift)
00E1: key pressed 0 18 (зажата кнопка - c)
004D: jump if false ЈЈTestBarracks1 (ежели нет , то переходим в начало потока)
0001: wait 200 ms (после того , если все эти условия соблюдены , выжидаем 200 мс)
:Loadkillers (в данном потоке мы загружаем нужные нам модели,без этого никак)
0247: request model #BARRACKS (загружаем бараки)
0247: request model #ARMY (загружаем армейца)
0247: request model #RUGER (загружаем оружие - ruger)
038B: load requested models (загружаем все эти модели)
:Testkillers (тестируем модели)
0001: wait 0 ms (выжидаем 0 мс)
00D6: if 2 (если)
0248: model #BARRACKS available (модель барак загружена)
0248: model #ARMY available (модель армейца загружена)
0248: model #RUGER available (модель ruger'а загружена)
004D: jump if false ЈЈTestKillers (ежели нет , то переходим в начало потока теста моделей)
:TestBarracks2 (данный поток загрузится после того , как все вышеперечисленные условия выполнятся)
0001: wait 0 ms (выжидаем 0 мс)
04C4: create coordinate $aX $aY $aZ from actor $PLAYER_ACTOR offset 0.0 6.2 0.5 (эта команда создаёт координаты , исходящие от игрока - по X-0 , по Y-6.2 , по Z-0.5 , так же за эти координаты отвечают условные обозначения - за Х - $aX , за Y - $aY , за Z - $aZ)
00A5: $barkiller = create car #BARRACKS at $aX $aY $aZ (создаём машину - "бараки" , по этим условным координатам)
0129: $armydriver = create actor 13 #ARMY in car $barkiller driverseat (создаём актёра - солдата , и сажаем его за руль бараков с помощью этой команды)
0407: create coordinate $cX $cY $cZ from car $barkiller offset 0.4 -3.8 1.6 (эта команда так же создаёт координаты , только вокруг тачки , в данном случае барак , в этих координатах , мы и должны создать солдата-телохранителя)
009A: $armymen = create actor 13 #ARMY at $cX $cY $cZ (создаём его в этих координатах , он как раз получится в кузове барак)
0464: put actor $armymen into turret on car $barkiller at car offset 0.4 -3.8 1.6 unknown 3 angle 270.0 with weapon 27 (помещаем этого солдата , как бы в прицелочный вид , с оружием 27 , то есть ruger'ом , и углом в 270 градусов)
00AF: set car $barkiller driver behaviour to 8 (задаём машине параметр следования за игроком , и игнорирования путей)
00AD: set car $barkiller max speed to 50.0 (задаём максимальную скорость машины в 50 едениц)
00AE: unknown set car $barkiller to ignore traffic lights 2 (задаём ей параметр игнорирования светофоров)
011A: set actor $armymen flags 64 (присваиваем солдату - телохранителю флаг 64 , дабы он защищал игрока от его врагов как и говорилось выше)
0002: jump ЈЈTestBarracks1 (прыгаем снова в ночало потока , иначе этот код сможет повторится лишь один раз)
--------------------------------------------------------------------------------------------------------------------
Вроде всё , в этом коде я ещё и как бы попытался объяснить значения команд , употреблявшихся здесь , дабы разъяснить вам , как же это всё работает)
С уважением , автор кода - igorok
844 Прочтений • [Создание солдат телохранителей] [13.05.2012] [Комментариев: 0]