Здравейте,
Не знам , правилно ли съм го написал или не в заглавието , но ми трябва плъгин който да не допуска в сървъра, играчи с "точно" определени имена. Сложих "точно" - в кавички за да поясня : Ако може към плъгина да има и текстови файл в който да са написани точно играчи с кои имена не могат да се коненктват, като при опитите им за влизане, , да им изписва в конзолата ясно и точно на английски , че трябва да сменят името си. И едно уточнение: Ако името на играча е по-голямо и съдържа забранените думи от текстовия файл да бъде допускан. Не знам дали е възможно и как ще се направи точно така, но ако може просто да не бъдат допускани само ония, които имат само 100% еднаквост със "забранените" никове. Дори и един символ, цифра или буква да е променена или добавена или съкратена - играча да може да играе. Тоест , нещо като забранен или баннат списък с точни имена, които да са "persona non grata".
Това ми е необходимо като допълнение към плъгина за резервация на ник. Дори и с диманично IP, ако хакер играе с един и същи ник и е напред в топа, да му "банна" ника... , а също и да не допускам анонимници с никове "unnamed" , "player" , "unknown"... да развалят в топ-а.
Благодаря !
Плъгин "Bad Names"
-
TheRedShoko
Извън линия - Модератор
- Мнения: 1016
- Регистриран на: 06 Окт 2016, 07:42
- Местоположение: Бургас
- Се отблагодари: 5 пъти
- Получена благодарност: 84 пъти
-
iv69
Извън линия - Потребител
- Мнения: 744
- Регистриран на: 17 Мар 2018, 15:34
- Се отблагодари: 214 пъти
- Получена благодарност: 39 пъти
Плъгин "Bad Names"
Благодаря, кода работи и прави всичко което искам, но има една малка подробност: Ако не е нахално , може ли да се "преработи" кода така , че в конзолата на кикнатият играч да не изписва само ето това:
Server # 1
Kicked :""
а и "резон"(т.е. -причината) поради който е кикнат играча с "лош ник" ? Тоест нещо подобно:
Server # 1
Kicked :"reason: You used "bad nick" , please change nick ..."
Ето кода за "дообрабработка", ако може, разбира се :
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
new const g_szVersion[] = "1.0 (Edited)";
new Array:g_szNames, Array:g_szReasons;
new g_iTotalFilterNames;
public plugin_init()
{
register_plugin("Nick Filter", g_szVersion, "TheRedShoko @ AMXX-BG.info");
register_cvar("nick_filter", g_szVersion, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED);
register_concmd("amx_reload_nickfilter", "AdminReloadNicknames", ADMIN_RCON);
g_szNames = ArrayCreate(32);
g_szReasons = ArrayCreate(64);
LoadNicksFile();
}
public plugin_end()
{
ArrayDestroy(g_szNames);
ArrayDestroy(g_szReasons);
}
public client_putinserver(id)
{
static szName[32], szArrayName[32];
get_user_name(id, szName, charsmax(szName));
for (new i = 0; i < g_iTotalFilterNames; i++)
{
ArrayGetString(g_szNames, i, szArrayName, charsmax(szArrayName));
if (containi(szName, szArrayName) != -1)
{
static szReason[64];
ArrayGetString(g_szReasons, i, szReason, charsmax(szReason));
server_cmd("kick #%d ^"%s^"", get_user_userid(id), szReason);
}
}
}
public AdminReloadNicknames(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
{
return PLUGIN_HANDLED;
}
console_print(id, "Reading from file...");
console_print(id, LoadNicksFile() ? "Succesfully loaded the file!" : "Failed to read from the file!");
return PLUGIN_HANDLED;
}
LoadNicksFile()
{
ArrayClear(g_szNames);
ArrayClear(g_szReasons);
new szFile[64];
get_configsdir(szFile, charsmax(szFile));
add(szFile, charsmax(szFile), "/nick_filter.ini");
if (file_exists(szFile))
{
new iLine, szLine[128], iBuffer;
new szName[32], szReason[64];
while ( (iLine = read_file(szFile, iLine, szLine, charsmax(szLine), iBuffer)) > 0)
{
if (szLine[0] == EOS || szLine[0] == ';' || szLine[0] == '/' && szLine[1] == '/') continue;
parse(szLine, szName, charsmax(szName), szReason, charsmax(szReason));
ArrayPushString(g_szNames, szName);
ArrayPushString(g_szReasons, szReason);
}
g_iTotalFilterNames = ArraySize(g_szNames);
return true;
}
else
{
write_file(szFile, "; Nick filter by TheRedShoko^n; Don't forget to visit AMXX-BG.info");
write_file(szFile, "; Usage: ^"Name^" ^"Reason^" ^n; Example: ^"TheRedShoko^" ^"Test^"");
}
return false;
}
Благодаря !
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Плъгин "Bad Names"
Не си видял това:
Демек причината се въвежда след името на играча.; Nick filter by TheRedShoko
; Don't forget to visit AMXX-BG.info
; Usage: "Name" "Reason"
; Example: "TheRedShoko" "Test"
-
iv69
Извън линия - Потребител
- Мнения: 744
- Регистриран на: 17 Мар 2018, 15:34
- Се отблагодари: 214 пъти
- Получена благодарност: 39 пъти
Плъгин "Bad Names"
ммм, май не..... , пак ти благодаря за кой ли път... Заключвайте !!!
перфектен плъгин !
перфектен плъгин !
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 3 Отговори
- 1916 Преглеждания
-
Последно мнение от sanimare
-
- 1 Отговори
- 1326 Преглеждания
-
Последно мнение от tom1k
-
- 8 Отговори
- 3245 Преглеждания
-
Последно мнение от illusion
-
- 0 Отговори
- 1323 Преглеждания
-
Последно мнение от 4alm
-
- 9 Отговори
- 4162 Преглеждания
-
Последно мнение от mBFF-TheFucKBG
-
- 4 Отговори
- 1917 Преглеждания
-
Последно мнение от OciXCrom
-
- 6 Отговори
- 1217 Преглеждания
-
Последно мнение от iv69
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 12 госта