Продолжаем работать с NPC в GTA SAMP

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

<< Руководство по работе с NPC в GTA SAMP

FCNPC_GetPosition(npcid, &Float:X, &Float:Y, &Float:Z) – получаем позицию NPC, например пишем new Float:X, Float:Y, Float:Z; и в эти координаты уже пишем: FCNPC_GetPosition(npcid,X,Y,Z);

Используется функция довольно-таки часто, смотря какой скрипт.

FCNPC_SetAngle(npcid, Float:Angle) – задать угол для NPC, аналогично примеру выше, только создаем new Float:angle, далее догадаетесь.

Float:FCNPC_GetAngle(npcid) – получаем угол NPC. Уникальность в том, что вам не надо создавать отдельную переменную под получение угла NPC.

FCNPC_SetQuaternion(npcid, Float:X, Float:Y, Float:Z, Float:A) – простым смертным не понять:D Если честно я не использую эту функцию, но она чаще вредит, чем помогает, кватернион это поворот NPC в пространстве, можете почитать об этом в гугле, то есть мы можем заспавнить NPC, который не прямо стоит на месте, а скажем на 45 градусов под наклоном, когда плагин багает (NPC, кстати, очень придираются к вашему коду, можно сказать исправляя некоторые ошибки, хотя pawn всё пропускает и сервер тоже:D) то они могут заспавниться даже вверх ногами.

FCNPC_GetQuaternion(npcid, &Float:X, &Float:Y, &Float:Z, &Float:A) – получаем кватернион.

FCNPC_SetVelocity(npcid, Float:X, Float:Y, Float:Z) —  задать скорость NPC, имеет смысл чаще всего, если NPC находится в транспортном средстве.

FCNPC_GetVelocity(npcid, &Float:X, &Float:Y, &Float:Z) – получить скорость, честно говоря, я не использую эти функции, как-то без них обходился.

FCNPC_SetInterior(npcid, interiorid) – задать интерьер для NPC, скажем хотите в Калигуле заспавнить, зная id мира Калигулы можно и NPC туда переместить, конечно, через FCNPC_SetPosition, либо спавнить там уже, не знаю работает ли это, очередная бесполезная функция, ибо всё работает и с SetPlayerVirtualWorld.

FCNPC_GetInterior(npcid) – получаем id интерьера.

FCNPC_SetHealth(npcid, Float:health) – задаем жизни для NPC.

FCNPC_GetHealth(npcid) – получаем жизни. Обычно используется:

if(FCNPC_GetHealth(npcid)==0){};

FCNPC_SetArmour(npcid, Float:armour) –задаем броню для NPC.

FCNPC_GetArmour(npcid) – получаем броню NPC.

FCNPC_SetSkin(npcid, skinid) – задаем скин, актуально если NPC уже заспавнен.

FCNPC_GetSkin(npcid) – получаем скин NPC.

FCNPC_SetWeapon(npcid, weaponid) – выдаем NPC оружие. Огнестрельное оружие не работает без патронов, но об этом дальше.

FCNPC_GetWeapon(npcid) – получаем оружие NPC.

FCNPC_SetAmmo(npcid, ammo) – очень важная функция, если у NPC нет патронов он будет лишь целиться, функция нацеливания/стрельбы далее, выдавайте NPC патроны.

FCNPC_GetAmmo(npcid) – получаем патроны для NPC.

FCNPC_SetKeys(npcid, Keys) – задаем нажатие клавиш для NPC. Очень важная вещь для некоторых моментов. Например, хотите Вы создать NPC-боксера, хотите, чтобы он защищался, а не был просто мешком для битья, так скажите ему об этом, конечно же, на языке pawn.

FCNPC_GetKeys(npcid, &UDAnalog, &LRAnalog, &Keys) – получаем клавиши для NPC.

FCNPC_SetSpecialAction(npcid, actionid) – тут у нас не прокатит, как с виртуальными мирами, но зато анимации работают как виртуальные миры и для них нет отдельных функций в плагине, а вот для специальных действий функция имеется.

FCNPC_GetSpecialAction(npcid) – получаем особое действие NPC.

FCNPC_GoTo(npcid, Float:X, Float:Y, Float:Z, type, Float:speed, UseZMap)  — уже интереснее. Заставляем NPC двигаться к координатам, обращаю внимание, что type – это способ передвижения NPC, способы написаны ниже:

MOVE_TYPE_WALK — NPC идет пешком;    

MOVE_TYPE_RUN — NPC перемещается легким бегом;       

MOVE_TYPE_SPRINT — NPC перемещается быстрым бегом;

MOVE_TYPE_DRIVE — NPC перемещается на машине.

Читаем продолжение статьи: Координаты скорости NPC в GTA SAMP >>