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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 3 из 3
  1. #1
    Аватар для Elaid
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.09.2014
    Адрес
    Киров [43]
    Сообщений
    93
    Репутация:
    0 ±

    Как исправить баг?

    Приветствую, дело в том, что мут "вечный"
    Поясню, к примеру я выдал мут на 1 минуту. И по завершению этой минуты мут никуда не исчезает, время продолжает идти вперед. Даже когда оно близится к нулю, оно не останавливается и продолжает идти минус..

    Вот все что у меня есть связанное с мутом:
    PHP код:
    #define D_ADMIN_MUTE_TIME_REASON              15003 
    PHP код:
    new unmutetimer
    PHP код:
    enum pInfo
    {
    ..
        
    pMuted,
        
    pMuteTime,
    ..

    PHP код:
    stock UnMute(playerid)
    {
        
    PlayerInfo[playerid][pMuted]     = 0;
        
    PlayerInfo[playerid][pMuteTime] = 0;
        
    SendMe(playeridCOLOR_LIGHTRED"С вас был снят бан чата. Не нарушайте правила");
        return 
    true;

    PHP код:
    public OnPlayerText(playeridtext[])
    {
        if(
    CheckPlayerMute(playerid)) return 0;
        if(
    GetPVarInt(playerid"Logged") == 0) { SendMe(playeridCOLOR_YELLOW2"Пожалуйста авторизируйтесь!"); return 0; }
        if(
    Mobile[playerid] != -1)
        {
            
    format(stringg127"[Телефон] %s: %s"PlayerInfo[playerid][pName], text);
            
    ProxDetector(15.0playeridstringg,0xE6E6E6E6,0xE6E6E6E6,0xE6E6E6E6,0x9C9C9CAA,0x757575AA,0x383838AA);
              if(
    Mobile[Mobile[playerid]] == playeridSendMe(Mobile[playerid], COLOR_YELLOW,stringg);
            return 
    0;
        }
        if(
    GetPVarInt(playerid"SelectCharPlace") > 0) return 0;

        if(
    realchat == 1)
        {
            
    format(stringgsizeof(stringg), "%s[%d]: %s"PlayerInfo[playerid][pName],playeridtext);
            
    ProxDetector(15.0playeridstringg,0xE6E6E6E6,0xE6E6E6E6,0xE6E6E6E6,0x9C9C9CAA,0x757575AA,0x383838AA);
            
    SetPlayerChatBubble(playeridtext0x6495EDFF15.06000);
            if(!
    IsPlayerInAnyVehicle(playerid))
            {
                new 
    word strlen(text),time;
                switch(
    word)
                {
                    case 
    1..7time 2150;
                    case 
    8..128time 4000;
                }
                   
    ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,1,1,1);
                
    Timer SetTimerEx("ClearAnimText"timefalse"d"playerid);
            }
            return 
    0;
        }
        return 
    1;

    PHP код:
    stock CheckPlayerMute(playerid)
    {
        if(
    PlayerInfo[playerid][pMuted] != 1) return false;
        new 
    string[128];
        
    format(stringsizeof(string), "У Вас бан чата.Осталось: %d секунд(ы)"PlayerInfo[playerid][pMuteTime] - gettime());
        
    SendMe(playerid0xdd4400AAstring);
        return 
    true;

    PHP код:
    CMD:mute(playeridparams[])
    {
        if(
    GetPVarInt(playerid"Logged") == 0) return 1;
        new 
    string[128];
        if(
    PlayerInfo[playerid][pAdmin] < 2) return true;
        if(
    sscanf(params"dds[32]"params[0], params[1], params[2])) return SendMe(playeridCOLOR_GREY"Введие: /mute [id] [минуты] [причина]");
        if(!
    IsPlayerConnected(params[0])) return SendMe(playeridCOLOR_GREY"Данный игрок не подключен к серверу");
        if(
    PlayerInfo[params[0]][pMuted] == 1)
        {
            
    UnMute(params[0]);
            
    format(stringsizeof(string), "Администратор %s снял затычку с игрока %s "PlayerInfo[playerid][pName], PlayerInfo[params[0]][pName]);
        }
        else
        {
            
    PlayerInfo[params[0]][pMuteTime] = gettime()+(params[1]*60);
            
    PlayerInfo[params[0]][pMuted] = 1;
            
    format(stringsizeof(string), "Администратор %s поставил затычку игроку %s на %d минут. Причина: %s "PlayerInfo[playerid][pName], PlayerInfo[params[0]][pName], params[1], params[2]);
        }
        
    SendClientMessageToAll(COLOR_LIGHTREDstring);
        return 
    true;


     Посмотри
    ]
    Функция SetGameModeText определяет уникальность вашего мода :D (Evil School Boy)


    Иногда так хочется крикнуть: "Подручныый .." :с



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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Так у вас функция UnMute используется только тогда, когда админ снял мут с игрока.
    Можно сделать что-то типа
    PHP код:
    stock CheckPlayerMute(playerid

        if(
    PlayerInfo[playerid][pMuted] != 1) return false
        if(
    gettime() >= PlayerInfo[playerid][pMuteTime]) return UnMute(params[0]); 
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    24.04.2014
    Сообщений
    108
    Репутация:
    9 ±
    Попробуй заменить stock CheckPlayerMute(playerid) на это:


    stock CheckPlayerMute(playerid)
    {
    if(PlayerInfo[playerid][pMuteTime] > 0)
    {
    new string[128];
    format(string, sizeof(string), "У Вас бан чата.Осталось: %d секунд(ы)", PlayerInfo[playerid][pMuteTime] - gettime());
    SendMe(playerid, 0xdd4400AA, string);
    return false;
    }
    else
    {
    UnMute(playerid);
    }
    }

  5. Пользователь сказал cпасибо:
    Elaid (02.10.2014)
 

 

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

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

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

Ваши права

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