Spy Admin [Fixed]

Одобрените от нас плъгини. Моля, докладвайте ако забележите бъг с някой от плъгините в този раздел.
Отговори
Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 4972
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 53 пъти
Получена благодарност: 445 пъти
Години: 21
Контакти:

Spy Admin [Fixed]

Мнение от OciXCrom TM » 07 окт 2016, 16:27

Изображение

Spy Admin
Описание
  • Плъгинът добавя команда, с която администраторите с определен флаг може да скрият своите права (флагове). За разлика от оригиналния плъгин, в който командата е достъпна за всички играчи, независимо дали са администратори, този разполага с cvar, чрез който лесно можете да зададете нужния флаг.
Списък с команди
  • /spy
  • /spyadmin
  • amx_spyadmin
Снимки

Изображение

Списък с cvar-ове
  • spyadmin_adminflag <по подразбиране: "e"> -- Флагът за администраторите.
  • spyadmin_autohide <по подразбиране: "0"> -- Тази опция автоматично ще скрива правата на администраторите при тяхното свързване към сървъра.
Допълнителна информация и линк за теглене


Изображение
Изображение
Изображение

Потребителски аватар

Buzdrev LSD
Рекламатор
Рекламатор
Мнения: 224
Регистриран: 12 окт 2016, 16:45
Се отблагодари: 1 път
Години: 20
Контакти:

Spy Admin [Fixed]

Мнение от Buzdrev LSD » 31 окт 2017, 20:02

Грешка при компилация: https://imgur.com/a/Y5jyT

Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 4972
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 53 пъти
Получена благодарност: 445 пъти
Години: 21
Контакти:

Spy Admin [Fixed]

Мнение от OciXCrom TM » 31 окт 2017, 22:10

Оправено.

Потребителски аватар

Buzdrev LSD
Рекламатор
Рекламатор
Мнения: 224
Регистриран: 12 окт 2016, 16:45
Се отблагодари: 1 път
Години: 20
Контакти:

Spy Admin [Fixed]

Мнение от Buzdrev LSD » 31 окт 2017, 22:25

Благодаря, плъгина работи перфектно, но може ли да ми помогнеш да направя така, че скиновете от този плъгин да се скриват, защото в момента това не се случва.

Код: Избери всички

#include < amxmodx >
#include < cstrike >
#include < hamsandwich >
#include < colorchat >

#define PLUGIN		"Players Models"
#define VERSION		"1.1"
#define AUTHOR		"Smiley"

new bool:g_iAdmin[ 33 ];
#define ADMIN_ACCESS	ADMIN_LEVEL_E

enum g_iData
{
	MODEL_NAME_MENU[ 33 ], MODEL_TEAM, MODEL_NAME_FOLDER[ 33 ]
}

new const g_szModels[ ][ g_iData ] = 
{
	/*{ "Ime v menuto",	otbor,	"ime na .mdl faila" }*/
	
	{ "Naruto",		1,	"bpbm_vip_t_naruto" },
	{ "The Clown",		1,	"bpbm_vip_t_clown" },
	{ "Assassin's Creed",	1,	"bpbm_vip_t_assassin" },
	{ "X-Men",		1,	"bpbm_vip_t_xmen" },
	{ "Spider Man",		2,	"bpbm_vip_ct_spiderman" },
	{ "Deadpool",		2,	"bpbm_vip_ct_deadpool2" },
	{ "Mr. Smith",		2,	"bpbm_vip_ct_smith" },
	{ "Masked Robber",		2,	"bpbm_vip_ct_payday2" },
	{ "Lara Croft [Girls Only]",		0,	"bpbm_vip_girl" },
	{ "Random Model",	0,	"" }
}

new bool:g_iConnected[ 33 ], g_iSelectModel[ 33 ], g_iType[ 33 ];

public plugin_precache( )
{
	for( new i; i < sizeof( g_szModels ); i++ )
	{
		if( !equali( g_szModels[ i ][ MODEL_NAME_FOLDER ], "" ) )
		{
			new folders[ 64 ];
			formatex( folders, charsmax( folders ), "models/player/%s/%s.mdl", g_szModels[ i ][ MODEL_NAME_FOLDER ], g_szModels[ i ][ MODEL_NAME_FOLDER ] );
			precache_model( folders );
		}
	}
	
	precache_model( "models/player/bpbm_vip_ct_deadpool2/bpbm_vip_ct_deadpool2T.mdl" );
	precache_model( "models/player/bpbm_vip_ct_payday2/bpbm_vip_ct_payday2T.mdl" );
	precache_model( "models/player/bpbm_player_t/bpbm_player_t.mdl" );
	precache_model( "models/player/bpbm_player_ct/bpbm_player_ct.mdl" );
}

public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, AUTHOR );
	
	RegisterHam( Ham_Spawn, "player", "fwdPlayerSpawn", 1 );
	
	register_clcmd( "say /skin", "cmdSkin" );
	register_clcmd( "say_team /skin", "cmdSkin" );
	register_clcmd( "say /skins", "cmdSkin" );
	register_clcmd( "say_team /skins", "cmdSkin" );
}

public client_authorized( id ) 
{
	g_iAdmin[ id ] = ( get_user_flags( id ) & ADMIN_ACCESS ) ? true : false;
	
	g_iConnected[ id ] = true;
}

public client_disconnect( id ) 
{
	g_iAdmin[ id ] = false;
	
	g_iConnected[ id ] = false;
}

public fwdPlayerSpawn( id )
{
	if( !is_user_alive( id ) || is_user_bot( id ) || is_user_hltv( id ) || cs_get_user_team( id ) == CS_TEAM_SPECTATOR) return;

	if( !g_iAdmin[ id ])
	{
		if(cs_get_user_team( id ) == CS_TEAM_CT)
		{
			cs_set_user_model( id, "bpbm_player_ct" );
		}
		else
		{
			cs_set_user_model( id, "bpbm_player_t" );
		}
		return;
	}	
	
	if( g_iConnected[ id ] )
	{
		switch( cs_get_user_team( id ) )
		{
			case CS_TEAM_T: g_iType[ id ] = random_num( 0, 3 );
			case CS_TEAM_CT: g_iType[ id ] = random_num( 4, 7 );
		}
	}
	else
	{
		g_iType[ id ] = g_iSelectModel[ id ];
		if( !g_iType[ id ] ) return;
		
		switch( cs_get_user_team( id ) )
		{
			case CS_TEAM_T: 
			{
				if( g_iType[ id ] > 3 && g_iType[ id ] < 8 )
				{
					g_iConnected[ id ] = true;
					fwdPlayerSpawn( id );
					return;
				}
			}
			case CS_TEAM_CT: 
			{
				if( g_iType[ id ] < 4 )
				{
					g_iConnected[ id ] = true;
					fwdPlayerSpawn( id );
					return;
				}
			}
		}
	}
	
	cs_set_user_model( id, g_szModels[ g_iType[id] ][ MODEL_NAME_FOLDER ] );
	ColorChat( id, GREEN, "^1[^4BetterPlay^1] You have spawn with skin^3 %s", g_szModels[ g_iType[id] ][ MODEL_NAME_MENU ] );
}

public cmdSkin( id )
{
	if( !is_user_alive( id ) || !g_iAdmin[ id ] ) return;
	
	new menu, title[ 64 ];
	formatex( title, charsmax( title ), "\yBetterPlay \d- \rSelect \wSkin" );
	menu = menu_create( title, "SkinMenuHandler" );
	
	for( new i; i < sizeof( g_szModels ); i++ )
	{
		new color[ 5 ], text[ 128 ];
		
		if( g_szModels[ i ][ MODEL_TEAM ] == 0 )
		{
			formatex( color, charsmax( color ), "\y" );
		}
		else
		{
			if( get_user_team( id ) & g_szModels[ i ][ MODEL_TEAM ] )
			{
				formatex( color, charsmax( color ), "\y" );
			}
			else
			{
				formatex( color, charsmax( color ), "\d" );
			}
		}
	
		formatex( text, charsmax( text ), "%s%s", color, g_szModels[ i ][ MODEL_NAME_MENU ] );
		menu_additem( menu, text );
	}
	
	menu_display( id, menu, 0 );
}

public SkinMenuHandler( id, menu, item )
{
	if( item >= 0 && is_user_alive( id ) )
	{
		if( g_szModels[ item ][ MODEL_TEAM ] != 0 && get_user_team( id ) != g_szModels[ item ][ MODEL_TEAM ] )
		{
			cmdSkin( id );
			return PLUGIN_HANDLED;
		}
		
		switch( item )
		{
			case 9:
			{
				switch( cs_get_user_team( id ) )
				{
					case CS_TEAM_T: g_iType[ id ] = random_num( 0, 3 );
					case CS_TEAM_CT: g_iType[ id ] = random_num( 4, 7 );
				}
				
				g_iConnected[ id ] = true;
				cs_set_user_model( id, g_szModels[ g_iType[id] ][ MODEL_NAME_FOLDER ] );
				
				ColorChat( id, GREEN, "^1[^4BetterPlay^1] You selected^4 Random^1 skin -^3 %s", g_szModels[ g_iType[id] ][ MODEL_NAME_MENU ] );
			}
			default:
			{
				g_iSelectModel[ id ] = item;
				g_iConnected[ id ] = false;
				cs_set_user_model( id, g_szModels[ item ][ MODEL_NAME_FOLDER ] );
				
				ColorChat( id, GREEN, "^1[^4BetterPlay^1] You selected skin^3 %s", g_szModels[ item ][ MODEL_NAME_MENU ] );
			}
		}
	}
	
	return PLUGIN_CONTINUE;
}

Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 4972
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 53 пъти
Получена благодарност: 445 пъти
Години: 21
Контакти:

Spy Admin [Fixed]

Мнение от OciXCrom TM » 01 ное 2017, 13:39

Проблемът е, че плъгинът проверява флаговете на играча само при влизане в сървъра. Промених го да проверява при spawn.

Код: Избери всички

#include < amxmodx >
#include < cstrike >
#include < hamsandwich >
#include < colorchat >

#define PLUGIN		"Players Models"
#define VERSION		"1.1"
#define AUTHOR		"Smiley"

#define ADMIN_ACCESS	ADMIN_LEVEL_E

enum g_iData
{
	MODEL_NAME_MENU[ 33 ], MODEL_TEAM, MODEL_NAME_FOLDER[ 33 ]
}

new const g_szModels[ ][ g_iData ] = 
{
	/*{ "Ime v menuto",	otbor,	"ime na .mdl faila" }*/
	
	{ "Naruto",		1,	"bpbm_vip_t_naruto" },
	{ "The Clown",		1,	"bpbm_vip_t_clown" },
	{ "Assassin's Creed",	1,	"bpbm_vip_t_assassin" },
	{ "X-Men",		1,	"bpbm_vip_t_xmen" },
	{ "Spider Man",		2,	"bpbm_vip_ct_spiderman" },
	{ "Deadpool",		2,	"bpbm_vip_ct_deadpool2" },
	{ "Mr. Smith",		2,	"bpbm_vip_ct_smith" },
	{ "Masked Robber",		2,	"bpbm_vip_ct_payday2" },
	{ "Lara Croft [Girls Only]",		0,	"bpbm_vip_girl" },
	{ "Random Model",	0,	"" }
}

new bool:g_iConnected[ 33 ], g_iSelectModel[ 33 ], g_iType[ 33 ];

public plugin_precache( )
{
	for( new i; i < sizeof( g_szModels ); i++ )
	{
		if( !equali( g_szModels[ i ][ MODEL_NAME_FOLDER ], "" ) )
		{
			new folders[ 64 ];
			formatex( folders, charsmax( folders ), "models/player/%s/%s.mdl", g_szModels[ i ][ MODEL_NAME_FOLDER ], g_szModels[ i ][ MODEL_NAME_FOLDER ] );
			precache_model( folders );
		}
	}
	
	precache_model( "models/player/bpbm_vip_ct_deadpool2/bpbm_vip_ct_deadpool2T.mdl" );
	precache_model( "models/player/bpbm_vip_ct_payday2/bpbm_vip_ct_payday2T.mdl" );
	precache_model( "models/player/bpbm_player_t/bpbm_player_t.mdl" );
	precache_model( "models/player/bpbm_player_ct/bpbm_player_ct.mdl" );
}

public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, AUTHOR );
	
	RegisterHam( Ham_Spawn, "player", "fwdPlayerSpawn", 1 );
	
	register_clcmd( "say /skin", "cmdSkin" );
	register_clcmd( "say_team /skin", "cmdSkin" );
	register_clcmd( "say /skins", "cmdSkin" );
	register_clcmd( "say_team /skins", "cmdSkin" );
}

public client_authorized( id ) 	
	g_iConnected[ id ] = true;

public client_disconnect( id ) 
	g_iConnected[ id ] = false;

public fwdPlayerSpawn( id )
{
	if( !is_user_alive( id ) || is_user_bot( id ) || is_user_hltv( id ) || cs_get_user_team( id ) == CS_TEAM_SPECTATOR) return;

	if( !is_user_plugin_admin( id ) )
	{
		if(cs_get_user_team( id ) == CS_TEAM_CT)
		{
			cs_set_user_model( id, "bpbm_player_ct" );
		}
		else
		{
			cs_set_user_model( id, "bpbm_player_t" );
		}
		return;
	}	
	
	if( g_iConnected[ id ] )
	{
		switch( cs_get_user_team( id ) )
		{
			case CS_TEAM_T: g_iType[ id ] = random_num( 0, 3 );
			case CS_TEAM_CT: g_iType[ id ] = random_num( 4, 7 );
		}
	}
	else
	{
		g_iType[ id ] = g_iSelectModel[ id ];
		if( !g_iType[ id ] ) return;
		
		switch( cs_get_user_team( id ) )
		{
			case CS_TEAM_T: 
			{
				if( g_iType[ id ] > 3 && g_iType[ id ] < 8 )
				{
					g_iConnected[ id ] = true;
					fwdPlayerSpawn( id );
					return;
				}
			}
			case CS_TEAM_CT: 
			{
				if( g_iType[ id ] < 4 )
				{
					g_iConnected[ id ] = true;
					fwdPlayerSpawn( id );
					return;
				}
			}
		}
	}
	
	cs_set_user_model( id, g_szModels[ g_iType[id] ][ MODEL_NAME_FOLDER ] );
	ColorChat( id, GREEN, "^1[^4BetterPlay^1] You have spawn with skin^3 %s", g_szModels[ g_iType[id] ][ MODEL_NAME_MENU ] );
}

public cmdSkin( id )
{
	if( !is_user_alive( id ) || !is_user_plugin_admin( id ) ) return;
	
	new menu, title[ 64 ];
	formatex( title, charsmax( title ), "\yBetterPlay \d- \rSelect \wSkin" );
	menu = menu_create( title, "SkinMenuHandler" );
	
	for( new i; i < sizeof( g_szModels ); i++ )
	{
		new color[ 5 ], text[ 128 ];
		
		if( g_szModels[ i ][ MODEL_TEAM ] == 0 )
		{
			formatex( color, charsmax( color ), "\y" );
		}
		else
		{
			if( get_user_team( id ) & g_szModels[ i ][ MODEL_TEAM ] )
			{
				formatex( color, charsmax( color ), "\y" );
			}
			else
			{
				formatex( color, charsmax( color ), "\d" );
			}
		}
	
		formatex( text, charsmax( text ), "%s%s", color, g_szModels[ i ][ MODEL_NAME_MENU ] );
		menu_additem( menu, text );
	}
	
	menu_display( id, menu, 0 );
}

public SkinMenuHandler( id, menu, item )
{
	if( item >= 0 && is_user_alive( id ) )
	{
		if( g_szModels[ item ][ MODEL_TEAM ] != 0 && get_user_team( id ) != g_szModels[ item ][ MODEL_TEAM ] )
		{
			cmdSkin( id );
			return PLUGIN_HANDLED;
		}
		
		switch( item )
		{
			case 9:
			{
				switch( cs_get_user_team( id ) )
				{
					case CS_TEAM_T: g_iType[ id ] = random_num( 0, 3 );
					case CS_TEAM_CT: g_iType[ id ] = random_num( 4, 7 );
				}
				
				g_iConnected[ id ] = true;
				cs_set_user_model( id, g_szModels[ g_iType[id] ][ MODEL_NAME_FOLDER ] );
				
				ColorChat( id, GREEN, "^1[^4BetterPlay^1] You selected^4 Random^1 skin -^3 %s", g_szModels[ g_iType[id] ][ MODEL_NAME_MENU ] );
			}
			default:
			{
				g_iSelectModel[ id ] = item;
				g_iConnected[ id ] = false;
				cs_set_user_model( id, g_szModels[ item ][ MODEL_NAME_FOLDER ] );
				
				ColorChat( id, GREEN, "^1[^4BetterPlay^1] You selected skin^3 %s", g_szModels[ item ][ MODEL_NAME_MENU ] );
			}
		}
	}
	
	return PLUGIN_CONTINUE;
}

bool:is_user_plugin_admin( const id )
	return bool:( get_user_flags( id ) & ADMIN_ACCESS );

Потребителски аватар

Buzdrev LSD
Рекламатор
Рекламатор
Мнения: 224
Регистриран: 12 окт 2016, 16:45
Се отблагодари: 1 път
Години: 20
Контакти:

Spy Admin [Fixed]

Мнение от Buzdrev LSD » 01 ное 2017, 14:42

Да, благодаря ти много.

Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 4972
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 53 пъти
Получена благодарност: 445 пъти
Години: 21
Контакти:

Spy Admin [Fixed]

Мнение от OciXCrom TM » 01 мар 2018, 20:02

Изображение
  • Добавена е поддръжка за плъгина Chat Manager - префиксът автоматично ще се ъпдейтва при ползване на командата.

Отговори

Върни се в “Одобрени плъгини”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 2 госта