NickNameControl

Сообщения
321
Реакции
73
Помог
11 раз(а)
Добрый вечер) Кто может изменить плагин, чтобы он менял ники на Player, (1)Player, (2)Player. А то он всем одинаковые ники ставит, и не очень понятно кто есть кто) Ставил BlockAllAdverts, но с ним не работает команды на ксдм, /guns:/menu
 

Вложения

Сообщения
321
Реакции
73
Помог
11 раз(а)
Minni, я не знаю как это делать:dntknw:
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Angerfist, исходник того плагина приложите.
 
Сообщения
321
Реакции
73
Помог
11 раз(а)
Minni,

Код:
#include <amxmodx>
#include <fakemeta>

#define BLOCK_NAME_SPAM // Включает блокировку частой смены ника.
#define TIME_WAIT 5.0 // Время между сменами ника [Не работает, если выключен BLOCK_NAME_SPAM]
#define DEFAULT_NAME "[AngerServer.Ru] User" // Имя, на которое менять. Меняет только визуально, при выходе сервера будет старый ник.
#define TRUE_KEY "angerserver.ru"
/*
TRUE_KEY - Разрешенный ключ в нике/чате. Если в DEFAULT_NAME указан сайт, то сюда укажите сайт, иначе словите Reliable channel overflow
Если в строке содержится это (и макроса TRUE_KEY), то строка игнорируется, то есть вернет как валидную - не реклама.
Например:
1. "Все на neugomon.ru" - будет пропущено в чат
2. "Все на c-s.net.ua" - будет заблокировано
*/
new const g_sBadKeys[][] =
{
"skype", "icq", "connect", "guns", ":27",
"http:", "https:", "www.", ".net", ".com", ".ua", ".ru", ".info", ".org", ".tv", ".su", ".biz", ".eu", ".uc", ".ee", ".name", ".ucoz",
".net", ".de", ".uk", ".lv", ".at", ".3dn", ".my", ".su", ".do", ".am", ".es", ".hu", ".ae", ".po", ".pl", ".lt", ".ro"
}

#define FM_ChangeName(%1,%2,%3) engfunc(EngFunc_SetClientKeyValue, %1, %3, "name", %2)
#define GetBit(%1,%2) (%1 & (1 << (%2 & 31)))
#define SetBit(%1,%2) %1 |= (1 << (%2 & 31))
#define ResetBit(%1,%2) %1 &= ~(1 << (%2 & 31))
new g_bConnected, g_bChecked;

public plugin_init()
{
register_plugin("Block All Adverts", "1.3", "neygomon");

register_forward(FM_ClientUserInfoChanged, "FmClientUserInfoChanged");
register_clcmd("say", "HookSay");
register_clcmd("say_team", "HookSay");
}

public client_putinserver(id)
SetBit(g_bConnected, id);

public client_disconnect(id)
{
ResetBit(g_bConnected, id);
ResetBit(g_bChecked, id);
}

public FmClientUserInfoChanged(pClient, Infobuffer)
{
if(!GetBit(g_bConnected, pClient))
return FMRES_IGNORED;

static sNewName[32], sOldName[32];
get_user_name(pClient, sOldName, charsmax(sOldName));
engfunc(EngFunc_InfoKeyValue, Infobuffer, "name", sNewName, charsmax(sNewName));
if(!GetBit(g_bChecked, pClient) || strcmp(sNewName, sOldName))
{
#if defined BLOCK_NAME_SPAM
if(GetBit(g_bChecked, pClient))
{
if(is_user_alive(pClient))
{
static Float:flCurrentTime, Float:flWaitName[33];
if((flCurrentTime = get_gametime()) < flWaitName[pClient])
{
flWaitName[pClient] = flCurrentTime + TIME_WAIT;
FM_ChangeName(pClient, sOldName, Infobuffer);
return FMRES_HANDLED; // Если не блочится мессага в чате, то замените FMRES_HANDLED на FMRES_SUPERCEDE
}
flWaitName[pClient] = flCurrentTime + TIME_WAIT;
}
}
#endif
if(!IsValidString(sNewName))
FM_ChangeName(pClient, DEFAULT_NAME, Infobuffer);
else
{
new bool:bChange;
for(new i; sNewName != '^0'; i++)
{
if(sNewName == '#' || sNewName == '+')
{
sNewName = ' ';
bChange = true;
}
}
if(bChange) FM_ChangeName(pClient, sNewName, Infobuffer);
}
SetBit(g_bChecked, pClient);
}
return FMRES_IGNORED;
}

public HookSay(id)
{
static sMsg[128]; read_args(sMsg, charsmax(sMsg));
if(!sMsg[0]) return PLUGIN_HANDLED;
static iLenLastMsg[33], iLenCurMsg;
if(iLenLastMsg[id] == (iLenCurMsg = strlen(sMsg))) return PLUGIN_HANDLED;
else iLenLastMsg[id] = iLenCurMsg;

return (IsValidString(sMsg)) ? PLUGIN_CONTINUE : PLUGIN_HANDLED;
}

bool:IsValidString(string[])
{
if(containi(string, TRUE_KEY) != -1) return true;
for(new i; i < sizeof g_sBadKeys; i++)
if(containi(string, g_sBadKeys) != -1) return false;
return true;
}
 

Вложения

Последнее редактирование модератором:
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Angerfist, не знаю, как у вас, но когда стоял у меня этот плагин, он заменял рекламные ники и маты в никах на тот ник, который я указывал. Если таких было несколько, то игроки разделялись на (1), (2) и т.д.
 
Сообщения
321
Реакции
73
Помог
11 раз(а)
Minni, Так проблема в другом)Ники этот плагин меняет как надо, но именно с этим плагином на ксдм не срабатывают команды для открытия меню выбора оружия, хотя ставил уже его и выше и ниже плагов которые работают с чатом. А с плагином от духовки команды /menu и /guns работают, но ники меняет без приставки с цифрой) Вот какая проблема
 
Сообщения
321
Реакции
73
Помог
11 раз(а)
fantom, Спасибо, сейчас попробую так прописать
5 Сен 2017
Вопрос решен)
Спасибо fantom,
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Minni, Так проблема в другом)Ники этот плагин меняет как надо, но именно с этим плагином на ксдм не срабатывают команды для открытия меню выбора оружия, хотя ставил уже его и выше и ниже плагов которые работают с чатом. А с плагином от духовки команды /menu и /guns работают, но ники меняет без приставки с цифрой) Вот какая проблема
Плагины для чата должны стоять в самом конце, а плагин, который от неугомона, должен стоять над плагином, который работает с чатом. Возможно, ваши команды содержат определенный порядок букв подряд, которые помечены в плагине, как рекламные. Например: "ru", "com" ну или подобные. Более подробные пример: если в плагине стоит блокировка ru и вы напишете слово rubanok, то оно будет заблокировано.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу