Страница 1 от 2

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

Публикувано на: 08 Юни 2020, 00:06
от gadinkata
Здравейте,имам нужда от плъгин,който да защити никовете на админите ми по стеам ид,за да неможе никой друг освен тях,примерно в плъгина искам да защити никът "gadinkata" със стеам "STEAM_0:1:84315484",обобщавам искам играч с ник "gadinkata" да бъде допуснат,само ако стеам ид-то отговаря на това което съм задал стеам "STEAM_0:1:84315484".Ако може с Ini файл в който да се добавят никът и стеам идто,който да бъдат защитени,ако ви е сложно,може да напишете един прост код,с 1 ник и стеами, просто да видя как се получава,ще ви дам един мой който се опитах да направя,но не успях

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

#include <amxmodx>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "IOCOCVETI"

new Trie:g_steamlog

enum _:SteamLogs
{
	NickId[32],
	SteamId[34]
}

new const g_eSteamLogs[] [SteamLogs] =
{
	{"Gadinkata", "STEAM_0:1:84315484"}
}
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	g_steamlog = TrieCreate()
}

public plugin_end()
	TrieDestroy(g_steamlog)


public client_authorized(id)
{
	new szSteam[34], szName[32]
	get_user_name(id, szName, charsmax(szName))
	get_user_authid(id, szSteam, charsmax(szSteam))
	
	if(TrieKeyExists(g_steamlog, szSteam) && TrieKeyExists(g_steamlog, szName))
	{
		TrieGetString(g_steamlog, szSteam, NickId, charsmax(NickId))
		TrieGetString(g_steamlog, szName, SteamId, charsmax(SteamId))
	}
}

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

Публикувано на: 08 Юни 2020, 00:20
от impossible
В ussr.ini можеш да дадеш права по Steamid
Освен това си го има в AmXmodx пакета няма как да се влезне с Ник на админ без да напишеш паролата зададена от user.ini
И след това да се напише в конзолата Setinfo _pw и паролата ще изпише "You have no entry to the server"

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

Публикувано на: 08 Юни 2020, 00:54
от sf4n
Това е адски ненужно, както потребителя над мен е споменал, само и единствено ако се напише паролата, която е зададена от user.ini може да се влезе с твоя ник, отделно, че със steamid правата ти деистват няколко дена и след това изчезват ако си non-steam, просто няма нужда от излишни плъгини, все пак можеш да пробваш да си добавиш права от user.ini със steamid.

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

Публикувано на: 08 Юни 2020, 09:57
от atmax
Пробвай това, не съм сигурен дали ще работи. За сега без файл, нека първо видим, дали ще тръгне така!

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

#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 Steam ID is Protected!^"", get_user_userid(id))
		}
	}  
	else
	{
		server_cmd("kick #%i ^"Your Steam ID is Protected!^"", get_user_userid(id))
	}

	return PLUGIN_HANDLED
}

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

Публикувано на: 08 Юни 2020, 21:22
от gadinkata
atmax написа: 08 Юни 2020, 09:57 Пробвай това, не съм сигурен дали ще работи. За сега без файл, нека първо видим, дали ще тръгне така!

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

#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 Steam ID is Protected!^"", get_user_userid(id))
		}
	}  
	else
	{
		server_cmd("kick #%i ^"Your Steam ID is Protected!^"", get_user_userid(id))
	}

	return PLUGIN_HANDLED
}
Работи,но допуска само играч отговарящ на никът и стеамид-то,а аз искам всеки да може да влиза,но,ако играч се опита да влезе с тоя ник,да провери дали неговото стеамид съвпада с горе посоченото,ако съвпада да го допусне с този ник,ако не съвпада да го кикне

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

Публикувано на: 08 Юни 2020, 22:52
от Drea<M>40BG ;]]
viewtopic.php?f=21&t=48 защо не пробваш с това?

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

Публикувано на: 09 Юни 2020, 12:43
от atmax
Знам та, че си пробваш някакви плъгинчета, защото ти е кеф, но не можа ли толкоз да смениш 1-2 реда..

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

#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_tSteamWhiteList, szAuthID))
	{
		if(TrieKeyExists(g_tNameWhiteList, szName))
		{
			return PLUGIN_CONTINUE
		}
		else
		{
			server_cmd("kick #%i ^"Your SteamID/Name is Protected!^"", get_user_userid(id))
		}
	}  
	else
	{
		return PLUGIN_CONTINUE
	}

	return PLUGIN_HANDLED
}
Пробвай това, дали ще отговори на очакванията ти..

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

Публикувано на: 09 Юни 2020, 20:47
от gadinkata
atmax написа: 09 Юни 2020, 12:43 Знам та, че си пробваш някакви плъгинчета, защото ти е кеф, но не можа ли толкоз да смениш 1-2 реда..

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

#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_tSteamWhiteList, szAuthID))
	{
		if(TrieKeyExists(g_tNameWhiteList, szName))
		{
			return PLUGIN_CONTINUE
		}
		else
		{
			server_cmd("kick #%i ^"Your SteamID/Name is Protected!^"", get_user_userid(id))
		}
	}  
	else
	{
		return PLUGIN_CONTINUE
	}

	return PLUGIN_HANDLED
}
Пробвай това, дали ще отговори на очакванията ти..
Опитай пак,сега дапуска всички други,останали играчим,допуска и мен,но само ако въведа никът gadinkata,неми позволява, да играя с друг ник,също така и другите играчи ги до пуска с никът gadinkata,не може ли да се ползва и TrieSetString TrieGetString и същевременно equal за сравнение никове или стеам.Дай друго предложение,ще ти взема 2 каси с бира :DИ хвани ми пиши в скайп малко
Нужно ми е за админите,че някой играчи влизат с техните никове,а аз съм ги направил по стеам,ако съм искал да ги направя по ник,че да ги защитя,но set info _pw командата е лесно за хакване във всеки един сървър който влезеш,за това предпочитам стеам,трудно се копира стеама на играч

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

Публикувано на: 09 Юни 2020, 21:19
от atmax
Размени мястото на тези двете условия:

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

if(TrieKeyExists(g_tSteamWhiteList, szAuthID))
	{
		if(TrieKeyExists(g_tNameWhiteList, szName))
		{
А и много по-лесно се копира steamid отколкото да му вземеш паролата.. Даже за steamid не е нужно да ги викам в други сървъри мога за минута да копирам всяко едно id в игра..
Ако искаш може да пробваш по IP, по-добре от steamid

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

Публикувано на: 09 Юни 2020, 21:24
от JackEyedJones

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

#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: