Przejdź do treści

Console Commands - polecenia konsoli

Ten Pakiet pozwala na tworzenie nowych poleceń konsoli dostępnej po naciśnięciu klawisza F2 w trybie marvin.

Zależności

Inicjalizacja

Zainicjuj za pomocą flagi LeGo_ConsoleCommands.

LeGo_Init(LeGo_ConsoleCommands);

Implementacja

ConsoleCommands.d na GitHubie

Funkcje

CC_Register

Rejestruje nowe polecenie konsoli.

func void CC_Register(var func f, var string cmdPrefix, var string description)
Parametry
  • var func f
    Ta funkcja jest wykonywana po wprowadzeniu polecenia cmdPrefix w konsoli. Sygnatura funkcji to func string f(var string p0). Przekazany string to wszystko, co zostało określone w konsoli po faktycznym poleceniu. Zwracana wartość jest następnie wyświetlana w konsoli.
  • var string cmdPrefix
    Jest to polecenie, które można wprowadzić w konsoli.
  • var string description
    Ten tekst pojawia się obok polecenia (w zSpy), gdy używasz polecenia help w konsoli.

CC_Remove

Usuwa funkcje z konsoli komend.

func void CC_Remove(var func f)
Parametry
  • var func f
    Ta funkcja zostanie usunięta, a powiązane z nią polecenie przestanie działać.

CC_Active

Sprawdza, czy dana funkcja jest już częścią polecenia konsoli.

func int CC_Active(var func f)
Parametry
  • var func f
    Sprawdzana funkcja

Zwracana wartość

Funkcja zwraca TRUE jeśli znajdzie odpowiednią funkcję, inaczej FALSE.

Przykłady

Proste polecenie konsoli

Jako prosty przykład stwórzmy polecenie version, które wyświetli nam wersję modyfikacji. Po pierwsze, deklarujemy stałą zmienną string do przechowywania informacji o wersji.

const string Mod_Version = "Wersja modyfikacji - 0.1alpha";
Następnie tworzymy nową funkcję.

Note

Zwróć uwagę na poprawną sygnaturę funkcji. Jeśli będzie ona błędna, polecenie spowoduje awarię gry.

1
2
3
4
5
// Ta funkcja jest wywoływana przez nasze nowe polecenie
func string CC_ModVersion(var string param)
{
    return Mod_Version;
};
Następnie musimy zarejestrować polecenie. Dla wygody stworzyłem nową funkcję RegisterConsoleFunctions, która inicjuje wszystkie polecenia konsoli. Funkcja jest naprawdę prosta.
1
2
3
4
func void RegisterConsoleFunctions()
{
    CC_Register (CC_ModVersion, "version", "Wersja mojej modyfikacji.");
};
Na koniec musimy wywołać tę funkcję w INIT_GLOBAL.
func void INIT_GLOBAL()
{
    Game_InitGerman(); // tylko w G2

    // Inicjalizacja Ikarusa
    MEM_InitAll();

    // Inicjalizacja LeGo
    LeGo_Init(LeGo_ConsoleCommands);

    // Tutaj rejstrujemy nasze polecenia
    RegisterConsoleFunctions();

    // Reszta kodu
};