Controllable NPC 0.3.3 R1 (для 0.3x R1-2)

Описание: Плагины
Модератор: SJplayer

SJplayer M
Автор темы, Модератор
Модератор
Аватара
SJplayer M
Автор темы, Модератор
Модератор
Сообщения: 196
Зарегистрирован: 25 мая 2013
С нами: 10 лет 10 месяцев

#1 SJplayer » 3 июля 2013, 17:25

Controllable NPC 0.3.3 R1 (для 0.3x R1-2)

Плагин для сервера San Andreas Multiplayer, позволяет создавать NPC не используя samp-npc.exe (каждый "стандартный" бот создается используя samp-npc.exe который требовал заметное количество оперативной памяти, в итоге большое количество "стандартных" ботов создавать нет возможности). Данные NPC создаются внутри сервера, не создавая лишних процессов, и не создавая новых сетевых соединений. Так же данные NPC имеют очень большое количество изменяемых параметров (в отличие от "стандартных" ботов), все параметры, которые синхронизирует SA-MP можно изменить, и даже больше - в плагине присутствует Nodes reader - для чтения путей навигационного графа GTA SA, ZMap reader - для чтения карты высот. Так же, в плагине сделана возможность передвижения NPC (пешком, легким бегом, быстрым бегом, на машине). И это не всё, плагин рассчитывает стрельбу игроков, для определения попаданий по NPC, проще говоря, NPC можно убивать. Но NPC так же могут стрелять (а точнее, смотреть в точку, целиться в точку и стрелять по ней).

Функционал cnpc.inc:

Код: Выделить всё

// core 
native CreateNPC(npcid,npcname[]); 
native DestroyNPC(npcid); 
native IsValidNPC(npcid); 
native KillNPC(npcid); 
native SpawnNPC(npcid); 
native StopNPC(npcid); 
native GetNPCState(npcid); 
native ToogleVisualDeath(tstate); 
native FindLastFreeSlot(); 
// on foot controlls 
native SetNPCPos(npcid,Float:X,Float:Y,Float:Z); 
native GetNPCPos(npcid,&Float:X,&Float:Y,&Float:Z); 
native SetNPCQuaternion(npcid,Float:X,Float:Y,Float:Z,Float:S); 
native GetNPCQuaternion(npcid,&Float:X,&Float:Y,&Float:Z,&Float:S); 
native SetNPCFacingAngle(npcid,Float:angle); 
native Float:GetNPCFacingAngle(npcid); 
native SetNPCVelocity(npcid,Float:X,Float:Y,Float:Z); 
native GetNPCVelocity(npcid,&Float:X,&Float:Y,&Float:Z); 
native NPC_WalkTo(npcid,Float:X,Float:Y,Float:Z,is_z_map,Float:speed=SPEED_WALK); 
native NPC_RunTo(npcid,Float:X,Float:Y,Float:Z,is_z_map,Float:speed=SPEED_RUN); 
native NPC_SprintTo(npcid,Float:X,Float:Y,Float:Z,is_z_map,Float:speed=SPEED_SPRINT); 
native NPC_LookAt(npcid,Float:X,Float:Y,Float:Z); 
native NPC_AimAt(npcid,Float:X,Float:Y,Float:Z); 
native NPC_ShootAt(npcid,Float:X,Float:Y,Float:Z); 
native SetNPCCameraPos(npcid,Float:X,Float:Y,Float:Z); 
native GetNPCCameraPos(npcid,&Float:X,&Float:Y,&Float:Z); 
native SetNPCCameraFrontVector(npcid,Float:X,Float:Y,Float:Z); 
native GetNPCCameraFrontVector(npcid,&Float:X,&Float:Y,&Float:Z); 
native SetNPCCameraMode(npcid,mode); 
native GetNPCCameraMode(npcid); 
native SetNPCWeaponState(npcid,wstate); 
native GetNPCWeaponState(npcid); 
native SetNPCKeys(npcid,updown,leftright,keys); 
native GetNPCKeys(npcid,&updown,&leftright,&keys); 
native SetNPCWeapon(npcid,weaponid); 
native GetNPCWeapon(npcid); 
native SetNPCWeaponSkillLevel(npcid,weapontype,level); 
native GetNPCWeaponSkillLevel(npcid,weapontype); 
native SetNPCHealth(npcid,Float:amount); 
native Float:GetNPCHealth(npcid); 
native SetNPCArmour(npcid,Float:amount); 
native Float:GetNPCArmour(npcid); 
native SetNPCInterior(npcid,interior); 
native GetNPCInterior(npcid); 
native SetNPCSpecialAction(npcid,action); 
native GetNPCSpecialAction(npcid); 
native SetNPCAnimationIndex(npcid,animationid); 
native GetNPCAnimationIndex(npcid); 
native SetNPCSkin(npcid,skin); 
native GetNPCSkin(npcid); 
native SetNPCSurfing(npcid,Float:X,Float:Y,Float:Z); 
native GetNPCSurfing(npcid,&Float:X,&Float:Y,&Float:Z); 
native SetNPCSurfingVehicle(npcid,vehicleid); 
native GetNPCSurfingVehicle(npcid); 
native SetNPCImpregnable(npcid,istate); 
native IsNPCImpregnable(npcid); 
// driver controls 
native PutNPCInVehicle(npcid,vehicleid,seat); 
native NPC_DriveTo(npcid,Float:X,Float:Y,Float:Z,Float:speed,is_z_map); 
native SetNPCVehicleSiren(npcid,vstate); 
native GetNPCVehicleSiren(npcid); 
native SetNPCVehicleHealth(npcid,health); 
native GetNPCVehicleHealth(npcid); 
native SetNPCVehicleTrailer(npcid,trailerid); 
native GetNPCVehicleTrailer(npcid); 
// passanger controls 
native SetNPCPassangerDriveBy(npcid,istate); 
native GetNPCPassangerDriveBy(npcid); 
// damage config 
native SetWeaponDamageForNPC(weaponid,Float:damage); 
native SetWeaponReloadTimeForNPC(weaponid,mstime); 
// .rec playbacks 
native StartRecordingPlayback(npcid,name[]); 
native PauseRecordingPlayback(npcid); 
native ContinueRecordingPlayback(npcid); 
native StopRecordingPlayback(npcid); 
// GTA SA paths 
native Node:OpenNode(name[]); 
native CloseNode(Node:nodeid); 
native GetNodeHeader(Node:nodeid,&nodes,&vehicle_nodes,&ped_nodes,&navi_nodes); 
native SetNodePoint(Node:nodeid,pointid); 
native GetNodePoint(Node:nodeid); 
native GetNodePointPos(Node:nodeid,&Float:X,&Float:Y,&Float:Z); 
native GetNodePointLinkId(Node:nodeid); 
native GetNodePointAreaId(Node:nodeid); 
native GetNodePointWidth(Node:nodeid); 
native GetNodePointLinkCount(Node:pointid); 
native GetNodePointTrafficLevel(Node:nodeid); 
native IsNodePointRoadBlock(Node:nodeid); 
native IsNodePointBoats(Node:nodeid); 
native IsNodePointEmergency(Node:nodeid); 
native IsNodePointNotHighway(Node:nodeid); 
native IsNodePointSpawn(Node:nodeid); 
native IsNodePointRoadBlock1(Node:nodeid); 
native IsNodePointParking(Node:nodeid); 
native IsNodePointRoadBlock2(Node:nodeid); 
native GetNodePointType(Node:nodeid); 
native SetNodeLink(Node:nodeid,linkid); 
native GetNodeLinkAreaId(Node:nodeid); 
native GetNodeLinkNodeId(Node:nodeid); 
// Nodes manager 
native nodes_Init(); 
native nodes_Exit(); 
native nodes_GetNodePos(nodetype,nodeid,&Float:x,&Float:y,&Float:z); 
native nodes_GetNodeAreaid(nodetype,nodeid); 
native nodes_GetNodeNodeid(nodetype,nodeid); 
native nodes_GetNodeLink(nodetype,nodeid,linkid); 
native Float:nodes_GetNodeLinkDist(nodetype,nodeid,linkid); 
native nodes_GetNodeLinkCount(nodetype,nodeid); 
native nodes_GetNodeCount(nodetype); 
native nodes_GetNodeid(nodetype,Float:x,Float:y,Float:z); 
native nodes_GetAreaid(Float:fx,Float:fy,Float:fz); 
native nodes_GetAreasFromPos(Float:startx,Float:starty,Float:endx,Float:endy,areas[64]); 
native nodes_GetAreaNodeid(nodetype,areaid,nodeid); 
native nodes_GetAreaNodeCount(nodetype,areaid); 
// dijkstra 
native dijkstra_CalcPathByNodes(areas[64],nodetype,startnodeid,endnodeid); 
// node paths 
native path_Destroy(pathid); 
native path_GetPathNodeid(pathid,pointid); 
native path_GetPathLen(pathid); 
native Float:path_GetPathDist(pathid); 
// zmap 
native zmap_Init(filename[],mode); 
native zmap_Exit(); 
native Float:zmap_GetZCoord(Float:x,Float:y); 
native zmap_IsPointToPointLOS(Float:sx,Float:sy,Float:sz,Float:ex,Float:ey,Float:ez); 
// addition 
native microtime(&sec,µsec);[/SPOILER
cnpc_controller.inc
[
SPOILER=cnpc_controller.inc]controller_ResetData(npcid
controller_AddPathCoords(npcid,Float:x,Float:y,Float:z
controller_GetPathCoordsLen(npcid
controller_GetPathCoordsData(npcid,pointid,&Float:x,&Float:y,&Float:z
controller_GetPathCoordsDist(npcid
controller_DriveToByNodes(npcid,Float:x,Float:y,Float:z,Float:speed,boost
controller_DriveToByExistPath(npcid,Float:speed,boost
controller_DriveToByCoords(npcid,Float:speed,boost
controller_MoveToByNodes(npcid,Float:x,Float:y,Float:z,move_type
controller_MoveToByExistPath(npcid,move_type
controller_MoveToByCoords(npcid,move_type
controller_FollowPlayerByNodes(npcid,playerid,move_type
controller_IsMoving(npcid)[/SPOILER
cnpc_paths.inc
[
SPOILER=cnpc_paths.inc]paths_ResetData(npcid
paths_CalcPathForNPC(npcid,nodetype,startnodeid,endnodeid
paths_GetPathLen(npcid
paths_GetPathDist(npcid
paths_GetPathPointNodeid(npcid,pointid
paths_GetPathPointPos(npcid,pointid,&Float:x,&Float:y,&Float:z)  


Скачать


Вернуться в «Plugins»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 4 гостя