Учим NPC в SAMP ездить на машине

09 октября 2014 | Рубрика: Статьи

<< Координаты скорости NPC в GTA SAMP

FCNPC_StopAttack(npcid) – останавливает безумие, описанное выше)

FCNPC_IsAiming(npcid) – выполняется, если NPC целиться.

FCNPC_IsShooting(npcid) – выполняется, если NPC стреляет.

FCNPC_IsReloading(npcid) – выполняется, если NPC перезаряжается, ну как выполняется, там значение-то 0 или 1, типа да или нет.

FCNPC_EnterVehicle(npcid, vehicleid, seatid, type) – ммм, начинается веселье. Сажает NPC в машинку или прочее ТС, где vehicleid пишем id машинки, затем место, на которое NPC сядет от 0, 0 – водительское место и тип, не знаю зачем он тут, ну я писал DRIVE, о типах выше. Итак, что же делает данная функция? Если машинка заспавнена правильно (колеса по z не проседают), то NPC бежит к машине и садиться в неё, да-да вы не ослышались САДИТСЯ, прямо как настоящий человек)

FCNPC_ExitVehicle(npcid) – как настоящий человек выходит изТС.

FCNPC_PutInVehicle(npcid, vehicleid, seatid)  — ТС далеко или ещё что-то, сажаем NPC, в отличие от функции выше, здесь не будет никакой красивой посадке тупо ТП в машину туда-то и да, вы не сможете использовать ExitVehicle, если посадили через PutInVehicle, для этого существует функция FCNPC_RemoveFromVehicle(npcid)  (хотя может и сможете, я хз, лично я не смог:D) .

FCNPC_GetVehicleID(npcid) – получаем id машины NPC, не пробовал, но скорее всего можно как и GetPlayerVehicleID.

FCNPC_GetVehicleSeat(npcid) – получаем сидение для NPC.

FCNPC_StartRecordingPlayback(npcid, file[]) – стартуем запись для NPC. Записи рекомендую использовать при езде NPC на машине, некоторые участки не запрограммируешь, это архисложно, так что если наш NPC куда-то едет, то лучше использовать запись, но опять же, смотря что вам надо если местность относительно ровная и плавная, можно замутить и через goto перемещения.

FCNPC_StopRecordingPlayback(npcid) – прерывает действие записи.

FCNPC_PauseRecordingPlayback(npcid) – приостанавливает действие записи. Зачем это нужно, спросите Вы? Отвечаю: создали мы бота автобусника, перед нами впереди человек или машина, нам что давить его что ли ну или машину таранить? Нет! Мы просто приостановим запись, от имени NPC что-то напишем хулиганам, перекрывающим путь, ну и дальше как ваша фантазия пойдет, можно сделать, чтобы хоть NPC с битой выходил и разбирался, а если машина впереди без человека можно и тарануть это всё очень на любителя, плагин позволит всё это выполнить.

FCNPC_ResumeRecordingPlayback(npcid) – продолжаем воспроизведения записи. Устранили препятствие впереди нас – едем дальше).

Фух, описал-таки эти функции, про ноды писать не буду – не уникально и крашит ИМХО, так же как и FCNPC_GetZGround(Float:x, Float:y, &Float:z) – тоже ненужная вещь, связанная с неидеальностью zmap.

Подведем итоги: плагин имеет относительно большой функционал, функции работают, версия на линуксе уже имеется, но NPC там не убиваемые и сами не могут убить ( текущая версия SA:MP 0.3z R1-2), лучшая версия для тренировки с NPC на плагине на данный момент это 0.3x последнее обновление плагина для этой версии, там вообще нет линукс версии, но зато в Windows версии NPC стреляют и нормально так, хотя как запрограммируете, но в то же время, есть небольшой минус в 0.3x в виде ников у NPC над головой, который местами багают, в 0.3 z в связи с вводом официальных повреждений для NPC Вы не увидите ников NPC, а так же их нахождении в табличке на TAB. Так вот, плагин в целом рабочий, осуществим можно очень и очень многое, стоит как минимум потренироваться.

Продолжение: Учимся создавать свой первый NPC >>