2 posts in this topic

Всем привет сегодня хочу дать вам команду алкотест! 

Спойлер

if(strcmp(cmd,"/alcotest",true)==0)
    {
        if(IsPlayerConnected(playerid))
            {
            if(!IsACop(playerid))
             {
                      SendClientMessage(playerid, COLOR_GREY, "Вы не сотрудник полиции!");
                      return 1;
             }
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp))
                {
                        SendClientMessage(playerid, COLOR_ISPOLZUY, "Используйте: /alcotest [ид игрока]");
                        return 1;
                }
                giveplayerid = ReturnUser(tmp);
                if(IsPlayerConnected(giveplayerid))
                {
                        if(giveplayerid != INVALID_PLAYER_ID)
                        {
                                    if (ProxDetectorS(8.0, playerid, giveplayerid))
                                        {
                                            if(giveplayerid == playerid){SendClientMessage(playerid, COLOR_GREY, "Вы не можете провести тест самому себе!");return 1;}
                                            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                            new text1[20];
                                            if(PlayerDrunk[giveplayerid] > 1) { text1 = "пьян"; } else { text1 = "трезв"; }
                                            format(string, sizeof(string), "|__________ Тест %s на алкогольное опьянение __________|", giveplayer);
                                        SendClientMessage(playerid, COLOR_WHITE, string);
                                        format(string, sizeof(string), "Результат теста: Водитель %s", text1);
                                                SendClientMessage(playerid, COLOR_GREY, string);
                                                format(string, sizeof(string), "* %s проводит тест %s на алкогольное опьянение", sendername ,giveplayer);
                                                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                                        }
                                        else
                                        {
                                            SendClientMessage(playerid, COLOR_GREY, "Игрок далеко от вас!");
                                            return 1;
                                        }
                                }
                        }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "Игрок не в сети!");
                    return 1;
                }
                }
            return 1;
         }

 

 

Share this post


Link to post
Share on other sites

Вариант команды от меня на ZCMD / DC_CMD + sscanf2:



if(strcmp(cmd,"/alcotest",true)==0)
{
    if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Вы не сотрудник полиции!");
    if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, -1, "Используйте: /alcotest [id/имя/часть имени]");
    if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "Такого игрока нет на сервере!");
    {
        if (!ProxDetectorS(8.0, playerid, params[0])) return SendClientMessage(playerid, -1, "Игрок слишком далеко от вас!");
        if(params[0] == playerid) return SendClientMessage(playerid, COLOR_GREY, "Вы не можете провести тест самому себе!");
        GetPlayerName(params[0], giveplayer, sizeof(giveplayer));
        GetPlayerName(playerid, sendername, sizeof(sendername));
        new text1[20];
        text1 = (PlayerDrunk[params[0]] > 1) ? "пьян" : "не пьян");
        format(string, sizeof(string), "|__________ Тест %s на алкогольное опьянение __________|", giveplayer);
        SendClientMessage(playerid, COLOR_WHITE, string);
        format(string, sizeof(string), "Результат теста: Водитель %s", text1);
        SendClientMessage(playerid, COLOR_GREY, string);
        format(string, sizeof(string), "* %s проводит тест %s на алкогольное опьянение", sendername ,giveplayer);
        ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    }
    return 1;
}

Также немного оптимизировал.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Dworkin
      By Dworkin
      Привет. Мне тяжело дается понимание строк в pawn из за не динамических массивов.
      #include enum pInfo { pRangName[25] } new players[MAX_PLAYERS][pInfo]; new string[20]; main() { format(string, sizeof(string), "Салага"); printf(string); players[0][pRangName] = string; } выдает ошибку "error 047: array sizes do not match, or destination array is too small" на строку "players[0][pRangName] = string;"
      Я понимаю что в ошибке говорится что размер не совпадает, но не могу понять как это сделать в павне