View Single Post
Author Message
mrmiki
Junior Member
Join Date: Mar 2021
Old 05-30-2021 , 09:48   only teamates show in menu
Reply With Quote #1

hello
how can i make this plugin to show only temates in menu not all players?

HTML Code:
#include <sourcemod>
#pragma semicolon 1

public void OnPluginStart()
{
	RegConsoleCmd("sm_mute1", Command_Mute);
}

public Action:Command_Mute(id, args)
{	
	new client = id;
	if(client == -1)
	{
		return Plugin_Handled;
	}
	DisplayTargetsMenu(client);
	
	return Plugin_Handled;
}

void CheckAndPerformBan(int client, char[] sName, int minutes, char[] reason)
{
		ServerCommand("sm_mute \"%s\" %d %s", sName, minutes, reason);

}

public void DisplayTargetsMenu(int client)
{
	Menu MainMenu = new Menu(TargetsMenu_CallBack, MenuAction_Select | MenuAction_End);
	MainMenu.SetTitle("Select a target!");
	char sDisplayBuffer[128], sInfo2[32], sName[MAX_NAME_LENGTH];
	//char sName[MAX_NAME_LENGTH], sInfo2[8];
	for(int target = 1; target <= MaxClients; target++)
	{
		if(IsClientInGame(target) && !IsFakeClient(target) && CanUserTarget(client, target))
		{
			GetClientName(target, sName, sizeof(sName));
			IntToString(GetClientUserId(target), sInfo2, sizeof(sInfo2));
			Format(sDisplayBuffer, sizeof(sDisplayBuffer), "%s (%s)", sName, sInfo2);
			MainMenu.AddItem(sName, sDisplayBuffer);
		}
	}
	
	SetMenuExitBackButton(MainMenu, true);
	DisplayMenu(MainMenu, client, MENU_TIME_FOREVER);
}
public int TargetsMenu_CallBack(Menu MainMenu, MenuAction action, int param1, int param2)
{
	switch (action)
	{
		case MenuAction_Select:
		{
			char sInfo[128];
			GetMenuItem(MainMenu, param2, sInfo, sizeof(sInfo));
			DisplayBanTimeMenu(param1, sInfo);
		}
		case MenuAction_Cancel:
		{

			
		}
		case MenuAction_End:
		{
			CloseHandle(MainMenu);
		}
	}
}
public void DisplayBanTimeMenu(int client, char[] sInfo)
{
	Menu BanTimeMenu = new Menu(BanTime_CallBack, MenuAction_Select | MenuAction_End);
	BanTimeMenu.SetTitle("Select A Time:");
	char sInfoBuffer[128];
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,30240", sInfo);
	BanTimeMenu.AddItem(sInfoBuffer, "1 Week");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,0", sInfo);
	BanTimeMenu.AddItem(sInfoBuffer, "Permanent");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,5", sInfo);
	BanTimeMenu.AddItem(sInfoBuffer, "5 Min");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,30", sInfo);
	BanTimeMenu.AddItem(sInfoBuffer, "30 Min");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,360", sInfo);
	BanTimeMenu.AddItem(sInfoBuffer, "1 Hour");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,1440", sInfo);
	BanTimeMenu.AddItem(sInfoBuffer, "1 Day");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,30240", sInfo);
	BanTimeMenu.AddItem(sInfoBuffer, "3 Weeks");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,43830", sInfo);
	BanTimeMenu.AddItem(sInfoBuffer, "1 Month");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,131490", sInfo);
	BanTimeMenu.AddItem(sInfoBuffer, "3 Months");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,262980", sInfo);
	BanTimeMenu.AddItem(sInfoBuffer, "6 Months");
	SetMenuExitBackButton(BanTimeMenu, true);
	DisplayMenu(BanTimeMenu, client, MENU_TIME_FOREVER);
}
public int BanTime_CallBack(Handle BanTimeMenu, MenuAction action, int param1, int param2)
{
	switch (action)
	{
		case MenuAction_Select:
		{
			char sInfo[128];
			GetMenuItem(BanTimeMenu, param2, sInfo, sizeof(sInfo));
			DisplayBanReasonMenu(param1, sInfo);
		}
		case MenuAction_Cancel:
		{

		}
		case MenuAction_End:
		{
			CloseHandle(BanTimeMenu);
		}
	}
}
void DisplayBanReasonMenu(int client, char[] sInfo)
{
	Menu BanReasonMenu = new Menu(BanReason_CallBack, MenuAction_Select | MenuAction_End);
	BanReasonMenu.SetTitle("Select A Reason:");
	char sInfoBuffer[128];
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,DJ", sInfo);
	BanReasonMenu.AddItem(sInfoBuffer, "DJ");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,Mic spamming", sInfo);
	BanReasonMenu.AddItem(sInfoBuffer, "Mic spamming");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,Foreign Lanquage", sInfo);
	BanReasonMenu.AddItem(sInfoBuffer, "Foreign Lanquage");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,Ignoring Admin", sInfo);
	BanReasonMenu.AddItem(sInfoBuffer, "Ignoring Admin");
	Format(sInfoBuffer, sizeof(sInfoBuffer), "%s,Broken Mic", sInfo);
	BanReasonMenu.AddItem(sInfoBuffer, "Broken Mic");
	SetMenuExitBackButton(BanReasonMenu, true);
	DisplayMenu(BanReasonMenu, client, MENU_TIME_FOREVER);
}
public int BanReason_CallBack(Handle BanReasonMenu, MenuAction action, int param1, int param2)
{
	switch (action)
	{
		case MenuAction_Select:
		{
			char sInfo[128], sTempArray[3][64];
			GetMenuItem(BanReasonMenu, param2, sInfo, sizeof(sInfo));
			ExplodeString(sInfo, ",", sTempArray, 3, 64);
			CheckAndPerformBan(param1, sTempArray[0], StringToInt(sTempArray[1]), sTempArray[2]);
		}
		case MenuAction_Cancel:
		{

		}
		case MenuAction_End:
		{
			CloseHandle(BanReasonMenu);
		}
	}
}

Last edited by mrmiki; 05-30-2021 at 09:49.
mrmiki is offline