Текущая версия SA-MP: 0.3.7


IP: 77.220.180.96:7777
[Plugin] Controllable NPC for 0.3c
Controllable NPC 0.2.7 
Данный плагин создает ботов(NPC) и при этом не использует SAMP-npc.ехе, и естессно жрет меньше памяти и загрузку процессора. Также дает кучу новых возможностей управления ботом. 
Дополнительно: 
Теперь боты смертны! 
Реальная стрельба ботов! 
Встроенный ридер путей GTA:SA и ZMap! 
Функции плагина: 
Code
// 
//    Defines 
// 
#define MAX_NPCS        500 
#define MAX_NODES        100 

#define NPC_STATE_REQUEST_CLASS     0 
#define NPC_STATE_ONFOOT      1 
#define NPC_STATE_DRIVER      2 
#define NPC_STATE_PASSANGER      3 
#define NPC_STATE_DEATH       4 
#define    NPC_STATE_PLAYBACK      5 

#define PLAYER_RECORDING_TYPE_NONE    0 
#define PLAYER_RECORDING_TYPE_DRIVER   1 
#define PLAYER_RECORDING_TYPE_ONFOOT   2 

#define    NPC_RECORD_END_REASON_END    1 
#define    NPC_RECORD_END_REASON_DEATH    2 
#define    NPC_R   ECORD_E ND_REASON_STOP    3 
#define    NPC_RECORD_END_REASON_DESTROY   4 

// 
//    Natives 
// 

// core 
native CreateNPC(npcid,npcname[]); 
native CreateNPCPlayer(id,name[]); 
native IsValidNPC(npcid); 
native DestroyNPC(npcid); 
native KillNPC(npcid); 
native SpawnNPC(npcid); 
native PutNPCInVehicle(npcid,vehicleid,seat); 
native StopNPC(npcid); 
native SetNPCImpregnable(npcid,istate); 
native IsNPCImpregnable(npcid); 
native GetNPCState(npcid); 
native ToogleVisualDeath(tstate); 
native DisableJoinPartLogging(); 
native FindLastFreeSlot(); 
// on foot controlls 
native SetNPCPos(npcid,Float:X,Float:Y,Float:Z); 
native GetNPCPos(npcid,&Float:X,&Float:Y,&Float:Z); 
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 SetNPCKeys(npcid,updown,leftright,keys); 
native GetNPCKeys(npcid,&updown,&leftright,&keys); 
native SetNPCSkin(npcid,skin); 
native GetNPCSkin(npcid); 
native SetNPCInterior(npcid,interior); 
native GetNPCInterior(npcid); 
native SetNPCSpecialAction(npcid,action); 
native GetNPCSpecialAction(npcid); 
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 SetNPCSurfing(npcid,Float:X,Float:Y,Float:Z); 
native GetNPCSurfing(npcid,&Float:X,&Float:Y,&Float:Z); 
native SetNPCSurfingVehicle(npcid,vehicleid); 
native GetNPCSurfingVehicle(npcid); 
// aim controls 
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); 
// driver controls 
native SetNPCVehiclePos(npcid,Float:X,Float:Y,Float:Z); 
native GetNPCVehiclePos(npcid,&Float:X,&Float:Y,&Float:Z); 
native SetNPCVehicleQuaternion(npcid,Float:X,Float:Y,Float:Z,Float:Scal); 
native GetNPCVehicleQuaternion(npcid,&Float:X,&Float:Y,&Float:Z,&Float:Scal); 
native SetNPCVehicleVelocity(npcid,Float:X,Float:Y,Float:Z); 
native GetNPCVehicleVelocity(npcid,&Float:X,&Float:Y,&Float:Z); 
native SetNPCVehicleKeys(npcid,updown,leftright,keys); 
native GetNPCVehicleKeys(npcid,&updown,&leftright,&keys); 
native SetNPCVehicleSiren(npcid,vstate); 
native GetNPCVehicleSiren(npcid); 
native SetNPCVehicleWeapon(npcid,weaponid); 
native GetNPCVehicleWeapon(npcid); 
// standart actions 
native NPC_WalkTo(npcid,Float:X,Float:Y,Float:Z,is_z_map); 
native NPC_RunTo(npcid,Float:X,Float:Y,Float:Z,is_z_map); 
native NPC_SprintTo(npcid,Float:X,Float:Y,Float:Z,is_z_map); 
native NPC_LookAt(npcid,Float:X,Float:Y,Float:Z); 
native NPC_AimAt(npcid,Float:X,Float:Y,Float:Z); 
native NPC_ShotAt(npcid,Float:X,Float:Y,Float:Z); 
native NPC_DriveTo(npcid,Float:X,Float:Y,Float:Z,Float:speed,is_z_map); 
// 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); 
// ZMap 
native ZMap_Init(mapname[]); 
native Float:ZMap_GetZForCoords(Float:X,Float:Y); 
// Rolls 
native Float:ConvertRollToGrad(Float:roll); 
native Float:ConvertGradToRoll(Float:grad); 

// CPlayer structure 
native GetPlayerStructureInfoByte(playerid,structure_offset); 
native GetPlayerStructureInfoInt(playerid,structure_offset); 
native Float:GetPlayerStructureInfoFloat(playerid,structure_offset); 
// CVehicle structure 
native GetVehicleStructureInfoByte(vehicleid,structure_offset); 
native GetVehicleStructureInfoInt(vehicleid,structure_offset); 
native Float:GetVehicleStructureInfoFloat(vehicleid,structure_offset); 
// Foot sync 
native GetFootSyncDataByte(playerid,offset); 
native GetFootSyncDataInt(playerid,offset); 
native Float:GetFootSyncDataFloat(playerid,offset); 
// 
//    Callbacks 
// 
forward OnNPCGetDamage(npcid,playerid,Float:health_loss,bodypart); 
forward OnRecordingPlaybackEnd(npcid,reason); 
forward OnNPCMovingComplete(npcid); 
forward OnNPCSpawn(npcid); 
forward OnNPCDeath(npcid,killerid,reason);
Просмотров: 1566
24 Ноя 2024
Рейтинг: 4.0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]