<< Руководство по работе с 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 >>