|
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] #1 45.144.155.113:27015 |
de_dust2 Играчи: 30/32 |
|
Cs-PlovdiV.com - Aim Attack | 93.123.16.4:27022 | aim_aztec | Играчи: 0/16 |
Преработка на banretryplayer.amxx.
-
atmax
Извън линия - Потребител
- Мнения: 492
- Регистриран на: 22 Мар 2018, 15:06
- Се отблагодари: 37 пъти
- Получена благодарност: 43 пъти
Преработка на banretryplayer.amxx.
amx_retry_time си е по подразбиране в секунди него не съм "бутал", защото няма смисъл направил съм ти го да банва вместо да киква, както споменах в своето "ненужно мнение" а това дали банва в минути или секунди не си спомням някога amx_ban да е работило в секунди.. Съответно е в минути банва за 5 минути и му изкарва съобщение гласящо: "Please wait next time!"
Rest in peace my friend I always will remember you!
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1296 пъти
- Обратна връзка:
Преработка на banretryplayer.amxx.
Плъгинът нито е направен както трябва, нито имат някаква логика 50% от нещата в него, нито ще работи. Не знам как човекът е решил, че може да запазва нещо по userid, което е различно при всяко влизане.
Имай предвид, че плъгинът ще банне играча при всякакво излизане и влизане в дадения срок. Това означава, че ако бъде кикнат и влезне след Х секунди, ще бъде баннат. Може би трябва да измислиш по-добра "логика" за кога да бъде баннат.
Код за потвърждение: Избери целия код
#include <amxmodx>
#if !defined client_disconnected
#define client_disconnected client_disconnect
#endif
#if !defined MAX_PLAYERS
const MAX_PLAYERS = 32
#endif
#if !defined MAX_IP_LENGTH
const MAX_IP_LENGTH = 16
#endif
const MAX_REASON_LENGTH = 32
new Trie:g_tConnections
new g_szIP[MAX_PLAYERS + 1][MAX_IP_LENGTH]
new g_pRetryTime, g_pBanTime, g_pBanReason
public plugin_init()
{
register_plugin("Ban on Reconnect", "1.0", "OciXCrom")
g_tConnections = TrieCreate()
// Maximum retry time in seconds - the player will get banned if he leaves and enters within this time period
g_pRetryTime = register_cvar("noretry_retry_time", "15")
// Ban duration in minutes
g_pBanTime = register_cvar("noretry_ban_time", "10")
// Ban reason
g_pBanReason = register_cvar("noretry_ban_reason", "Retrying is not allowed")
}
public plugin_end()
{
TrieDestroy(g_tConnections)
}
public client_connect(id)
{
get_user_ip(id, g_szIP[id], charsmax(g_szIP[]), 1)
new iDisconnectTime
TrieGetCell(g_tConnections, g_szIP[id], iDisconnectTime)
if(iDisconnectTime && get_gametime() - iDisconnectTime <= get_pcvar_num(g_pRetryTime))
{
new szReason[MAX_REASON_LENGTH]
get_pcvar_string(g_pBanReason, szReason, charsmax(szReason))
server_cmd("amx_ban %i ^"%s^" ^"%s^"", get_pcvar_num(g_pBanTime), g_szIP[id], szReason)
}
}
public client_disconnected(id)
{
TrieSetCell(g_tConnections, g_szIP[id], floatround(get_gametime()))
}
-
iv69
Извън линия - Потребител
- Мнения: 744
- Регистриран на: 17 Мар 2018, 15:34
- Се отблагодари: 214 пъти
- Получена благодарност: 39 пъти
Преработка на banretryplayer.amxx.
Благодаря! такова нещо исках: Да банва играч който превиши позволения брой retry или reconnect. И да не го пуска в сървъра докато не си изтърпи наказанието: Ако продължава да дава retry или reconnect - и след като е баннат, да не му се намалява времето, нали това имаш впредвид?! Мисля, че всеки от нас, наистина сам трябва да си прецени за колко време да е наказанието (бана): 30 сек минута или 5...Искам само да помоля, може ли да има и съобщение при всяко кикване след бана - което да излиза в конзолата на баннатия играч(на английски ако може)- за причината за получения бан: че е превишил лимита от retry или reconnect.OciXCrom написа: ↑21 Дек 2019, 21:08 Плъгинът нито е направен както трябва, нито имат някаква логика 50% от нещата в него, нито ще работи. Не знам как човекът е решил, че може да запазва нещо по userid, което е различно при всяко влизане.
Имай предвид, че плъгинът ще банне играча при всякакво излизане и влизане в дадения срок. Това означава, че ако бъде кикнат и влезне след Х секунди, ще бъде баннат. Може би трябва да измислиш по-добра "логика" за кога да бъде баннат.Код за потвърждение: Избери целия код
#include <amxmodx> #if !defined client_disconnected #define client_disconnected client_disconnect #endif #if !defined MAX_PLAYERS const MAX_PLAYERS = 32 #endif #if !defined MAX_IP_LENGTH const MAX_IP_LENGTH = 16 #endif const MAX_REASON_LENGTH = 32 new Trie:g_tConnections new g_szIP[MAX_PLAYERS + 1][MAX_IP_LENGTH] new g_pRetryTime, g_pBanTime, g_pBanReason public plugin_init() { register_plugin("Ban on Reconnect", "1.0", "OciXCrom") g_tConnections = TrieCreate() // Maximum retry time in seconds - the player will get banned if he leaves and enters within this time period g_pRetryTime = register_cvar("noretry_retry_time", "15") // Ban duration in minutes g_pBanTime = register_cvar("noretry_ban_time", "10") // Ban reason g_pBanReason = register_cvar("noretry_ban_reason", "Retrying is not allowed") } public plugin_end() { TrieDestroy(g_tConnections) } public client_connect(id) { get_user_ip(id, g_szIP[id], charsmax(g_szIP[]), 1) new iDisconnectTime TrieGetCell(g_tConnections, g_szIP[id], iDisconnectTime) if(iDisconnectTime && get_gametime() - iDisconnectTime <= get_pcvar_num(g_pRetryTime)) { new szReason[MAX_REASON_LENGTH] get_pcvar_string(g_pBanReason, szReason, charsmax(szReason)) server_cmd("amx_ban %i ^"%s^" ^"%s^"", get_pcvar_num(g_pBanTime), g_szIP[id], szReason) } } public client_disconnected(id) { TrieSetCell(g_tConnections, g_szIP[id], floatround(get_gametime())) }
Веднага ще тествам.
Добавено преди 37 минути 22 секунди:
Плъгина се компилира и показва, че е включен при командата amxx list. Но, само толкова? Влизах и излизах 5-6 пъти, никакъв ефект? Това едното. А другото: искам да попитам за кварите? Виждам че си сложил квар за някаква допустима честота или "фреквенция" за даване на retry или reconnect и квар за времто за бан ако е нарушена тази честота. Тоест - ако се дава retry в сървъра по-начесто - ще има бан!? Така ли да го разбирам? Понеже не видях никъде квара който исках да има и за допустим брой направени retry , след който да бъде банван играча? Поне такава ми бе първоначалната идея, цитирам: "...който при използване на няколко пъти(дефинирано с квар) командите retry или reconnect от определен играч за дадено време( дефинирано с квар) - да получава временен бан(дефинирано с квар)..."
-
atmax
Извън линия - Потребител
- Мнения: 492
- Регистриран на: 22 Мар 2018, 15:06
- Се отблагодари: 37 пъти
- Получена благодарност: 43 пъти
Преработка на banretryplayer.amxx.
Код за потвърждение: Избери целия код
#include <amxmodx>
new g_Ip[33];
new bool:Hackz;
new gBanTime;
public plugin_init( )
{
register_plugin("Terrorist + CT Disconnecter Ban", "0.2", "Craxor");
gBanTime = register_cvar( "td_bantime", "5" );
Hackz = true;
}
public client_putinserver( id )
{
if( is_user_connected( id ) )
{
new szUserIp[33];
get_user_ip( id, szUserIp, charsmax( szUserIp ), 1 );
copy( g_Ip[id], charsmax( g_Ip ), szUserIp );
}
}
public plugin_end( )
Hackz = false;
public client_disconnect( id )
{
if( get_user_team( id ) == 1 && Hackz == true )
server_cmd("amx_addban %s %i Tero-Retry-Reason ", g_Ip[id], get_pcvar_num( gBanTime ) );
else
server_cmd("amx_addban %s %i Ct-Retry-Reason ", g_Ip[id], get_pcvar_num ( gBanTime ) );
}
Иначе това ти излиза в конзолата на тебе:
Код за потвърждение: Избери целия код
Server<0><><>" ban "***.**.1.***" (minutes "5") (reason "Ct-Retry-Reason")
Writing listip.cfg.
Server<0><><>" ban "***.**.1.***" (minutes "5") (reason "Tero-Retry-Reason")
Writing listip.cfg.
Rest in peace my friend I always will remember you!
-
iv69
Извън линия - Потребител
- Мнения: 744
- Регистриран на: 17 Мар 2018, 15:34
- Се отблагодари: 214 пъти
- Получена благодарност: 39 пъти
Преработка на banretryplayer.amxx.
Ще тествам , благодаря!atmax написа: ↑22 Дек 2019, 08:17Този банва за 5мин ако използваш retry, обаче няма много други екстри може да използваш този, докато OciXcrom или някой друг намери решение на проблема ти.Код за потвърждение: Избери целия код
#include <amxmodx> new g_Ip[33]; new bool:Hackz; new gBanTime; public plugin_init( ) { register_plugin("Terrorist + CT Disconnecter Ban", "0.2", "Craxor"); gBanTime = register_cvar( "td_bantime", "5" ); Hackz = true; } public client_putinserver( id ) { if( is_user_connected( id ) ) { new szUserIp[33]; get_user_ip( id, szUserIp, charsmax( szUserIp ), 1 ); copy( g_Ip[id], charsmax( g_Ip ), szUserIp ); } } public plugin_end( ) Hackz = false; public client_disconnect( id ) { if( get_user_team( id ) == 1 && Hackz == true ) server_cmd("amx_addban %s %i Tero-Retry-Reason ", g_Ip[id], get_pcvar_num( gBanTime ) ); else server_cmd("amx_addban %s %i Ct-Retry-Reason ", g_Ip[id], get_pcvar_num ( gBanTime ) ); }
Иначе това ти излиза в конзолата на тебе:Код за потвърждение: Избери целия код
Server<0><><>" ban "***.**.1.***" (minutes "5") (reason "Ct-Retry-Reason") Writing listip.cfg. Server<0><><>" ban "***.**.1.***" (minutes "5") (reason "Tero-Retry-Reason") Writing listip.cfg.
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1296 пъти
- Обратна връзка:
Преработка на banretryplayer.amxx.
@iv69 - всъщност не добавих такава опция да брои колко пъти е retry-вал. Виж сега:
Добавих и съобщения в чата. Ако виждаш съобщението за бана, а играчът не бива банван, значи командата за бан е грешна.
@atmax - и този плъгин няма никаква логика. Даже е по-зле и от предишния, като запазва IP адресът на само един играч в глобална променлива.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cromchat>
#if !defined client_disconnected
#define client_disconnected client_disconnect
#endif
#if !defined MAX_PLAYERS
const MAX_PLAYERS = 32
#endif
#if !defined MAX_NAME_LENGTH
const MAX_NAME_LENGTH = 32
#endif
#if !defined MAX_IP_LENGTH
const MAX_IP_LENGTH = 16
#endif
const MAX_REASON_LENGTH = 32
new Trie:g_tLastTime, Trie:g_tRetryNum
new g_szIP[MAX_PLAYERS + 1][MAX_IP_LENGTH]
new g_pRetryTime, g_pMaxRetries, g_pBanTime, g_pBanReason
public plugin_init()
{
register_plugin("Ban on Reconnect", "1.1", "OciXCrom")
CC_SetPrefix("&x04[NoRetry]")
g_tLastTime = TrieCreate()
g_tRetryNum = TrieCreate()
// Maximum retry time in seconds - the player will get +1 to his retry count if he leaves and enters within this time period
g_pRetryTime = register_cvar("noretry_retry_time", "15")
// Maximum allowed number of retries - when this limit is reached, the player will get banned
g_pMaxRetries = register_cvar("noretry_max_retries", "5")
// Ban duration in minutes
g_pBanTime = register_cvar("noretry_ban_time", "10")
// Ban reason
g_pBanReason = register_cvar("noretry_ban_reason", "Retrying is not allowed")
}
public plugin_end()
{
TrieDestroy(g_tLastTime)
TrieDestroy(g_tRetryNum)
}
public client_connect(id)
{
get_user_ip(id, g_szIP[id], charsmax(g_szIP[]), 1)
new iDisconnectTime
TrieGetCell(g_tLastTime, g_szIP[id], iDisconnectTime)
if(iDisconnectTime && get_gametime() - iDisconnectTime <= get_pcvar_num(g_pRetryTime))
{
new iRetries, iMaxRetries = get_pcvar_num(g_pMaxRetries)
TrieGetCell(g_tRetryNum, g_szIP[id], iRetries)
if(++iRetries == iMaxRetries)
{
new szReason[MAX_REASON_LENGTH], szName[MAX_NAME_LENGTH]
get_pcvar_string(g_pBanReason, szReason, charsmax(szReason))
get_user_name(id, szName, charsmax(szName))
CC_SendMessage(id, "&x03%s &x01got banned for reconnecting &x04 times&x01.", szName, iMaxRetries)
server_cmd("amx_banip %i ^"%s^" ^"%s^"", get_pcvar_num(g_pBanTime), g_szIP[id], szReason)
}
else
{
TrieSetCell(g_tRetryNum, g_szIP[id], iRetries)
CC_SendMessage(id, "&x07Reconnect notice: &x01you have retried &x04%i times&x01. On &x04%i &x01you will get &x07banned&x01.", iRetries, iMaxRetries)
}
}
else
{
TrieSetCell(g_tRetryNum, g_szIP[id], 0)
}
}
public client_disconnected(id)
{
TrieSetCell(g_tLastTime, g_szIP[id], floatround(get_gametime()))
}
@atmax - и този плъгин няма никаква логика. Даже е по-зле и от предишния, като запазва IP адресът на само един играч в глобална променлива.
-
iv69
Извън линия - Потребител
- Мнения: 744
- Регистриран на: 17 Мар 2018, 15:34
- Се отблагодари: 214 пъти
- Получена благодарност: 39 пъти
Преработка на banretryplayer.amxx.
Да, наистина май командата за бан е грешна и проблема в този случай е мой а не в плъгина ! Съжалявам и се извинявам, и би ли ми редактирал реда за бана:OciXCrom написа: ↑22 Дек 2019, 15:12 @iv69 - всъщност не добавих такава опция да брои колко пъти е retry-вал. Виж сега:
Добавих и съобщения в чата. Ако виждаш съобщението за бана, а играчът не бива банван, значи командата за бан е грешна.Код за потвърждение: Избери целия код
#include <amxmodx> #include <cromchat> #if !defined client_disconnected #define client_disconnected client_disconnect #endif #if !defined MAX_PLAYERS const MAX_PLAYERS = 32 #endif #if !defined MAX_NAME_LENGTH const MAX_NAME_LENGTH = 32 #endif #if !defined MAX_IP_LENGTH const MAX_IP_LENGTH = 16 #endif const MAX_REASON_LENGTH = 32 new Trie:g_tLastTime, Trie:g_tRetryNum new g_szIP[MAX_PLAYERS + 1][MAX_IP_LENGTH] new g_pRetryTime, g_pMaxRetries, g_pBanTime, g_pBanReason public plugin_init() { register_plugin("Ban on Reconnect", "1.1", "OciXCrom") CC_SetPrefix("&x04[NoRetry]") g_tLastTime = TrieCreate() g_tRetryNum = TrieCreate() // Maximum retry time in seconds - the player will get +1 to his retry count if he leaves and enters within this time period g_pRetryTime = register_cvar("noretry_retry_time", "15") // Maximum allowed number of retries - when this limit is reached, the player will get banned g_pMaxRetries = register_cvar("noretry_max_retries", "5") // Ban duration in minutes g_pBanTime = register_cvar("noretry_ban_time", "10") // Ban reason g_pBanReason = register_cvar("noretry_ban_reason", "Retrying is not allowed") } public plugin_end() { TrieDestroy(g_tLastTime) TrieDestroy(g_tRetryNum) } public client_connect(id) { get_user_ip(id, g_szIP[id], charsmax(g_szIP[]), 1) new iDisconnectTime TrieGetCell(g_tLastTime, g_szIP[id], iDisconnectTime) if(iDisconnectTime && get_gametime() - iDisconnectTime <= get_pcvar_num(g_pRetryTime)) { new iRetries, iMaxRetries = get_pcvar_num(g_pMaxRetries) TrieGetCell(g_tRetryNum, g_szIP[id], iRetries) if(++iRetries == iMaxRetries) { new szReason[MAX_REASON_LENGTH], szName[MAX_NAME_LENGTH] get_pcvar_string(g_pBanReason, szReason, charsmax(szReason)) get_user_name(id, szName, charsmax(szName)) CC_SendMessage(id, "&x03%s &x01got banned for reconnecting &x04 times&x01.", szName, iMaxRetries) server_cmd("amx_banip %i ^"%s^" ^"%s^"", get_pcvar_num(g_pBanTime), g_szIP[id], szReason) } else { TrieSetCell(g_tRetryNum, g_szIP[id], iRetries) CC_SendMessage(id, "&x07Reconnect notice: &x01you have retried &x04%i times&x01. On &x04%i &x01you will get &x07banned&x01.", iRetries, iMaxRetries) } } else { TrieSetCell(g_tRetryNum, g_szIP[id], 0) } } public client_disconnected(id) { TrieSetCell(g_tLastTime, g_szIP[id], floatround(get_gametime())) }
@atmax - и този плъгин няма никаква логика. Даже е по-зле и от предишния, като запазва IP адресът на само един играч в глобална променлива.
server_cmd("amx_banip %i ^"%s^" ^"%s^"", get_pcvar_num(g_pBanTime), g_szIP[id], szReason)
така, че да "задейства" някак си командата с този ред на изпълнение:
amx_ban <nick> <time> <reason>
Това е "смарт-бан" от mdbBansv4.8 на Desikac, и ми е резервната, доста надеждна и работеща бан-система.
Мисля, че с тази команда ще банва със сигурност(ако може да се "активира в този ред обаче" ?), тя си банва не само по ник, но помни и ИП и стеам_ид и му прави "бисквитки"... за мен е доста надежден и последен вариант за бан ?!
p.s. Иначе плъгина си се компилира няма грешки, показа , в конзолата че е включен и работи нормално, но бана липсва и е най-вероятно от AMXBans 6.13... то аз този бан да ме пита някой и сега не знам как го "подкарах"
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1296 пъти
- Обратна връзка:
Преработка на banretryplayer.amxx.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cromchat>
#if !defined client_disconnected
#define client_disconnected client_disconnect
#endif
#if !defined MAX_PLAYERS
const MAX_PLAYERS = 32
#endif
#if !defined MAX_NAME_LENGTH
const MAX_NAME_LENGTH = 32
#endif
#if !defined MAX_IP_LENGTH
const MAX_IP_LENGTH = 16
#endif
const MAX_REASON_LENGTH = 32
const Float:JOIN_MESSAGE_DELAY = 8.0
new Trie:g_tLastTime, Trie:g_tRetryNum
new g_szIP[MAX_PLAYERS + 1][MAX_IP_LENGTH], g_iRetries[MAX_PLAYERS + 1]
new g_pRetryTime, g_pMaxRetries, g_pBanTime, g_pBanReason
public plugin_init()
{
register_plugin("Ban on Reconnect", "1.2", "OciXCrom")
CC_SetPrefix("&x04[NoRetry]")
g_tLastTime = TrieCreate()
g_tRetryNum = TrieCreate()
// Maximum retry time in seconds - the player will get +1 to his retry count if he leaves and enters within this time period
g_pRetryTime = register_cvar("noretry_retry_time", "15")
// Maximum allowed number of retries - when this limit is reached, the player will get banned
g_pMaxRetries = register_cvar("noretry_max_retries", "5")
// Ban duration in minutes
g_pBanTime = register_cvar("noretry_ban_time", "10")
// Ban reason
g_pBanReason = register_cvar("noretry_ban_reason", "Retrying is not allowed")
}
public plugin_end()
{
TrieDestroy(g_tLastTime)
TrieDestroy(g_tRetryNum)
}
public client_connect(id)
{
g_iRetries[id] = 0
get_user_ip(id, g_szIP[id], charsmax(g_szIP[]), 1)
new iDisconnectTime
TrieGetCell(g_tLastTime, g_szIP[id], iDisconnectTime)
if(iDisconnectTime && get_gametime() - iDisconnectTime <= get_pcvar_num(g_pRetryTime))
{
new iMaxRetries = get_pcvar_num(g_pMaxRetries)
TrieGetCell(g_tRetryNum, g_szIP[id], g_iRetries[id])
if(++g_iRetries[id] == iMaxRetries)
{
new szReason[MAX_REASON_LENGTH], szName[MAX_NAME_LENGTH]
get_pcvar_string(g_pBanReason, szReason, charsmax(szReason))
get_user_name(id, szName, charsmax(szName))
CC_SendMessage(0, "&x03%s &x01got banned for reconnecting &x04%i times&x01.", szName, iMaxRetries)
server_cmd("amx_ban #%i %i ^"%s^"", get_user_userid(id), get_pcvar_num(g_pBanTime), szReason)
}
else
{
TrieSetCell(g_tRetryNum, g_szIP[id], g_iRetries[id])
set_task(JOIN_MESSAGE_DELAY, "display_reconnect_notice", id)
}
}
else
{
TrieSetCell(g_tRetryNum, g_szIP[id], 0)
}
}
public display_reconnect_notice(id)
{
if(is_user_connected(id))
{
CC_SendMessage(id, "&x07Reconnect notice: &x01you have retried &x04%i times&x01. On &x04%i &x01you will get &x07banned&x01.", g_iRetries[id], get_pcvar_num(g_pMaxRetries))
}
}
public client_disconnected(id)
{
TrieSetCell(g_tLastTime, g_szIP[id], floatround(get_gametime()))
}
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 2 Отговори
- 2285 Преглеждания
-
Последно мнение от kvoetvae
-
- 1 Отговори
- 4206 Преглеждания
-
Последно мнение от summertime vibes
-
- 8 Отговори
- 2801 Преглеждания
-
Последно мнение от bustA
-
- 0 Отговори
- 1625 Преглеждания
-
Последно мнение от Just
-
- 2 Отговори
- 1278 Преглеждания
-
Последно мнение от YankoNL
-
- 13 Отговори
- 4859 Преглеждания
-
Последно мнение от JackEyedJones
-
- 0 Отговори
- 1308 Преглеждания
-
Последно мнение от SmirnoffBG
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 6 госта