Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Анти реконнект

Статус пользователя miRror
сообщение 29.9.2014, 16:53
Сообщение #1


Стаж: 15 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Скиньте плагин против реконнекта. Простейший. Если игрок перезаходит в течении 20 секунд - кикаем с причиной. Самый простой, писать и искать не охото =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Vital
сообщение 29.9.2014, 17:58
Сообщение #2
Стаж: 12 лет

Сообщений: 179
Благодарностей: 58
Полезность: 0

Код:
#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"
new SCORESAVE[]="amx_reconnect_ss"
new RSTATIC[]="amx_reconnect_static"
new RSTIME[]="amx_reconnect_stime"

new t_disconnect[33] = {0, ...}
new t_scoresave[33] = {0, ...}
new ips[33][24]
new sfrags[33] = {0, ...}
new sdeaths[33] = {0, ...}
new useretry[33] = {0, ...}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar(RTIME, "7")
register_cvar(RCAN, "1")
register_cvar(SCORESAVE, "1")
register_cvar(RSTATIC, "1")
register_cvar(RSTIME, "7")
register_event("TeamInfo","outspec","a") // восстанавливает счёт игроку в соответствии с настройками как только тот зайдёт за команду
}

public client_connect(id)
{
new maxexit = get_cvar_num(RTIME)
new maxstata = get_cvar_num(RSTIME)
new canreconnect = get_cvar_num(RCAN)
new ssave = get_cvar_num(SCORESAVE)
new ip[24]
get_user_ip(id,ip,23,0)

if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
{
new Float:nexTime = get_gametime()

if (t_disconnect[id] > nexTime)
{
new stat = get_cvar_num(RSTATIC)
new timewait
if (stat==0)
{
t_disconnect[id] = floatround(nexTime) + maxexit
t_scoresave[id] = floatround(nexTime) + maxstata
timewait=maxexit
}
else
{
timewait=t_disconnect[id]-floatround(nexTime)
}
server_cmd("kick #%d ^"Анти реконнект. Ждите %d секунд.^"", get_user_userid(id), timewait)
return PLUGIN_CONTINUE
}
}
if (ssave==1)
{
new Float:nexTime = get_gametime()

if (t_scoresave[id] <= nexTime)
{
sdeaths[id]=0
sfrags[id]=0
useretry[id]=0
}
return PLUGIN_CONTINUE
}

return PLUGIN_CONTINUE
}

public outspec()
{
new id=read_data(1)
if ((useretry[id]==1) && (is_user_connected(id)))
{
cs_set_user_deaths(id,sdeaths[id])
set_user_frags(id,sfrags[id])
useretry[id]=0
sdeaths[id]=0
sfrags[id]=0
}
return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
new maxexit = get_cvar_num(RTIME)
new maxstata = get_cvar_num(RSTIME)
new ssave = get_cvar_num(SCORESAVE)

new Float:theTime = get_gametime()
t_disconnect[id] = floatround(theTime) + maxexit
t_scoresave[id] = floatround(theTime) + maxstata
get_user_ip(id,ips[id],23,0)

if (ssave==1)
{
sdeaths[id] = get_user_deaths(id)
sfrags[id] = get_user_frags(id)
useretry[id]=1
}
return PLUGIN_CONTINUE
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 29.9.2014, 18:00
Сообщение #3


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

Меценат Меценат

У меня завалялся вот такой, простой он или нет - не знаю
Исходник
Код:
/* AMX Mod X
* Anti Reconnect Plugin 3.0
*
* Версии антиреконнекта:
3.0 - два режима работы: отсчёт времени после попытки зайти или отсчёт времени после использования команды reconnect
задаётся командой amx_reconnect_static <0|1> 0 - каждый раз заного отсчитывать время, запрещающее заходить.
1 - отсчитывать время только после выхода с сервера
amx_reconnect_stime - кол-во секунд, на протяжении которых сохраняется счёт для пользователя по ip юзера.
- перед киком проверка производится так же на ip пользователя... если зашёдший имеет другой ip - он не кикается.
2.0 - исправлен баг с уведомлением о том, что надо подождать, прежде чем войти на сервер
- добавлена команда amx_reconnect_ss <1|0> - запоминать счёт игрока или нет (работает при amx_reconnect_can 1)
1.01 - кикает всех, кто заходит раньше установленного времени после того как вышел (т.е. использует реконнект)
- поддерживаемые команды:
amx_reconnect_can <1|0> - можно или нет реконнектиться
amx_reconnect_time <sec> - время в секундах, которое нужно ждать после ухода с сервера, чтобы сного на него зайти

*/

#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"
new SCORESAVE[]="amx_reconnect_ss"
new RSTATIC[]="amx_reconnect_static"
new RSTIME[]="amx_reconnect_stime"

new t_disconnect[33] = {0, ...}
new t_scoresave[33] = {0, ...}
new ips[33][24]
new sfrags[33] = {0, ...}
new sdeaths[33] = {0, ...}
new useretry[33] = {0, ...}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar(RTIME, "7")
register_cvar(RCAN, "1")
register_cvar(SCORESAVE, "1")
register_cvar(RSTATIC, "1")
register_cvar(RSTIME, "7")
register_event("TeamInfo","outspec","a") // восстанавливает счёт игроку в соответствии с настройками как только тот зайдёт за команду
}

public client_connect(id)
{
new maxexit = get_cvar_num(RTIME)
new maxstata = get_cvar_num(RSTIME)
new canreconnect = get_cvar_num(RCAN)
new ssave = get_cvar_num(SCORESAVE)
new ip[24]
get_user_ip(id,ip,23,0)

if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
{
new Float:nexTime = get_gametime()

if (t_disconnect[id] > nexTime)
{
new stat = get_cvar_num(RSTATIC)
new timewait
if (stat==0)
{
t_disconnect[id] = floatround(nexTime) + maxexit
t_scoresave[id] = floatround(nexTime) + maxstata
timewait=maxexit
}
else
{
timewait=t_disconnect[id]-floatround(nexTime)
}
server_cmd("kick #%d ^"Анти реконнект. Ждите %d секунд.^"", get_user_userid(id), timewait)
return PLUGIN_CONTINUE
}
}
if (ssave==1)
{
new Float:nexTime = get_gametime()

if (t_scoresave[id] <= nexTime)
{
sdeaths[id]=0
sfrags[id]=0
useretry[id]=0
}
return PLUGIN_CONTINUE
}

return PLUGIN_CONTINUE
}

public outspec()
{
new id=read_data(1)
if ((useretry[id]==1) && (is_user_connected(id)))
{
cs_set_user_deaths(id,sdeaths[id])
set_user_frags(id,sfrags[id])
useretry[id]=0
sdeaths[id]=0
sfrags[id]=0
}
return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
new maxexit = get_cvar_num(RTIME)
new maxstata = get_cvar_num(RSTIME)
new ssave = get_cvar_num(SCORESAVE)

new Float:theTime = get_gametime()
t_disconnect[id] = floatround(theTime) + maxexit
t_scoresave[id] = floatround(theTime) + maxstata
get_user_ip(id,ips[id],23,0)

if (ssave==1)
{
sdeaths[id] = get_user_deaths(id)
sfrags[id] = get_user_frags(id)
useretry[id]=1
}
return PLUGIN_CONTINUE
}


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Vital
сообщение 29.9.2014, 18:49
Сообщение #4
Стаж: 12 лет

Сообщений: 179
Благодарностей: 58
Полезность: 0

ExTPuMaJI,
Один и тот же плагин скинули:)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя miRror
сообщение 29.9.2014, 19:32
Сообщение #5


Стаж: 15 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Для поиска: Плагин против реконнекта antireconnect amxx cs 1.6

Надеюсь всё правильно написал, если что, скриптеры поправьте. Это именно то, что мне нужно.
Код:
#include <amxmodx>

#define RTIME 20 // время запрета реконнекта

new sEndtime[33] = {0, ...}
new aIps[33][24]
new sEnding[24], sIp[24]

public plugin_init()
{
register_plugin( "Anti reconnect Lite", "JohnJ edit miRror", "3.1" )
}

public client_connect(id)
{
get_user_ip( id, sIp, charsmax(sIp) )

if (equali(sIp, aIps[id]))
{
new Float:curtime = get_gametime()

if (sEndtime[id] > curtime)
{
new timewait = sEndtime[id] - floatround(curtime)

get_ending( timewait, "секунду", "секунды", "секунд", sEnding, charsmax(sEnding) )

server_cmd( "kick #%d ^"Анти реконнект. Ждите %d %s.^"", get_user_userid(id), timewait, sEnding )
}
}
}

public client_disconnect(id)
{
new Float:thetime = get_gametime()

sEndtime[id] = floatround(thetime) + RTIME
get_user_ip( id, aIps[id], charsmax(aIps) )
}

stock get_ending ( num, const a[], const b[], const c[], output[], output_len )
{
new iNum100 = num%100, iNum10 = num%10
if ( iNum100 >= 5 && iNum100 <= 20 || iNum10 == 0 || iNum10 >= 5 && iNum10 <= 9 ) format ( output, output_len, "%s", c )
else if ( iNum10 == 1 ) format ( output, output_len, "%s", a )
else if ( iNum10 >= 2 && iNum10 <= 4 ) format ( output, output_len, "%s", b )
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя MiIIer
сообщение 23.1.2017, 12:48
Сообщение #6


Стаж: 10 лет
Город: Волгоград

Сообщений: 88
Благодарностей: 2
Полезность: < 0

miRror,
Как изменить время реконекта с 20 сек до 10?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Morty
сообщение 23.1.2017, 12:50
Сообщение #7


Стаж: 10 лет

Сообщений: 57
Благодарностей: 26
Полезность: 303

MiIIer, плохо видим?
Код:
#define RTIME 20 // время запрета реконнекта
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Maksumus
сообщение 23.1.2017, 12:51
Сообщение #8
Стаж: 9 лет 5 месяцев

Сообщений: 499
Благодарностей: 78
Полезность: < 0

Цитата(MiIIer @ 23.1.2017, 13:48) *
miRror,
Как изменить время реконекта с 20 сек до 10?

#define RTIME 20 // время запрета реконнекта
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MiIIer
сообщение 27.1.2017, 17:08
Сообщение #9


Стаж: 10 лет
Город: Волгоград

Сообщений: 88
Благодарностей: 2
Полезность: < 0

Цитата(Morty @ 23.1.2017, 13:50) *
MiIIer, плохо видим?
Код:
#define RTIME 20 // время запрета реконнекта


Речь идёт не о моём зрении а о том что изменил время скомпилировал а время как было 20 та и осталось.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 27.1.2017, 17:19
Сообщение #10


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

MiIIer, попробуй версию сменить в исходнике на 3.2 к примеру и перезапустить сервер после замены плагина


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 27.1.2017, 17:36
Сообщение #11


Иконка группы

Стаж: 12 лет

Сообщений: 2543
Благодарностей: 1676
Полезность: 819

Меценат Меценат

А смысл кикать? Если есть в регейме квар на возрождение в начале раунда после N времени
Если не пользуетесь регеймом, можно так же через плагин заблочить возрождение.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fullserver
сообщение 27.1.2017, 17:57
Сообщение #12


Иконка группы

Стаж: 11 лет

Сообщений: 5122
Благодарностей: 2100
Полезность: 1394

Лучший вариант
Block Reconnect Respawn
либо ReHLDS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pist0nchik
сообщение 27.1.2017, 17:59
Сообщение #13


Стаж: 12 лет

Сообщений: 403
Благодарностей: 437
Полезность: 545

Цитата(adva @ 27.1.2017, 21:36) *
А смысл кикать? Если есть в регейме квар на возрождение в начале раунда после N времени
Если не пользуетесь регеймом, можно так же через плагин заблочить возрождение.

Адидас сказал лучше использовать плагин, а не квар.
Поэтому советую остальным использовать именно плагин, блокирующий возрождение.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: