Заявка за плъгин - Inspect Players - повече информация в темата

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1796
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 358 пъти
Обратна връзка:

Заявка за плъгин - Inspect Players - повече информация в темата

Мнение от illusion » 21 Фев 2022, 00:22

Здравейте,
Трябва ми плъгин, с който като напишеш /inspect и да излезе меню с играчите в сървъра. Като избереш даден играч да го метне Spectator и да излезне следното съобщение в чата:
ADMIN: Името на админа inspected player Името на играча.
И да се вкара проверка ако играчът лефтне от сървъра да го банне за 1 седмица с причина "Quitting while inspect". Ползва се Advanced Bans за бановете.

Също да има опция вече като е избран играчът и ако се окаже чист при проверката от админ да го върне в игра отново чрез менюто (/inspect)

Менюто да бъде достъпно за админи с флаг "D" - ADMIN_BAN

Пробвах плъгина от тази тема, но не банва играча при излизане от сървъра, а и незнайно защо менюто се отваряше от всички (дори от играчите)
viewtopic.php?t=11316

Аватар
EMOTO2.COM
Извън линия
Потребител
Потребител
Мнения: 344
Регистриран на: 11 Яну 2018, 17:02
Се отблагодари: 26 пъти
Получена благодарност: 31 пъти
Обратна връзка:

Заявка за плъгин - Inspect Players - повече информация в темата

Мнение от EMOTO2.COM » 21 Фев 2022, 00:32

МНЕНИЕТО Е СКРИТО ОТ СТРАНА НА МОДЕРАТОР! ЦЪКНИ ВЪРХУ ЛЕНТАТА ЗА ДА ГО ПРЕГЛЕДАШ.
Последно промяна от illusion на 21 Фев 2022, 01:22, променено общо 1 път.
Причина: Излишно мнение
Присъедини се към най-доброто място за игра!
https://emoto2.com/

Аватар
Radeon
Извън линия
Потребител
Потребител
Мнения: 143
Регистриран на: 04 Апр 2021, 11:30
Се отблагодари: 2 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Заявка за плъгин - Inspect Players - повече информация в темата

Мнение от Radeon » 22 Фев 2022, 13:49

При мен банва с advanced bans, но успях само по ип да го направя да банва. А за това да може да се ползва само с флаг D не успях. В случай че никой друг не помогне , смени командата от тук с някаква която никой не я знае.
register_clcmd("say /inspect", "InspectMenu")

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

#include <amxmodx>
#include <cstrike>
#include <fun>

#if defined client_disconnected
	#define client_disconnect client_disconnected
#endif
#define MAX_NAME_LENGTH 32
#define WARGOD_MOTD "addons/amxmodx/configs/WG_info.txt"

new bool:UnderInspection[33]
new UserTeam[33]


public plugin_init()
{
	
	register_clcmd("say /inspect", "InspectMenu")
	register_clcmd("say /wargod", "WargodMotd")
	
	register_clcmd("chooseteam", "cmdChooseTeam")
	register_clcmd("jointeam", "cmdChooseTeam")
}

public WargodMotd(id)
	show_motd(id, WARGOD_MOTD, "WarGod information")

public cmdChooseTeam(id)
{
	if(UnderInspection[id] == true)
	{
		client_print_color(id, print_team_default,"^1You are under ^3Inspection ^1 and cannot join teams.")
		return PLUGIN_HANDLED
	}
	return PLUGIN_CONTINUE
}

public InspectMenu(id)
{
	if(!is_user_connected(id) && !(get_user_flags(id) & ADMIN_BAN)) return
	
	new menu = menu_create( "Choose option", "main_menu_handler" )
	
	menu_additem(menu, "Inspect player")
	menu_additem(menu, "Clear players inspection")
	
	menu_display(id,menu)
}

public main_menu_handler(id, menu, item)
{
	if (item == MENU_EXIT)
	{
		menu_destroy(menu)
		return
	}
	
	switch(item)
	{
		case 0: InspectPlayers(id)
		case 1: ClearPlayers(id)
	}
}

public ClearPlayers(id)
{
	new players[32],num
	get_players(players,num)
	
	for(new i; i<num;i++)
		@clear_all(players[i])
	
	new szName[32]
	get_user_name(id, szName, charsmax(szName))
	client_print_color(0, print_team_default,"^3(Inpsector)^1 Admin ^3%s ^1has cleared the inspections", szName)
}

public InspectPlayers(id)
{	
	new plmenu = menu_create( "Choose player", "menu_player_handler" )
	
	new players[32], pnum, tempid
	new szName[32], szUserId[32]
	get_players(players, pnum, "ch")
	
	for ( new i; i<pnum; i++ )
	{
		tempid = players[i];
		get_user_name(tempid, szName, charsmax(szName))
		formatex(szUserId, charsmax(szUserId), "%d", get_user_userid(tempid))
		menu_additem(plmenu, szName, szUserId, 0)
	}
	
	menu_display(id, plmenu)
}

public menu_player_handler(id, plmenu, item)
{
	if (item == MENU_EXIT)
	{
		menu_destroy(plmenu)
		return
	}
	
	new szData[6], szName[64];
	new _access, item_callback;
	
	menu_item_getinfo( plmenu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
	
	new userid = str_to_num( szData );
	new player = find_player( "k", userid );
	
	if (player && is_user_alive(player))
	{
		UnderInspection[player] = true
		UserTeam[player] = get_user_team(player)
		user_kill(player)
		cs_set_user_team(player, CS_TEAM_SPECTATOR)
		
		new szNamePlayer[32], szNameAdmin[32]
		get_user_name(player, szNamePlayer, charsmax(szNamePlayer))
		get_user_name(id, szNameAdmin, charsmax(szNameAdmin))
		
		client_cmd(player, "spk ambience/bigwarning" )
		
		client_print_color(0, print_team_default,"^3(Inspector) ^1Player ^3%s ^1was placed under inspection by ^3%s", szNamePlayer, szNameAdmin)
		log_to_file("WG_Inspect.log", "Player: %s  |  inspected by Admin: %s", szNamePlayer, szNameAdmin)
		
		client_print_color(player, print_team_default,"^1To see how to download wargod type ^3/wargod")
	}else{
		client_print_color(id, print_team_default,"^3(Inspector) ^1Player not found")
		InspectPlayers(id)
	}
}

public client_disconnect(id)
{
	if(UnderInspection[id] == true)
	{
		new szName[MAX_NAME_LENGTH]; get_user_name(id, szName, charsmax(szName));
		new szIP[16];   get_user_ip(id, szIP, charsmax(szIP), 1);
		server_cmd("amx_addban ^"%s^" ^"%s^" ^"604800^" ^"Quitting while inspect^"", szName, szIP )
		
		

    }
}

@clear_all(id)
{
	if(UnderInspection[id] == true)
	{
		if(is_user_connected(id))
		{
			cs_set_user_team(id, UserTeam[id])
			UnderInspection[id] = false
			client_cmd(id, "stopsound")
		}
	}
}

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1796
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 358 пъти
Обратна връзка:

Заявка за плъгин - Inspect Players - повече информация в темата

Мнение от illusion » 22 Фев 2022, 15:30

Това за флага го оправих, трябва да е така:
От:
if(!is_user_connected(id) && !(get_user_flags(id) & ADMIN_BAN)) return
=>
if(!is_user_connected(id) || !(get_user_flags(id) & ADMIN_BAN)) return

От което следва, че вече всичко е точно. Оправен код:

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

#include <amxmodx>
#include <cstrike>
#include <fun>

#if defined client_disconnected
	#define client_disconnect client_disconnected
#endif

#define WARGOD_MOTD "addons/amxmodx/configs/WG_info.txt"

new bool:UnderInspection[33]
new UserTeam[33]

public plugin_init()
{
	register_plugin("Inspect Player", "1.0", "rago12")
	register_clcmd("say /inspect", "InspectMenu")
	register_clcmd("say /wginfo", "WargodMotd")
	
	register_clcmd("chooseteam", "cmdChooseTeam")
	register_clcmd("jointeam", "cmdChooseTeam")
}

public WargodMotd(id)
	show_motd(id, WARGOD_MOTD, "WarGod information")

public cmdChooseTeam(id)
{
	if(UnderInspection[id] == true)
	{
		client_print_color(id, print_team_default,"^1You are under ^3Inspection ^1 and cannot join teams.")
		return PLUGIN_HANDLED
	}
	return PLUGIN_CONTINUE
}

public InspectMenu(id)
{
	if(!is_user_connected(id) || !(get_user_flags(id) & ADMIN_BAN)) return
	
	new menu = menu_create( "Choose option", "main_menu_handler" )
	
	menu_additem(menu, "Inspect player")
	menu_additem(menu, "Clear players inspection")
	
	menu_display(id,menu)
}

public main_menu_handler(id, menu, item)
{
	if (item == MENU_EXIT)
	{
		menu_destroy(menu)
		return
	}
	
	switch(item)
	{
		case 0: InspectPlayers(id)
		case 1: ClearPlayers(id)
	}
}

public ClearPlayers(id)
{
	new players[32],num
	get_players(players,num)
	
	for(new i; i<num;i++)
		@clear_all(players[i])
	
	new szName[32]
	get_user_name(id, szName, charsmax(szName))
	client_print_color(0, print_team_default,"^3(Inpsector)^1 Admin ^3%s ^1has cleared the inspections", szName)
}

public InspectPlayers(id)
{	
	new plmenu = menu_create( "Choose player", "menu_player_handler" )
	
	new players[32], pnum, tempid
	new szName[32], szUserId[32]
	get_players(players, pnum, "ch")
	
	for ( new i; i<pnum; i++ )
	{
		tempid = players[i];
		get_user_name(tempid, szName, charsmax(szName))
		formatex(szUserId, charsmax(szUserId), "%d", get_user_userid(tempid))
		menu_additem(plmenu, szName, szUserId, 0)
	}
	
	menu_display(id, plmenu)
}

public menu_player_handler(id, plmenu, item)
{
	if (item == MENU_EXIT)
	{
		menu_destroy(plmenu)
		return
	}
	
	new szData[6], szName[64];
	new _access, item_callback;
	
	menu_item_getinfo( plmenu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
	
	new userid = str_to_num( szData );
	new player = find_player( "k", userid );
	
	if (player && is_user_alive(player))
	{
		UnderInspection[player] = true
		UserTeam[player] = get_user_team(player)
		user_kill(player)
		cs_set_user_team(player, CS_TEAM_SPECTATOR)
		
		new szNamePlayer[32], szNameAdmin[32]
		get_user_name(player, szNamePlayer, charsmax(szNamePlayer))
		get_user_name(id, szNameAdmin, charsmax(szNameAdmin))
		
		client_cmd(player, "spk ambience/bigwarning" )
		
		client_print_color(0, print_team_default,"^3(Inspector) ^1Player ^3%s ^1was placed under inspection by ^3%s", szNamePlayer, szNameAdmin)
		log_to_file("WG_Inspect.log", "Player: %s  |  inspected by Admin: %s", szNamePlayer, szNameAdmin)
		
		client_print_color(player, print_team_default,"^1Type ^3/wginfo")
	}else{
		client_print_color(id, print_team_default,"^3(Inspector) ^1Player not found")
		InspectPlayers(id)
	}
}

public client_disconnect(id)
{
	if(UnderInspection[id] == true)
	{
		new szName[MAX_NAME_LENGTH]; get_user_name(id, szName, charsmax(szName));
		new szIP[16];   get_user_ip(id, szIP, charsmax(szIP), 1);
		server_cmd("amx_addban ^"%s^" ^"%s^" ^"10080^" ^"Quitting while inspect^"", szName, szIP )
    }
}

@clear_all(id)
{
	if(UnderInspection[id] == true)
	{
		if(is_user_connected(id))
		{
			cs_set_user_team(id, UserTeam[id])
			UnderInspection[id] = false
			client_cmd(id, "stopsound")
		}
	}
}

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

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

Кой е на линия

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