Skocz do zawartości

Rekomendowane odpowiedzi

Plugin nie jest w 100% napisany przeze mnie. Wycinki kodu kopiowałem z innego pluginu. Link w sp.

Opis działania:

Plugin drukuje na chat odpowiedni komunikat po wpisaniu danej komendy.

Konfiguracja komend: addons/sourcemod/configs/komendy_chat/

 

Instalacja standardowa

 

Przykładowe cfg:

"menu" 
{
	"1"
	{
		"komenda" "sm_ip"
		"chat" "{lightblue}IP naszego serwera to: {lightred} Jakiś dzban nie edytował cfg"


	}
	"2"
	{
		"komenda" "sm_test"
		"chat" "{lightblue}Testowy tekst"


	}
	"3"
	{
		"komenda" "sm_dc"
		"chat" "{lightblue}Adres Discord: {lightred}Trzeba tu coś wpisać"


	}
	"4"
	{
		"komenda" "sm_dsc"
		"chat" "{lightblue}Adres Discord: {lightred}Trzeba tu coś wpisać"


	}
	"5"
	{
		"komenda" "sm_hacker"
		"chat" "{lightred}Do bana go"


	}


}

 

Kod pluginu:

// Udostępnijcie to sobie gdzie tylko chcecie, tylko autora nie zmieniajcie
// Plugin nie jest w 100% napisany przeze mnie
// Niektóre wycinki kodu brałem z pluginu, do którego link znajduje się niżej
// https://github.com/nushnush/Custom-Links/blob/main/sourcemod/scripting/links.sp

#pragma semicolon 1
#pragma newdecls required

#include <sourcemod>
#include <multicolors>

ArrayList Akomenda, Achat;
// Info o pluginie
public Plugin myinfo =  
{
	name = "Komendy na chat", 
	author = "Hacker", 
	description = "Wyswietla daną zawartość po wpisaniu komendy.",
	version = "1.0", 
	url = "http://steamcommunity.com/profiles/76561198869954658"
};


public void OnPluginStart() 
{
    Akomenda = new ArrayList(ByteCountToCells(64));
    Achat = new ArrayList(ByteCountToCells(512));
    LoadConfig();
}



void LoadConfig() 
{
    char komenda[16], chat[128], path[PLATFORM_MAX_PATH];
    BuildPath(Path_SM, path, sizeof(path), "configs/komendy_chat.cfg");
    
    // Sprawdzanie błędów
    if(!FileExists(path)) 
    {
        SetFailState("Plik konfiguracjyny %s nie został odnaleziony", path);
        return;
    }

    KeyValues kv = new KeyValues("menu");
    // Sprawdzanie błędów
    if (!kv.ImportFromFile(path)) 
    {
        SetFailState("Błąd odczytu danych z pliku konfiguracyjnego");
        delete kv;
        return;
    }

    kv.GotoFirstSubKey();
    //Pobieranie danych z kv
    do { 
        kv.GetString("komenda", komenda, sizeof(komenda));
        Akomenda.PushString(komenda);
        kv.GetString("chat", chat, sizeof(chat));
        Achat.PushString(chat);
        RegConsoleCmd(komenda, drukowanie);
        }



    while (kv.GotoNextKey());
    delete kv;
    return;
}

public Action drukowanie(int client, int args)
{
    char komenda[16], chat[128];
    GetCmdArg(0, komenda, sizeof(komenda));
    Achat.GetString(Akomenda.FindString(komenda), chat, sizeof(chat));
    CPrintToChat(client, chat);
}

 

 

 

komendy_chat.cfg

 

 

 

 

wyswietlaniekomend.sp wyswietlaniekomend.smx

Edytowane przez Hacker

Sygnatura użytkownika

unknown-1.png.eda78223b62a819c2d0eca0917cca7dd.png

  • Lubię to!
  • Dziękuję
  • Dobry pomysł!
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ostatnio przeglądający ten temat (5 użytkowników)

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...