Controllable NPC functions

Controllable NPC 0.3.2 functions list:

cnpc.inc
Функция Описание Параметры Результат
Основные функции
CreateNPC(npcid,npcname[]) Создаёт NPC npcid - id NPC, от 0 до 500, при подключении игрока если слот занят NPC то NPC пропадает,советуется использовать id'ы с конца(начиная с 500 и уменьшать)
npcname - имя NPC, показывается только при создании NPC консоли сервера и можно получить функцией GetPlayerName
-
DestroyNPC(npcid) Уничтожает NPC npcid - id NPC -
IsValidNPC(npcid) Проверяет создан ли NPC npcid - id NPC 1 - NPC существует
0 - NPC не существует
KillNPC(npcid) Убивает NPC npcid - id NPC -
SpawnNPC(npcid) Спавнит NPC npcid - id NPC -
StopNPC(npcid) Останавливает текущее действие NPC npcid - id NPC -
GetNPCState(npcid) Получает текущее состояние NPC npcid - id NPC id состояния NPC (NPC_STATE_*)
ToogleVisualDeath(tstate) Включает/выключает анимацию падения при смерти NPC (важно на серверах PvNPC) tstate - 1 - включить , 0 - выключить -
FindLastFreeSlot() Находит первый свободный слот с конца (от maxplayers) - playerid/npcid
Функции управления пешим состоянием (и смешанные)
SetNPCPos(npcid,Float:X,Float:Y,Float:Z) Изменяет позицию NPC npcid - id NPC
X,Y,Z - координаты
-
GetNPCPos(npcid,&Float:X,&Float:Y,&Float:Z) Получает позицию NPC npcid - id NPC
X,Y,Z - координаты (возвращаемые значения)
-
SetNPCQuaternion(npcid,Float:X,Float:Y,Float:Z,Float:S) Изменяет кватернион (поворот в пространстве) NPC npcid - id NPC
X,Y,Z,S - координаты кватерниона
-
GetNPCQuaternion(npcid,Float:X,Float:Y,Float:Z,Float:S) Получает кватернион (поворот в пространстве) NPC npcid - id NPC
X,Y,Z,S - координаты кватерниона (возвращаемые значения)
-
SetNPCFacingAngle(npcid,Float:angle) Изменяет угол поворота NPC npcid - id NPC
angle - угол поворота
-
GetNPCFacingAngle(npcid) Возвращает угол поворота NPC npcid - id NPC Float - угол поворота
SetNPCVelocity(npcid,Float:X,Float:Y,Float:Z) Изменяет вектор ускорения NPC npcid - id NPC
X,Y,Z - вектор
-
GetNPCVelocity(npcid,&Float:X,&Float:Y,&Float:Z) Получает вектор ускорения NPC npcid - id NPC
X,Y,Z - вектор (возвращаемые значения)
-
NPC_WalkTo(npcid,Float:X,Float:Y,Float:Z,is_z_map) NPC идёт шагом к указанным координатам npcid - id NPC
X,Y,Z - координаты
is_z_map - 1 если использовать ZMap для нахождения высоты 0 если нет
-
NPC_RunTo(npcid,Float:X,Float:Y,Float:Z,is_z_map) NPC бежит лёгким бегом к указанным координатам npcid - id NPC
X,Y,Z - координаты
is_z_map - 1 если использовать ZMap для нахождения высоты 0 если нет
-
NPC_SprintTo(npcid,Float:X,Float:Y,Float:Z,is_z_map) NPC бежит быстрым бегом к указанным координатам npcid - id NPC
X,Y,Z - координаты
is_z_map - 1 если использовать ZMap для нахождения высоты 0 если нет
-
NPC_LookAt(npcid,Float:X,Float:Y,Float:Z) NPC смотрит на указанные координаты (требуется выставление определённого режима камеры,какого точно - неизвестно.функция не убрана т.к. кто либо может найти нужный режим) npcid - id NPC
X,Y,Z - координаты
-
NPC_AimAt(npcid,Float:X,Float:Y,Float:Z) NPC прицеливается в указанные координаты npcid - id NPC
X,Y,Z - координаты
-
NPC_ShootAt(npcid,Float:X,Float:Y,Float:Z) NPC стреляет в указанные координаты npcid - id NPC
X,Y,Z - координаты
-
SetNPCCameraPos(npcid,Float:X,Float:Y,Float:Z) Изменяет позицию камеры NPC npcid - id NPC
X,Y,Z - координаты
-
GetNPCCameraPos(npcid,&Float:X,&Float:Y,&Float:Z) Получает позицию камеры NPC npcid - id NPC
X,Y,Z - координаты (возвращаемые значения)
-
SetNPCCameraFrontVector(npcid,Float:X,Float:Y,Float:Z) Изменяет передний вектор камеры NPC npcid - id NPC
X,Y,Z - вектор
-
GetNPCCameraFrontVector(npcid,&Float:X,&Float:Y,&Float:Z) Получает передний вектор камеры NPC npcid - id NPC
X,Y,Z - вектор (возвращаемые значения)
-
SetNPCCameraMode(npcid,mode) Изменяет режим камеры NPC (важно для синхронизации aim) npcid - id NPC
mode - режим
-
GetNPCCameraMode(npcid) Получает режим камеры NPC npcid - id NPC int - режим камеры
SetNPCWeaponState(npcid,wstate) Изменяет статус оружия NPC npcid - id NPC
wstate - статус оружия
-
SetNPCWeaponState(npcid) Получает статус оружия NPC npcid - id NPC id состояния оружия (WEAPONSTATE_*)
SetNPCKeys(npcid,updown,leftright,keys) Изменяет "нажатые" клавиши NPC npcid - id NPC
updown - клавиши верх / низ
leftright - клавиши лево / право
keys - прочие клавиши
-
GetNPCKeys(npcid,&updown,&leftright,&keys) Получает "нажатые" клавиши NPC npcid - id NPC
updown - клавиши верх / низ (возвращаемое значение)
leftright - клавиши лево / право (возвращаемое значение)
keys - прочие клавиши (возвращаемое значение)
-
SetNPCWeapon(npcid,weaponid) Изменяет оружие в руках NPC npcid - id NPC
weaponid - id оружия
-
GetNPCWeapon(npcid) Получает оружие в руках NPC npcid - id NPC id оружия
SetNPCWeaponSkillLevel(npcid,weapontype,level) Изменяет скилл оружия NPC npcid - id NPC
weapontype - тип оружия (WEAPONSKILL_*)
level - уровень скилла (0 - 999)
-
GetNPCWeaponSkillLevel(npcid,weapontype) Получает скилл оружия NPC npcid - id NPC
weapontype - тип оружия (WEAPONSKILL_*)
int - уровень навыка (0-999)
SetNPCHealth(npcid,Float:amount) Изменяет количество жизни NPC npcid - id NPC
amount - количество
-
GetNPCHealth(npcid) Получает количество жизни NPC npcid - id NPC Float - количество жизни
SetNPCArmour(npcid,Float:amount) Изменяет количество брони NPC npcid - id NPC
amount - количество
-
GetNPCArmour(npcid) Получает количество брони NPC npcid - id NPC Float - количество брони
SetNPCInterior(npcid,interior) Изменяет интерьер NPC (неиспользуемая функция, NPC видны во всех интерьерах по стандарту и изменить это нельзя) npcid - id NPC
interior - id интерьера
-
GetNPCInterior(npcid) Получает интерьер NPC npcid - id NPC int - интерьер
SetNPCSpecialAction(npcid,action) Изменяет спец. действие NPC npcid - id NPC
interior - id действия
-
GetNPCSpecialAction(npcid) Получает спец. действие NPC npcid - id NPC id спец. действия (SPECIAL_ACTION_*)
SetNPCAnimationIndex(npcid,animationid) Изменяет индекс анимации NPC npcid - id NPC
animationid - id анимации
-
GetNPCAnimationIndex(npcid) Получает индекс анимации NPC npcid - id NPC id анимации
SetNPCSkin(npcid,skin) Изменяет скин NPC npcid - id NPC
skin - id скина
-
GetNPCSkin(npcid) Получает скин NPC npcid - id NPC -
SetNPCSurfing(npcid,Float:X,Float:Y,Float:Z) Изменяет смещение от координат транспорта к которому "приклеен" NPC npcid - id NPC
X,Y,Z - смещения
-
GetNPCSurfing(npcid,&Float:X,&Float:Y,&Float:Z) Получает смещение от координат транспорта к которому "приклеен" NPC npcid - id NPC
X,Y,Z - смещения (возвращаемые значения)
-
SetNPCSurfingVehicle(npcid,vehicleid) Изменяет транспорт к которому "приклеен" NPC npcid - id NPC
vehicleid - id транспорта (0 если не "приклеен")
-
GetNPCSurfingVehicle(npcid) Получает транспорт к которому "приклеен" NPC npcid - id NPC 0 - NPC не "приклеен"
int - vehicleid транспорта к которому "приклеен" NPC
SetNPCImpregnable(npcid,istate) Включает/выключает неуязвимость NPC npcid - id NPC
istate - 1 - включить , 0 - выключить
-
IsNPCImpregnable(npcid) Проверяет неуязвим NPC или нет npcid - id NPC 1 - NPC неуязвим
0 - NPC уязвим
Функции транспорта
PutNPCInVehicle(npcid,vehicleid,seat) Садит NPC в транспорт, либо выпускает из транспорта npcid - id NPC
vehicleid - id транспорта (0 - выпустить из транспорта)
seat - место
-
NPC_DriveTo(npcid,Float:X,Float:Y,Float:Z,Float:speed,is_z_map) NPC едет к указанным координатам npcid - id NPC
X,Y,Z - координаты
speed - скорость
is_z_map - 1 если использовать ZMap для нахождения высоты 0 если нет
-
SetNPCVehicleSiren(npcid,vstate) Включает / выключает сирену транспорта в котором находится NPC npcid - id NPC
vstate - 1 - включена , 0 - выключена
-
GetNPCVehicleSiren(npcid) Получает статус сирены транспорта в котором находится NPC npcid - id NPC 1 - сирена включена
0 - сирена выключена
SetNPCVehicleHealth(npcid,health) Изменяет количество жизни транспорта в котором находится NPC npcid - id NPC
health - количество жизни транспорта (0-1000)
-
GetNPCVehicleHealth(npcid) Получает количество жизни транспорта в котором находится NPC npcid - id NPC int - количество жизни (0-1000)
SetNPCVehicleTrailer(npcid,trailerid) Изменяет трейлер прицепленный к транспорту NPC npcid - id NPC
trailerid - id трейлера (0 - отцепить трейлер)
-
GetNPCVehicleTrailer(npcid) Получает трейлер прицепленный к транспорту NPC npcid - id NPC 0 - трейлера нет
int - vehicleid прицепленного трейлера
SetNPCPassangerDriveBy(npcid,istate) Включает/выключает стрельбу из окна пассажира NPC npcid - id NPC
istate - 1 - включить 0 - выключить
-
GetNPCPassangerDriveBy(npcid) Получает состояние стрельбы из окна пассажира NPC npcid - id NPC 0 - выключена
1 - включена
Настройки параметров попаданий
SetWeaponDamageForNPC(weaponid,Float:damage) Урон от оружия наносимый игроком при стрельбе в NPC weaponid - id оружия
damage - урон
-
SetWeaponReloadTimeForNPC(weaponid,mstime) Время перезарядки оружия игрока стреляющего в NPC weaponid - id оружия
mstime - время (миллисекунды)
-
Функции проигрывания записей
StartRecordingPlayback(npcid,name[]) Воспроизведение записи NPC (запись должна находиться в scriptfiles) (ВНИМАНИЕ!В unix системах тип файла (.rec) должен быть написан маленькими буквами!) npcid - id NPC
name - название записи (без .rec)
-
PauseRecordingPlayback(npcid) Временно останавливает воспроизведение записи NPC npcid - id NPC -
ContinueRecordingPlayback(npcid) Продолжает воспроизведение записи NPC npcid - id NPC -
StopRecordingPlayback(npcid) Прекращает воспроизведение записи NPC npcid - id NPC -
Функции чтения путей GTA SA
OpenNode(name[]) Открывает файл путей GTA SA (файл должен находиться в scriptfiles) (ВНИМАНИЕ!В unix системах важен регистр в названии файла!) name - название файла (включая формат) Node - id открытого файла
CloseNode(Node:nodeid) Закрывает файл путей GTA SA nodeid - id файла -
GetNodeHeader(Node:nodeid,&nodes,&vehicle_nodes,&ped_nodes,&navi_nodes) Получает информацию о содержимом файла путей GTA SA nodeid - id файла
nodes - количество точек путей транспорта и пешеходов (возвращаемое значение)
vehicle_nodes - количество точек путей транспорта (возвращаемое значение)
ped_nodes - количество точек путей пешеходов (возвращаемое значение)
navi_nodes - количество точек специальных путей (возвращаемое значение)
-
SetNodePoint(Node:nodeid,pointid) Выбирает точку из файла путей GTA SA для дальнейшей работы nodeid - id файла
pointid - id точки
-
GetNodePoint(Node:nodeid) Получает выбранную точку из файла путей GTA SA nodeid - id файла int - номер текущей выбранной точки
GetNodePointPos(Node:nodeid,&Float:X,&Float:Y,&Float:Z) Получает координаты выбранной точки из файла путей GTA SA nodeid - id файла
X,Y,Z - координаты (возвращаемые значения)
-
GetNodePointLinkId(Node:nodeid) Получает id ссылки выбранной точки из файла путей GTA SA nodeid - id файла int
GetNodePointAreaId(Node:nodeid) Получает id зоны (NODES**.dat , где ** - id зоны) выбранной точки из файла путей GTA SA nodeid - id файла int
GetNodePointWidth(Node:nodeid) Получает ширину дороги выбранной точки из файла путей GTA SA nodeid - id файла int
GetNodePointLinkCount(Node:nodeid) Получает количество ссылок выбранной точки из файла путей GTA SA nodeid - id файла int
GetNodePointTrafficLevel(Node:nodeid) Получает уровень заполнености выбранной точки из файла путей GTA SA nodeid - id файла int
IsNodePointRoadBlock(Node:nodeid) Выбранная точка из файла путей GTA SA - дорожный блок nodeid - id файла bool
IsNodePointBoats(Node:nodeid) Выбранная точка из файла путей GTA SA - для лодок nodeid - id файла bool
IsNodePointEmergency(Node:nodeid) Выбранная точка из файла путей GTA SA - для служб помощи nodeid - id файла bool
IsNodePointNotHighway(Node:nodeid) Выбранная точка из файла путей GTA SA - не автострада nodeid - id файла bool
IsNodePointSpawn(Node:nodeid) Выбранная точка из файла путей GTA SA - спавн nodeid - id файла bool
IsNodePointRoadBlock1(Node:nodeid) Выбранная точка из файла путей GTA SA - дорожный блок nodeid - id файла bool
IsNodePointParking(Node:nodeid) Выбранная точка из файла путей GTA SA - парковка nodeid - id файла bool
IsNodePointRoadBlock2(Node:nodeid) Выбранная точка из файла путей GTA SA - дорожный блок nodeid - id файла bool
GetNodePointType(Node:nodeid) Получает тип выбранной точки из файла путей GTA SA
Для точек транспорта: 1 - машина, 2 - лодка, более - гоночные треки и прочее
Для точек пешеходов: определяет стиль скина (горожанин,деревенский житель и т.д.)
nodeid - id файла int
SetNodeLink(Node:nodeid,linkid) Выбирает ссылку из файла путей GTA SA для дальнейшей работы nodeid - id файла
linkid - id ссылки
-
GetNodeLinkAreaId(Node:nodeid) Получает id зоны (NODES**.dat , где ** - id зоны) выбранной ссылки из файла путей GTA SA nodeid - id файла int
GetNodeLinkNodeId(Node:nodeid) Получает id точки к которой ведёт выбранная ссылка из файла путей GTA SA nodeid - id файла int
Функции менеджера путей
nodes_Init() Загружает NodesManager - полностью загружает навигационные графы игры (транспортный и пешеходный) в память. - -
nodes_Exit() Выгружает NodesManager - очищает память выделенную под навигационные графы. - -
nodes_GetNodePos(nodetype,nodeid,&Float:x,&Float:y,&Float:z) Получает координаты точки выбранного навигационного графа nodetype - используемый навигационный граф (*_NODES)
nodeid - id вершины графа
x,y,z - координаты (возвращаемые значения)
-
nodes_GetNodeAreaid(nodetype,nodeid) Получает номер зоны точки выбранного навигационного графа nodetype - используемый навигационный граф (*_NODES)
nodeid - id вершины графа
int - [0-63]
nodes_GetNodeNodeid(nodetype,nodeid) Получает номер точки в её зоне точки выбранного навигационного графа nodetype - используемый навигационный граф (*_NODES)
nodeid - id вершины графа
int
nodes_GetNodeLink(nodetype,nodeid,linkid) Получает номер точки связанной с указанной точкой выбранного навигационного графа nodetype - используемый навигационный граф (*_NODES)
nodeid - id вершины графа
linkid - номер ссылки точки
int
nodes_GetNodeLinkDist(nodetype,nodeid,linkid) Получает расстояние от точки связанной с указанной точкой до самой точки выбранного навигационного графа nodetype - используемый навигационный граф (*_NODES)
nodeid - id вершины графа
linkid - номер ссылки точки
Float
nodes_GetNodeLinkCount(nodetype,nodeid) Получает количество точек связанных с указанной точкой выбранного навигационного графа nodetype - используемый навигационный граф (*_NODES)
nodeid - id вершины графа
int
nodes_GetNodeCount(nodetype) Получает количество точек выбранного навигационного графа nodetype - используемый навигационный граф (*_NODES) int
nodes_GetNodeid(nodetype,Float:x,Float:y,Float:z) Получает ближайшую к координатам точку выбранного навигационного графа nodetype - используемый навигационный граф (*_NODES)
x,y,z - координаты
int
nodes_GetAreaid(Float:x,Float:y,Float:z) Получает зону в которой лежат координаты x,y,z - координаты int
nodes_GetAreasFromPos(Float:startx,Float:starty,Float:endx,Float:endy,areas[64]) Помечает зоны в которых может находиться путь из start в end startx,starty - координаты начала пути
endx,endy - координаты конца пути
areas[64] - массив зон с пометками использования (1 - используется,0 - нет)
-
nodes_GetAreaNodeid(nodetype,areaid,nodeid) Получает номер точки в навигационном графе nodetype - используемый навигационный граф (*_NODES)
areaid - номер зоны
nodeid - номер точки в зоне
int
nodes_GetAreaNodeCount(nodetype,areaid) Получает количество точек в зоне nodetype - используемый навигационный граф (*_NODES)
areaid - номер зоны
int
Функции поиска путей
dijkstra_CalcPathByNodes(areas[64],nodetype,startnodeid,endnodeid) Запускает поиск пути (по завершению вызывает калбек OnPathCalculated(pathid)) areas[64] - точки каких зон использовать для поиска пути
nodetype - используемый навигационный граф (*_NODES)
startnodeid - вершина графа откуда начинать поиск
endnodeid - вершина графа завершения пути
int - pathid - id пути
Функции работы с путями
path_Destroy(pathid) Уничтожить путь (отчистить память выделенную под путь) pathid - id пути -
path_GetPathNodeid(pathid,pointid) Получить вершину навигационного графа на пути pathid - id пути
pointid - id точки на пути
int
path_GetPathLen(pathid) Получить количество точек пути pathid - id пути int
path_GetPathDist(pathid) Получить расстояние пути pathid - id пути Float
Функции работы с картой высот
zmap_Init(filename[],mode) Загрузить карту высот filename - название файла карты высот
mode - режим загрузки (ZMAP_MODE_*)
-
zmap_Exit() Выгружает карту высот (Очищает выделенную память) - -
zmap_GetZCoord(Float:x,Float:y) Получить высоту на указанных координатах x,y - координаты Float
zmap_IsPointToPointLOS(Float:sx,Float:sy,Float:sz,Float:ex,Float:ey,Float:ez) Проверяет доступность отрезка sx,sy,sz - координаты начала
ex,ey,ez - координаты конца
bool (true - препятствий нет, false - есть)
Остальные функции
microtime(&sec,&microsec) Получить время (как в PHP) sec - количество секунд (возвращаемое)
microsec - количество микросекунд в текущей секунде (возвращаемое)
-

Комментариев нет:

Отправка комментария