• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Как правильно использовать sscanf в команде

Kick_West

Умник
Код:
CMD:vehicle(playerid, params[])
{
    if(sscanf(params, "s[24]s[64]", params[0], params[1])) return SendInf(playerid,"/v(ehicle) [значение] [id]"),SendClientMessage(playerid,COLOR_GREY, "ДОСТУПНЫЕ ЗНАЧЕНИЯ: lock - замок автомобиля, fix - доставить автомобиль к дому"),SendClientMessage(playerid,COLOR_GREY, "ДОСТУПНЫЕ ЗНАЧЕНИЯ: stats - посмотреть статистику, gps - найти личный автомобиль");
    if(!strcmp(params[0],"fix",true))
    {
           if(p_info[playerid][pCash] < 50) return SendErrorMessage(playerid, "Недостаточно денег");
        if(p_info[playerid][pRoom])
        {
            SetHotelCar(playerid);
            GameTextForPlayer(playerid, "~r~$-50", 5000, 1);
            TransferMoney(playerid,p_info[playerid][pCash]-50,50,">> vehicle fix");
            p_info[playerid][pCash] -= 50;
            UpdateMoney(playerid);
            return 1;
        }
        if(p_info[playerid][pTempKey])
        {
            if(params[1] < 1 || params[1] > 2) return SendClientMessage(playerid, 0xFF9900FF, "Произошла ошибка. Выберите нумерованное число от 1 до 2");
            UpdateTempVehicle(playerid,params[0]);
            GameTextForPlayer(playerid, "~r~$-50", 5000, 1);
            TransferMoney(playerid,p_info[playerid][pCash]-50,50,">> vehicle fix");
            p_info[playerid][pCash] -= 50;
            UpdateMoney(playerid);
            return 1;
        }
        if(0 == p_info[playerid][pHouse]) return 1;
        if(IsSellsCar(playerid, params[1]) != -1) return SendClientMessage(playerid,COLOR_GREY,"Недоступно. Данный автомобиль продается");
        new vehicleid = caridhouse[playerid][ params[1] - 1 ];
        if(!vehicleid) return SendClientMessage(playerid,COLOR_GREY,"Попробуйте перезайти для решения проблемы.");
        SetVehicleToHouse(playerid, params[1], true);
        ToggleLock(vehicleid);
        GameTextForPlayer(playerid, "~r~-50$", 5000, 1);
        TransferMoney(playerid,p_info[playerid][pCash]-50,50,">> vehicle fix");
        p_info[playerid][pCash] -= 50;
        UpdateMoney(playerid);
        PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    }
    else if(!strcmp(params[0],"stats", true))
    {
        if(!caridhouse[playerid][0] && !caridhouse[playerid][1] && GetVehicleModel(caridhouse[playerid][0]) < 400 && GetVehicleModel(caridhouse[playerid][1]) < 400) return true;
        if(!IsPlayerConnected(params[1])) return SendErrorMessage(playerid,"Игрок не в сети");
        if(!IsPlayerStream(8.0, playerid, params[1])) return SendErrorMessage(playerid,"Игрок не рядом с вами");
        new house = p_info[playerid][pHouse];
        if(caridhouse[playerid][0] <= 0 || house == 0) return SendClientMessage(playerid,CGRAY,"У вас нет автомобиля / дома.");
        format(stringer, 267, "{FFFFFF}Автомобиль: %s\t\tВладелец: %s\n\nСостояние автомобиля:[%s %]",VehicleNames[GetVehicleModel(caridhouse[playerid][0])-400],gHouses[house][houseOwner],p_info[playerid][pProz]);
        SendClientMessage(params[1],-1,stringer);
        ShowPlayerDialog(params[1], 0000, DIALOG_STYLE_MSGBOX, "Статистика автомобиля", stringer, "Скрыть", "");
        
        format(stringer, 128, "%s достал(а) документы и показал(а) их %s", NamePlayer[playerid],NamePlayer[params[1]]);
        SendStreamMessage(30.0, playerid, stringer, 0xE75480FF);
    }
    else if(!strcmp(params[0],"gps", true))
    {
        if(params[1] == 1)
        {
               if(caridhouse[playerid][0] != 0)
            {
                GetVehiclePos(caridhouse[playerid][0],p_info[playerid][p_car_pos_x][0],p_info[playerid][p_car_pos_y][0],p_info[playerid][p_car_pos_z][0]);
                SendClientMessage(playerid, 0xCCCCCCFF, "Ваш личный транспорт был отмечен на карте");
                SetPlayerGPS(playerid,80,p_info[playerid][p_car_pos_x][0],p_info[playerid][p_car_pos_y][0],p_info[playerid][p_car_pos_z][0],47,-1,MAPICON_GLOBAL_CHECKPOINT);
            }
        }
        else if(params[1] == 2)
        {
            if(caridhouse[playerid][1] != 0)
            {
                GetVehiclePos(caridhouse[playerid][1],p_info[playerid][p_car_pos_x][1],p_info[playerid][p_car_pos_y][1],p_info[playerid][p_car_pos_z][1]);
                SendClientMessage(playerid, 0xCCCCCCFF, "Ваш личный транспорт был отмечен на карте");
                SetPlayerGPS(playerid,80,p_info[playerid][p_car_pos_x][1],p_info[playerid][p_car_pos_y][1],p_info[playerid][p_car_pos_z][1],47,-1,MAPICON_GLOBAL_CHECKPOINT);
            }
        }
    }
    else if(!strcmp(params[0],"lock",true))
    {
           if(sscanf(params,"i",params[1]))
        {
            new Float:check_pos[6];
            GetPlayerPos(playerid,check_pos[0],check_pos[1],check_pos[2]);
            for(new v = 1; v < MAX_VEHICLES; v++)
            {
                if(IsValidVehicle(v))
                {
                    GetVehiclePos(v,check_pos[3],check_pos[4],check_pos[5]);
                    if(PointToPoint(check_pos[0],check_pos[1],check_pos[2],check_pos[3],check_pos[4],check_pos[5]) < 4.0)
                    {
                        if(gVehicles[v-1][vRentPlayer]==playerid)
                        {
                            ToggleLock(v, (gVehicles[v-1][vLock]) ? (false) : (true));
                            UpdateTDLock(playerid, v);
                            GameTextForPlayer(playerid, (!gVehicles[v-1][vLock]) ? ("~r~~h~CLOSE") : ("~g~~h~OPEN"), 1000, 4);
                            PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
                            SetPlayerChatBubble(playerid,(!gVehicles[v-1][vLock]) ? ("закрыл(а) автомобиль") : ("открыл(а) автомобиль"),0xE75480FF,30.0,10000);

                            format(stringer, 128, "{00FF66}Велосипед\nАрендовал: {00FF99}[%s]\n{00FF66}Статус замка: {00FF99}[%s]", NamePlayer[playerid], (gVehicles[v-1][vLock]) ? ("Открыт") : ("Закрыт"));
                            UpdateDynamic3DTextLabelText(gVehicles[v-1][vRentPlayerText],0xFFFFFFAA,stringer);
                            return 1;
                        }
                    }
                }
            }
            return SendInf(playerid, "/v(ehicle) lock [id] (1 - первая машина | 2 - вторая машина | 3 - фракционная машина | 4 - рабочая машина)");
        }

        if(params[1] < 1 || params[1] > 4) return SendInf(playerid, "/v lock [id] (1 - первая машина | 2 - вторая машина | 3 - фракционная машина | 4 - рабочая машина)");
        if(p_info[playerid][pRoom] && params[1] == 1)
        {
            new vehicleid = caridhouse[playerid][0];
            if(!vehicleid) return SendClientMessage(playerid,COLOR_GREY,"Произошла ошибка [ /v(ehicle lock ]. Сообщите о недоработке на форум www.source-rp.ru");
            GetVehiclePos(vehicleid,gVehicles[vehicleid-1][veX], gVehicles[vehicleid-1][veY], gVehicles[vehicleid-1][veZ]);
            if(!PlayerToPoint(4.0, playerid, gVehicles[vehicleid-1][veX], gVehicles[vehicleid-1][veY], gVehicles[vehicleid-1][veZ])) return SendErrorMessage(playerid,"Вы должны быть рядом с автомобилем");
            ToggleLock(vehicleid, (gVehicles[vehicleid-1][vLock]) ? (false) : (true));
            UpdateTDLock(playerid, vehicleid);
            GameTextForPlayer(playerid, (!gVehicles[vehicleid-1][vLock]) ? ("VEHICLE~r~~h~CLOSE") : ("VEHICLE~g~~h~OPEN"), 1000, 4);
            PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
            SetPlayerChatBubble(playerid,(!gVehicles[vehicleid-1][vLock]) ? ("закрыл(а) автомобиль") : ("открыл(а) автомобиль"),0xE75480FF,30.0,10000);
            return 1;
        }
        if(params[1] == 4)
        {
            if(!p_info[playerid][pJob]) return SendErrorMessage(playerid,"Вы нигде не работаете.");
            new Float:pos_v_x, Float:pos_v_y, Float:pos_v_z;
            new check_nearest_vehicle = -1;
            if(IsValidVehicle(GetPVarInt(playerid,"bus_id"))) check_nearest_vehicle = GetPVarInt(playerid,"bus_id");
            else if(IsValidVehicle(GetPVarInt(playerid,"taxijob"))) check_nearest_vehicle = GetPVarInt(playerid,"taxijob");
            else if(IsValidVehicle(GetPVarInt(playerid,"meh_car"))) check_nearest_vehicle = GetPVarInt(playerid,"meh_car");
            else if(IsValidVehicle(GetPVarInt(playerid,"prod_vehicle_id"))) check_nearest_vehicle = GetPVarInt(playerid,"prod_vehicle_id");
            if(check_nearest_vehicle == -1) return SendClientMessage(playerid,CRED,"Вы не арендуете {"#cLIGHTRED"}автомобиль");
            GetVehiclePos(check_nearest_vehicle, pos_v_x, pos_v_y, pos_v_z);
            if(!PlayerToPoint(8.0, playerid, pos_v_x, pos_v_y, pos_v_z)) return SendClientMessage(playerid, CRED, "Вы должны быть рядом с {"#cLIGHTRED"}рабочим автомобилем");
            ToggleLock(check_nearest_vehicle, (gVehicles[check_nearest_vehicle-1][vLock]) ? (false) : (true));
            UpdateTDLock(playerid, check_nearest_vehicle);
            GameTextForPlayer(playerid, (!gVehicles[check_nearest_vehicle-1][vLock]) ? ("VEHICLE~r~~h~CLOSE") : ("VEHICLE~g~~h~OPEN"), 1000, 4);
            PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
            SetPlayerChatBubble(playerid,(!gVehicles[check_nearest_vehicle-1][vLock]) ? ("закрыл(а) автомобиль") : ("открыл(а) автомобиль"),0xE75480FF,30.0,10000);
            return 1;
        }
        if(params[1] == 3)
        {
            if(!p_info[playerid][tMember]) return SendErrorMessage(playerid,"Вы не состоите в организации");

            for(new i = 1, j = GetVehiclePoolSize(); i <= j; i++)
            {
                    if(gVehicles[i-1][vFraction] == p_info[playerid][tMember])
                    {
                        if(PlayerToPoint(4.0, playerid, gVehicles[i-1][veX], gVehicles[i-1][veY], gVehicles[i-1][veZ]))
                        {
                            ToggleLock(i, (gVehicles[i-1][vLock]) ? (false) : (true));
                            UpdateTDLock(playerid, i);
                            GameTextForPlayer(playerid, (!gVehicles[i-1][vLock]) ? ("VEHICLE~r~~h~CLOSE") : ("VEHICLE~g~~h~OPEN"), 1000, 4);
                            PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
                            SetPlayerChatBubble(playerid,(!gVehicles[i-1][vLock]) ? ("закрыл(а) автомобиль") : ("открыл(а) автомобиль"),0xE75480FF,30.0,10000);
                            return 1;
                        }
                    }
            }
            SendErrorMessage(playerid, "Вы должны быть рядом с фракционным автомобилем");
            return 1;
        }
        if(0 == p_info[playerid][pHouse] && 0 == p_info[playerid][pTempKey]) return SendErrorMessage(playerid,"У вас нет недвижимости");
        new vehicleid = caridhouse[playerid][params[0]-1];
        if(IsSellsCar(playerid, params[0]) != -1) return SendClientMessage(playerid,COLOR_GREY,"Недоступно. Данный автомобиль продается");
        if(!vehicleid) return SendClientMessage(playerid,COLOR_GREY,"Произошла ошибка [ /v(ehicle lock ]. Сообщите о недоработке на форум www.source-rp.ru");
        GetVehiclePos(vehicleid,gVehicles[vehicleid-1][veX], gVehicles[vehicleid-1][veY], gVehicles[vehicleid-1][veZ]);
        if(!PlayerToPoint(4.0, playerid, gVehicles[vehicleid-1][veX], gVehicles[vehicleid-1][veY], gVehicles[vehicleid-1][veZ])) return SendErrorMessage(playerid,"Вы должны быть рядом с автомобилем");
        ToggleLock(vehicleid, (gVehicles[vehicleid-1][vLock]) ? (false) : (true));
        UpdateTDLock(playerid, vehicleid);
        GameTextForPlayer(playerid, (!gVehicles[vehicleid-1][vLock]) ? ("VEHICLE~r~~h~CLOSE") : ("VEHICLE~g~~h~OPEN"), 1000, 4);
        PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
        SetPlayerChatBubble(playerid,(!gVehicles[vehicleid-1][vLock]) ? ("закрыл(а) автомобиль") : ("открыл(а) автомобиль"),0xE75480FF,30.0,10000);
        format(stringer, 128, "Владелец: %s\nСтатус замка: %s", NamePlayer[playerid], (gVehicles[vehicleid-1][vLock]) ? ("Открыт") : ("Закрыт"));
        UpdateDynamic3DTextLabelText(gVehicles[vehicleid-1][vOwnerVehicleText],CORANGE,stringer);
    }
    return 1;
}
Должно работать типо когда машину закрываьт то /vehicle [значение] [номер] = /vehicle lock 1/2/3/4
Когда пишу то она просит заного /vehicle , я так полагаю что я неправильно ввел sscanf значения, и что-то не так сделал, Посмотрите поправьте меня. Так же варнинг о ссканфе
 
Сверху Снизу