Jump to content
  • Chmurka
  • Boróweczka
  • Jabłuszko
  • Limonka
  • Czekoladka
  • Węgielek
Sign in to follow this  
Master

[CS:GO] Zarządzanie Hud'em

Recommended Posts

Posted (edited)

Witam!

 

Opis

 

Napisałem taki prosty plugin, bo denerwował mnie fakt, że muszę ciągle kompilować plugin, aby sprawdzić pozycję i kolor huda. Wtyczka umożliwia zmianę koordynatów i kolorów hud'a na żywo, poprzez menu serwera. Plugin nie jest zoptymalizowany, więc zalecam usunięcie po sprawdzeniu.

 

Komenda

  • sm_hud - otwiera menu konfiguracyjne hud'a, wymagana flaga 'z'

 

Plugin

 

Spoiler

#pragma semicolon 1
#pragma newdecls required

float g_fCord[2] = {-1.0, -1.0};

int g_iColor[4] = {255, 255, 255, 0};

char g_sCord[2][2] = {"X", "Y"};
char g_sColor[4][2] = {"R", "G", "B", "A"};

int g_iPicked;

#define NAME		"Master Hud Manage"
#define AUTHOR		"Master"
#define VERSION		"1.0"
#define URL			"https://cswild.pl/"

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

public void OnPluginStart()
{
    RegConsoleCmd("sm_hud", CMD_Hud);
}

public void OnMapStart() 
{
    CreateTimer(0.5, Timer_Hud, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE);
}

public Action Timer_Hud(Handle hTimer)
{
    for(int iClient = 1; iClient <= MaxClients; iClient++)
    {
        if(IsClientInGame(iClient) && !IsFakeClient(iClient) && GetUserFlagBits(iClient) & ADMFLAG_ROOT)
        {
            SetHudTextParams(g_fCord[0], g_fCord[1], 0.5, g_iColor[0], g_iColor[1], g_iColor[2], g_iColor[3], 0, 0.0, 0.0, 0.0);
            ShowHudText(iClient, 4, "Testowa wiadomość\nLOREM: 21312");
        }
    }

    return Plugin_Continue;
}


public Action CMD_Hud(int iClient, int args)
{
	if(!(GetUserFlagBits(iClient) & ADMFLAG_ROOT))
	{
		return Plugin_Handled;
	}

	PrintMenu(iClient);
	return Plugin_Handled;
}

void PrintMenu(int iClient)
{
    Menu menu = new Menu(Menu_Handler);
    menu.SetTitle("Konfiguracja Huda");

    char sBuffer[128];
    Format(sBuffer, sizeof(sBuffer), "X: %f", g_fCord[0]);
    menu.AddItem(NULL_STRING, sBuffer);

    Format(sBuffer, sizeof(sBuffer), "Y: %f", g_fCord[1]);
    menu.AddItem(NULL_STRING, sBuffer);

    Format(sBuffer, sizeof(sBuffer), "R: %d", g_iColor[0]);
    menu.AddItem(NULL_STRING, sBuffer);

    Format(sBuffer, sizeof(sBuffer), "G: %d", g_iColor[1]);
    menu.AddItem(NULL_STRING, sBuffer);

    Format(sBuffer, sizeof(sBuffer), "B: %d", g_iColor[2]);
    menu.AddItem(NULL_STRING, sBuffer);

    Format(sBuffer, sizeof(sBuffer), "A: %d", g_iColor[3]);
    menu.AddItem(NULL_STRING, sBuffer);

    menu.Display(iClient, 0);
}

public int Menu_Handler(Menu menu, MenuAction action, int iClient, int param2)
{
    switch(action)
    {
        case MenuAction_End: delete menu;
        case MenuAction_Select:
        {
            g_iPicked = param2;
            SecondMenu(iClient);
        }
    }
}

void SecondMenu(int iClient)
{
    Menu menu = new Menu(SecondMenu_Handler);
    menu.SetTitle("Zmiana kordynatów\n \n");

    char sBuffer[128];

    if(g_iPicked < 2)
    {
        Format(sBuffer, sizeof(sBuffer), "%s: %f", g_sCord[g_iPicked], g_fCord[g_iPicked]);
        menu.AddItem(NULL_STRING, sBuffer, ITEMDRAW_DISABLED);
        menu.AddItem(NULL_STRING, "+0.1", g_fCord[g_iPicked] >= 1.0 ? ITEMDRAW_DISABLED : ITEMDRAW_DEFAULT);
        menu.AddItem(NULL_STRING, "+0.01", g_fCord[g_iPicked] >= 1.0 ? ITEMDRAW_DISABLED : ITEMDRAW_DEFAULT);
        menu.AddItem(NULL_STRING, "-0.01", g_fCord[g_iPicked] <= -1.0 ? ITEMDRAW_DISABLED : ITEMDRAW_DEFAULT);
        menu.AddItem(NULL_STRING, "-0.1", g_fCord[g_iPicked] <= -1.0 ? ITEMDRAW_DISABLED : ITEMDRAW_DEFAULT);
    }
    else
    {
        Format(sBuffer, sizeof(sBuffer), "%s: %d", g_sColor[g_iPicked - 2], g_iColor[g_iPicked - 2]);
        menu.AddItem(NULL_STRING, sBuffer, ITEMDRAW_DISABLED);
        menu.AddItem(NULL_STRING, "+10", g_iColor[g_iPicked - 2] >= 255 ? ITEMDRAW_DISABLED : ITEMDRAW_DEFAULT);
        menu.AddItem(NULL_STRING, "+1", g_iColor[g_iPicked - 2] >= 255 ? ITEMDRAW_DISABLED : ITEMDRAW_DEFAULT);
        menu.AddItem(NULL_STRING, "-1", g_iColor[g_iPicked - 2] <= 0 ? ITEMDRAW_DISABLED : ITEMDRAW_DEFAULT);
        menu.AddItem(NULL_STRING, "-10", g_iColor[g_iPicked - 2] <= 0 ? ITEMDRAW_DISABLED : ITEMDRAW_DEFAULT);
    }

    menu.ExitBackButton = true;
    menu.Display(iClient, 0);
}

public int SecondMenu_Handler(Menu menu, MenuAction action, int iClient, int param2)
{
    switch(action)
    {
        case MenuAction_End: delete menu;
        case MenuAction_Cancel:
        {
            if(param2 == MenuCancel_ExitBack)
            {
                PrintMenu(iClient);
            }
        }
        case MenuAction_Select:
        {
            if(g_iPicked < 2)
            {
                switch(param2)
                {
                    case 1: g_fCord[g_iPicked] += 0.1;
                    case 2: g_fCord[g_iPicked] += 0.01;
                    case 3: g_fCord[g_iPicked] -= 0.01;
                    case 4: g_fCord[g_iPicked] -= 0.1;
                }
            }
            else
            {
                switch(param2)
                {
                    case 1: g_iColor[g_iPicked - 2] += 10;
                    case 2: g_iColor[g_iPicked - 2] += 1;
                    case 3: g_iColor[g_iPicked - 2] -= 1;
                    case 4: g_iColor[g_iPicked - 2] -= 10;
                }
            }

            SecondMenu(iClient);
        }
    }
}

 

 

Zdjęcia

 

SHU_1558512890205-2938.png.f22ee40a282ec53786610a513cc7c80f.png

SHU_1558512903651-2969.png.75e8b36bab99ebce896ea2d6d82c13f1.png

 

Master_Hud_Manage.sp
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! 2
  • Dobry pomysł! 1
  • Kocham to! 2

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.

Nasza historia

Na początku byliśmy małą grupą internetowych znajomych, którzy stwierdzili, że potrzebne jest solidne forum, na którym znajdą się ludzie z dużą wiedzą programistyczną ukierunkowaną na CS:GO. Pomysł powstał na początku 2018 roku, a parę miesięcy później, 19 kwietnia, powstała ta strona internetowa. Jako alternatywna odpowiedź na inne tego typu miejsca, poważnie podeszliśmy do tematu, najpierw tłumacząc angielską dokumentację SourceMod'a na język polski, a potem pisząc rozległe poradniki i wypełniając forum najpotrzebniejszymi rzeczami dla właścicieli serwerów i programistów. Cała nasza Ekipa jest dumna z pracy jaką w to włożyliśmy i cieszymy się że zbierają się wokół nas zarówno ludzie znający tematy sourcepawn'a i konfiguracji, jak i również nowe twarze w tym "biznesie", którym z chęcią niesiemy wiedzę oraz pomoc w rozwiązywaniu problemów.

Największe modyfikacje serwerowe

×
×
  • Create New...