Witam.
Szukam osób do ekipy, abyśmy wspólnie stworzyli dobrze rozbudowany plugin zarządzający mapami. Plugin zastępowałby zarówno menu do zmiany mapy przez admina, oraz stworzenia własnego vote map, jak i tworzyłby vote na koniec mapy.
Plugin z założenia ma wypełnić lukę w zapotrzebowaniu na takie pluginy. Nie ma właściwie mapchoosera oferującego wszystkie funkcje. Jeśli się chce jakąś funkcjonalność uzyskać, zwykle trzeba albo połączyć ze sobą kilka pluginów, albo tworzyć nowy...
Nie owijając w bawełnę, chodzi o to, że każdej mapie będzie można przyporządkować kilka parametrów:
- Przedział ilości graczy - czyli ile graczy musi być na serwerze, aby mapa mogła być w vote. Jeśli jest graczy więcej niż z przedziału, mapy nie będzie można zanominować. Jeśli ktoś zanominuje mapę, gdy w przedziale się mieści, ale graczy przybędzie na serwer i przestanie się mieścić, mapa zostanie wyrzucona.
- Godziny - czyli w jakich godzinach mapa może być w vote dostępna. Poza tymi godzinami mapa nie będzie mogła się pokazać w vote. Muszą być więc spełnione oba warunki (ten i powyższy), aby mapa w vote się pojawiła.
- Blokada nominacji - mapy z ustawioną tą flagą nie będą mogły być nominowane do Vote. Oznacza to, że mapa taka zostanie wrzucona w vote tylko wtedy, gdy nie zostaną zapełnione wszystkie sloty w vote nominacjami graczy.
- Wymuszenie nominacji - mapy z ustawioną tą flagą będą mogły być wyłącznie nominowane. Mapa taka nie pojawi się w vote, jeśli nie zostanie zanominowana. Gdy ustawimy obie flagi na raz, czyli wymuszenia i blokady nominacji, mapa nie będzie dostępna wcale w końcowym vote.
- Mapa bazowa - można podać nazwę mapy bazowej, jeśli dana mapa jest jej modyfikacją
- Dodatkowa informacja - w Vote zostanie wyświetlona informacja w nawiasie obok nazwy mapy. Dla przykładu przy awp_indii informacja, że pluginy jakieś są na niej wyłączone.
Dodatkowo, każda z map może być umieszczona w podanej grupie. Spowoduje to umieszczenie jej w danej kategorii w menu admina oraz w menu wyboru map do nominacji. Dla przykładu kategoria Dusty, a w niej dust, dust2, dust2_b, dust2_long, dust2_epsed_test, dawn i tak dalej...
Możliwe ustawienia dodatkowe:
- Sztywny limit graczy - możliwość dodatkowego ustawienia sztywnego limitu. Dla przykładu, gdy przedział ilości graczy dla mapy jest ustawiony na 1-10, a sztywny limit na 2: gdy 13 graczy wejdzie na serwer w trakcie tej mapy, zostanie wymuszone automatycznie głosowanie na następną mapę. Przy sztywnym limicie na 0, głosowanie nastąpi przy 11 graczach na serwerze, przy -1 sztywny limit będzie wyłączony. Sztywny limit działa również w dół. Czyli przy ustawieniu mapy 16-32, gdy na serwerze będzie mniej niż 14 graczy i sztywnym limicie ustawionym na 2, głosowanie również zostanie wymuszone.
- Sztywny limit godzin - możliwość dodatkowego ustawienia limitu godzin. Jeśli ustawiony jest na 1 godzinę, a mapa ma przedział godzinowy 1-12, mapa będzie mogła zostać zanominowana w godzinach 0-13, jednak w godzinach 0-1 i 12-13 nie pojawi się w vote, jeśli nie zostanie przez nikogo zanominowana.
- Banowanie ostatnich map - możliwość ustawienia ile ostatnio granych map nie może wystąpić w vote. Przykład:
Gdy grana jest mapa dust2_b, a limit ustawiony jest na 5, mapa dust2_b nie może wystąpić w vote na następnych 5ciu mapach. Eliminuje to tzw syndrom dusta - Banowanie ostatnich map bazowych - możliwość ustawienia, ile ostatnio granych bazowych map jest zablokowanych. Przykład:
Gdy grana jest mapa dust2_b, która ma ustawioną jako bazową mapę dust2, a limit ustawiony jest na 2, wtedy przez następne 2 mapy nie może wystąpić w vote dust2 ani żadna, z map, która ma ustawioną jako bazową dust2. Eliminuje to granie zbyt często podobnych do siebie map - Liczba map w Vote
- Liczba map możliwych do zanominowania przez 1 gracza
- Czy mapa ma zostać usunięta z nominacji, gdy gracz nominujący opuści serwer - możliwe 3 ustawienia: 0 - nie usuwaj, 1 - usuwaj gdy mapa jest dostępna (w danym momencie) tylko do nominacji, 2 - usuwaj zawsze.
- Czas Vote - czas przed końcem mapy, w którym vote zostaje rozpoczęte (jeśli mp_timelimit jest ustawiony). Ustawienie na 0 wyłączy to vote (gdy czas zostanie osiągnięty, mapa zostanie zmieniona na następną z mapcycle lub na wybraną przez adminów komendą amx_nextmap)
- Runda Vote - runda przed końcem mapy, w której vote zostanie rozpoczęte (jeśli mp_roundlimit jest ustawiony). Ustawienie na 0 wyłączy to vote (gdy liczba rund zostanie osiągnięta, mapa zostanie zmieniona na następną z mapcycle lub na wybraną przez adminów komendą amx_nextmap)
- Liczba rund po vote - Można ustawić, aby co najmniej tyle rund zostało przegranych po vote, gdy zostanie ono rozpoczęte przez upływający timelimit.
- Czas po vote - Można ustawić, aby co najmniej dana ilość czasu minęła po vote, gdy zostało one rozpoczęte przez kończący się roundlimit.
- Rozstrzyganie remisów - 0 - Nie rozstrzygaj remisów, wybierz losowo jedną z wygrywających, 1 - utwórz drugie vote z mapami, które wygrały, 2 - wybierz mapę, na którą zagłosowała największa ilość adminów, 3 - utwórz vote dla adminów z mapami, które wygrały. Dodanie znaku + (dla przykładu 1+) spowoduje włączenie rozstrzygania remisu przez admina, który vote wymusił, jeśli zostało ono przez kogoś wymuszone. W przypadku, gdy dany admin opuścił serwer lub wybrał nie rozstrzyganie samodzielne, zostanie rozstrzygnięty remis poprzez wybraną opcję.
W przypadku, gdy remis nie zostanie rozstrzygnięty poprzez opcje 1, 2 lub 3, nastąpi ponowne rozstrzygnięcie opcją 0 - Współczynnik RTV - określa ile co najmniej osób musi wpisać rtv, aby głosowanie zostało wymuszone. 1 - wszyscy na serwerze, 0 - vote wyłączone, wartości zmiennoprzecinkowe, czyli np 0.51 - ponad połowa serwera (w większości przypadków o 1 osobę więcej, niż połowa). HLTV i boty są pomijane.
Dodatkowe komendy admina:
- amx_rockthevote - wymusza vote
- amx_nominate - wymusza nominację mapy, omija wszelkie limity i blokady nominowania map
- amx_cancelvote - anuluje wymuszoną przez innego admina lub siebie samego zmianę map.
- amx_extendtime <liczba> - zwiększa timelimit o podaną liczbę minut, opóźniając tym samym vote przed końcem mapy
- amx_extendrounds <liczba> - zwiększa liczbę rund o podaną liczbę minut, opóźniając tym samym vote przed końcem mapy
- amx_nextmap <mapa lub off> - ustala nextmap na podaną mapę. Automatyczne vote pod koniec mapy NIE nastąpi. Wpisanie zamiast mapy off spowoduje ponowne włączenie vote. Off nie może zostać użyte, gdy vote już nastąpiło.
Cała konfiguracja pluginu, przyporządkowanie odpowiednich parametrów do map i przyporządkowanie map do kategorii będzie zawarte w pliku maps.ini, jednak w taki sposób, aby plik ten był bez problemu odczytany przez domyślne pluginy AMX.
Przykładowy plik maps.ini
[.configuration] player-hardlimit=2 ; Sztywny limit graczy ustawiony na 2 hours-hardlimit=1 ; Sztywny limit godzin [AIMy] ; 1 kategoria map, nazwana AIMy. Wszystkie mapy poniżej zostaną przypisane do tej kategorii, o ile nie zostanie rozpoczęta nowa ;NAZWA_MAPY LIMIT_GRACZY LIMIT_GODZIN MAPA_BAZOWA DODAKOWE_INFO aim_map 0-8 0-11 aim_crazyjump 0-8 0-11 [Dusty] ; 2 kategoria ;NAZWA_MAPY LIMIT_GRACZY LIMIT_GODZIN MAPA_BAZOWA DODAKOWE_INFO de_dust 6-24 0-24 de_dust2 6-24 0-24 de_dust2_b 0-12 0-24 de_dust2 de_dawn 6-24 0-24 de_dust [.no-category] ; mapy poza kategoriami ;NAZWA_MAPY LIMIT_GRACZY LIMIT_GODZIN MAPA_BAZOWA DODAKOWE_INFO awp_india 0-8 1-10 - Brak broni w ruletce
Podanie jako limitu graczy lub godzin znaku -, lub nie podanie wcale (przy nie podaniu nie można również podawać następnych parametrów) spowoduje brak limitu (limit graczy 0-32, limit godzin 0-24). Godziny i graczy podajemy jako zakresy. Można podać limit godzin zaczynający się poprzedniego, a kończący następnego dnia, przykład: 23-6.
Nie podanie mapy bazowej lub podanie znaku - oznacza brak mapy bazowej.
Mapy podane w .no-category trafiają do menu map na koniec, za kategoriami (luźno). Mapy wymienione przed kategoriami (również przed kategorią .configuration lub w niej) są traktowane, jakby były podane w .no-category.
Plugin jak widać dość rozbudowany, ale krok po kroku można go bardzo łatwo stworzyć. Czy ktoś jest chętny, aby stworzyć taki plugin? Osobiście nie mam czasu, aby stworzyć go całego samemu, dlatego pytam się o pomoc. Odczytem pliku konfiguracyjnego zajmę się sam