Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 3 из 3

Тема: /callsign (remake)

  1. #1
    Аватар для middlematt
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.01.2016
    Сообщений
    40
    Репутация:
    7 ±

    /callsign (remake)

    Доброго времени суток, пользователь портала pro-pawn. В этой теме я хотел бы разместить команду /callsign для маркировки полицейского крузера. Для этого нам понадобится любой командный процессор, схожий на DC_CMD и плагин sscanf.

    PS: Да, тут есть уже эта команда. Автор я, но утерял доступ к тому профилю. Теперь переделал эту команду и выложил снова.
    Начнем.

    Объявляем новую переменную
    PHP код:
    new
        
    Text3Dcall_sign_text[MAX_VEHICLES]; 
    И ко всем вашим командам добавляем новую:
    PHP код:
    COMMAND:callsign(playeridparams[])
    {
        if (!
    IsPlayerLogged(playerid)) // Проверка на авторизацию. Смените на свою.
            
    return 0
            
        if (
    GetPVarInt(playerid"_callsign_create"))
        {
            
    SendClientMessage(playerid, -1, !"Вы удалили маркировку автомобиля!");
            
            
    Delete3DTextLabel(Text3Dcall_sign_text[GetPVarInt(playerid"_callsign_vehicleid")]);
            
            
    DeletePVar("_callsign_create");
            
    DeletePVar("_callsign_vehicleid");
            
            return 
    1;
        }
        
        
    extract params -> new stringsign[25]; else
            return 
    SendClientMessage(playerid, !"/callsign [маркировка]");
            
        if(
    strfind(sign"-"true0) == -1)
            return 
    SendClientMessage(playerid, -1, !"В введенном тексте не найден символ \'-\'!");
            
        if (
    GetVehicleModel(GetPlayerVehicleID(playerid) != 596
        
    || GetVehicleModel(GetPlayerVehicleID(playerid) != 597
        
    || GetPlayerVehicleID(GetPlayerVehicleID(playerid) != 598
        
    || GetPlayerVehicleID(GetVehicleVehicleID(playerid) != 599)
            return 
    SendClientMessage(playerid, -1, !"Вы сидите не в машине полиции!");
            
        
    SetPVarInt(playerid"_callsign_vehicleid"GetPlayerVehicleID(playerid));
        
    SetPVarInt(playerid"_callsign_create"1);
            
        
    call_sign_text[GetPlayerVehicleID(playerid)] = Create3DTextLabel(sign, -10.00.00.010.0GetPlayerVirtualWorld(playerid), 1);
        return 
    Attach3DTextLabelToVhicle(Text3Dcall_sign_text[GetPlayerVehicleID(playerid)], GetPlayerVehicleID, -2.0, -1.00.0);


  2. #2
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Вы проверяли работоспособность вашего кода?

    UPD: Мой вариант функции:
    PHP код:
    CMD:addcallsign(playeridparams[])
    {
        if (
    IsPlayerLogged(playerid) == 0)
            return 
    0;
        static 
    Text3D:call_sign_textid[MAX_VEHICLES]={Text3D:INVALID_TEXT_DRAW,...};
        new 
    vehicleid GetPlayerVehicleID(playerid);
        if (
    vehicleid == 0)
            return 
    0;
        if (
    _:call_sign_textid[vehicleid] == INVALID_TEXT_DRAW) {
            if (
    sscanf(params, !"s[25]"params[0]))
                return 
    SendClientMessage(playerid, -1, !"/callsign [маркировка]");
            if (
    strfind(params[0], !"-"false0) < 0)
                return 
    SendClientMessage(playerid, -1,
                    !
    "В введенном тексте не найден символ \'-\'!"
                
    );
            new 
    modelid GetVehicleModel(vehicleid);
            if (
    _:(596 <= modelid <= 599) == 0)
                return 
    SendClientMessage(playerid, -1,
                    !
    "Вы сидите не в машине полиции!"
                
    );
            
    Attach3DTextLabelToVehicle(
                (
    call_sign_textid[vehicleid] = Create3DTextLabel(params[0], -10.0,
                    
    0.00.010.0GetPlayerVirtualWorld(playerid), 1)),
                
    vehicleid, -2.0, -1.00.0
            
    );
        } else {
            
    Delete3DTextLabel(call_sign_textid[vehicleid]);
            
    call_sign_textid[vehicleid] = Text3D:INVALID_TEXT_DRAW;
            
    SendClientMessage(playerid, -1, !"Вы удалили маркировку автомобиля!");
        }
        return 
    1;

    Последний раз редактировалось VVWVV; 14.12.2016 в 19:30.

  3. Пользователь сказал cпасибо:
    middlematt (18.12.2016)
  4. #3
    Аватар для middlematt
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.01.2016
    Сообщений
    40
    Репутация:
    7 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Вы проверяли работоспособность вашего кода?

    UPD: Мой вариант функции:
    PHP код:
    CMD:addcallsign(playeridparams[])
    {
        if (
    IsPlayerLogged(playerid) == 0)
            return 
    0;
        static 
    Text3D:call_sign_textid[MAX_VEHICLES]={Text3D:INVALID_TEXT_DRAW,...};
        new 
    vehicleid GetPlayerVehicleID(playerid);
        if (
    vehicleid == 0)
            return 
    0;
        if (
    _:call_sign_textid[vehicleid] == INVALID_TEXT_DRAW) {
            if (
    sscanf(params, !"s[25]"params[0]))
                return 
    SendClientMessage(playerid, -1, !"/callsign [маркировка]");
            if (
    strfind(params[0], !"-"false0) < 0)
                return 
    SendClientMessage(playerid, -1,
                    !
    "В введенном тексте не найден символ \'-\'!"
                
    );
            new 
    modelid GetVehicleModel(vehicleid);
            if (
    _:(596 <= modelid <= 599) == 0)
                return 
    SendClientMessage(playerid, -1,
                    !
    "Вы сидите не в машине полиции!"
                
    );
            
    Attach3DTextLabelToVehicle(
                (
    call_sign_textid[vehicleid] = Create3DTextLabel(params[0], -10.0,
                    
    0.00.010.0GetPlayerVirtualWorld(playerid), 1)),
                
    vehicleid, -2.0, -1.00.0
            
    );
        } else {
            
    Delete3DTextLabel(call_sign_textid[vehicleid]);
            
    call_sign_textid[vehicleid] = Text3D:INVALID_TEXT_DRAW;
            
    SendClientMessage(playerid, -1, !"Вы удалили маркировку автомобиля!");
        }
        return 
    1;


    Изучу твой код и постараюсь в дальнейшем следовать по нему. Спасибо)

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •