Map Bans

Неодобрените плъгини биват прехвърляни в този раздел. Не препоръчваме да ги ползвате, тъй като най-вероятно съдържат бъгове или същестуват такива плъгини, които вършат по-добра работа от тези тук.
Аватар
Drea<M>40BG ;]]
Извън линия
Рекламатор
Рекламатор
Мнения: 749
Регистриран на: 11 Окт 2016, 11:35
Се отблагодари: 112 пъти
Получена благодарност: 62 пъти
Обратна връзка:

Map Bans

Мнение от Drea<M>40BG ;]] » 12 Окт 2016, 17:47

Автор: grimvh2

Описание: Ако някой играч ви прави проблеми на някоя карта,а не искате да го баннете от сървъра,сега може да го баннете от мапа чрез този плъгин.

Команди:

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

аmх_mарbаn uѕеrnаmе mарсоunt(Игpaчa тpябвa дa бъдe в cъpвъpa и щe бъдe бaннaт нa ĸoнĸpeтнaтa ĸapтa)
mарсоunt = нeгoвия бaн щe бъдe пpeмaxнaт cлeд ĸapтaтa, oт ĸoятo e бaннaт oт нeгoвитe игpaлни х пъти (0=пepмaнeнт)
аmх_mарunbаn mарnаmе аuthіd (аuthіd = Ѕtеаm : х : хххххххх или нeщo тaĸoвa)
аmх_rеmоvеmарbаnѕ mарnаmе (пpeмaxвa фaйлa mарbаnѕ)
Как да го инсталираме?
1.Слагате файлът ' mapbans.amxx ' в директорията на играта ви>cstrike>addons>amxmodx>plugins
2.Отваряте директорията на играта ви>cstrike>addons>amxmodx>configs.След това отваряте файлът ' plugins.ini ' и най-отдолу добавяте нов ред:

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

mapbans.amxx
3.Слагате файлът ' mapbans.txt ' в директорията на играта ви>cstrike>addons>amxmodx>data>lang.
4.Слагате файлът ' mapbans.sma ' в директорията на играта ви>cstrike>addons>amxmodx>scripting

.sma

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

/************************************************/
/* Kureno : Hello	                        */
/* Xalus  : My Personal SpamBot / Tester        */
/* xPaw   : Optimizing 			        */
/*	                         Plugin By Grim	*/
/************************************************/

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Map Bans"
#define VERSION "2.1"
#define AUTHOR "Grim"

#define ACCES ADMIN_KICK

new g_szFile[100];
new Path[100];

new Trie:Bans

new szMapName[32];

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_concmd("amx_mapban", "cmd_ban", ACCES, "Usage : amx_mapban playername mapcount (0=permanent)");
	register_concmd("amx_mapunban", "cmd_unban", ACCES, "Usage : amx_mapunban mapname auhtid");
	register_concmd("amx_removemapbans", "cmd_removemapbans", ACCES, "Usage : amx_removemapbans mapname");
	
	get_configsdir(Path, charsmax(Path));
	format(Path,charsmax(Path), "mapbans")
	
	register_dictionary("Mapbans.txt");
}

public plugin_cfg()
{
	if(!dir_exists(Path)) mkdir(Path)
	
	get_mapname(szMapName, charsmax(szMapName));
	formatex(g_szFile,charsmax(g_szFile), "%s/mapbans",Path)
	
	Bans = TrieCreate()
	
	load_mapbans()
}

public client_authorized(id)
{
	do_loadban(id);
}

public cmd_ban(id,level,cid)
{
	if (!cmd_access(id,level,cid,3))
		return PLUGIN_HANDLED;
		
	new arg[32],arg2[3];
	read_argv(1,arg,charsmax(arg));
	read_argv(2,arg2,charsmax(arg2));
	
	new iCount = str_to_num(arg2)
	
	new player = cmd_target(id,arg,18);
	if(!player)
		return PLUGIN_HANDLED;
	
	do_saveban(player,iCount);
	
	new szName[32],szName2[32];
	get_user_name(id,szName,charsmax(szName));	
	get_user_name(player,szName2,charsmax(szName));	
	
	client_print(0,print_chat,"[Map Bans] %L",LANG_PLAYER, "CMD_BAN",szName,szName2)
	
	return PLUGIN_HANDLED;
}

public cmd_unban(id,level,cid)
{
	if (!cmd_access(id,level,cid,3))
		return PLUGIN_HANDLED;
	
	new arg[32],arg2[32];
	read_argv(1,arg,charsmax(arg));
	read_argv(2,arg2,charsmax(arg2));
	
	do_removeban(id,arg,arg2);
	
	return PLUGIN_HANDLED;
}

public cmd_removemapbans(id,level,cid)
{
	if (!cmd_access(id,level,cid,2))
		return PLUGIN_HANDLED;
	
	new arg[32];
	read_argv(1,arg,charsmax(arg));
	
	do_removemapbans(id,arg);
	
	return PLUGIN_HANDLED;
}

do_saveban(player,iCount)
{
	new iFile = fopen(g_szFile, "a");
	if( !iFile )
		return;
	
	new szName[32];
	get_user_name(player,szName,charsmax(szName))
	
	new szAuthid[32],szCount[3];
	get_user_authid(player, szAuthid, charsmax(szAuthid));
	
	num_to_str(iCount,szCount,charsmax(szCount))
	
	if(iCount > 0)
	{
		TrieSetCell(Bans,szAuthid,true)
		fprintf(iFile, "%s ^"%s^" %s^n",szAuthid, szName, szCount);
	}
	else
	{
		TrieSetCell(Bans,szAuthid,true)
		fprintf(iFile, "%s ^"%s^" 0^n",szAuthid, szName);
	}
	
	fclose(iFile);
		
	server_cmd("kick ^"#%i^"", get_user_userid(player));
}

do_removeban(id, mapname[], authid[])
{
	new g_szFileu[100]
	format(g_szFileu, charsmax(g_szFile), "%s/%s.ini", Path, mapname);
	
	new Temp[100];
	format(Temp, charsmax(Temp), "%s/temp.ini", Path);
	
	new iFile = fopen(g_szFileu, "r");
	if( !iFile )
	{
		console_print(id, "[Map Bans] %L", id, "DIR_NTFOUND",g_szFile)
		return;
	}
	
	new TempFile = fopen(Temp, "w");
	if( !TempFile )
		return;
	
	new szData[64], szrAuthid[32], szName[32], szCount[3];
	
	new succes;
	
	while(!feof(iFile))
	{
		fgets(iFile, szData, charsmax(szData))
		trim( szData )
		if(!szData[0] || szData[0] == ';' || (szData[0] == '/' && szData[1] == '/'))
			continue

		parse(szData, szrAuthid, charsmax(szrAuthid),szName,charsmax(szName),
			szCount,charsmax(szCount))
		
		if(!equal(authid, szrAuthid))
		{
			fprintf(iFile, "%s ^"%s^" %s^n",szrAuthid,szName,szCount)
		}
		else
			succes++
	}
	fclose(TempFile)
	fclose(iFile)
	
	delete_file(g_szFileu)
	
	rename_file(Temp, g_szFileu, 1)
	
	if(succes == 1)
		client_print(id,print_chat,"[Map Bans] %L",id, "SUC_UNBAN",authid,mapname)
	else
		client_print(id,print_chat,"[Map Bans] %L",id, "FAIL_UNBAN",authid,mapname)
}

do_removemapbans(id,mapname[])
{
	format(g_szFile, charsmax(g_szFile), "%s/%s.ini", Path, mapname);
	
	new iFile = fopen(g_szFile, "r");
	if( !iFile )
	{
		console_print(id, "[Map Bans] %L", id, "DIR_NTFOUND",g_szFile)
		return;
	}
	else
	{
		fclose(iFile)
		delete_file(g_szFile)
	}
}

do_loadban(id)
{
	new szAuthid[32];
	get_user_authid(id, szAuthid, charsmax(szAuthid));
	
	if(TrieKeyExists(Bans, szAuthid))
	{
		server_cmd("kick ^"#%i^"", get_user_userid(id));
	}
}

load_mapbans()
{
	new Temp[100];
	format(Temp, charsmax(Temp), "%s/temp.ini", Path);
	
	new iFile = fopen(g_szFile, "r");
	if( !iFile )
		return;
	
	new TempFile = fopen(Temp, "w");
	if( !TempFile )
		return;
	
	new szData[64], szrAuthid[32], szName[32], szCount[3];
	new iCount, TempData[64];
	
	
	while(!feof(iFile))
	{
		fgets(iFile, szData, charsmax(szData))
		trim( szData )
		if(!szData[0] || szData[0] == ';' || (szData[0] == '/' && szData[1] == '/'))
			continue

		parse(szData, szrAuthid, charsmax(szrAuthid),szName,charsmax(szName),
			szCount, charsmax(szCount))
			
		iCount = str_to_num(szCount)
		
		if(iCount == 0)
		{
			fprintf(iFile, "%s ^"%s^" 0^n",szrAuthid,szName)
			fputs(TempFile, TempData);
			
			TrieSetCell(Bans,szrAuthid,true)
		}
		else if(iCount > 1)
		{
			iCount--
			num_to_str(iCount,szCount,charsmax(szCount))

			fprintf(iFile, "%s ^"%s^" %s^n",szrAuthid,szName,szCount)
			fputs(TempFile, TempData);
			
			TrieSetCell(Bans,szrAuthid,true)
		}
	}
	fclose(TempFile)
	fclose(iFile)
	
	delete_file(g_szFile)
	
	rename_file(Temp, g_szFile, 1)
}

public plugin_end()
{
	TrieDestroy(Bans)
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1043\\ f0\\ fs16 \n\\ par }
*/


AMXX-BG.INFODownload from here
mapbans %281%29.rar
(14.47 KiB) Свалено 140 пъти
mapbans %281%29.rar
(14.47 KiB) Свалено 140 пъти

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

Обратно към “Неодобрени/стари плъгини”

Кой е на линия

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