Autor: Pavulon
Wersja: 0.4.2.2
Opis:
Mam nadzieje że jest to pierwszy plugin który umożliwia obsługę GG z poziomu AMXX.
Dzięki niemu mamy możliwość wysyłania wiadomości GG z jak i do gry, wyświetlenie aktualnego statusu serwera, ilości graczy oraz administracji serwera za pomocą GG.
Nie odpowiadam za żadne szkody powstałe w wyniku używania tego pluginu itd.
Instalacja:
Standardowo wrzucić plik .amxx do amxmodx/plugin oraz dopisać go do configs/plugins.ini a .sma do amxmodx/scripting
Wszystkie pliki konfiguracyjne oraz logi będą znajdowały się w katalogu amxmodx/GGadu (zalecane jest stworzenie go ręcznie i nadanie mu odpowiednich praw dostępu {np. CHMOD 777} w celu umożliwienia zapisu), lecz jeżeli przy uruchomieniu nie będzie istniał katalog to zostanie on stworzony i umieszczone w nim zostaną odpowiednie pliki(GGadu.cfg; GGadu.ini; GGadu_bans.ini; GGadu_servers.ini) {wszystko w załączniku}.
GGadu.cfg - plik z cvar'ami
Niezbędne są cvary amx_gg_numer i amx_gg_haslo. Reszty jak nie będzie to przyjmą wartości standardowe.;[GGadu] Umiesc w tym pliku cvar'y do plugin'a.
amx_gg_numer "0"
amx_gg_haslo "0"
amx_gg_opis_on "name w/ GG [ON]nIP: ipnMapa: mapnTimeleft: tlnGraczy: act/max"
amx_gg_opis_off "name w/ GG [OFF] mapchage ?"
amx_gg_opis_refresh "60"
amx_gg_gracze_info "abcdefgh" ;abcdefgh
amx_gg_log "bc" ;abc
amx_gg_log_typ "a" ;ab
amx_gg_losowy_serw "" ;ab
amx_gg_dzwiek "1"
Konto GG należy wcześniej utworzyć np. standardowym komunikatorem gdyż nie ma opcji rejestracji z serwera.
Zasada dodawania cvar'ów dokładnie taka sama jak np. w amxx.cfg
GGadu.ini - admini gg
Radzę zachować ten format, bez żadnych komentarzy. Flagi są takie same jak na serwerze.;[GGadu] Umiesc w tym pliku numery GG adminow wraz z ich flagami dostepu oddzielone spacjami, po jednej linijce dla admina np:
;nr_gg flagi_admina "nick" "flagi_dostepu"
;12345678 abcdefghijklmnopqrstuwvxy "SYS-OP" "bc"
;1234567 abcdefghijklmnopqrstuwvxy "ADMIN" "b"
;Srednik na poczatku oznacza ze dana linijka nie jest brana pod uwage.
GGadu_bans.ini - bany gg
Jedna linijka to jeden zbanowany numer gg, nie ma co się więcej rozpisywać.;[GGadu] Dodaj w tym pliku numery gg ktore zostana zbanowane, po jednym w linijce.
;123456789
;234567890
;Srednik na poczatku oznacza ze dana linijka nie jest brana pod uwage.
GGadu_servers.ini - serwery CS
Format oraz treść wg uznania. Ograniczenie do 127 znaków na linijkę.;[GGadu] Dodaj w tym pliku serwery wraz z opisem jaki chcesz zobaczyc po wpisaniu komendy serwery, po jednym w linijce.
;127.0.0.1:27666 Super Serwer GG: 123456789
;Srednik na poczatku oznacza ze dana linijka nie jest brana pod uwage. Maksymalna dlugosc 127 znakow
GGadu_system.log - log
Informacje o łączeniu, akcjach i problemach.
GGadu_DATA.log - log
Pliki tworzą się automatycznie przy odbiorze/wysyłaniu wiadomości. DATA jest w formacie rr/mm/dd
Oczywiście możemy też przekopiować odpowiedni folder z załącznika.
Wymagane moduły:
- sockets
Konfiguracja:
Cvary:
- amx_gg_numer "0" - numer gg z którego maja być wysyłane wiadomości
- amx_gg_haslo "0" - haslo do tego numeru gg
- amx_gg_opis_on "name w/ GG [ON]nIP: ipnMapa: mapnTimeleft: tlnGraczy: act/max" - opis serwera kiedy włączony
- amx_gg_opis_off "name w/ GG [OFF] mapchage ?" - opis kiedy wyłączony
- amx_gg_opis_refresh "60" - co ile odświeżać opis [w sekundach]
0 = tylko przy zmianie mapy
wartości poniżej 15 mogą spowodować block'a od serwera gg i brak zmian - amx_gg_gracze_info "abcdef" - które dane wyświetlać w liście graczy
a = nr. porzadkowy gracza, b = username, c = authid
d = ip, e = team, f = userid - amx_gg_log "bc" - co logować ?
a = wiadomości przychodzące, b = rozmowy, c = funkcje - amx_gg_log_typ "1" - co logować w rozmowach wychodzących ?
a = tylko steam_id, b = tylko ip, brak = tylko nick - amx_gg_losowy_serw "" - używać losowego serwera gg do logowania ?
a = jesli notoperating, b = przy nieudanym pobraniu ip - amx_gg_dzwiek "1" - dźwięk przy otrzymaniu wiadomości ?
1 = tak, 0 = nie
Zamienniki w opisie:
- name == nazwa serwera
- ip == ip serwera
- map == aktualna mapa
- tl == pozostały czas XXmin YYsek
- ml == ilość minut do końca mapy
- sl == ilość sekund do końca
- act == ilość graczy na serwerze
- max == maksymalna liczba graczy
- n == enter == przejście do następnej linii
Flagi dostępu adminów w pliku:
- "c" - Sys-Op
- "b" - Admin
- "a" - Admin bez powiadomienia grupowego
- "" - bez kontaktu
Komendy:
- say(_team) gg: nr_gg(lub nick) wiadomosc - wysyła wiadomość na dany numer gg
nick jest nazwą(lub jej częścią) pod jaką zapisany jest dany user w pliku GGadu.ini - say(_team) /kontakt{/contact} - wyświetla menu kontaktu z administracja
- amx_gg_reload_cvars - wczytuje ponownie cvar'y z flagami (ADMIN_BAN)
- amx_gg_reload_admins - pobiera ponownie dane adminów z pliku (ADMIN_BAN)
- amx_gg_reload_bans - pobiera ponownie bany z pliku (ADMIN_BAN)
- amx_gg_reload_servers - pobiera ponownie serwery z pliku (ADMIN_BAN)
Jeżeli menu kontaktu ma być dostępne dla graczy po użyciu komendy amx_menu,
nalezy do configs/custommenuitems.cfg dopisać linijkę:
amx_addclientmenuitem "Kontakt GGadu" "ggk_menu" "" "GGadu"
Komendy GG:
- pomoc = lista dostępnych komend
- status = stan serwera: hostname, wersja amxx, ip:port, mapa, ilość graczy, pozostały czas mapy
- gracze = lista graczy na serwerze wraz z ich danymi takimi jak IP i Steam_id
- serwery = lista dostępnych serwerów, dane własne z pliku
- wersja = aktualna wersja GGadu
- chat: gracz wiadomosc = wiadomość do kogoś na serwerze
gracz może być nick'iem (jeżeli występują spacje w nicku to podawać go cudzysłowach) gracza(lub jego częścią), adresem ip, steam_id lub #userid np:
dla adminów jest też możliwość pisania do wszystkich lub do danego team'u wpisując @all / @ct / @t zamiast gracza np:chat: "[you]" Pozdrowienia z GG
chat: @t Sprzedam pake
- admin: komenda_admina = wykonuje zadana komendę na serwerze (#odpowiedni ADMIN wymagany#)
numer z ktorego piszemy musi miec dodanego admina oraz niezbędne flagi do wykonania komendy np:
admin: amx_map de_dust
- rcon: komenda_hlds'a = wykonuje zadana komendę rcon na serwerze (#ADMIN_RCON wymagany#)
niezbędny admin z flagą ADMIN_RCON ("l")
rcon: restart
Dodatkowe info dostępne jeszcze w .sma
UWAGA !!!
W przypadku gdy plugin stworzył nam folder i nie możemy się do niego dostać z powodu braku praw(źle ustawiony chmod wynikający z tego że inny user{serwer} np root utworzył folder i nie dał nam praw do niego) należy wyłączyć ggadu, pobrać plugin ggadu_dir_remover i standardowo go zainstalować. Po zmianie mapy powinien on usunąć folder wraz z zawartością. Następnie tworzymy sami(kopiujemy z załącznika) folder i pliki pluginu ggadu oraz nadajemy im CHMOD'y 777 - tak aby i serwer miał do nich dostęp. Następnie wyłączamy ggadu_dir_remover, konfigurujemy i włączamy ggadu.
Problem ten pojawia się gdy użytkownik który ma dostęp do pliku nie jest użytkownikiem który uruchamia serwer, np:
użytkownik -> user
serwer -> root (root, główny user systemu, taki admin w M$ OS)
Kiedy root tworzy pliki nadaje im standardowo takie chmod'y że user może tylko je otworzyć(a folder tylko zobaczyć - nawet nie otworzy). Biblioteka amxx'a niestety jest ograniczona i nie ma możliwości wyboru czy też zmiany CHMOD'ów(a nie opłaca się rozprowadzać zmienionej biblioteki dla jednego pluginu) dlatego jak stworzymy sami plik to będzie można go edytować i wszytko będzie działać, lecz gdy serwer stworzy plik typu log to niestety edytować już go nie będziemy mogli.
p.s.
Not4Newbie
