Jump to content
assignment_ind Existing user? Sign In

Sign In



person_add Sign Up
Go-Code.pl - Support SourceMod i Pluginy CS:GO
Sign in to follow this  
Master

[CS:GO] Menu Komend

Recommended Posts

Plugin dodaje menu, które możemy edytować w pliku konfiguracyjnym.

 

Kod

Spoiler

#pragma semicolon 1
#pragma newdecls required

#define NAME "Commands Menu"
#define AUTHOR "Master"
#define VERSION "1.0"
#define URL "https://cswild.pl/"

public Plugin myinfo =
{
	name	= NAME,
	author	= AUTHOR,
	version	= VERSION,
	url		= URL
};

Menu g_GlobalMenu;

public void OnPluginStart()
{
	g_GlobalMenu = new Menu(Global_Menu_Handler);

	RegConsoleCmd("sm_komendy", CMD_Menu);
}

public Action CMD_Menu(int client, int args)
{
	g_GlobalMenu.Display(client, 0);
	return Plugin_Handled;
}

public void OnConfigsExecuted()
{
	g_GlobalMenu.RemoveAllItems();

	char sBuffer[256];
	BuildPath(Path_SM, sBuffer, sizeof(sBuffer), "configs/komendy.cfg");

	KeyValues kv = new KeyValues("Config");

	if(!kv.ImportFromFile(sBuffer))
	{
		LogError("Brak pliku konfiguracyjnego %s", sBuffer);
		return;
	}

	kv.GetString("Menu_Title", sBuffer, sizeof(sBuffer), "");
	g_GlobalMenu.SetTitle(sBuffer);

	char sCommand[64];

	if(kv.GotoFirstSubKey())
	{
		do
		{
			kv.GetString("opis", sBuffer, sizeof(sBuffer), "");

			kv.GetString("komenda", sCommand, sizeof(sCommand), "");
	
			g_GlobalMenu.AddItem(sCommand, sBuffer, StrEqual(sBuffer, "<DISABLED>") ? ITEMDRAW_DISABLED : StrEqual(sBuffer, "<SPACER>") ? ITEMDRAW_SPACER : ITEMDRAW_DEFAULT);

		} while(kv.GotoNextKey());
	}

	delete kv;
}

public int Global_Menu_Handler(Menu menu, MenuAction action, int client, int item)
{
	switch(action)
	{
		case MenuAction_Select:
		{
			char sCommand[64];
			menu.GetItem(item, sCommand, sizeof(sCommand));
			FakeClientCommand(client, sCommand);
		}
	}
}

 

 

Przykładowy config:

 

Spoiler

"Config"
{
    "Menu_Title"    "Testowy"

    "1"
    {
        "opis"      "Twoj opis"
        "komenda"   "sm_admin"
    }
    "2"
    {
        "opis"      "<DISABLED>" // Wyłączony
        "komenda"   "sm_admin"
    }
    "3"
    {
        "opis"      "<SPACER>" // Spacer
        "komenda"   "sm_admin"
    }
}

 

 

Master_Commands_Menu.sp
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Master_Commands.cfg
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Edited by Master
  • Lubię to! 5

Share this post


Link to post
Share on other sites

Przydatne (y)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.


O NAS Jesteśmy społecznością łączącą ludzi, którzy dzielą pasję poznawania CS:GO od strony programistycznej. Posiadamy duże zaplecze merytoryczne i zawsze cieszymy się, gdy dołączają do nas osoby gotowe do nauki. Gwarantujemy, że z odrobiną wytrwałości i otwartym umysłem bardzo szybko napiszesz swój pierwszy plugin. Zapraszamy! 🙂
Szablon wykonany z dużą ilością przez cyberpixelz / Mesharsky / Sitefuture
Forum dumnie napędzane przez: Invision Power Services, Inc.
×
×
  • Create New...