Перейти к файлам

ТОП 7 Недели



    Распечатать

    SA-MP — Управляемые NPC | Controllable NPC

    Плагин для сервера San Andreas Multiplayer, позволяет создавать NPC не используя samp-npc.exe (каждый "стандартный" бот создается используя samp-npc.exe который требовал заметное количество оперативной памяти, в итоге большое количество "стандартных" ботов создавать нет возможности).

     

    Данные NPC создаются внутри сервера, не создавая лишних процессов, и не создавая новых сетевых соединений. Так же данные NPC имеют очень большое количество изменяемых параметров (в отличие от "стандартных" ботов), все параметры, которые синхронизирует SA-MP можно изменить, и даже больше - в плагине присутствует Nodes reader - для чтения путей навигационного графа GTA SA, ZMap reader - для чтения карты высот.

     

    Так же, в плагине сделана возможность передвижения NPC (пешком, легким бегом, быстрым бегом, на машине). И это не всё, плагин рассчитывает стрельбу игроков, для определения попаданий по NPC, проще говоря, NPC можно убивать. Но NPC так же могут стрелять (а точнее, смотреть в точку, целиться в точку и стрелять по ней).

     

    // 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);

    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)
    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)

    Alex009" /> SA-MP — Управляемые NPC | Controllable NPC

    444
    Обложка Grand Theft Auto: San Andreas Multiplayer
    8.7/10
    PC, PlayStation 2, macOS, Xbox, iOS, Android, Windows Phone, Xbox 360, PlayStation 3
    Режимы: |
    Дата выхода:
    Движок: RenderWare
    Разработчик: Ranger Studio
    Издатель: Ranger Studio
    Локализатор: SanLtd Team
    Вы решили увлечься PAWNo? Или Вы уже профессионал? Тем не менее, данный раздел поможет Вам в поиски тех или иных компонентов необходимых для оптимальной и стабильной работы. Различные плагины и инклуды помогут Вам преобразовать Ваш код под различные требования вселенной SA-MP.
    Подождите, сейчас файл будет подготовлен, через
    секунд Вы получите ссылку на скачивание,
    а сейчас может Зарегистрируемся? wink это быстро и без ожидания!
    Проблемы с файлом? Пожалуйста сообщите [через форму] или оставьте комментарий ниже.
    0 Не нравится

    (づ ̄ ³ ̄)づ Оценивая файлы Вы помогаете другим пользователям! (づ ̄ ³ ̄)づ
    КОММЕНТАРИИ
    Имя*
    E-Mail