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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±

    /mute & /unmute в одной кмд (dc_cmd / zcmd) + sscanf

    Команда действует по принципу: Если игрок заткнут, то его разоткнёт, и наоборот.

    Ко всем new:
    PHP код:
    new
        
    p_muted[MAX_PLAYERS char]

    Теперь проверку - заткнут ли игрок:
    В public OnPlayerText:
    PHP код:
    if(p_muted{playerid})
    {
        
    SendClientMessage(playerid, -1"Вы заткнуты.");
        return 
    0;

    Ко всем командам:
    PHP код:
    CMD:mute(playeridparams[])
    {
        
    extract params -> new playertargetid; else
            return 
    SendClientMessage(playerid, -1"Используйте: /mute [ID игрока / часть ника]");
        if(
    IsPlayerConnected(targetid) == 0)
            return 
    SendClientMessage(playerid, -1"Такого игрока нет на сервере.");

        
    p_muted{targetid} = !p_muted{targetid};

        static const
            
    fmt_str[] = "%s (%d) %sткнул %s (%d)."
        
    ;

        new
            
    str[sizeof(fmt_str) - MAX_PLAYER_NAME MAX_PLAYER_NAME 3],
            
    targetname[MAX_PLAYER_NAME 1]
        ;

        
    GetPlayerName(playeridstrsizeof(str));
        
    GetPlayerName(targetidtargetnamesizeof(targetname));
        
    format(strsizeof(str), fmt_strstrplayeridp_muted{targetid} ? ("за") : ("разо"), targetnametargetid);
        return 
    SendClientMessageToAll(-1str);


    Автор: Londlem

    Специально для: Pro-Pawn.Ru

    Копирование данной статьи без разрешения автора запрещено!
    Последний раз редактировалось L0ndl3m; 11.06.2014 в 12:41.

  2. 5 пользователя(ей) сказали cпасибо:
    #mike (11.01.2014) Accord (12.12.2013) Merlin (18.01.2014) Osiris (12.01.2014) [ForD] (26.12.2013)
  3. #2
    Аватар для Osiris
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.01.2014
    Сообщений
    5
    Репутация:
    0 ±
    Как сделать чтобы можно было затыкать на минуты? (ZCMD)

  4. #3
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от Osiris Посмотреть сообщение
    Как сделать чтобы можно было затыкать на минуты? (ZCMD)
    Команда:

    PHP код:
    CMD:mute(playeridparams[])
    {
        if(
    sscanf(params"ud"params[0], params[1]))
            
    SendClientMessage(playerid, -1"Используйте: /mute [playerid] [minutes]");
        if(
    IsPlayerConnected(params[0]) == 0)
            return 
    SendClientMessage(playerid, -1"Такого игрока нет на сервере.");

        new
            
    server_tick GetTickCount()
        ;

        if(
    GetPVarInt(params[0], "MuteTime") > server_tick)
            return 
    SendClientMessage(playerid, -1"Игрок уже заткнут.");

        
    SetPVarInt(params[0], "MuteTime"server_tick params[1] * 60000);

        static const
            
    fmt_str[] = "%s (%d) заткнул %s (%d) на кол-во минут: %d."
        
    ;

        new
            
    str[sizeof(fmt_str) - MAX_PLAYER_NAME MAX_PLAYER_NAME 11],
            
    targetname[MAX_PLAYER_NAME 1]
        ;

        
    GetPlayerName(playeridstrsizeof(str));
        
    GetPlayerName(params[0], targetnamesizeof(targetname));
        
    format(strsizeof(str), fmt_strstrplayeridtargetnameparams[0], params[1]);
        return 
    SendClientMessageToAll(-1str);

    В public OnPlayerText:

    PHP код:
    if(GetPVarInt(playerid"MuteTime") > GetTickCount())
    {
        
    SendClientMessage(playerid, -1"Вы заткнуты.");
        return 
    0;

    Последний раз редактировалось L0ndl3m; 11.06.2014 в 12:49.

  5. Пользователь сказал cпасибо:
    Osiris (12.01.2014)
  6. #4
    Аватар для Osiris
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.01.2014
    Сообщений
    5
    Репутация:
    0 ±
    Огромное спасибо ^_^
    Завтра спасибо дам, т.к лимит)

  7. #5
    Аватар для Andrei_Smile
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Сообщений
    95
    Репутация:
    1 ±
    не доработано,при реконекте мут спадет а в целом не плохо.
    Skype: Averia_Smile
    シ Всегда с вами! Всегда рядом! Портал pro-pawn.ru
    Andrei_Smile ©

  8. #6
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от Andrei_Smile Посмотреть сообщение
    не доработано,при реконекте мут спадет а в целом не плохо.
    Сохранение аккаунтов не у всех одинаковое.

  9. Пользователь сказал cпасибо:
    Osiris (12.01.2014)
  10. #7
    Аватар для Merlin
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    15.10.2013
    Сообщений
    21
    Репутация:
    -4 ±
    Хорошо + сделай её в обычном процеси по 1 мин

  11. #8
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от Merlin Посмотреть сообщение
    Хорошо + сделай её в обычном процеси по 1 мин
    PHP код:
    if(strcmp(tmp"/mute"true5) == 0)
    {
        
    tmp strtok(cmdtextidx);

        if(
    strlen(tmp) == 0)
            return 
    SendClientMessage(playerid, -1"Используйте: /mute [playerid] [minutes]");

        new
            
    targetid strval(tmp)
        ;

        if(
    IsPlayerConnected(targetid) == 0)
            return 
    SendClientMessage(playerid, -1"Такого игрока нет на сервере.");
        
        
    tmp strtok(cmdtextidx);

        new
            
    time strval(tmp)
        ;

        if(
    strlen(tmp) == 0)
            return 
    SendClientMessage(playerid, -1"Используйте: /mute [playerid] [minutes]");

        new
            
    server_tick GetTickCount()
        ;

        if(
    GetPVarInt(targetid"MuteTime") > server_tick)
            return 
    SendClientMessage(playerid, -1"Игрок уже заткнут.");

        
    SetPVarInt(targetid"MuteTime"server_tick time 60000);
        
        static const
            
    fmt_str[] = "%s (%d) заткнул %s (%d) на кол-во минут: %d."
        
    ;

        new
            
    str[sizeof(fmt_str) - MAX_PLAYER_NAME MAX_PLAYER_NAME 11],
            
    targetname[MAX_PLAYER_NAME 1]
        ;

        
    GetPlayerName(playeridstrsizeof(str));
        
    GetPlayerName(targetidtargetnamesizeof(targetname));
        
    format(strsizeof(str), fmt_strstrplayeridtargetnametargetidtime);
        return 
    SendClientMessageToAll(-1str);

    Последний раз редактировалось L0ndl3m; 11.06.2014 в 12:54.

 

 

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

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

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

Ваши права

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