SourceMod

Od HLDS.pl
Skocz do: nawigacji, wyszukiwania

Ten artykuł jest niepełny i wymaga uzupełnienia. Jeżeli jesteś w stanie - postaraj się go uzupełnić.. Pamiętaj, że nawet najmniejsza zmiana jest cenna i pomocna :)



Spis treści

Opis

SourceMod jest dodatkiem do serwerów Source, którego funkcjonalność ma być podobna jak AMX Mod X pod serwery Half-Life. Czyli umożliwia pisanie skryptów bazujących na języku Small/PAWN podobnie jak AMX Mod X. Jednakże nie będzie to AMX Mod X, tylko coś działającego na tej zasadzie.

Wymagania

  • SourceMod wymaga do działania zainstalowanego Metamod:Source w wersji co najmniej 1.4.2 lub wyższej.

Instalacja

Właściwie to cały proces instalacji sprowadza się do wrzucenia zawartości ściągniętego archiwum (trzeba pamiętać że archiwum .zip jest przeznaczone dla Windows a archiwum .tar.gz dla Linuxa) do folderu z grą, cstrike dla Counter-Strike: Source, dod dla Day of Defeat: Source, itp. itd.

Sprawdzanie Instalacji

Struktura folderów na serwerze powinna wyglądać mniej więcej tak:

  • [mod] - Folder twojego moda (cstrike, dod, itp.)
    • addons
      • metamod - Metamod:Source
        • sourcemod.vdf
      • sourcemod - SourceMod
        • bin
        • configs
        • data
        • extensions
        • gamedata
        • logs
        • plugins
        • scripting
        • translations
      • ... - Ewentualne inne mody

Gdy już wykonałeś(aś) poprzednie części instalacji trzeba teraz wyłączyć i włączyć serwer ponownie. Gdy serwer już się obudzi trzeba sprawdzić czy instalacja zakończyła się pomyślnie.

Po pierwsze w konsoli serwera trzeba wpisać:

meta list

Jeśli wszystko jest ok powinno wyświetlić się mniej więcej coś takiego:

] meta list
-Id- Name                  Version     Author           Status  
[01] SourceMod (1.1.0.2004) by AlliedModders LLC

Teraz będzie można używać głównych komend SourceModa, które można zobaczyć wpisując:

sm

Dla przykładu:

] sm version
SourceMod Version Information:
SourceMod Version: 1.1.0.2004
JIT Version: JIT (x86), 1.1.0.1997
JIT Settings: Generic i686
http://www.sourcemod.net/

Konfiguracja

Dodawanie Adminów

SourceMod posiada szczegółowy oraz skalowalny system administracji, który na pierwszy rzut oka może być nieco przerażający. Jednakże jakby mu się dokładniej przyjrzeć jest bardzo prosty i logiczny. Wszystko opiera się na "flagach" dostępu, dzięki którym można nadać specyficzne przywileje administratorom.

W tej chwili są trzy sposoby przechowywania adminów. Pierwszy sposób to "płaski" plik (tak jak w AMX i AMXX, drugi, bardziej kompleksowy, za pomocą pliku ze strukturą drzewa (tak jak w Mani Admin Plugin) oraz ostatni sposób, baza SQL (patrz SourceBans).

SourceMod wspiera standardowo trzy metody autoryzacji adminów:

  • SteamID (unikatowy dla kont Steam)
  • Adres IP (pół unikatowy, najlepszy dla sieci LAN)
  • Nick (wymaga ustawiania hasła)

Poziomy

Wpierw zobaczmy jak wyglądają flagi dostępu:

Nazwa Flaga Cel użycia
rezerwacja a Zapewnia dostęp do zarezerwowanego slotu.
Ogólna b Admin ogólny; flaga wymagana aby mieć admina.
kopanie c Można kopać innych graczy.
banowanie d Można banować innych graczy.
odbanowanie e Usuwanie banów.
zgładzenie f Natychmiastowe zabicie innych graczy.
zmiana mapy g Możliwość zmiany mapy i niektórych opcji gry.
cvar (zmienna) h Możliwość zmiany większości cvarów (zmiennych).
konfigi i Możliwość wczytywania plików konfiguracyjnych (konfigów).
chat j Możliwość używania pisania na środku ekranu itp.
głosowania k Rozpoczynanie i tworzenie głosowań.
hasło l Możliwość ustawienia hasła na serwer.
rcon m Możliwość użycia komend RCON.
oszustwa n Możliwość zmiany wartości opcji sv_cheats.
root z W magiczny sposób zawiera wszystkie powyższe flagi dostępu.

Immunitet

W SourceMod, system immunitetów bazowany jest na poziomach immunitetów. Każdy admin może mieć przypisany różny poziom immunitetu. Admin z wyższym poziomem immunitetu nie może byc celem admina o niższym poziomie.

Obrazowo można to przedstawić w następujący sposób. Admin #1 ma poziom immunitetu ustawiony na "3", Admin #2 ma immunitet ustawiony na "10. Admin #2 może wykopać/zbanować/zgładzić bez najmniejszych problemów Admina #1. Natomiast Admin #1 nie może nic zrobić adminowi #2. Liczby jakie są stosowane w poziomach immunitetu muszą być większe lub równe zeru, przy czym zero oznacza zawsze brak immunitetu.

Standardowo admini z tym samym poziomem immunitetu nie mogą sobie na wzajem nic zrobić. Opcja ta może zostać zmieniona za pomocą sm_immunity_mode w cfg/sourcemod.cfg.


Hasła

Aby hasła działały administrator serwera musi najpierw ustawić "PassInfoVar" w addons/sourcemod/configs/core.cfg. Na przykład:

"PassInfoVar"			"_sm1337"
Następnie jeśli admin posiada hasło musi je ustawić za pomocą setinfow konsoli. Na przykład, używając przykładu znajdującego się nieco niżej, BAILOPAN będzie musiał wpisać:
setinfo "_sm1337" "Gab3n"

Aby nie trzeba było nic wpisywać w konsoli gry przed połączeniem się do serwera można stworzyć plik "autoexec.cfg" w folderze gry. Plik powinien się znaleźć w katalogu SteamApps\Nazwa Konta\Nazwa Gry\Skrócona nazwa gry\cfg, czyli na przykład:

  • C:\program files\steam\steamapps\bailopan\counter-strike source\cstrike\cfg

Prości admini (Sposób "płaski")

Najprostszą drogą dodania administratorów prowadzi przez plik configs/admins_simple.ini. Wpis do "płaskiego" pliku jest o tyle prosty że wymaga on podania tylko dwóch parametrów na admina: informacji o autoryzacji oraz flag. Wpis z flagami jest na pewien sposób skalowalny i może wyglądać na jeden z poniższych sposobów:

  • Opcjonalna wartość poziomu immunitetu, poprzedzona znakiem dwukropka (':');
  • Ciąg liter z flagami;

lub

  • Nazwa grupy, poprzedzona symbolem '@'.

Poniżej kila przykładów:

"STEAM_0:1:16"		"bce"			//kop, ban, zgładzenie. bez immunitetu
"!127.0.0.1"		"5:z"			//wszystkie flagi dla tego IP, poziom immunitetu 5.
"BAILOPAN"		"abc"	"Gab3n"		//Nick BAILOPAN, hasło "Gab3n" (patrz rozdział Hasła): dostaje rezerwacje, kopy i bany.


Dokładni admini (plik ze strukturą drzewa)

Drugim sposobem jest dodanie adminów za pomocą pliku configs/admins.cfg, który jest bardziej zaawansowanym sposobem przechowywania kont administratorów. Każdy admin posiada tutaj swój blok wewnątrz głównego bloku "Admin". Format taki prezentuje się następująco:

Admins
{
	"Nazwa Admina"
	{
		"auth"		"[steam|nick|ip]"
		"identity"	"[unikalne id]"
		"[opcja1]"	"[wartość1]"
		"[opcja2]"	"[wartość2]"
		/* .... */
	}
}

Dostępne są następujące opcje:

  • auth: Wymagane. musi być jednym z następujących typów steam, name lub ip które mówią SourceMod jak ma interpretować wartość identity.
  • identity: Wymagane. Unikalna wartość pozwalająca nadać uprawnienia admina danej osobie.
  • password: Opcjonalne. Ustawia jakie hasło będzie wymagane aby nadać admina.
  • group: Opcjonalne. Precyzuje do jakiej grupy należny admin. Admin może należeć do kilku grup jednocześnie. Przed nazwą grup nie może być już symbol '@'.
  • flags: Opcjonalna. Domyslne flagi jakie otrzyma admin.
  • immunity: Opcjonalna. Domyslny poziom immunitetu jaki otrzyma admin.

Przykład:

Admins
{
	"BAILOPAN"
	{
		"auth"		"steam"
		"identity"	"STEAM_0:1:2345"
		"flags"		"abcdef"
		"immunity"	"5"
		"group"		"Niesamowici Admini"
	}

	"Niebieski Krab"
	{
		"auth"		"steam"
		"identity"	"STEAM_0:1:666"
		"flags"		"z"
		"immunity"	"99"
	}
}

Rezerwacja Slotów

Komendy

Typ Rezerwacji

sm_reserve_type <0|1>

Ta zmienna kontroluje w jaki sposób rezerwacja slotów działa na serwerze (standardowo ustawiona jest na 0).

  • sm_reserve_type 0

Sloty publiczne będą zajmowane przed slotami zarezerwowanymi, natomiast sloty zarezerwowane będą zwalniane jako pierwsze. Raz zajęty slot będzie "okupowany" przez gracza póki nie wyjdzie on z gry, nikt na serwerze nie będzie dostawał kopów aby zrobić miejsce. Jeśli serwer jest pełny i wszystkie sloty zarezerwowane zajęte to osoba która mimo posiadania rezerwacji slota nie połączy się.

  • sm_reserve_type 1

Jeśli ktoś z rezerwacją slota połączy się, gracz z najwyższym pingiem i bez rezerwacji slota zostanie wykopany (na pierwszy ogień idą obserwatorzy) aby zwolnić miejsce. W tym wypadku zarezerwowane sloty są zawsze wolne, dzięki temu na serwer w każdej chwili może wejść osoba z rezerwacją slota.

  • sm_reserve_type 2 - Dostępne tylko w wersji testowej SourceMod 1.1.

W zasadzie to samo co sm_reserve_type 1 za wyjątkiem tego że jeśli wyczerpie się ilość slotów (patrz sm_reserve_maxadmins), plugin przestanie wykopywać graczy i zacznie się zachowywać jak sm_reserve_type 0.

Zarezerwowane Sloty

sm_reserve_slots <#>

Ta zmienna kontroluje ile slotów ma być zarezerwowanych (standardowo 0)

W użyciu z sm_reserve_type 0 ustawia ile osób może podłączyć się z serwerem gdy będą zapełnione sloty publiczne. W użyciu z sm_reserve_type 1 ustawia ile slotów jest zarezerwowanych dla przełączania adminów (możesz potrzebować więcej niż jednego).

Ukryte Sloty

sm_hide_slots <0|1>

Kontroluje czy plugin ma ukrywać zarezerwowane sloty (standardowo 0).

Jeśli ukrywanie slotów jest włączone to sloty ukryte nie są widoczne w przeglądarce serwerów. Na przykład jeśli serwer ma 24 sloty, z czego są 2 zarezerwowane to w przeglądarce serwerów będzie widoczny jak by miał 22 sloty. Aby połączyć się z takim serwerem trzeba w konsoli wpisać 'connect ip:port' (np. 'connect 192.168.1.100:27015')

Niestety nie ma możliwość zrobienia aby slot był ukryty dla zwykłego gracza a widoczny dla admina. Autoryzacja admina odbywa się dopiero gdy ten się w pełni połączy z serwerem i SourceMod może sprawdzić SteamID. Z tego powodu lepiej jest ukrywać sloty, zapobiegnie to łączeniu się a później wykopaniu zwykłych graczy oraz umożliwi w pełni używanie funkcji ‘autojoin’.

Ilość Adminów

sm_reserve_maxadmins <#> - Dostępne tylko w wersji testowej SourceMod 1.1.

Ta zmienna kontroluje ile adminów może się połączyć na zarezerwowany slot (tylko w przypadku ustawienia sm_reserve_type 2).

Sposób Usuwania z Serwera

sm_reserve_kicktype <0|1|2> - Dostępne tylko w wersji testowej SourceMod 1.1.

Ta zmienna kontroluje na jakiej podstawie gracze będą usuwani z serwera (tylko dla sm_reserve_type 1 i 2).

0 - Najwyższy Ping 1 - Najdłużej Grający 2 - Losowy Gracz

Gracze z rezerwacją slota oraz gracze posiadający 'sm_reskick_immunity' nie mogą zostać wykopani. Obserwatorzy są wykopywani zawsze przed grającymi.

Immunitet

Aby uniemożliwić wykopanie gracza z powodu rezerwacji slotów trzeba my nadać/nadpisać dostęp do 'sm_reskick_immunity' (użytkownicy z flagą 'root' i rezerwacją slotów są już "odporni").

Notka: Ma to zastosowanie tylko przy sm_reserve_type 1 i 2.

Można bardzo łatwo nadpisać dostęp używając admin_overrides.cfg (np. "sm_reskick_immunity" "o" - aby dać wszystkim użytkownikom z flagą 'o' (własna flaga 1) immunitet na rezerwacje slota).

Lub

Nadać dostęp grupie przez dopisanie w admin_groups.cfg (np. "sm_reskick_immunity" "allow")

Tłumaczenie

Tłumaczenie SourceModa wykonane przez Zuko i Trawiatora znajduje się w oficjalne bazie językowej SourceModa, ma ono zostać dodane do finalnej wersji SourceMod 1.1.

Niekompletne tłumaczenie jest tutaj: SourceMod tlumaczenie

Linki

Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia