←  Pluginy AMXX

AMXX.pl: Support AMX Mod X i SourceMod

»

GGadu

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 11.03.2009

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 :P

Załączone pliki

Odpowiedz

  • +
  • -
TiTu$ - zdjęcie TiTu$ 11.03.2009

Łał super ^D^ przetestuje potem :)
Odpowiedz

  • +
  • -
bakul. <3 - zdjęcie bakul. <3 11.03.2009

Jaka wersja GG wymagana?
Odpowiedz

  • +
  • -
emblaze - zdjęcie emblaze 11.03.2009

kurcze fajne :D trzeba testnąć ^^ jak będe miał w końcu serwa :]
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 11.03.2009

~bakul, wymagana do czego ?
wiem że odpowiada na wiadomości z GG 7.7, z Nowego GG i z Mobilnego GG więc i z innymi problemów być nie powinno.
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 11.03.2009

public oblicz_hash(haslo[], klucz)
{
	new x0=0, x1=0, y0=0, y1=0, z=0, tmp=0;
	y0 = (klucz << 16) >> 16; y1 = klucz >> 16 ;
	new len = strlen(haslo)
	for (new i=0; i<len; i++)
	{
		x0 = (x0 & 0xFF00) | haslo[i]; x1 &= 0xFFFF;
		y0 ^= x0; y1 ^= x1;
		y0 += x0; y1 += x1;
		x1 <<= 8; x1 |= (x0 >> 8); x0 <<= 8;
		y0 ^= x0; y1 ^= x1;
		x1 <<= 8; x1 |= (x0 >> 8); x0 <<= 8;
		y0 -= x0; y1 -= x1;
		x1 <<= 8; x1 |= (x0 >> 8); x0 <<= 8;
		y0 ^= x0; y1 ^= x1;
		z = y0 & 0x1F;
		
		y0 &= 0xFFFF; y1 &= 0xFFFF;
		if (z <= 16)
		{
			tmp= (y1 << z) | (y0 >> (16-z));
			y0 = (y1 >> (16-z)) | (y0 << z);
			y1 = tmp;    
			} else {
			tmp= y0 << (z-16);
			y0 = (y0 >> (32-z)) | ( ((y1 << z) >> z) << (z-16) );
			y1 = (y1 >> (32-z)) | tmp;
		}
		y0 &= 0xFFFF; y1 &= 0xFFFF;
	}
	
	tmp=y0, z=0
	while (z<16)
	{
		if (y1&(1<<z))
		{
			tmp += 1<<z+16
		}
		z++
	}
	return tmp
}

tylu operatorów bitowych w jednej funkcji jeszcze nie widziałem :D btw. gj, super plugin.
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 11.03.2009

dobre, gratz
Odpowiedz

  • +
  • -
DreSzCzyK - zdjęcie DreSzCzyK 11.03.2009

Spk plugin Tylko ,

Wymagane moduły: 

sockets

Hmm, przydał by się moduł sockets, Po co komu plugin, jak bedzie trzeba szukać Modułu
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 11.03.2009

Spk plugin Tylko ,

Kod:
Wymagane moduły:

sockets


Hmm, przydał by się moduł sockets, Po co komu plugin, jak bedzie trzeba szukać Modułu

standardowy moduł AMXX, a przynajmniej tych nowszych (w starych to nie wiadomo co jest). Jak masz wybrakowanego amxx'a to pobierz stąd: http://www.amxmodx.org/downloads.php amxx-base.
Odpowiedz

  • +
  • -
DreSzCzyK - zdjęcie DreSzCzyK 11.03.2009

Ja wiem gdzie szukac modułów
Tylko dałem przykład, niektórzy sciagną plugin, I pytania ,
Nie działa plugin
.
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 11.03.2009

Pavulon, naprawdę imponujace, po:
GGadu.ini - admini gg
wnioskuje ze bedzie mozna potem przez gg wysylac komendy na serwer (np. ban osoby co ciagle ci spamuje na gg :D).
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 11.03.2009

Pavulon, naprawdę imponujace, po:
GGadu.ini - admini gg
wnioskuje ze bedzie mozna potem przez gg wysylac komendy na serwer (np. ban osoby co ciagle ci spamuje na gg :D).

nom. ustawia się adminom numer gg i dostępne dla nich flagi. Wg tych flag sprawdzana jest dostępność danej komendy.
A jeżeli admin posiada flagę ADMIN_RCON to może wykonać właściwie każdą z komend dzięki rcon: nazwa_komendy
Nie koniecznie AMXX'owe, bo mogą to być również HLDS'owe np. changelevel
Minusem jest to że nie dostajemy wiadomości po wykonaniu funkcji tak jak to jest w przypadku np. amx_plugins.
Odpowiedz

naXe - zdjęcie naXe 12.03.2009

He fajne ^^
Odpowiedz

  • +
  • -
MafiaDL - zdjęcie MafiaDL 12.03.2009

heehehe Pav PRO :D
Odpowiedz

  • +
  • -
HuBa - zdjęcie HuBa 12.03.2009

Na takie coś właśnie czekaliśmy wielkie dzięki!
Odpowiedz

  • +
  • -
EmPeTrzy - zdjęcie EmPeTrzy 12.03.2009

Dość że bardzo przydatne to jeszcze zaje*&*& działa^^
Nic tylko pogratulować, Pavulon. Kawał dobrej porządnej roboty ^^ :]
:-) :]
Odpowiedz

MASS - zdjęcie MASS 12.03.2009

Bardzo ciekawy plugin jak napisał autor instalacja nie jest dla początkujących, ale jednak myślę, że opis mógł by być bardziej dokładniejszy można by było podać jakiś przykład żeby można się było na nim opierać instalując plugin. Mógł by ktoś się tym zająć dam "pomógł" i myślę, że osoba która by się tego podjeła bardzo by pomogła wielu osobom. Sporo osób chciało by to zainstalować, ale nie każdy potrafi.
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 12.03.2009

*MassMurder*, opis może się rozwinąć i postaram się go w międzyczasie uzupełniać, ale póki co są ważniejsze sprawy.

p.s.
plugin powinien działać już po wrzuceniu pliku .amxx oraz dopisaniu go do plugins.ini i dodaniu 2 niezbednych cvar'ów - numeru gg i hasla
Odpowiedz

MASS - zdjęcie MASS 12.03.2009

Nie było jednak tak źle poradziłem sobie z instalacją za pierwszym razem tylko mam problemy z wysyłaniem wiadomości z GG na serwer chyba nie każdy nick jest uwzględniany bo jak wiadomo w nick'ach można spotkać różne dziwne znaki.
Odpowiedz

  • +
  • -
mifuntm - zdjęcie mifuntm 16.03.2009

Opis pluginu jest bardzo obszerny, jednak nie bardzo się orientuje do czego tak właściwie on służy.
Mógłby ktoś w trzech zdaniach do czego ten plugin się przydaje i jakie jest główne założenie jego działania?
Dziękuję z góry!
Odpowiedz