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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 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
    Сообщений
    560
    Репутация:
    272 ±
    Форматируем неформатируемый текст при коннекте в 256 ячеек, юзаем таймер, хотя имеем gettickcount и gettime...
    Одним словом ужас.

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

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

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

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

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

    Steve Pavlina

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

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

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

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

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





    #FIXSAMP

  7. #7
    Аватар для L0ndl3m
    Модератор

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,361
    Репутация:
    767 ±
    Действительно, антифлуд можно сделать более простым способом, например таким:
    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
    Репутация:
    145 ±
    Автор, замечания вынесены. Ждем твою реакцию на свой код.

  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 12 ПоследняяПоследняя

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

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

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

Ваши права

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