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

Simple Anti Reconnect

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

Модератор: Leonidddd

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

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

Re: Simple Anti Reconnect

Сообщение Fedcomp » 18 фев 2016, 00:29

RevCrew, Жду финальную версию плагина и после этого переведу в утвержденные. Когда определишься с финальной версией прикрепи .sma в первое сообщение.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Simple Anti Reconnect

Сообщение shel » 18 фев 2016, 00:34

Fedcomp писал(а):RevCrew, Жду финальную версию плагина и после этого переведу в утвержденные. Когда определишься с финальной версией прикрепи .sma в первое сообщение.

редактировать нельзя ж, забыл?
GoldSrc ip addres 151.248.1*7.*73
Аватара пользователя
shel
 
Сообщения: 593
Зарегистрирован: 09 июн 2013, 21:36
Забанен
Благодарил (а): 95 раз.
Поблагодарили: 88 раз.
Опыт программирования: Около года
Языки программирования: Admin ne vuderjal napora, и как типичный рузке либераст, последовал совету сафетиста, выдав мне РО.

Re: Simple Anti Reconnect

Сообщение Fedcomp » 18 фев 2016, 00:56

Можно прикрепить отдельным постом, я отредактирую. Движок старый и я его еще пока не освоил (да и он кривой если честно). В будущем можно будет редактировать свои темы в определенных разделах.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Simple Anti Reconnect

Сообщение Metral » 18 фев 2016, 01:14

Shel, зачем кикать человека, если можно просто заблокировать ему респаун?
Аватара пользователя
Metral
 
Сообщения: 19
Зарегистрирован: 17 дек 2012, 16:02
Благодарил (а): 5 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6

Re: Simple Anti Reconnect

Сообщение shel » 18 фев 2016, 02:00

Metral писал(а):Shel, зачем кикать человека, если можно просто заблокировать ему респаун?

реконнект предназначен не только для респауна, не так ли?
GoldSrc ip addres 151.248.1*7.*73
Аватара пользователя
shel
 
Сообщения: 593
Зарегистрирован: 09 июн 2013, 21:36
Забанен
Благодарил (а): 95 раз.
Поблагодарили: 88 раз.
Опыт программирования: Около года
Языки программирования: Admin ne vuderjal napora, и как типичный рузке либераст, последовал совету сафетиста, выдав мне РО.

Re: Simple Anti Reconnect

Сообщение RevCrew » 18 фев 2016, 20:45

Код: Выделить всё
#include <amxmodx>

// Закоментируйте, если не хотите чтобы в чат писалось сообщение
#define CHAT_MSG

#if defined CHAT_MSG
   #include <ColorChat>
#endif

static const PLUGIN[] = "Anti Recconect"
static const VERSION[] = "1.0"
static const AUTHOR[] = "RevCrew"

#define ADMIN read_flags("s")
#define TIME  15

enum _:TrieType
{
   TRIE_TYPE_ID = 0,
   TRIE_TYPE_IP,
   TRIE_END
}
new Trie: g_trie[TrieType];

enum _:PlayerParam
{
   AUTHID[22],
   IP[16]
}

public plugin_init()
{
   register_plugin(PLUGIN,VERSION,AUTHOR);
   
   for(new i; i < TRIE_END; i++)
      g_trie[i] = TrieCreate();
}
public plugin_end()
{
   for(new i; i < TrieType; i++)
      TrieDestroy(g_trie[i])
}
public client_authorized(id)
{
   new player[PlayerParam], time = 0;
   get_user_authid(id, player[AUTHID], charsmax(player[AUTHID]));
   get_user_ip(id, player[IP], charsmax(player[IP]), 1);

   new name[32];
   get_user_name(id, name, charsmax(name))
   for(new i; i<TRIE_END; i++)
      if(TrieGetCell(g_trie[i], player[i], time))
         if(time - get_systime(0) > 0)
         {
            server_cmd("kick #%d ^" Anti Recconect (%d seconds left) ^"", get_user_userid(id),time - get_systime(0));
            #if defined CHAT_MSG
            client_print_color(0, RED, "^1[^3BlockRec^1] Player ^4%s^1 kicked. Reason: ^3Anti Reconnect", name);
            #endif
            client_cmd(id,"spk buttons/blip1.wav")
            break;
         }
         else
            TrieDeleteKey(g_trie[i], player[i])
}

public client_disconnect(id)
{
   if(get_user_flags(id) & ADMIN)
   return;

   new player[PlayerParam]
   get_user_authid(id, player[AUTHID], charsmax(player[AUTHID]));
   get_user_ip(id, player[IP], charsmax(player[IP]), 1);

   for(new i; i < TRIE_END; i++)
      TrieSetCell(g_trie[i], player[i], get_systime(0) + TIME);
}
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: Simple Anti Reconnect

Сообщение Fedcomp » 19 фев 2016, 00:43

Просмотрю в понедельник и перенесу в утвержденные если все ок.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Simple Anti Reconnect

Сообщение RevCrew » 09 мар 2016, 22:14

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

Re: Simple Anti Reconnect

Сообщение L4D2 » 10 мар 2016, 02:21

RevCrew писал(а):Собственно появилась проблема. При использовании CHAT_MSG, если перезаходить на сервер постоянно, то сервер крашится. Скиньте нормальный ColorCHat от темы


Чем не устроил:
Код: Выделить всё
stock ChatColor(const id, const input[], any:...){
        new 
count 1players[32]
        static 
msg[191]
        
vformat(msg190input3)

        
replace_all(msg190"!g""^4"// Green Color
        
replace_all(msg190"!y""^1"// Default Color
        
replace_all(msg190"!team""^3"// Team Color
        
replace_all(msg190"!team2""^0"// Team2 Color    

        
if (idplayers[0] = id; else get_players(playerscount"ch")
        {
                for (new 
0counti++) {
                        if (
is_user_connected(players[i]))
                        {
                                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
                                
write_byte(players[i]);
                                
write_string(msg);
                                
message_end();
                        }
                }
        }

==============================================
|| Пишу не большие плагины под заказ: Заказ онлайн (Кликабельно)
|| Ссылка на официальный топик: заказ плагинов.
|| Желаешь оставить отзыв: тебе сюда(кликни).
==============================================
Аватара пользователя
L4D2
 
Сообщения: 792
Зарегистрирован: 25 июн 2011, 19:26
Благодарил (а): 240 раз.
Поблагодарили: 100 раз.
Языки программирования: Counter-Strike 1.6

Re: Simple Anti Reconnect

Сообщение RevCrew » 12 мар 2016, 14:55

новая версия. Можно делать финальной

Код: Выделить всё
#include <amxmodx>

//#define CHAT_MSG

#if defined CHAT_MSG
   #include <ColorChat>
#endif

static const PLUGIN[] = "Anti Recconect"
static const VERSION[] = "1.2"
static const AUTHOR[] = "RevCrew"

#define ADMIN read_flags("s")
#define TIME  15

enum
{
   DETECT_TYPE_ID = 0,
   DETECT_TYPE_IP
}

// Detect Type
new const DETECT_TYPE = DETECT_TYPE_IP

new Trie: g_trie;

public plugin_init()
{
   register_plugin(PLUGIN,VERSION,AUTHOR);
   g_trie = TrieCreate();
}
public plugin_end()
{
   TrieDestroy(g_trie)
}
public client_authorized(id)
{
   new Uid[26], time = 0;
   if(DETECT_TYPE == DETECT_TYPE_IP)
      get_user_ip(id, Uid, charsmax(Uid), 1);
   else
      get_user_authid(id, Uid, charsmax(Uid));

   new name[32];
   get_user_name(id, name, charsmax(name))
   
   if( TrieGetCell(g_trie, Uid, time))
   {
      if(time - get_systime(0) > 0)
      {
         server_cmd("kick #%d ^" Anti Recconect (%d seconds left) ^"", get_user_userid(id),time - get_systime(0));
         #if defined CHAT_MSG
            client_print_color(0, RED, "^1[^3BlockRec^1] Player ^4%s^1 (^3%s^1) kicked. Reason: ^3Anti Reconnect", name, Uid);
            client_cmd(id,"spk buttons/blip1.wav")
         #endif
         return;
      }
      
      TrieDeleteKey(g_trie, Uid);
   }
            
}

public client_disconnect(id)
{
   if(get_user_flags(id) & ADMIN)
   return;

   new Uid[26];
   if(DETECT_TYPE == DETECT_TYPE_IP)
      get_user_ip(id, Uid, charsmax(Uid), 1);
   else
      get_user_authid(id, Uid, charsmax(Uid));
      
   TrieSetCell(g_trie, Uid, get_systime(0) + TIME);
}
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Пред.След.

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

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

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