Защита на [NickName] по [SteamId]

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Защита на [NickName] по [SteamId]

Мнение от OciXCrom » 09 Юни 2020, 21:30

JackEyedJones написа: 09 Юни 2020, 21:24Въобще защо си тръгнал с Trie структура да го правиш не знам. :huh:
Защо даваш съвети ако не знаеш кое е по-добра опция? Аз му казах да ползва Trie структура защото това е най-бързият и най-удачният начин за тази цел. Каква е целта да loop-ваш цял списък всеки път когато играч влезне вместо да провериш дали стойността съответства в trie?

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

Защита на [NickName] по [SteamId]

Мнение от mi0 » 10 Юни 2020, 01:31

OciXCrom написа: 09 Юни 2020, 21:30
JackEyedJones написа: 09 Юни 2020, 21:24Въобще защо си тръгнал с Trie структура да го правиш не знам. :huh:
Защо даваш съвети ако не знаеш кое е по-добра опция? Аз му казах да ползва Trie структура защото това е най-бързият и най-удачният начин за тази цел. Каква е целта да loop-ваш цял списък всеки път когато играч влезне вместо да провериш дали стойността съответства в trie?
В крайна сметка, задължително списък трябва да бъде loop-нат.

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

template <typename U>
iterator find(const U & equ)
{
	iterator iter;
	for (iter=begin(); iter!=end(); iter++)
	{
		if ( (*iter) == equ )
			return iter;
	}
	return end();
}
Може да не се loop-ва в кода на plugin-а, но няма как компютъра да знае, дали нещо съществува, без да провери.
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 492
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 37 пъти
Получена благодарност: 43 пъти

Защита на [NickName] по [SteamId]

Мнение от atmax » 10 Юни 2020, 11:39

Това е извън мойте граници :D Все пак, мисля че е добра идея това с loop-a. Автора ме питаше какво ще се прави ако някой в игра си смени никнейм-а или стийм ид-то няма ли да е по-добре да проверява всички играчи?
Rest in peace my friend I always will remember you! 🖤👊

Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Защита на [NickName] по [SteamId]

Мнение от gadinkata » 10 Юни 2020, 20:51

JackEyedJones написа: 09 Юни 2020, 21:24

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

#include <amxmodx>

enum _:iNames
{
	g_szNickName[63],
	g_szSteamId[63]
}

new const g_iSteamNamesWhitelist[][iNames] = 
{
	{	"Gadinkata",	"STEAM_0:1:84315484"	},
	{	"DrugoIme",	"STEAM_0:1:84315485"	},
	{	"TretoIme",	"STEAM_0:1:84315486"	}
}

public plugin_init()
	register_plugin( "SteamID/Name WhiteList", "", "");

public client_authorized(id)
{
	new szAuthID[63], szName[63];
	get_user_authid(id, szAuthID, charsmax(szAuthID));
	get_user_name(id, szName, charsmax(szName));
    
	for(new i; i < sizeof(g_iSteamNamesWhitelist); i++)
	{
		if( equal(szName, g_iSteamNamesWhitelist[i][g_szNickName]) && !equal(szAuthID, g_iSteamNamesWhitelist[i][g_szSteamId]) )
		{
			server_cmd("kick #%i ^"This Name is protected by Steam ID!^"", get_user_userid(id));

			return PLUGIN_HANDLED;
		}	
	}

	return PLUGIN_CONTINUE;
}
Въобще защо си тръгнал с Trie структура да го правиш не знам. :huh:
До автора на темата, през users.ini се защитава най-лесно. Хората са го казали. Инак, почти си го направил. 50% само.
Untested, but give it a shot. :gamer1:
Също така Благодарности на atmax за trie версията

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

#include <amxmodx>

new Trie:g_tSteamWhiteList
new Trie:g_tNameWhiteList

public plugin_init()
{
	register_plugin( "SteamID/Name WhiteList", "0.1a", "aTmAx")
    
	g_tSteamWhiteList = TrieCreate()
	g_tNameWhiteList = TrieCreate()
    
	TrieSetCell(g_tSteamWhiteList, "STEAM_0:1:84315484", 1)
	TrieSetCell(g_tNameWhiteList, "Gadinkata", 1)
}

public plugin_end()
{
	TrieDestroy(g_tSteamWhiteList)
	TrieDestroy(g_tNameWhiteList)
}

public client_authorized(id)
{
	new szAuthID[35]
	new szName[32]
	
	get_user_authid(id, szAuthID, charsmax(szAuthID))
	get_user_name(id, szName, charsmax(szName))
    
	if(TrieKeyExists(g_tNameWhiteList, szName))
	{
		if(TrieKeyExists(g_tSteamWhiteList, szAuthID))
		{
			return PLUGIN_CONTINUE
		}
		else
		{
			server_cmd("kick #%i ^"Your SteamID/Name is Protected!^"", get_user_userid(id))
		}
	}  
	else
	{
		return PLUGIN_CONTINUE
	}

	return PLUGIN_HANDLED
}
Работи без проблеми, мога да влизам с друго име с този стеам,също така и други играчи влизат без проблем,но не могат да влизат с никовете който са зададени,супер е! :)
Колкото до това дали по през user.ini е 100 процента защитено,аз сам си преценявам,със сигорно знам,че паролата на играч може да се вземе във всеки сървър :)
Ако желаете може да локнете темата :)
Последно промяна от gadinkata на 10 Юни 2020, 21:30, променено общо 1 път.

Аватар
JackEyedJones
Извън линия
Потребител
Потребител
Мнения: 399
Регистриран на: 10 Сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 4 пъти
Получена благодарност: 69 пъти
Обратна връзка:

Защита на [NickName] по [SteamId]

Мнение от JackEyedJones » 10 Юни 2020, 21:27

Залагане на права по Steam ID през users.ini не изисква да им слагаш пароли. Просто го настрой да е по стийм и толкоз. Като не му съвпада ИД-то на дадения играч, ще може да влезе, но няма да има права. Теста на плъгина ми трябва да го направиш само с името gadinkata, другите бяха примерни и ИД-тата на стиймовете не са валидни.

Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Защита на [NickName] по [SteamId]

Мнение от gadinkata » 10 Юни 2020, 21:57

JackEyedJones написа: 10 Юни 2020, 21:27 Залагане на права по Steam ID през users.ini не изисква да им слагаш пароли. Просто го настрой да е по стийм и толкоз. Като не му съвпада ИД-то на дадения играч, ще може да влезе, но няма да има права. Теста на плъгина ми трябва да го направиш само с името gadinkata, другите бяха примерни и ИД-тата на стиймовете не са валидни.
Всички Админи са ми по стеам,аз за това искам,да им защитя никовете,защото има хора влизат с никовете на админите и им прецакват ранка,за това ми трябва тоя плъгин,знам че има регистър ник, плъгин,но не искам да добавям толкова сложни плъгини,просто който иска защита на ник,ще го добавя и т.н Пак благодаря

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

Защита на [NickName] по [SteamId]

Мнение от mi0 » 11 Юни 2020, 00:30

Просто в users.ini под всички админи си правиш графа "; Nickove" и добавяш пароли на никовете. Толкова ли е сложно?
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Защита на [NickName] по [SteamId]

Мнение от gadinkata » 11 Юни 2020, 00:46

Темата стана банална,моля да бъде заключена,не искам да влизам в подробности,кое правилно или грешно,за мен е грешно да добавям в графа Никове и пароли,защото тая прословута парола,се взима много лесно :)имам много такива пароли на играчи в списък :)Заключвайте,създадохте това което ми трябва,от тук натам ще си ъпдейтна плъгина до нужното :)

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

Защита на [NickName] по [SteamId]

Мнение от mi0 » 11 Юни 2020, 04:21

Само информация за следващите търсещи подобни работи. Има приоритет в users.ini - чете се отгоре-надолу. Хората, които са по-нагоре в списъка, биват пуснати без да се проверява, дали по-надолу има пароли. Можеш да им сложиш парола по-надолу, която дори те не знаят. Ще бъдат логнати по SteamID и паролата няма да им се изисква(те не трябва да я имат, знаят или въвеждат), съответно няма как, някой да я вземе, освен ако не ти влезе в users.ini и не я извади.
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Аватар
JackEyedJones
Извън линия
Потребител
Потребител
Мнения: 399
Регистриран на: 10 Сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 4 пъти
Получена благодарност: 69 пъти
Обратна връзка:

Защита на [NickName] по [SteamId]

Мнение от JackEyedJones » 11 Юни 2020, 09:31

Играели с никовете на админите, затова иска плъгин. Като иска, да си иска. Щом пише, че има нужното, окей.

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

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

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 19 госта