Заявка за "TOP PLAYER GUARD NICK" !!!

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Заявка за "TOP PLAYER GUARD NICK" !!!

Мнение от iv69 » 17 Юни 2018, 13:33

Имам една интересна идея за нов плъгин (приемам предложения за подобрения или леки изменения към него, от вас..., или пък линк към готов такъв плъгин, но аз лично се рових и не намерих нищо от този род в нета...):

При влизането на даден играч в топ15 (или топ40, или топ100... да се настройва с cvar от кое място нагоре), плъгина да "защитава" ника на играча, чрез номера на стеам-му, така , че играч само с този STEAM_ID, да може да ползва този ник, и да изписва например, ето такъв "цветен"текст в чата:

[NickGuard] In the list has been added: BOOM DOOM STEAM_0:0:2056553060

Идеята ми дойде след ползването на друг плъгин: AdminNickGuard.amxx (качвам и sma-кода, на базата на който, някой може да осъществи идеята), а различното е в това , че искам ако може, сървъра сам да си добавя играча в списъка със защитени имена, иначе там всичко останало го има, дори и изписва текста в чата, когато някой админ добави играч в списъка със защитени играчи... Има само една малка подробност в този плъгин която не ми харесва - не знам как и защо, но ако някой е админ и е в този списък, то той може да играе и с имената на останалите вече защитени играчи !?

p.s. Ако написване на подобен плъгин е страшно дълго трудно и сложно, приемам "оферти" за него на лични, но ако някой направи плъгина, аз предполагам, че този плъгин ще стане популярен и ще се ползва в много сървъри !!!

Това е кода на AdminNickGuard.amxx :

Код за потвърждение: Избери целия код

/*
	My Plugins: http://skape69ta.clan.su/load/11
	My Profile: http://amxmodx.su/forum/memberlist.php?mode=viewprofile&u=455
	My Skype: SKAJIbnEJIb619
*/

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <cstrike>
#include <ColorChat>

new DIRINI[64], trash
new Array:g_array

new pcvar_Nick

public plugin_init() {
	register_plugin("Admin Nick Guard", "1.0", "SKAJIbnEJIb")

	register_forward(FM_ClientUserInfoChanged, "fwClientUserInfoChanged")

	register_concmd("ang_add", "AddNick", ADMIN_RCON, "- <SteamID or IP or ^"S^"(your STEAM) or ^"IP^"(your IP)> <Nick>")

	pcvar_Nick = register_cvar("ang_nick", "player")

	new configsDir[64]
	get_configsdir(configsDir, 63)
	format(DIRINI, 63, "%s/AdminNickGuard.ini", configsDir)
	g_array = ArrayCreate(64, 1)

	update_nicks()
}

public client_connect(id)
{
	new Name[32]
	get_user_name(id, Name, 31)
	if(CheckNick(id, Name))
	{
		new Nick_def[32]
		get_pcvar_string(pcvar_Nick, Nick_def, 31)
		client_cmd(id, "setinfo name ^"^";name %s", Nick_def)
	}
}

public fwClientUserInfoChanged(id, buffer) {
	if (!is_user_connected(id))
		return FMRES_IGNORED

	static Name[32], val[32]
	get_user_name(id, Name, sizeof Name - 1)
	engfunc(EngFunc_InfoKeyValue, buffer, "name", val, sizeof val - 1)
	if (equal(val, Name))
		return FMRES_IGNORED

	if(CheckNick(id, val))
	{
		new Nick_def[32]
		get_pcvar_string(pcvar_Nick, Nick_def, 31)
		engfunc(EngFunc_SetClientKeyValue, id, buffer, "name", Nick_def)
		client_print(id, print_console, "It is forbidden to use this nickname!")
		client_cmd(id, "setinfo name ^"^";name %s", Nick_def)
		return FMRES_SUPERCEDE
	}
	return FMRES_IGNORED
}

public CheckNick(id, Name[])
{
	new STEAM[32], IP[32]
	get_user_authid(id, STEAM, 31)
	get_user_ip(id, IP, 31, 1)

	for(new i=0; i < ArraySize(g_array); i++)
	{
		new str_ini[64], auth_ini[32], nick_ini[32]
		ArrayGetString(g_array, i, str_ini, 63)
		strbreak(str_ini, auth_ini, 31, nick_ini, 31)
		if ( equali(Name, nick_ini) && !(equali(auth_ini, STEAM) || equali(auth_ini, IP)) )
		{
			log_to_file("AdminNickGuard.log","Nick <%s>   | IP <%s>   | ID <%s>", Name, IP, STEAM)
			return 1
		}
	}
	return 0
}

public AddNick(id, level, cid) {
	if(!cmd_access(id, level, cid, 3))
		return PLUGIN_HANDLED

	new arg_auth[32], arg_nick[32], Auth[32]
	read_argv(1, arg_auth, 31)
	read_argv(2, arg_nick, 31)
	trim(arg_auth)
	trim(arg_nick)

	if(equal(arg_auth ,"STEAM_", 6))
		format(Auth, 31, "%s", arg_auth)
	else if(equali(arg_auth, "S"))
		get_user_authid(id, Auth, 31)
	else if(equali(arg_auth, "IP"))
		get_user_ip(id, Auth, 31, 1)
	else
		format(Auth, 31, "%s", arg_auth)

	new in_ini[64]
	format(in_ini, 63, "%s %s", Auth, arg_nick)

	for(new i=0; i <= file_size(DIRINI, 1); i++)
	{
		new find_ini[64]
		read_file(DIRINI, i, find_ini, 63, trash)
		if (equali(find_ini, in_ini)) 
		{
			ColorChat(id, RED, "^01[^04AdminNickGuard^01]^03 This binding already exists!")
			client_print(id, print_console, "[AdminNickGuard] This binding already exists!")
			return PLUGIN_HANDLED
		}
	}

	write_file(DIRINI, in_ini, -1)
	ColorChat(id, BLUE, "^01[^04AdminNickGuard^01]^01 In the list has been added:^03 %s", in_ini)
	client_print(id, print_console, "[AdminNickGuard] In the list has been added: %s", in_ini)

	update_nicks()

	return PLUGIN_HANDLED
}

public update_nicks() 
{
	if(!file_exists(DIRINI))
		write_file(DIRINI, ";STEAM_0:0:12345678 Nick", 0)

	ArrayClear(g_array)
	for(new i=0; i <= file_size(DIRINI, 1)-2; i++)
	{
		new Nick_ini[64]
		read_file(DIRINI, i, Nick_ini, 63, trash)
		if(Nick_ini[0] != ';')
			ArrayPushString(g_array, Nick_ini)
	}
}

Аватар
Goddness
Извън линия
Потребител
Потребител
Мнения: 1813
Регистриран на: 20 Май 2017, 11:47
Местоположение: Някъде по света
Се отблагодари: 143 пъти
Получена благодарност: 187 пъти
Обратна връзка:

Заявка за "TOP PLAYER GUARD NICK" !!!

Мнение от Goddness » 17 Юни 2018, 15:12

iv69 написа: 17 Юни 2018, 13:33 ето такъв "цветен"текст в чата:
[NickGuard] In the list has been added: BOOM DOOM STEAM_0:0:2056553060
Какъв цвят, че не разбрах?

Аватар
JustyleR
Извън линия
Модератор
Модератор
Мнения: 560
Регистриран на: 24 Фев 2017, 18:59
Се отблагодари: 33 пъти
Получена благодарност: 132 пъти
Обратна връзка:

Заявка за "TOP PLAYER GUARD NICK" !!!

Мнение от JustyleR » 17 Юни 2018, 17:05

nameless. написа: 17 Юни 2018, 15:12
iv69 написа: 17 Юни 2018, 13:33 ето такъв "цветен"текст в чата:
[NickGuard] In the list has been added: BOOM DOOM STEAM_0:0:2056553060
Какъв цвят, че не разбрах?
Иска да каже, че съобщението просто трява да бъде цветно. Няма значение какъв цвят.
Discord сървър, чрез който можете да се свържете с мен.


Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Заявка за "TOP PLAYER GUARD NICK" !!!

Мнение от iv69 » 17 Юни 2018, 17:37

Ммм, благодаря на модератор JustyleR ff, точно и ясно обяснено !

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Заявка за "TOP PLAYER GUARD NICK" !!!

Мнение от iv69 » 08 Юли 2018, 11:27

Мда, явно няма желаещи или е трудно, а и аз вече ползвам плугин "ranksystem by..."
:lock: :tnx:

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Google [Bot] и 21 госта