[URL] https://amxx.pl/topic/8229-ggadu/
**GGadu**
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
> ;[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"
Niezbędne są cvary amx_gg_numer i amx_gg_haslo. Reszty jak nie będzie to
przyjmą wartości standardowe.
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
> ;[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.
Radzę zachować ten format, bez żadnych komentarzy. Flagi są takie same jak na
serwerze.
GGadu_bans.ini - bany gg
> ;[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.
Jedna linijka to jeden zbanowany numer gg, nie ma co się więcej rozpisywać.
GGadu_servers.ini - serwery CS
> ;[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
Format oraz treść wg uznania. Ograniczenie do 127 znaków na linijkę.
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:
> chat: "[you]" Pozdrowienia z GG
dla adminów jest też możliwość pisania do wszystkich lub do danego team'u
wpisując @all / @ct / @t zamiast gracza np:
> 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
![[Image: tongue.gif]](https://amxx.pl/public/style_emoticons/default/tongue.gif)
Załączone pliki
* [url=https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=1690 "Pobierz załącznik"]
![[Image: rar.gif]](https://amxx.pl/public/style_extra/mime_types/rar.gif)
* [url=https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=2113 "Pobierz załącznik"]
![[Image: rar.gif]](https://amxx.pl/public/style_extra/mime_types/rar.gif)
Załączniki:
ggadu.rar
ggadu_dir_remover.rar