Вы не подключены. Войдите или зарегистрируйтесь

/tazer - (заморажевает игрока на несколько секунд)

Перейти вниз  Сообщение [Страница 1 из 1]

Admin

avatar
Администратор
Администратор
/tazer - (заморажевает игрока на несколько секунд)
Код:
if(strcmp(cmd, "/tazer", true) ==0)
    {
            if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2||
            PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8||PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12||
            PlayerInfo[playerid][pMember] == 7 && PlayerInfo[playerid][pRank] == 3)
            {
                if(IsPlayerInAnyVehicle(playerid))
                {
                    SendClientMessage(playerid, COLOR_GREY, "Нельзя использовать это в Автомобиле!");
                    return 1;
                }
                new suspect = GetClosestPlayer(playerid);
                if(IsPlayerConnected(suspect))
                {
                    if(PlayerCuffed[suspect] > 0)
                    {
                        SendClientMessage(playerid, COLOR_GREY, "Игрок, уже шокирован!");
                        return 1;
                    }
                    if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
                    {
                        if(PlayerInfo[suspect][pMember] == 1 || PlayerInfo[suspect][pMember] == 2 || PlayerInfo[suspect][pMember] == 3 || PlayerInfo[suspect][pMember] == 8 ||PlayerInfo[suspect][pMember] == 12 ||PlayerInfo[suspect][pMember] == 19 ||
                        PlayerInfo[suspect][pLeader] == 1 || PlayerInfo[suspect][pLeader] == 2 || PlayerInfo[suspect][pLeader] == 3 || PlayerInfo[suspect][pLeader] == 8|| PlayerInfo[suspect][pLeader] == 12|| PlayerInfo[suspect][pLeader] == 19)
                        {
                            SendClientMessage(playerid, COLOR_GREY, "Нельзя заэлектрошокить закон!");
                            return 1;
                        }
                        if(IsPlayerInAnyVehicle(suspect))
                        {
                            SendClientMessage(playerid, COLOR_GREY, "Подозреваемый находится в автомобиле, выведити его сначала !");
                            return 1;
                        }
                        GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        format(string, sizeof(string), "* Вы ударили электрошоком по %s он паролизован на 8 секунд.", sendername);
                        SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "* Вы ударины электрошоком и паролизованы %s на 8 секунд.", giveplayer);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "* %s выстрелил электрошоком в %s и он был паролизован,.", sendername ,giveplayer);
                        ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                        GameTextForPlayer(suspect, "~r~Tazed", 2500, 3);
                        TogglePlayerControllable(suspect, 0);
                        PlayerCuffed[suspect] = 1;
                        PlayerCuffedTime[suspect] = 8;
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_GREY, "Около Вас нет никого!");
                        return 1;
                    }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "Вы не законник!");
            }
        return 1;
    } 

Что бы команда работала: ко всем new:

Код:
new PlayerCuffed[MAX_PLAYERS]; //сам тазер
new PlayerCuffedTime[MAX_PLAYERS]; //таймер для тазера
forward GetClosestPlayer(p1);
forward Float:GetDistanceBetweenPlayers(p1,p2);
forward SetPlayerUnjail(); //новый паблик для работы заморозки 

в public OnPlayerConnect(playerid)

Код:
PlayerCuffed[playerid] = 0; PlayerCuffedTime[playerid] = 0;

в public SetPlayerUnjail()

Код:
if(PlayerCuffed[i] == 1)
            {
                if(PlayerCuffedTime[i] <= 0)
                {
                    TogglePlayerControllable(i, 1);
                    PlayerCuffed[i] = 0;
                    PlayerCuffedTime[i] = 0;
                    PlayerTazeTime[i] = 1;
                }
                else
                {
                    PlayerCuffedTime[i] -= 1;
                }
            }
if(PlayerCuffed[i] == 2)
            {
                if(PlayerCuffedTime[i] <= 0)
                {
                    GameTextForPlayer(i, "~r~HaPy4HuKu CJleTeJlu, ti CBO6ogEH!", 2500, 3);
                    TogglePlayerControllable(i, 1);
                    PlayerCuffed[i] = 0;
                    PlayerCuffedTime[i] = 0;
                }
                else
                {
                    PlayerCuffedTime[i] -= 1;
                }
            } 

Добавляем новый паблик:

Код:
public Float:GetDistanceBetweenPlayers(p1,p2)
{
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
        return -1.00;
    }
    GetPlayerPos(p1,x1,y1,z1);
    GetPlayerPos(p2,x2,y2,z2);
    return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));

Создаём новый паблик:

Код:
public GetClosestPlayer(p1)
{
    new x,Float:dis,Float:dis2,player;
    player = -1;
    dis = 99999.99;
    for (x=0;x<MAX_PLAYERS;x++)
    {
        if(IsPlayerConnected(x))
        {
            if(x != p1)
            {
                dis2 = GetDistanceBetweenPlayers(x,p1);
                if(dis2 < dis && dis2 != -1.00)
                {
                    dis = dis2;
                    player = x;
                }
            }
        }
    }
    return player;

http://pawno.wikiforum.net

Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения