Русское сообщество по скриптингу

FakeIP

Утвержденные плагины для AMX Mod X администратором/модератором форума.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только работоспособных плагинов для AMX Mod X. Новые плагины нужно выкладывать в разделе "Новые плагины".

FakeIP

Сообщение RevCrew » 03 мар 2016, 19:07

Автор: RevCrew
Версия: 1.0
Описание: Плагин обнаруживает одинаковые айпи у игроков на сервере, и при достижении лимита, кикает их.
Лимит указывается в начале плагина через define.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: FakeIP

Сообщение Hinata » 03 мар 2016, 19:22

Лимит указывается в начале плагина через define.

Код: Выделить всё
const MAX_IP_FAKES 4

Врешь и не краснеешь. :-)
Аватара пользователя
Hinata
 
Сообщения: 53
Зарегистрирован: 29 фев 2016, 12:00
Забанен
Благодарил (а): 11 раз.
Поблагодарили: 24 раз.

Re: FakeIP

Сообщение RevCrew » 03 мар 2016, 19:28

Hinata, ладнооооооооооо. Перепутал, думал что через define сделал.. :(
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: FakeIP

Сообщение Mistrick » 03 мар 2016, 19:32

RevCrew, зашло 3 игрока с одного ип, один вышел. Сколько в Trie осталось ип?
Зачем эти статики? Еще и один символ в ип обераешь при всех трехзначных значениях.
Последний раз редактировалось Mistrick 03 мар 2016, 19:34, всего редактировалось 1 раз.
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: FakeIP

Сообщение RevCrew » 03 мар 2016, 19:33

Mistrick, 0
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: FakeIP

Сообщение Mistrick » 03 мар 2016, 19:34

RevCrew, а должно?))
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: FakeIP

Сообщение RevCrew » 03 мар 2016, 19:39

Mistrick, так?
Код: Выделить всё
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <ColorChat>

#define PLUGIN "FakeIP"
#define VERSION "1.0"
#define AUTHOR "RevCrew"

const MAX_IP_FAKES = 4
const TIME = 1440

new const PREFIX[] = "FakeIP"

new Trie:g_trie;

#define LOG_FILE "addons/amxmodx/logs/FakeIP.log"

public plugin_init() {
 
   register_plugin(PLUGIN, VERSION, AUTHOR)
   g_trie = TrieCreate();
}
public plugin_end()
   TrieDestroy(g_trie);

public client_connect(id)
{
   static ip[16]; get_user_ip(id, ip, sizeof(ip) - 1, .without_port=1)
   
   new cell = 1;
   if(TrieGetCell(g_trie, ip, cell))
   {
      cell ++;
      
      if(cell >MAX_IP_FAKES)
      {
         client_disconnect(id);
         client_print_color(0, RED, "^1[^3%s^1] IP [^3%s^1] banned for [^3%d^1] | Reason: [^4Limit IP Reached^1]",PREFIX, ip, TIME)
         log_to_file(LOG_FILE,"[%s] IP %s banned for %d.",PREFIX, ip, TIME)
         server_cmd("addip %d %s; wait;wait; writeip",TIME, ip)
         
         return;
      }
      
      TrieDeleteKey(g_trie, ip);
   }
   
   TrieSetCell(g_trie, ip, cell);
}

public client_disconnect(id)
{
   static ip[16]; get_user_ip(id, ip, sizeof(ip) - 1, .without_port=1);
   static cell
   if(TrieGetCell(g_trie, ip, cell))
   {
      cell --;
      TrieDeleteKey(g_trie, ip);
      
      if(cell < 1)
         return;
   }
   TrieSetCell(g_trie, ip, cell);
}
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: FakeIP

Сообщение Mistrick » 03 мар 2016, 20:08

Код: Выделить всё
public client_disconnect(id)
{
   static ip[16 + 1];//3 + 1 + 3 + 1 + 3 + 1 + 3 + null byte Carl
   get_user_ip(id, ip, sizeof(ip) - 1, .without_port=1);
   static cell//why static?
   if(TrieGetCell(g_trie, ip, cell))
   {
      cell --;
      if(cell > 0)
      {
         TrieSetCell(g_trie, ip, cell);
      }
      else
      {
         TrieDeleteKey(g_trie, ip);
      }
   }
}

Все равно как-то мутно плагин написан.
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: FakeIP

Сообщение RevCrew » 03 мар 2016, 20:26

//why static?

why not?

Код: Выделить всё
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <ColorChat>

#define PLUGIN "FakeIP"
#define VERSION "1.0"
#define AUTHOR "RevCrew"

const MAX_IP_FAKES = 4
const TIME = 1440
const IP_SIZE = 18 // Lyshe bol'she 4em men'she

new const PREFIX[] = "FakeIP"

new Trie:g_trie;

#define LOG_FILE "addons/amxmodx/logs/FakeIP.log"

public plugin_init() {
 
   register_plugin(PLUGIN, VERSION, AUTHOR)
   g_trie = TrieCreate();
}
public plugin_end()
   TrieDestroy(g_trie);

public client_connect(id)
{
   static ip[IP_SIZE]; get_user_ip(id, ip, sizeof(ip) - 1, .without_port=1)
   
   new cell = 1;
   if(TrieGetCell(g_trie, ip, cell))
   {
      cell ++;
      
      if(cell >MAX_IP_FAKES)
      {
         client_disconnect(id);
         client_print_color(0, RED, "^1[^3%s^1] IP [^3%s^1] banned for [^3%d^1] | Reason: [^4Limit IP Reached^1]",PREFIX, ip, TIME)
         log_to_file(LOG_FILE,"[%s] IP %s banned for %d.",PREFIX, ip, TIME)
         server_cmd("addip %d %s; wait;wait; writeip",TIME, ip)
         
         return;
      }
      
      TrieDeleteKey(g_trie, ip);
   }
   
   TrieSetCell(g_trie, ip, cell);
}

public client_disconnect(id)
{
   static ip[IP_SIZE]; get_user_ip(id, ip, sizeof(ip) - 1, .without_port=1);
   static cell
   if(TrieGetCell(g_trie, ip, cell))
   {
      cell --;
      TrieDeleteKey(g_trie, ip);
      
      if(cell < 1)
         return;
   }
   TrieSetCell(g_trie, ip, cell);
}


Добавлено спустя 40 секунд:
на самом деле Темыч сказал что static быстрее работают) :yahoo:
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: FakeIP

Сообщение Mistrick » 03 мар 2016, 20:43

RevCrew писал(а):на самом деле Темыч сказал что static быстрее работают) :yahoo:

Не повод использовать из везде.
Я же сказал, что код мутный. Видно же дублирование функций.
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

След.

Вернуться в Утвержденные плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6