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

Тема: Таймер

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

    Статус
    Оффлайн
    Регистрация
    10.08.2013
    Сообщений
    68
    Репутация:
    0 ±

    Таймер

    Хочу создать команду /mute, что для этого требуется? - понимаю что требуется сама команда - и таймер - с проверками - допустим если выдали бан чат то ты в чате нечего писать не можешь - на счет команды - команда точно работающая, а вот на счет таймера сильно не уверен - конкретно не на счет таймера - а на счет проверки - проверьте пожалуйста -и скажите что в ней не так?

    PHP код:
        if(PlayerInfo[playerid][pMute] > 0)
        {
            
    PlayerInfo[playerid][pMute]--;
            if(
    PlayerInfo[playerid][pMute] <= 0)
            {
            
    PlayerInfo[playerid][pMute] = 0;
            new 
    string[256];
            new 
    sendername[MAX_PLAYER_NAME];
            
    GetPlayerName(isendernamesizeof(sendername));
            
    format(stringsizeof(string), "{00FF00}Èãðîê %s [%d] ðàçîòêíóò."sendernamei);
            print(string);
            
    SendClientMessageToAll(COLOR_YELLOWstring);
            }
        } 

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    PHP код:
    if(PlayerInfo[playerid][pMute] != && --PlayerInfo[playerid][pMute] == 0)
    {
        
    // остальной код, обнулять переменную не нужно


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

    Статус
    Оффлайн
    Регистрация
    24.03.2014
    Адрес
    Ямайка
    Сообщений
    303
    Репутация:
    8 ±
    Вот сама команда /mute
    Только измени на свои переменные и названия.

    PHP код:
        else if(strcmp(cmd"/mute"true) == 0)
        {
            if (
    PINFO[playerid][pAdminLVL] < 1) return SendMe(playeridCWHITEYouCanNot);
            
    tmp strtok(cmdtextidx);
            if(!
    strlen(tmp)) return SendMe(playerid0x00D900C8"- Подсказка:{FFFFFF} /mute [ID] [минуты]");
            new 
    mtime;
            
    giveplayerid ReturnUser(tmp);
            if (!
    IsPlayerConnected(giveplayerid)) return SendMe(playeridCWHITENotFoundID);
            if(
    gPlayerLogged[giveplayerid] == false) return SendMe(playeridCWHITENoLogin);
            if(
    PINFO[giveplayerid][pMuted] == false)
            {
                
    tmp strtok(cmdtextidx);
                if(!
    strlen(tmp)) return SendMe(playerid0x00D900C8"- Подсказка:{FFFFFF} /mute [ID] [минуты]");
                
    mtime strval(tmp);
                if(
    GetPlayerState(giveplayerid) != && GetPlayerState(giveplayerid) != && GetPlayerState(giveplayerid) != 3) return SendMe(playeridCWHITENoLogin);
                
    PINFO[giveplayerid][pMuted] = true;
                
    PINFO[giveplayerid][pMuteTime] = mtime*60;
                
    format(stringsizeof(string), "%s получил(a) бан чата от администратора %s на %i мин.",GN(giveplayerid) ,GN(playerid),mtime);
                
    SendAll(CLIGHTREDstring);
                
    SendMes(giveplayerid, -1"Вы получили бан чата на %i мин. Бан чата снимется автоматически по истечению времени.",mtime);
            }
            else
            {
                
    format(stringsizeof(string), "Администратор %s снял бан чата у %s. ",GN(playerid),GN(giveplayerid));
                
    SendAll(CLIGHTREDstring);
                
    PINFO[giveplayerid][pMuted] = false;
                
    PINFO[giveplayerid][pMuteTime] = 0;
            }
            return 
    true;
        } 
    OnPlayertext
    PHP код:
    if(PINFO[playerid][pMuted] == true) { SendMes(playeridTEAM_CYAN_COLOR"У вас отключен чат"); return false; } 
    UpdatePlayer
    PHP код:
                if(PINFO[i][pMuted] == true)
                {
                    
    PINFO[i][pMuteTime] -=1;
                    if(
    PINFO[i][pMuteTime] <= 0)
                    {
                        
    PINFO[i][pMuted] = false;
                        
    PINFO[i][pMuteTime] = 0;
                        
    SendMe(i,-1,"Вам включили чат. Пожалуйста больше не нарушайте правила");
                    }
                } 
    Последний раз редактировалось BaBuIIIkaDrifteR; 18.01.2015 в 10:36.
    ip adress: В разработке:7777
    My Skype: Skype Phone
    [В]контакте: Рома Уруру
    Разработка: EnergyDRIFT©|2015

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

    Статус
    Оффлайн
    Регистрация
    10.08.2013
    Сообщений
    68
    Репутация:
    0 ±
    Цитата Сообщение от BaBuIIIkaDrifteR Посмотреть сообщение
    Вот сама команда /mute
    Только измени на свои переменные и названия.

    PHP код:
        else if(strcmp(cmd"/mute"true) == 0)
        {
            if (
    PINFO[playerid][pAdminLVL] < 1) return SendMe(playeridCWHITEYouCanNot);
            
    tmp strtok(cmdtextidx);
            if(!
    strlen(tmp)) return SendMe(playerid0x00D900C8"- Подсказка:{FFFFFF} /mute [ID] [минуты]");
            new 
    mtime;
            
    giveplayerid ReturnUser(tmp);
            if (!
    IsPlayerConnected(giveplayerid)) return SendMe(playeridCWHITENotFoundID);
            if(
    gPlayerLogged[giveplayerid] == false) return SendMe(playeridCWHITENoLogin);
            if(
    PINFO[giveplayerid][pMuted] == false)
            {
                
    tmp strtok(cmdtextidx);
                if(!
    strlen(tmp)) return SendMe(playerid0x00D900C8"- Подсказка:{FFFFFF} /mute [ID] [минуты]");
                
    mtime strval(tmp);
                if(
    GetPlayerState(giveplayerid) != && GetPlayerState(giveplayerid) != && GetPlayerState(giveplayerid) != 3) return SendMe(playeridCWHITENoLogin);
                
    PINFO[giveplayerid][pMuted] = true;
                
    PINFO[giveplayerid][pMuteTime] = mtime*60;
                
    format(stringsizeof(string), "%s получил(a) бан чата от администратора %s на %i мин.",GN(giveplayerid) ,GN(playerid),mtime);
                
    SendAll(CLIGHTREDstring);
                
    SendMes(giveplayerid, -1"Вы получили бан чата на %i мин. Бан чата снимется автоматически по истечению времени.",mtime);
            }
            else
            {
                
    format(stringsizeof(string), "Администратор %s снял бан чата у %s. ",GN(playerid),GN(giveplayerid));
                
    SendAll(CLIGHTREDstring);
                
    PINFO[giveplayerid][pMuted] = false;
                
    PINFO[giveplayerid][pMuteTime] = 0;
            }
            return 
    true;
        } 
    OnPlayertext
    PHP код:
    if(PINFO[playerid][pMuted] == true) { SendMes(playeridTEAM_CYAN_COLOR"У вас отключен чат"); return false; } 
    UpdatePlayer
    PHP код:
                if(PINFO[i][pMuted] == true)
                {
                    
    PINFO[i][pMuteTime] -=1;
                    if(
    PINFO[i][pMuteTime] <= 0)
                    {
                        
    PINFO[i][pMuted] = false;
                        
    PINFO[i][pMuteTime] = 0;
                        
    SendMe(i,-1,"Вам включили чат. Пожалуйста больше не нарушайте правила");
                    }
                } 
    C:\Users\Àäìèí\Desktop\Îñíîâà\gamemodes\Osnova.pwn(309) : error 017: undefined symbol "i"

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Rick, что на счёт моего варианта-то? Готовый код вам дали, это не значит, что он будет корректно работать. Далее с предложенным выше кодом пойдут вопросы мол: Лагает сервер при вводе /tmute и так далее.

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

    Статус
    Оффлайн
    Регистрация
    10.08.2013
    Сообщений
    68
    Репутация:
    0 ±
    PHP код:
    if(PlayerInfo[playerid][pMute] != && --PlayerInfo[playerid][pMute] == 0)
    {
           if(
    PlayerInfo[playerid][pMute] > 0
        { 
            
    PlayerInfo[playerid][pMute]--; 
            if(
    PlayerInfo[playerid][pMute] <= 0
            { 
            new 
    string[256]; 
            new 
    sendername[MAX_PLAYER_NAME]; 
            
    GetPlayerName(isendernamesizeof(sendername)); 
            
    format(stringsizeof(string), "{00FF00}Èãðîê %s [%d] ðàçîòêíóò."sendernamei); 
            print(string); 
            
    SendClientMessageToAll(COLOR_YELLOWstring); 
            } 
        }   

    Т.е вот так вот?

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    PHP код:
    if(PlayerInfo[playerid][pMute] > 0)

        
    PlayerInfo[playerid][pMute]--;
        if(
    PlayerInfo[playerid][pMute] <= 0
    Это не нужно.

  9. Пользователь сказал cпасибо:
    Rick (18.01.2015)
  10. #8
    Аватар для Mr.DeViLsS
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.03.2014
    Сообщений
    132
    Репутация:
    -2 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    PHP код:
    if(PlayerInfo[playerid][pMute] > 0)

        
    PlayerInfo[playerid][pMute]--;
        if(
    PlayerInfo[playerid][pMute] <= 0
    Это не нужно.
    PHP код:
    if(PlayerInfo[playerid][pMute] != && --PlayerInfo[playerid][pMute] == 0
    Если я правильно понял, то это: Если у игрока переменная не равна 0, то мы вычитаем значение? А если переменная равна 0, то снимаем мут?

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

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

  12. #10
    Аватар для BaBuIIIkaDrifteR
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.03.2014
    Адрес
    Ямайка
    Сообщений
    303
    Репутация:
    8 ±
    Цитата Сообщение от Rick Посмотреть сообщение
    C:\Users\Àäìèí\Desktop\Îñíîâà\gamemodes\Osnova.pwn(309) : error 017: undefined symbol "i"
    i Замени на playerid
    ip adress: В разработке:7777
    My Skype: Skype Phone
    [В]контакте: Рома Уруру
    Разработка: EnergyDRIFT©|2015

 

 

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

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

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

Ваши права

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