Aktualna Stabilna wersja: 1.0.3.3
Aktualna Wersja Beta: v2.0 RC2





[Dodano cvar redirect_countbots↵ ale tylko do opisu. W pluginie już był.

Przede wszystkim, jeśli jesteś zbyt leniwy, aby przeczytać wszystkiego to nie męcz nas problemami lub pytaniami tylko zajrzyj do

Dzięki temu pluginowi możemy się łączyć w czasie gry z innymi serwerami które są dostępne na serwerze poprzez wpisanie w say: /server
To nie prosty plugin dla prostych ludzi, którzy chcą czegoś więcej niż tylko kilka prostych funkcji. Jeśli nie jest to, co chcesz, to ok. Potem wystarczy przejść wzdłuż.
Plugin nie jest łatwy do zainstalowania. Ale nie może być trudny, bo jest uruchomiony na setki serwerów. Ja tylko miałem powiedzieć, że nie chcę mieć coś znowu podobnego do tego.
Dla tych, którzy chcą uczestniczyć w kodowaniu pluginu, kod odniesienia jest tutaj. Można również wygenerować go od źródła (z 1.0RC2 i powyżej) przy użyciu kompilatora opcji-r.
Jeśli chcesz wiedzieć, jak wiele serwerów jest uruchomiony można szukać na tej stronie . Dzięki Bailopan za dodanie go w tym momencie.
Chcesz znaleźć serwery gdzie ten plugin jest uruchomiony? Użyj tego.
Plugin ten robi wiele rzeczy, które mogą być włączone lub wyłączone niezależnie od CVARów:
● po uruchomieniu go czyta dostępne serwery z SERVERFILE (amxmodx/config/serverlist.ini)
● say: /server pokazuje listę dostępnych serwerów (jeśli redirect_manual 1) - ludzie mogą wybrać numer z listy i są natychmiast przełączani do serwera
● gdy serwer jest pełny, są automatycznie przełączani do serwera losowego lub następnego z listy - redirect_auto kontroluje to
● limit można ustawić ile administratorów może być w tym samym czasie
● kiedy serwer z listy jest pełny albo zdechł to jest wyłączony w menu i gracze nie są przekierowani tam automatycznie - a by sprawdzić czy server zdechł redirect_check_method wynosić musi >0 i sprawdzić czy jest pełny przy pomocy redirect_check_method większego od 1
● servery ogłaszają każde redirect_announce seconds - ustaw je na 0 aby wyłączyć to ogłaszanie, lista serverów jest pokazywana jako wiadomość HUD dla żywych graczy na górze, a dla trupów gdzieś na ekranie, więc nie jest zakrywana przez "spectator bars" (paski oglądających
); jak dużo informacji ma wiadomość zależy od check_methodOsoby używające więcej niż 3 wykrzykników lub pytajników to osoby z zaburzeniami własnej osobowości
● zalożność od redirect_check_method może być sprawdzona przez bycie serwerwa full/off a nawet obecnej mapie, liczba obecnych graczy i maksymalnych ich liczbie może być wyświetlana w menu i w ogłoszeniach - kiedy nie ma serevera na automatyczne przekierowanie, gracz jest wywalany z odpowiednią wiadomością
● gdy ktoś jest przekierowywany ręcznie lub automatycznie, innym graczom wyświetla się wiadomość kto się przełączył i na jaki serwer
● jest również ogłoszenie, że ludzie mogą powiedzieć /follow i przełączają się tam gdzie przełączał się ostatni przełączający się gracz, funkcja może być włączona lub wyłączona przez CVAR (redirect_follow)
● plugin jest w różnych językach (a więc musisz umieścić xredirect.txt w amxmodx/data/lang/)
● serwer może pokazać, kto przychodzi i jakiego serwera się przełączył
● własny adres IP jest wykrywany i automatycznie wyłączany na liście serwerów - automatyczne wykrywanie nie działa, jeśli używasz nazw DNS w SERVERFILE - w tym przypadku należy ustawić adres serwera DNS na własny serwer w redirect_external_address do wykrywania do pracy - wykrywania własnych serwerów.
● kiedy CVAR redirect_retry jest ustawiony na 1 serwer może umieścić ludzi w kolejce, aby ponowić próbę być przekierowany z powrotem do ostatniego serwera (np. gdy są one automatycznie przekierowywane, ale tylko chcesz grać na serwerze są też podłączone)
● lista serwerów może być załadowana z bazy SQL (tylko w wersji beta)
● statystyki na temat przekierowań mogą być zapisane do pliku i vault albo do bazy SQL (tylko w wersji beta)

● xredirect.amxx / xredirect-beta.amxx--> /plugins
● xredirect.sma / xredirect-beta.amxx --> /scripting
● xredirect.inc --> /scripting/include - tylko jakbyś chciał kompilować
● (trzeba plik stworzyć) serverlist.ini --> /configs
● xredirect.txt --> /data/lang
● xredirect.sql.txt --> (tylko w wersji beta) jeżeli używasz SQL: uruchom ten skrypt na swojej bazie danych

● say /server - pokaż menu aby przełączyć się na jakiś serwer
● say_team /server - pokaż menu aby przełączyć się na jakiś serwer
● pickserver - pokaż menu aby przełączyć się na jakiś serwer
● say /follow - podążaj za ostatnim przełączonym graczem na serwer na który się przełączył
● say_team /follow - podążaj za ostatnim przełączonym graczem na serwer na który się przełączył
● say /retry - ponów połączenie z ostatnim serwerem jakim chciałeś się połączyć jeśli był pełny
● say_team /retry - ponów połączenie z ostatnim serwerem jakim chciałeś się połączyć jeśli był pełny
● say /stopretry - zatrzymaj ponawiane łączenie się z serwerem
● say_team /stopretry - zatrzymaj ponawiane łączenie się z serwerem
● redirect_announce_now - ogłoś listę servera natychmiast, wymagany dostęp - ADMIN_KICK
● redirect_user - <playername|playerid> [servernum] - przełącz gracza [na dany serwer], wymagany dostęp - ADMIN_KICK
● redirect_queue - pokazuje aktualną kolejkę do przekierowań, wymagany dostęp - ADMIN_KICK
● redirect_stats - pokazuje statystyki na temat przekierowań, wymagany dostęp - ADMIN_KICK, dostępne tylko wtedy gdy SQL nie jest używany

CVARy, muszą być wpisane do amxx.cfg. Dopiero ustawienie ich za pomocą konsoli (bezpośrednie, ssh, rcon, hLSW ...) jest problematyczne z kilku powodów.
● redirect_active - 1/0 włącza/wyłącza plugin - jeśli jest to ustawione na 0 wszystkie inne CVARy, są ignorowane, domyślnie 1
● redirect_auto
-- 0 = wyłączyć automatyczne przekierowanie gdy serwer jest pełny
-- 1 = gdy serwer jest pełny, przekierowuje na serwer losowo z listy
-- 2 = gdy serwer jest pełny, przekierowuje na następny serwer z listy
-- 3 = zawsze przekierowuje (nawet jeżeli serwer jest pusty) z wyjątkiem administratorów, przekierowanie na losowegy serwer
-- 4 = zawsze przekierowuje (nawet jeżeli serwer jest pusty) z wyjątkiem administratorów, przekierowuje na następny serwer z listy
-- 5* = zawsze przekierowuje (nawet jeżeli serwer jest pusty) w tym administratorzy, przekierowanie na losowy serwer
-- 6* = zawsze przekierowuje (nawet jeżeli serwer jest pusty) w tym administratorzy, przekierowuje na następny serwer z listy
domyślnie 0
(* Jeśli chcesz tylko przekierować ludzi ze starego serwera na nowy podczas okresu przejściowego, należy rozważyć użycie T E G O pluginu, łatwiejsze w obsłudze i ma wszystko co potrzeba)
Zależności:
Kiedy redirect_check_method jest ustawiony na 2 automatyczne przekierowanie wykryje, gdy serwer jest pełny i nie przekieruje do niego - w przeciwnym razie nie będzie można wykryć i przekieruje gracza na pełny serwer
Kiedy redirect_check_method jest ustawiony na 1 automatyczne przekierowanie wykryje, gdy serwer nie odpowiada i nie przekieruje do niego – w przeciwnym razie nie będzie można wykryć i przekieruje gracza na wyłączony serwer
● redirect_manual
-- 0 = wyłącza ręczne przekierowanie w say: /server
-- 1 = umożliwia ręczne przekierowanie w say: /server
-- 2 = umożliwia ręczne przekierowanie w say: /server i pokazuje podmenu kiedy gracz nie może zostać przekierowany
-- 3 = umożliwia ręczne przekierowanie w say: /server i zawsze pokazuje podmenu z którego gracz może zdecydować się na przekierowanie (jeśli to możliwe)
domyślnie 0
Zależności
Informacje kiedy serwer jest offline, można zobaczyć tylko gdy redirect_check_method jest ustawiony na 1 albo 2 – w przeciwnym wypadku każdy serwer będzie online i będzie można do niego przejść
Informacje (mapa i ilość graczy) może zostać wyświetlona tylko gdy redirect_check_method jest ustawony na 2 – w przeciwnym wypadku tego nie będzie
● redirect_follow
-- 0 = wyłącza śledzenie gracza poprzez komende /follow na serwer gdzie dany gracz się przekierował – oczywiście ludzie mogą nadal używać /server aby pójść na ten sam serwer
-- 1 = włącza śledzenie gracza poprzez komende /follow na serwer gdzie dany gracz się przekierował
● redirect_external_address - To ustawienie jest konieczne, jeśli chcesz przekierować do nazw DNS zamiast adresów IP, np. jeśli adres= w pliku serverlist.ini jest world1.n-ice.org zamiast 85.10.209.243. Jeśli nie wiesz jak to działa i jakie są nazwy DNS to pozostaw ustawienie puste
Dostępne ustawienia:
Zestaw własnych nazw DNS adres serwera zewnętrznego - potrzebne tylko w przypadku korzystania z nazw DNS zamiast adresów IP w SERVERFILE - to musi odpowiadać nazwie w SERVERFILE - włączając port!
Przykład:
redirect_external_address "my.cool.domain.example.com:27015"
● redirect_check_method - te ustawienie definiuje jakie informacje xREDIRECT odczytuje z innych serwerów na liście. Ma też wpływ jak menu ma być wyświetlane.
-- 0 = nie sprawdza innych serwerów
-- 1 = tylko ping (aby sprawdzić czy serwer jest online)
-- 2 = sprawdza aktualną ilość graczy, maximum możliwych graczy i aktualną mapę
● redirect_announce - to ustawienie określa, czy xREDIRECT ma ogłaszać serwery znajdujące się na liście serwerów
-- 0 = wyłącza ogłoszenie
-- "jakaś wartość większa od 0" = sekundy w jakim przedziale ma się wyświetlać ogłoszenie
domyślnie 60
Zależności
Jakie informacje są ogłoszane zależą od redirect_check_method
Kiedy redirect_check_method jest ustawiony na 1 albo 2 ogłoszenia będą pokazywały także czy serwer jest offline, jeśli nie odpowiada – w innym wypadku zawsze będzie pokazywało serwery online
Kiedy redirect_check_method jest ustawiony na 2 ogłoszenia będą pokazywały także czy serwer jest offline, jeśli nie odpowiada oraz aktualną/maksymalną liczbę graczy i jaka mapa – w przeciwnym wypadku nie będzie tych informacji w ogłoszeniach
● redirect_announce_mode - komu mają być wyświetlane ogłoszenia: 1 = żywi gracze, 2 = zmarli (także obserwatorzy), 3 = obaj, domyślnie 3
● redirect_announce_alivepos_x - wyświetlane komunikaty w pozycji pionowej z y dla żywych ludzi, domyślnie -1,0
● redirect_announce_alivepos_y - wyświetlane komunikaty w horyzontalnej pozycji na y dla żywych ludzi, domyślnie 0,01
● redirect_announce_deadpos_x - wyświetlane komunikaty w pozycji pionowej dla martwych ludzi, domyślnie -1,0
● redirect_announce_deadpos_y - wyświetlane komunikaty w horyzontalnej pozycji dla martwych ludzi, domyślnie 0,35
● redirect_show - to ustawienie określa, czy informacje na temat przekierowań innych graczy są wyświetlane w obszarze czatu.
-- 1 = włącza informacje w obszarze czatu
-- 0 = wyłącza informacje w obszarze czatu
domyślnie 1
● redirect_adminslots - to ustawienie określa, czy będzie traktować adminów w sposób szczególny. Może być również postrzegane jako funkcja VIP.
Kiedy włączone:
# VIP-y mogą korzystać z retry, nawet gdy funkcja jest wyłączona
# VIP-y mogą przekierować siebie na serwery z hasłem niepublicznym
# VIP-y mogą dołączyć na serwer z ustawionym adminslots = (określonym w serverlist.ini)
# VIP-y nie są automatycznie przekierowywane kiedy redirect_auto jest ustawiony na 3 lub 4
# gdy serwer jest pełny i VIP się łączy, xREDIRECT wyszukuje zwykłego gracza, który jest podłączony w najkrótszym czasie i przekierowuje go do jednego z innych serwerów lub wyrzuca go z serwera jeśli slot na jakimkolwiek innym serwerze jest niedostępny
-- 0 = Adminslots jest wyłączony
-- 1 = Adminslots jest włączony
domyślnie 0
Zależności:
Ustawienie daje efekty tylko kiedy redirect_auto jest ustawiony na 1 lub 2
● redirect_maxadmins - maksymalna liczba adminów, którzy mają imunitet automatycznego przekierowania
-- 0 = nieograniczona liczba adminów
-- 1-32 = maksymalna liczba adminów
domyślnie 0
● redirect_retry - to ustawienie określa, czy użytkownicy, którzy zostali przekierowani będą mogli użyć /retry i wejść na serwer kiedy zwolni się slot
-- 0 = wyłącza komendę /retry
-- 1 = włącza komendę /retry
● redirect_hidedown - ukrywanie serwerów które są offline (nie odpowiadają):
-- 0 = nie ukrywa
-- 1 = ukrywa w menu
-- 2 = ukrywa w ogłoszeniach
-- 3 = ukrywa w menu i ogłoszeniach
domyślnie 0
Zależności
Daje efekt tylko kiedy redirect_check_method jest ustawiony na 1 lub 2
● redirect_localslots - to ustawienie określa, czy gracze lokalni mają pierwszeństwo przed graczami z internetu. Może to zostać wykorzystane dla serwerów, które mają większość graczy LAN (np. granie w kafejce internetowej). Działa jak adminslots, przekierowuje graczy z internetu aby zrobić miejsce tym z sieci lokalnej
Lokalny gracz to ktoś, kto łączy się z lokalnego adresu, zgodnie z RFC 1918:
10.0.0.0 – 10.255.255.255
172.16.0.0 – 172.31.255.255
192.168.0.0 – 192.168.255.255
169.254.0.0 – 169.254.255.255
-- 0 = nie rezerwuj slotów dla lokalnych graczy
-- 1 = rezerwuj sloty dla lokalnych graczy
domyślnie 0
● redirect_countbots - czy plugin ma liczyć botów jako zwykłych graczy (do pokazywania w statusie)
1-- tak (domyślnie)
2 -- nie

PLIK LISTY SERWERÓW
Plik musi być w formacie ini. Opis:
● id = identyfikator serwera (używany do jednoznacznej identyfikacji w statystykach albo żeby pokazać gdzie gracz został przekierowany i skąd) Ustawienie to umożliwia mieć różne rozkazy w każdym serverlist.ini na każdym serwerze
● address = adres serwera (może być IP albo nazwa DNS)
● localaddress = adres serwera sieci lokalnej - niezbędne do określenia tylko kiedy gracze także mogą się połączyć z sieci lokalnej
● port = port serwera - wartość pomiędzy 1025 a 65536, domyślnie 27015
● cmdbackup = określa jak często żądanie UDP jest wysyłane do serwera (z redirect_check_method > 0), domyślnie 2
● noauto = 1 wyłącza automatyczne przekierowanie na dany serwer niezależnie jak redirect_auto jest ustawiony, 0 oznacza kontrolę przez redirect_auto, domyślnie 0
● nomanual = 1 wyłącza ręczne przekierowanie na dany serwer niezależnie jak redirect_manual jest ustawiony, 0 oznacza kontrolę przez redirect_manual, domyślnie 0
● nodisplay = jeśli jest ustawione na 1 to będzie ukrywać serwer z listy serwerów i komunikatów, domyślnie 0
● adminslots = jeśli jest ustawione na 1 plugin będzie przekierowywał ludzi tylko z zarezerwowanym slotem gdzie jest np. 12/13 graczy na danym serwerze gdzie się chce przejść, domyślnie 0
● password = hasło potrzebne aby wejść na serwer, domyślnie zostawione puste miejsce
● publicpassword = jeśli ustawione na 1, każdy gracz może się połączyć na serwer z hasłem, kiedy ustawione na 0 mogą przejść tylko admini, domyślnie 0
● private = jeżeli ustawione na 0, serwer nie jest prywatny; ustawienie na hide ukryje serwer w menu i ogłoszeniach dla graczy ale NIE dla adminów; ustawienie na fullhide jest jak hide ale nie wyświetla informacji "X został przekierowany do Y" kiedy admin się przekierował, domyślnie 0
● category = ustawienie to spowoduje przydzielenie danego serwera do danej kategorii, np.: "Serwery AIM MAP", nazwę należy wpisać bez cudzysłowia
Domyślna nazwa pliku to serverlist.ini
Ta nazwa może być zmieniona ale tylko edytując źródłowy plik .sma i skompilowany do formatu .amxx
serverlist.ini powinien wyglądać mniej więcej tak:
[pierwszy serwer] address=example.n-ice.org port=27015 cmdbackup=5 noauto=1 nomanual=1 nodisplay=0 [drugi serwer] address=example2.n-ice.org port=27015 private=hide category=Serwery AIM MAP
Wszystkie serwery muszą mieć takie same SERVERFILE. Oznacza to, że jeżeli masz serwer A i B oba serwery muszą mieć się na liście. Tak więc każdy serwer zawsze musi mieć siebie w swojej liście. W innym przypadku plugin nie będzie działać poprawnie.
Należy pamiętać, że przy użyciu więcej niż 5 serwerów w SERVERFILE musisz zmienić określenie MAX_SERVERFORWARDS i ponownie skompilować plugin. Jeśli jest więcej serwerów w pliku niż określone przez MAX_SERVERFORWARDS to reszta serwerów będzie ignorowana.
Nie ma potrzeby, aby dodać nomanual = 1, noauto = 1 lub podobnego do tego.
DPROTO/Sprawdzanie protokołu
Standardowo plugin nie działa na DPROTO.
Tzn że jeżeli mamy na liście serwer z innym protokołem (także dproto) to może nas nie przekierować.
Aby to wyłączyć należy znaleźć linijkę:
#define MOD_DETECTION truei zamienić na
#define MOD_DETECTION falsePo tym zabiegu oczywiście czeka nas ponowna kompilacja pluginu.
Aktywacja SQL i/albo statystyk
Standardowo plugin ma wyłączony SQL.
Aby włączyć SQL i statystyki, należy znaleźć linijki:
//#define SQL //#define STATISTICSi zamienić na:
#define SQL #define STATISTICSCzyli skasować ukośniki.
SQL ON i STATYSTYKI OFF:
Lista serwerów zostanie załadowana z bazy danych. Statystyki nie będą się zapisywały.
SQL ON i STATYSTYKI ON:
Lista serwerów zostanie załadowana z bazy danych. Statystyki będą zapisywane do tablicy SQL
SQL OFF i STATYSTYKI ON:
Lista serwerów zostanie załadowana z pliku serverlist.ini.
Statystyki zostaną zapisane do vault i do pliku xredirect-actions.csv w folderze logów AMXX.
Vault będzie trzymał dane sumaryczne (liczba ręcznych przekierowań, automatycznych przekierowań, itp.).
Dane w vault mogą być przeszukiwane za pomocą nowej komendy redirect_stats.
Plik CSV będzie trzymał wszystkie akcje xREDIRECT z dokładnymi danymi (data, czas, nazwa przekierowanego gracza, ID gracza, adres IP...).
SQL OFF i STATYSTYKI OFF:
Lista serwerów zostanie załadowane z pliku serverlist.ini. Statystyki nie będą się zapisywały.
Dane do SQL należy skonfigurować w /config/sql.cfg i uruchomić skrypt w bazie danych który jest w xredirect.sql.txt jeśli chcesz używać tego z AMXX. To stworzy tabele które będzie używał xREDIRECT.
Aby skonfigurować parametry listy serwerów, należy wprowadzić skrypty wedle tych:
INSERT INTO xredirect_attributes VALUES (1, 3, 'nomanual', '1'); INSERT INTO xredirect_attributes VALUES (2, 3, 'nomanual', '0');
Przypuszczam że pierwsza cyfra to dany serwer, druga cyfra to linijka a trzecia to wartość parametru.
Jeżeli błędnie to proszę o poprawienie mnie (nie znam się na bazach danych)

Tłumaczenia
● Angielski - xOR ([email protected])
● Niemiecki - xOR ([email protected])
● Duński - Multiply ([email protected]) - www.JUHP.net
● Francuski - kEnNy_^
● Węgierski - Millertrash
● Szwecki - R4x
● Fiński - X3D ([email protected])
● Holenderski - Janet Jackson
● Hiszpański - KylixMynxAltoLAG ([email protected])
● Polski - _KaszpiR_
● Islandzki - Throstur
● Rosyjski - [-] ([email protected])
● Leetspeak - Curryking [former version by Twilight Suzuka (http://www.alphapoint.org/rcr)]
● Serbski - iggy_bus
● Łotewski - Toster v2.1
● Portugalski (Portugalia) - H(x)m3m do S@c0
● Portugalski (Brazylia) - commonbullet
Minimalne Wymagania
● Metamod v1.18
● HLDS v3.1.1.1
● AMXX v1.70 (v1.80 dla wersji beta)

Plugin wymaga moduł sockets i ewentualnie nvaultl