28/02/2019

Cops AI - Include tạo NPC cảnh sát

Cops AI - Include tạo NPC cảnh sát 

Phiên bản hiện tại (1.0) - Beta

Giới thiệu:

Đây là một Include, chức năng của nó là tạo ra NPC là cảnh sát. Đúng vậy! Là CẢNH SÁT! Và tất nhiên NPC thì sẽ khác con người. Những NPC này sẽ thực hiện nhiệm vụ truy đuổi và tiêu diệt bạn nếu bạn đang bị truy nã, nổ súng nơi công cộng (KOS), lúc bạn tấn công một người chơi/cảnh sát nào đó, hoặc bạn giết một ai đó. Tuy nhiên NPC này chỉ có chức năng truy nã tội phạm và nếu không có tội phạm thì những NPC này chỉ đứng yên một chỗ. Những NPC này không thể lái xe (Scripter thông báo sẽ cập nhật thêm tính năng này) và không thể sử dụng vũ khí cận chiến.

Cách cài đặt Include:

Pawn code:
#define FILTERSCRIPT 
#include <a_samp>
#include <fcnpc>
#include <cops> //yêu cầu fcnpc 2.0.0

Mã phạm tội:

Pawn Code:
CRIME_KILL 0 //nếu người chơi giết người, NPC sẽ dùng oncopdeath
CRIME_SHOOT 1 
CRIME_DAMAGE 2 //nếu người chơi nã súng vào người khác, NPC sẽ dùng oncoptakedamage

Hàm/Chức năng:

Pawn Code:
native CreateCop(skinid, name[], Float:detection_area, Float:health, Float:x, Float:y, Float:z, Float:angle, weapon, Float:accuracy);
native IsCopDead(cop_id);
native IsCopInvulnerable(cop_id);
native IsCopMoving(cop_id);
native IsCopValid(cop_id);
native GetCopHealth(cop_id);
native GetCopTarget(cop_id);
native GetClosestPlayerToCop(cop_id);
native GetCopDetectionArea(cop_id);
native GetCopPos(cop_id, &Float:x, &Float:y, &Float:z);
native GetCopAngle(cop_id, &Float:angle);
native GetCopCreationPos(cop_id, &Float:x, &Float:y, &Float:z);
native GetCopCreationAngle(cop_id, &Float:angle);
native GetCopInterior(cop_id);
native GetCopVirtualWorld(cop_id);
native GetCopSkin(cop_id);
native GetCopCustomSkin(cop_id);
native GetCopWeapon(cop_id);
native SetCopWeapon(cop_id, weaponid);
native SetCopInvulnerable(cop_id, bool:invulnerable);
native SetCopSkin(cop_id, skinid);
native SetCopInterior(cop_id, interiorid);
native SetCopVirtualWorld(cop_id, worldid);
native SetCopHealth(cop_id, Float:health);
native RespawnCop(cop_id);
native DestroyCop(cop_id);

CallBacks:

Pawn Code:
OnCopDeath(cop_id, killerid, weaponid);
OnCopTakeDamage(cop_id, damagerid, weaponid, bodypart, Float:health_loss);
OnCopKillPlayer(cop_id, playerid);
OnCrimeHappenNearCop(playerid, crime);

Ví dụ:

PHP Code:
#define FILTERSCRIPT
#include <a_samp>
#include <fcnpc>
#include <cops>
#include <zcmd>
new cop;CMD:cop(playerid)
{
    new 
Float:xFloat:yFloat:z;
    if(!
IsCopValid(cop)) //you could do without the check as well the include checks if cop allready exist
    
{
        
GetPlayerPos(playeridxyz);
        
cop CreateCop(284"Cop01"45.0100.0x+4yz, -1221.0);
    }
    return 
1;
}
CMD:dcop(playerid)
{
    if(
IsCopValid(cop)) //could do without the check as well
    
{
        
DestroyCop(cop);
    }
    return 
1;
}

public 
OnCrimeHappenNearCop(playeridcrime)
{
    switch(
crime)
    {
        case 
CRIME_KILL:
        {
            if(
GetPlayerWantedLevel(playerid) < 5)
            {
                
SetPlayerWantedLevel(playerid5);
            }
        }
        case 
CRIME_SHOOT:
        {
            if(
GetPlayerWantedLevel(playerid) < 2)
            {
                
SetPlayerWantedLevel(playerid2);
            }
        }
        case 
CRIME_DAMAGE:
        {
            if(
GetPlayerWantedLevel(playerid) < 3)
            {
                
SetPlayerWantedLevel(playerid3);
            }
        }
    }
    return 
1;
}

public 
OnCopKillPlayer(cop_idplayerid)
{
    if(
GetPlayerWantedLevel(playerid) > 1)
    {
        
SetPlayerWantedLevel(playerid0);
    }
    return 
1;
}  

Video:



Tải về:

Nhấp vào đây để chuyển tới liên kết tải include này!

Yêu cầu:

fcnpc 2.0.0

Lưu ý:

Include vẫn đang trong giai đoạn phát triển nên nếu bạn mong muốn 1 bản hoàn thiện tốt nhất thì không nên tải trong khoảng thời gian này. DEVSA-MP sẽ cập nhật các phiên bản của Include này thường xuyên.
Cre:
SA-MP team - a_samp
ZIGGI - fcnpc
Lokii - cops
Pottus - đánh giá
#Beer - biên dịch

Lưu ý

» Không chửi tục, nói bậy, quảng cáo thông qua khung bình luận.
» Không spam liên kết, chia sẻ các liên kết không liên quan đến bài Blog.
» Không xuyên tạc, bôi nhọ tổ chức hay cá nhân nào.
» Mọi bình luận sai nội quy sẽ bị xóa mà không cần báo trước.


Emoticon
Parser
😊
😉
😀
😁
😎
😍
😜
😑
😇
💖
😯
😱
😭
👍
🍻