Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для Dima_Tushin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    154
    Репутация:
    1 ±

    /mute на время

    привет всем
    помогите сделать систему /mute в формате %d:%d:%d Час, мин, сек
    PHP код:
        if(strcmp(cmd"/mute"true) == 0)
        {
             if(
    PlayerInfo[playerid][pAdmin] >= 2)
            {
                new 
    time;
                
    cmd strtok(cmdtextidx);
                if(!
    strlen(cmd)) return SendClientMessage(playeridCOLOR_WHITE"Введите: /mute [id] [Время]");
                
    giveplayerid ReturnUser(cmd);
                if(!
    IsPlayerConnected(giveplayerid)) return SendClientMessage(playeridCOLOR_WHITE"[Ошибка]: Игрок не найден!");
                if(
    giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playeridCOLOR_WHITE"[Ошибка]: Игрок не найден!");
                
    cmd strtok(cmdtextidx);
                
    time strval(cmd);
                if(
    PlayerInfo[giveplayerid][pMuted] == 0)//Если у игрока нету бана = 0 то...
                
    {
                    
    PlayerInfo[giveplayerid][pMuted] = 1;//Дали бан чата
                    
    PlayerInfo[giveplayerid][pMuteTime] = time*60;
                    
    format(Stringerssizeof(Stringers), "%s получил бан чата от администратора: %s"Name(giveplayerid), Name(playerid));
                    
    SendClientMessageToAll(COLOR_LIGHTREDStringers);
                    
    OnPlayerUpdateRL(giveplayerid);
                }
                else
                {
                    
    PlayerInfo[giveplayerid][pMuted] = 0;
                    
    PlayerInfo[giveplayerid][pMuteTime] = 0;
                    
    format(Stringerssizeof(Stringers), "Администратор: %s, снял бан чата у %s"Name(playerid), Name(giveplayerid));
                    
    SendClientMessageToAll(COLOR_LIGHTREDStringers);
                    
    OnPlayerUpdateRL(giveplayerid);
                }
            }
            return 
    1;
        } 
    и потом если вы пишите в чат и у вас бан чата то писала: у вас бан чата снятие через и %d - час:%d - минут:%d - сек

    помогите пжл все кто сможет

  2. #2
    Аватар для I'm Cobra
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.10.2013
    Сообщений
    151
    Репутация:
    17 ±
    PHP код:
    CMD:mute(playeridparams[]) { new string[144];
        if(!
    Pl::isAdmin(playeridMODER1LVL)) return Send(playeridCOLOR_GRAD1"* Недостаточно прав!");
        if(
    sscanf(params"uds[64]"params[0], params[1], params[2])) return Send(playeridCOLOR_GREY"Введите: /mute [id] [time] [reason]");
        if(!
    Pl::isLogged(params[0])) return Send(playeridCOLOR_GREY"* Этот игрок не авторизован!");
        switch(
    Pl::Info[params[0]][pMuted]) {
            case 
    : {
                if(
    params[1] < || params[1] > 60) return Send(playeridCOLOR_LIGHTRED"* Минуты 1, и максимум 60 минут!");
                
    Pl::Info[params[0]][pMuted] = 1;
                
    Pl::Info[params[0]][pMutedTime] = params[1]*60;
                
    format(stringsizeof string"SERVERNAME": %s получил молчанку от администратора %sПричина: %s", GetName(params[0]), GetName(playerid), params[2]);
                SendToAll(COLOR_LIGHTRED, string);
            }
            case 1..2 : {
                Pl::Info[params[0]][pMuted] = 0;
                Pl::Info[params[0]][pMutedTime] = 0;
                format(string, sizeof string, "
    SERVERNAME": Администратор %s снял молчанку с %s."GetName(playerid), GetName(params[0]));
                
    SendToAll(COLOR_LIGHTREDstring);
            }
        }
        return 
    1;


  3. #3
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,432
    Репутация:
    1093 ±
    Цитата Сообщение от systƩm™ Посмотреть сообщение
    PHP код:
    CMD:mute(playeridparams[]) { new string[144];
        if(!
    Pl::isAdmin(playeridMODER1LVL)) return Send(playeridCOLOR_GRAD1"* Недостаточно прав!");
        if(
    sscanf(params"uds[64]"params[0], params[1], params[2])) return Send(playeridCOLOR_GREY"Введите: /mute [id] [time] [reason]");
        if(!
    Pl::isLogged(params[0])) return Send(playeridCOLOR_GREY"* Этот игрок не авторизован!");
        switch(
    Pl::Info[params[0]][pMuted]) {
            case 
    : {
                if(
    params[1] < || params[1] > 60) return Send(playeridCOLOR_LIGHTRED"* Минуты 1, и максимум 60 минут!");
                
    Pl::Info[params[0]][pMuted] = 1;
                
    Pl::Info[params[0]][pMutedTime] = params[1]*60;
                
    format(stringsizeof string"SERVERNAME": %s получил молчанку от администратора %sПричина: %s", GetName(params[0]), GetName(playerid), params[2]);
                SendToAll(COLOR_LIGHTRED, string);
            }
            case 1..2 : {
                Pl::Info[params[0]][pMuted] = 0;
                Pl::Info[params[0]][pMutedTime] = 0;
                format(string, sizeof string, "
    SERVERNAME": Администратор %s снял молчанку с %s."GetName(playerid), GetName(params[0]));
                
    SendToAll(COLOR_LIGHTREDstring);
            }
        }
        return 
    1;

    И что ты скинул ему? Другие переменные, другой ком.процессор, будет куча ошибок.

  4. Пользователь сказал cпасибо:
    Dima_Tushin (10.10.2014)
  5. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    if(strcmp(cmd"/mute"true) == 0)
    {
        if(
    PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playeridCOLOR_WHITE"Нет доступа");
        
    cmd strtok(cmdtextidx);
        if(!
    strlen(cmd)) return SendClientMessage(playeridCOLOR_WHITE"Введите: /mute [id] [Часы] [Минуты] [Секунды]");
        
    giveplayerid ReturnUser(cmd);
        if(!
    IsPlayerConnected(giveplayerid)) return SendClientMessage(playeridCOLOR_WHITE"[Ошибка]: Игрок не найден!");
        
    cmd strtok(cmdtextidx);
        if(!
    strlen(cmd)) return SendClientMessage(playeridCOLOR_WHITE"Введите: /mute [id] [Часы] [Минуты] [Секунды]");
        new 
    hour strval(cmd);
        if(
    hour 0) return SendClientMessage(playeridCOLOR_WHITE"Количество часов не может быть меньше 0");
        
    cmd strtok(cmdtextidx);
        if(!
    strlen(cmd)) return SendClientMessage(playeridCOLOR_WHITE"Введите: /mute [id] [Часы] [Минуты] [Секунды]");
        new 
    minute strval(cmd);
        if(
    minute || minute 60) return SendClientMessage(playeridCOLOR_WHITE"Количество минут не может быть меньше 0 или больше 60");
        
    cmd strtok(cmdtextidx);
        if(!
    strlen(cmd)) return SendClientMessage(playeridCOLOR_WHITE"Введите: /mute [id] [Часы] [Минуты] [Секунды]");
        new 
    seconds strval(cmd);
        if(
    seconds || seconds 60) return SendClientMessage(playeridCOLOR_WHITE"Количество секунд не может быть меньше 1 или больше 60");
        if(
    PlayerInfo[giveplayerid][pMuted] == 0)//Если у игрока нету бана = 0 то...
        
    {
            
    PlayerInfo[giveplayerid][pMuted] = 1;//Дали бан чата
            
    PlayerInfo[giveplayerid][pMuteTime] = (hour*3600)+(minute*60)+seconds;
            
    format(Stringerssizeof(Stringers), "%s получил бан чата от администратора: %s"Name(giveplayerid), Name(playerid));
            
    SendClientMessageToAll(COLOR_LIGHTREDStringers);
            
    OnPlayerUpdateRL(giveplayerid);
        }
        else
        {
            
    PlayerInfo[giveplayerid][pMuted] = 0;
            
    PlayerInfo[giveplayerid][pMuteTime] = 0;
            
    format(Stringerssizeof(Stringers), "Администратор: %s, снял бан чата у %s"Name(playerid), Name(giveplayerid));
            
    SendClientMessageToAll(COLOR_LIGHTREDStringers);
            
    OnPlayerUpdateRL(giveplayerid);
        }
        return 
    1;

    А для конвертации можно использовать эту функцию.
    PHP код:
    stock ConvertSeconds(time, &hours, &minutes,&seconds)
    {
        if(
    time <= 60)
        {
            
    hours 0;
            
    minutes 0;
            
    seconds time;
        }
        else if(
    time 60 && time 3600)
        {
            
    hours 0;
            
    minutes time 60;
            
    seconds floatround(time 60floatround_tozero);
        }
        else if(
    time == 3600){ hours 1minutes 0seconds 0; }
        else if(
    time 3600)
        {
            new 
    minutes_int;
            
    hours time 3600;
            
    minutes_int floatround(time 3600floatround_tozero);
            
    minutes minutes_int 60;
            
    seconds floatround(minutes_int 60floatround_tozero);
        }
        return 
    1;

    Пример использования:
    PHP код:
    new hourminutesecondstring[40];
    ConvertSeconds(PlayerInfo[giveplayerid][pMuteTime], hourminutesecond);
    format(stringsizeof(string), "У Вас бан чата. Снятие через : %d:%d:%dс"hourminutesecond);
    SendClientMessage(playerid, -1string); 
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  6. 2 пользователя(ей) сказали cпасибо:
    Dima_Tushin (10.10.2014) Pawn.Dima (15.12.2021)
  7. #5
    Аватар для Dima_Tushin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    154
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    if(strcmp(cmd"/mute"true) == 0)
    {
        if(
    PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playeridCOLOR_WHITE"Нет доступа");
        
    cmd strtok(cmdtextidx);
        if(!
    strlen(cmd)) return SendClientMessage(playeridCOLOR_WHITE"Введите: /mute [id] [Часы] [Минуты] [Секунды]");
        
    giveplayerid ReturnUser(cmd);
        if(!
    IsPlayerConnected(giveplayerid)) return SendClientMessage(playeridCOLOR_WHITE"[Ошибка]: Игрок не найден!");
        
    cmd strtok(cmdtextidx);
        if(!
    strlen(cmd)) return SendClientMessage(playeridCOLOR_WHITE"Введите: /mute [id] [Часы] [Минуты] [Секунды]");
        new 
    hour strval(cmd);
        if(
    hour 0) return SendClientMessage(playeridCOLOR_WHITE"Количество часов не может быть меньше 0");
        
    cmd strtok(cmdtextidx);
        if(!
    strlen(cmd)) return SendClientMessage(playeridCOLOR_WHITE"Введите: /mute [id] [Часы] [Минуты] [Секунды]");
        new 
    minute strval(cmd);
        if(
    minute || minute 60) return SendClientMessage(playeridCOLOR_WHITE"Количество минут не может быть меньше 0 или больше 60");
        
    cmd strtok(cmdtextidx);
        if(!
    strlen(cmd)) return SendClientMessage(playeridCOLOR_WHITE"Введите: /mute [id] [Часы] [Минуты] [Секунды]");
        new 
    seconds strval(cmd);
        if(
    seconds || seconds 60) return SendClientMessage(playeridCOLOR_WHITE"Количество секунд не может быть меньше 1 или больше 60");
        if(
    PlayerInfo[giveplayerid][pMuted] == 0)//Если у игрока нету бана = 0 то...
        
    {
            
    PlayerInfo[giveplayerid][pMuted] = 1;//Дали бан чата
            
    PlayerInfo[giveplayerid][pMuteTime] = (hour*3600)+(minute*60)+seconds;
            
    format(Stringerssizeof(Stringers), "%s получил бан чата от администратора: %s"Name(giveplayerid), Name(playerid));
            
    SendClientMessageToAll(COLOR_LIGHTREDStringers);
            
    OnPlayerUpdateRL(giveplayerid);
        }
        else
        {
            
    PlayerInfo[giveplayerid][pMuted] = 0;
            
    PlayerInfo[giveplayerid][pMuteTime] = 0;
            
    format(Stringerssizeof(Stringers), "Администратор: %s, снял бан чата у %s"Name(playerid), Name(giveplayerid));
            
    SendClientMessageToAll(COLOR_LIGHTREDStringers);
            
    OnPlayerUpdateRL(giveplayerid);
        }
        return 
    1;

    А для конвертации можно использовать эту функцию.
    PHP код:
    stock ConvertSeconds(time, &hours, &minutes,&seconds)
    {
        if(
    time <= 60)
        {
            
    hours 0;
            
    minutes 0;
            
    seconds time;
        }
        else if(
    time 60 && time 3600)
        {
            
    hours 0;
            
    minutes time 60;
            
    seconds floatround(time 60floatround_tozero);
        }
        else if(
    time == 3600){ hours 1minutes 0seconds 0; }
        else if(
    time 3600)
        {
            new 
    minutes_int;
            
    hours time 3600;
            
    minutes_int floatround(time 3600floatround_tozero);
            
    minutes minutes_int 60;
            
    seconds floatround(minutes_int 60floatround_tozero);
        }
        return 
    1;

    Пример использования:
    PHP код:
    new hourminutesecondstring[40];
    ConvertSeconds(PlayerInfo[giveplayerid][pMuteTime], hourminutesecond);
    format(stringsizeof(string), "У Вас бан чата. Снятие через : %d:%d:%dс"hourminutesecond);
    SendClientMessage(playerid, -1string); 
    спс от души DeimoS ++

    - - - Добавлено - - -

    Цитата Сообщение от Osetin Посмотреть сообщение
    И что ты скинул ему? Другие переменные, другой ком.процессор, будет куча ошибок.
    да да будут бредятину скинул :)

    - - - Добавлено - - -

    еще последний вопрос в БД делать VarChar ? со значением

  8. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Нет. Просто одно поле с Int. Время будет хранится в секундах
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

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

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

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

Ваши права

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