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 serwera SRCDS, którego podstawową funkcja jest administracja serwerem. Jednakże można go dosłownie napchać masą dodatków zmieniając prawie wszystkie aspekty w grze - od rozszerzenia i uproszczenia komend w administracji, poprzez restrykcje broni, kończąc na totalnych konwersjach, gdzie ostateczny wygląd gry zupełnie nie przypomina oryginalnej rozgrywki.

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, orangebox/tf dla Team Fortress 2 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/

Aktualizacja

Przy aktualizacji SourceModa kompatybilność z poprzednimi wersjami jest zachowana, no może poza bardzo rzadkimi wyjątkami.

  • Jeśli aktualizujesz do wersji stabilnej (nie do nocnych zrzutów) sprawdź informację o wydaniu w celu znalezienia dokładnych instrukcji.
  • Zaktualizuj wszystkie pliki typu .so/.dll w poniższych folderach:
    • sourcemod/bin
    • sourcemod/extensions
  • Zaktualizuj wszystkie pliki .txt w folderze sourcemod/gamedata.
  • Zaktualizuj wszystkie pliki .txt w folderze sourcemod/translations.
  • Zaktualizuj wszystkie standardowe pliki .smx w folderze sourcemod/plugins.
  • Przeczytaj informację o wydaniu aby dowiedzieć się czy jakieś pliki konfiguracyjne zostały zmienione. Jeśli tak, trzeba sprawdzić jaki co się zmieniło aby to poprawnie ustawić.


Nota: Jeśli jakiś plugin przestał działać po aktualizacji SourceModa wyślij informacje do twórców, oni zajmą się tym.

Nota: jest niezwykle ważne aby uaktualnić wszystkie pliki w folderze gamedata, pliki te odpowiadają za współpracę z konkretnymi modami na których działa SourceMod.

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 w SourceMod 1.1 i wyższych.

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_reserved_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 w SourceMod 1.1 i wyższych.

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 w SourceMod 1.1 i wyższych.

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")

Lista Pluginów

Poniżej jest przedstawiona lista standardowych pluginów jakie oferuje SourceMod.

Pluginy z wytłuszczoną nazwą nie myszą być wyłączane podczas trwania meczy, nie przeszkadzają w niczym ani nie dają przewagi.

Standardowe Pluginy

Plugin Opis Pluginu
admin-flatfile Ładuje listę adminów z pliku konfiguracyjnego.
adminhelp Udostępnia komendę sm_help (lista wszystkich komend wraz z opisem).
adminmenu Zapewnia menu admina oraz główne funkcje.
antiflood Zapobiega spamowaniu na chacie w grze przez graczy.
basebans Zapewnia podstawowe komendy banowania oraz menu banowania.
basechat Zapewnia komendy do pisania na ekranie.
basecomm Umożliwia zarządzanie komunikacją głosową graczy.
basecommands Zapewnia podstawowe komendy administracyjne (np. zmianę mapy, zmianę ustawień, kopanie graczy).
basetriggers Odpowiada za obsłygę zdarzeń na chacie takich jak "nextmap", "thetime" i "timeleft".
basevotes Zapewnia podstawowe komendy do głosowania (np na zmianę mapy).
funcommands Zapewnia "śmieszne" komendy np. slapowanie.
funvotes Zapewnia głosowania na "śmieszne" dla zabawy.
nextmap Pozwala adminom lub innym pluginom na dynamiczne zarządzanie mapcyklem.
reservedslots Udostępnia zarezerwowane sloty dla adminów (lub uprzywilejowanych graczy).

Ekstra Pluginy

Poniższe pluginy są standardowo wyłączone i znajdują się w addons/sourcemod/plugins/disabled, aby ich użyć trzeba je wkleić do folderu z pluginami.

Plugin Opis Pluginu
admin-sql-prefetch Ładuje adminów z bazy SQL podczas zmiany mapy. Jeśli ten plugin jest włączony to admin-sql-threaded musi być wyłączony.
admin-sql-threaded Ładuje adminów z bazy SQL dynamicznie, podczas połączenia się gracza z serwerem. Jeśli ten plugin jest włączony to admin-sql-prefetch musi być wyłączony.
mapchooser Zapewnia automatyczny system głosowań na następną mapę.
randomcycle Losuje nastepną mapę z mapcyklu.
rockthevote Zapewnia system głosowań na mapę zainicjowany przez graczy.


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

Tłumaczenie zostało oficjalnie dodane do SourceMod'a 1.1! Autorzy: Zuko / Trawiator

Linki

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