Controllable NPC 0.3.2 functions list:
cnpc.inc
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,µsec) | Получить время (как в PHP) | sec - количество секунд (возвращаемое) microsec - количество микросекунд в текущей секунде (возвращаемое) |
- |
Комментариев нет:
Отправить комментарий