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

Тема: Anti Flood

  1. #1
    Аватар для Brendan
    Новичок

    Статус
    Оффлайн
    Регистрация
    25.02.2014
    Адрес
    Russia | Kirov
    Сообщений
    21
    Репутация:
    3 ±

    Anti Flood

    Антифлуд в чат.


    Ко всем переменным:
    PHP код:
        new IsMessageSent[MAX_PLAYERS];
        new 
    interval 2
    В конец макросов:

    PHP код:
    #if defined SendClientMessage SCM
    #endif 
    В public OnPlayerConnect:

    PHP код:
        new conn[256];
        
    IsMessageSent[playerid] = 0;
        
    format(conn,sizeof(conn),"Anti-Flood активирован",interval);
        
    SCM(playerid,0x33AA33AA,conn); 
    В public OnPlayerText:

    PHP код:
        if(IsMessageSent[playerid] == 1)
        {
            
    SCM(playerid0x4682B4AA"Не флуди!");
            return 
    false;
        }
        else
        {
            
    IsMessageSent[playerid] = 1;
            
    SetTimerEx("UnMutedX",interval*1000,0,"d",playerid);
            return 
    true;
        } 
    Создадим колбек:

    PHP код:
    forward UnMutedX(playerid);
    public 
    UnMutedX(playerid)
    {
        
    IsMessageSent[playerid] = 0;
        return 
    true;

    На этом всё. Спасибо за просмотр!
    Последний раз редактировалось Brendan; 18.11.2014 в 02:44.

  2. #2
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    Форматируем неформатируемый текст при коннекте в 256 ячеек, юзаем таймер, хотя имеем gettickcount и gettime...
    Одним словом ужас.

  3. #3
    Аватар для Brendan
    Новичок

    Статус
    Оффлайн
    Регистрация
    25.02.2014
    Адрес
    Russia | Kirov
    Сообщений
    21
    Репутация:
    3 ±
    Цитата Сообщение от Seregamil Посмотреть сообщение
    Форматируем неформатируемый текст при коннекте в 256 ячеек, юзаем таймер, хотя имеем gettickcount и gettime...
    Одним словом ужас.
    Все ли ты мои темы за*рал? Я вижу тебе заняться просто нечем..
    Может полезным чем нибудь займёшься.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Brendan Посмотреть сообщение
    Все ли ты мои темы за*рал? Я вижу тебе заняться просто нечем..
    Может полезным чем нибудь займёшься.
    Он оценивает твои темы, что не так? Не пиши говнокод и никто к тебе приставать не будет
    Пы.Сы.: Макрос зачётный
    PHP код:
    #if defined SendClientMessage SCM
    #endif 
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  5. #5
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    Цитата Сообщение от Brendan Посмотреть сообщение
    Все ли ты мои темы за*рал? Я вижу тебе заняться просто нечем..
    Может полезным чем нибудь займёшься.
    Ты мне даром не нужен. А твой код, повторюсь, гавно.

  6. #6
    Аватар для [ForD]
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.11.2013
    Адрес
    Свердловская обл.
    Сообщений
    688
    Репутация:
    103 ±
    И правда,тебе говорят как можно сделать лучше,слушал бы а не срался.
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

    25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/





    #FIXSAMP

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Действительно, антифлуд можно сделать более простым способом, например таким:
    PHP код:
    new
        
    server_tick GetTickCount();

    if(
    GetPVarInt(playerid"player_flood_tick") > server_tick)
        return !
    SendClientMessage(playerid, -1"Не флудите.");

    SetPVarInt(playerid"player_flood_tick"server_tick 1000); 
    Также много лишних массивов, переменных. Интервал, например, можно было взять за константу. Неизвестные названия функций, бесполезный макрос.

    К сожалению тема для одобрения не подходит.
    Последний раз редактировалось L0ndl3m; 18.11.2014 в 21:44.

  8. #8
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    Автор, замечания вынесены. Ждем твою реакцию на свой код.

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

    Статус
    Оффлайн
    Регистрация
    22.11.2014
    Сообщений
    76
    Репутация:
    3 ±
    На PVar не мог что ли реализовать?

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

    Статус
    Оффлайн
    Регистрация
    30.03.2014
    Сообщений
    132
    Репутация:
    -2 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Действительно, антифлуд можно сделать более простым способом, например таким:
    PHP код:
    new
        
    server_tick GetTickCount();

    if(
    GetPVarInt(playerid"player_flood_tick") > server_tick)
        return !
    SendClientMessage(playerid, -1"Не флудите.");

    SetPVarInt(playerid"player_flood_tick"server_tick 1000); 
    а зачем тут переменная?

    PHP код:
    if((gettime() - GetPVarInt(playerid#floodChat)) < 3) return !SendClientMessage(playerid, -1, "Не флудите.");
    SetPVarInt(playerid#floodChat, gettime()); 
    работает нормально.
    Последний раз редактировалось Mr.DeViLsS; 02.12.2014 в 19:21.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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