SourceMod
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
- metamod - Metamod:Source
- addons
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
- sm_reserve_type <0|1|2>
- sm_reserved_slots <#>
- sm_hide_slots <0|1>
- sm_reserve_maxadmins <#>
- sm_reserve_kicktype <0|1|2>
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