komponent tgglite problem z przyjmowaniem wiadomości

0

Piszę swój komunikator z wykorzystaniem komponentu TGGLite, jednak mam problem z przyjmowaniem wiadomości. Raz jak się połączę, wszystkie wiadomości dochodzą, połączę się kolejny raz, już wiadomości nie dochodzą. Tak z 8/10 połączeń raczej wiadomości nie dochodzą więc powstał dość poważny problem ze stabilnością mojego programu. Kompiluje on mi się poprawnie i raczej nie dostrzegłem żadnych błędów w kodzie. Głowie się nad tym problemem już ponad miesiąc... Spotkał się ktoś z podobnym zjawiskiem?

Przykład użycia zdarzenia:

event OnRecvMsg (MsgBody: string; MsgFormat: array of variant; MsgFrom: int)

procedure TFormMain.GGLite1RecvMsg(Sender: TObject; MsgBody: string;
  MsgFormat: array of variant; MsgFrom: Integer);
begin
memo1.lines.add(msgbody);
end;
0

GGLite i HGG nie są rozwijane od kilku lat i pewnie już na tyle zmienił się protokół GG,
że przestały w pełni działać.
HGG też nie działa jak powinien, tzn. nie odbiera wiadomości, a wysyła bez problemu.
Tak więc wygląda na to, że zaistaniała jakaś zmiana w protokole dotycząca odbioru messedży.

Pzdr.
Marogo

0

Hm, jednak widzę, że nadal powstają nowe programy łączące się z serwerem Gadu-Gadu (zapewne działające stabilnie), chociażby na komórki czy palmtopy. Jest możliwość, abym mógł poprawić błąd, ewentualnie znaleźć pewne różnice w kodzie komponentu TGGLite i porównać je z protokołem gg? Skąd wziąć protokół gg?

0

marogo mylisz się , HGG działa na dzień dzisiejszy jak najbardziej poprawnie , przyjmowanie jak i wysyłanie wiadomości działa prawidło i bardzo stabilnie , jedyne co ostatnio nawala to funkcja :

GetServerAddress

A jeśli chodzi o GGlite to faktycznie odbieranie wiadomości szwankowało ostatnio.

Jak ktoś chce napisać własny komponent do obsługi protokołu to jakiś czas temu obiła mi się o oczy jego dokumentacja - nieoficjalna.

Pozdrawiam.

0
kamerok napisał(a)

marogo mylisz się , HGG działa na dzień dzisiejszy jak najbardziej poprawnie , przyjmowanie jak i wysyłanie wiadomości działa prawidło i bardzo stabilnie

kamerok, chciałbym się mylić, ale testowałem najnowszą wersję HGG (0.8) w środowiskach Delphi 7 Enterprise i BDS 2006. W obu zainstalowałem (bezproblemowo) zalecane Indy v9.0.18. Zdarzenie "OnMessage" w ogóle nie występuje gdy wysyłam message zarówno z GG, jak i z drugiej instancji mojego programu (oczywiście z innym numerem GG). Natomiast wiadomość w drugą stronę, tzn. mój program->GG przychodzi na GG natychmiast.

jedyne co ostatnio nawala to funkcja :

GetServerAddress

Ta funkcja akurat u mnie działa bez problemu. :-D

Jak ktoś chce napisać własny komponent do obsługi protokołu to jakiś czas temu obiła mi się o oczy jego dokumentacja - nieoficjalna.

Tu jest link do opisu protokołu GG: http://toxygen.net/libgadu/protocol/

A to mój, zresztą typowy, kod:

// rozłączenie z serwerem
procedure TForm1.ButtonRozlaczClick(Sender: TObject);
begin
 HGG1.Status:=usNotAvailable;
 HGG1.Disconnect;
end;

//połączenie z serwerem
procedure TForm1.ButtonPolaczClick(Sender: TObject);
begin
  HGG1.Number:=123456789;
  HGG1.Password:='haselko';
  HGG1.Host:=HGG1.GetServerAddress;
  HGG1.Port:=8074;
  HGG1.status:= usAvailable;
  HGG1.Connect(500);
end;

//wysłanie wiadomości
procedure TForm1.ButtonWyslijMsgClick(Sender: TObject);
begin
  HGG1.SendMessage(StrToInt(EditNrGG.Text), EditWiadomosc.Text, []);
end;

//OnConnected
procedure TForm1.HGG1Connected(Sender: TObject);
begin
 showmessage('podłączony');
end;

//OnDisconnected
procedure TForm1.HGG1Disconnected(Sender: TObject);
begin
  showmessage('odłączony');
end;

//OnLogin
procedure TForm1.HGG1Login(Sender: TObject);
begin
  showmessage('zalogowany');
end;

//OnMessage (to zdarzenie nie występuje po odebraniu wiad.)
procedure TForm1.HGG1Message(Sender: TObject; GGNumber: Integer; MessageContent: String; MessageTime: TDateTime);
begin
 Memo1.Lines.Add('Komunikat od '+IntToStr(GGNumber)+':"'+MessageContent+'"');
end;

Ciekaw jestem, czy Tobie kamerok zadziała zdarzenie OnMessage. Jak byś miał czas, to proszę przetestuj mój kodzik.
A w ogóle to w jakiej wersji Delphi i Indy kompilowałeś swój program, że Ci działa do dziś ?

Pzdr.
Marogo

0

wiesz ja mam D7 personal i Indy takie samo jak twoje , w tej chwili testowałem na swoim kodzie , wszystko naprawdę dobrze działa , nie używam

GetServerAddress

bo on mi dawał w kość i faktycznie coś nie działało.
masz tu dowód :
http://www.speedyshare.com/345322549.html

0
kamerok napisał(a)

wiesz ja mam D7 personal i Indy takie samo jak twoje , w tej chwili testowałem na swoim kodzie , wszystko naprawdę dobrze działa

Faktycznie coś zaczęło mi działać, tylko że muszę "natrzepać" :-D kilka messedży z GG w kierunku mojego (Twojego) programiku i dopiero po 5-tej, czasem 10-tej wiadomości dostaję ją w Memo, czyli podobny defekt do tego z jakim walczy założyciel tego tematu kolega TSPablos.

nie używam

GetServerAddress

bo on mi dawał w kość i faktycznie coś nie działało.

Na samym początku testowania Twojego programiku zmieniłem przypisanie IP serwera GG na gg.Host:=gg.GetServerAddress i programik łączył się bez problemu.

masz tu dowód :
http://www.speedyshare.com/345322549.html

Dzięki za przykładzik !! :-)

Pzdr.
Marogo

0

Mi "natrzepywanie" wiadomości nic nie daje z komponentem TGGLite. Połączę się, wyślę 20 wiadomości i żadna z nich nie dojdzie. Muszę się rozłączyć, połączyć ponownie i dopiero wtedy wysyłając kolejno 20 wiadomości, każda z nich dochodzi bez problemu. Jednak rozłączenie i ponowne połączenie nie zawsze naprawiają błąd.

Hmmm ten testowy programik który tu zamieściłeś oparty o HGG rzeczywiście działa rewelacyjnie (połączyłem się z nim z 10 razy i za każdym razem dochodziły wiadomości). Przeglądałem źródła HGG i TGGLite próbując ewentualnie w komponencie TGGLite dopisać (zmienić) coś coś mogło by naprawić błąd, kierując się kodem HGG, niestety wielkich różnic nie znalazłem, problem z odbieraniem wiadomości nadal istnieje. Tak już myślałem że to może z formatowaniem tekstu jest coś nie tak, że mi nie odbiera wiadomości do Memo, albo może przy łączeniu wybiera jakiś zły port który nie odsyła w 1 stronę wiadomości (nie wczytywałem się w zasady działania TCP/IP więc może napisałem teraz głupotę... ;p)

Dam tu podobny programik który właśnie napisałem, z tym że napisany na podstawie komponentu tgglite. Sami zobaczcie, może już z tej monotonii robie jakiś durny błąd...

http://www.speedyshare.com/164902170.html

0

Po 1 na 20 połączeń w końcu odebrało mi wiadomość! łał! :p ja już nie mam pomysłu siedzę nad tym ponad miesiąc... :( liczę na Waszą pomoc i będę skakał z radości jak mi w tym pomożecie :(

0

Na samym początku testowania Twojego programiku zmieniłem przypisanie IP serwera GG na gg.Host:=gg.GetServerAddress
czemu to zrobiłeś ? to jest winne na 99%

weź że to zmień , jak u mnie jest tak ustawione to Onmessage nie reaguje / lub dopiero za którymś razem zaczyna działać !!

HGG1.host:=91.197.13.2;

A tak działa dobrze.

A ty z tym gglite też ustaw taki adres IP może pomoże...

Hej a może zainteresujecie się platformą C# .NET http://members.chello.pl/w.redlowska/hakger/projsharphgg.htm

0
kamerok napisał(a)

Na samym początku testowania Twojego programiku zmieniłem przypisanie IP serwera GG na gg.Host:=gg.GetServerAddress
czemu to zrobiłeś ? to jest winne na 99%

weź że to zmień , jak u mnie jest tak ustawione to Onmessage nie reaguje / lub dopiero za którymś razem zaczyna działać !!

HGG1.host:=91.197.13.2;

A tak działa dobrze.

Faktycznie! Zdarzenie OnMessage występuje już po odebraniu pierwszego komunikatu. :-D
Wygląda na to, że funkcja GetServerAddress zwracająca adresy IP serwerów GG z wartością
ostatniego segmentu IP znacznie większą od 2 (np. 30) powoduje, że serwery do których
program się podłącza nie mogą się dogadać z protokołem generowanym przez HGG :/, a ten serwer
mający adres który podałeś jest bardziej kumaty :d

Hej a może zainteresujecie się platformą C# .NET http://members.chello.pl/w.redlowska/hakger/projsharphgg.htm

Jak opanujemy Delphi w zakresie komunikacji p2p :)

Dzięki wielkie za wskazanie przyczyny! :-)

Pzdr.
Marogo

0

http://www.kadu.net/monitor/

tu masz listę serwerów do wyboru do koloru ...

0

Siemka...

Mi nic z tych rzeczy nie pomaga, w ogóle nie dostaję wiadomości, używam komponentu TGGLite v0.15

Proszę o pomoc!

Słyszałem że gdzieś na internecie jest info o tym jak naprawic ten problem...
Komponent nie dizała od czasu wprowadzenia GG 8.0 [beta]

0

Hehe tylko jak to zrobić :D W TGGLite nie ma takiej funkcji gg.Host:='adres ip';
Szukałem w źródle TGGLite czy nie ma jakiegoś stałego adresu IP Hosta ale nic nie znalazłem.
Jedyne co żem znalazł to:

IdHTTP1.ProtocolVersion:=pv1_0;
      IdHTTP1.Request.UserAgent := HTTP_USER_AGENT;
      IdHTTP1.Request.Pragma := 'no-cache';
      IdHTTP1.Request.Accept :=
      'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, '+
      'application/msword, application/x-shockwave-flash, */*';
      IdHTTP1.Request.AcceptLanguage := 'pl';

      IdHTTP1.Host := 'appmsg.gadu-gadu.pl';

Podobny opis jest na stronie z protokołem gadu-gadu:

GET /appsvc/appmsg4.asp?fmnumber=NUMER&version=WERSJA&fmt=FORMAT&lastmsg=WIADOMOŚĆ
Accept: image/gif, image/jpeg, image/pjpeg, ...
Accept-Language: pl
User-Agent: PRZEGLĄDARKA
Pragma: no-cache
Host: appmsg.gadu-gadu.pl

Z kolei w HGG czegoś takiego nie znalazłem...

0
blade95 napisał(a)

Siemka...

Mi nic z tych rzeczy nie pomaga, w ogóle nie dostaję wiadomości, używam komponentu TGGLite v0.15

Proszę o pomoc!

Słyszałem że gdzieś na internecie jest info o tym jak naprawic ten problem...
Komponent nie dizała od czasu wprowadzenia GG 8.0 [beta]

A nie możesz użyć HGG? Ja (jak na razie :d) jestem zadowolony z tego, co oferuje ten komponent. :-)

Właśnie ćwiczę wysyłanie plików. Malutkiego avatarka już udało mi się przesłać bezbłędnie.
Dla większych plików trzeba będzie zrobić wysyłanie paczkami, a to wymaga stworzenia
coś jakby protokołu, dzięki któremu będzie można kontrolować ile paczek jest do odebrania,
jaka jest suma kontrolna paczki, całego pliku, itd. Roboty trochę będzie [green]

A tak w ogóle to jest już jakiś komponent pozwalający na wymianę plików w "sieci" GG ?

Pzdr.
Marogo

0

właśnie się bawię HGG i przyznam że mi też się spodobał, ale ja już pod TGGLite napisałem ogromną maszynę (komunikator), siedziałem nad nią z kilka miechów... musiał bym wnieść sporo poprawek żeby zmienić komponent tgglite na hgg :///

0

Dobra panowie , przerobiłem wam gglite tak aby można było ręcznie wpisać host oraz port i przy okazji dorzuciłem poprawiony kod do generowania tokena potrzebnego do rejestracji konta, funkcję:

GGInitHost

pozostawiłem bez zmian więc można jej nadal używać ;)

podczas łączenia się używamy takiego kodu :

gg.Login := StrToInt(edit1.Text);
gg.Password := Edit2.Text;
gg.Host:='91.197.13.2';
gg.GGLogon;
gg.UserStatus:=usAvailableDesc;
gg.GGChangeUserStatus;

po połączeniu się odbieranie jak i zarówno wysyłanie wiadomości działa bezproblemowo.

linki :
http://www.zippyshare.com/v/95444729/file.html
www.kamerok.yoyo.pl/ggLiteTest.rar
Pozdrawiam.

0

Tiaaa... Bardzo dziękuję...
Sprawdzę... i dam znać, czy działa, czy nie:]

Bo komponent THGG zadziałał całkowicie bezproblemowo :]

0

Dziękuję za ten komponencik... działa w 100% JESTEM BARDZO WDZIĘCZNY!!

A i jeszcze...
Taka mała rada...

TGGLite obsługuje zwrot czy zalogowaliśmy się czy nie... wiec na przyszłość zamaist:
GG.GGLogon;
Dawaj to:

if GG.Logon = 0 then begin
{CO ZROBIĆ JAK SIĘ POŁĄCZY}
end else begin
{CO ZROBIĆ JAK NIE POŁĄCZY}
end;

A i jeszcze bądź na tyle dobrym... i wyjaśnij jak to zrobiłeś... jeśli możesz/masz czas...

A i jeszcze jedno... Napisz na GG:8680037 zawsze przyda mi się taki przyjaciel :]

0

A więc edycję komponentu zacząłem od przyjrzenia się funkcji TGGLite.GGInitHost
po chwili w oko wpadły mi dwie zmienne :

FHost := copy(ReturnMsg,1,pos(':',ReturnMsg)-1);      
FPort := strtoint(copy(ReturnMsg,1,pos(' ',ReturnMsg)-1));

dane zwracane przez IdHTTP1 ustawiały host i port.

postanowiłem wpisać tam statyczne dane a resztę kodu usunąć , więc funkcja GGInitHost po mojej modyfikacji wyglądała tak:

function TGGLite.GGInitHost:integer;  // KAmerOK 
begin
  FHost :='91.197.13.2';// copy(ReturnMsg,1,pos(':',ReturnMsg)-1);
  FPort := 8074;//strtoint(copy(ReturnMsg,1,pos(' ',ReturnMsg)-1));
end;

Przeszedłem do przykładowego programu i połączyłem się w ten sposób :

procedure TForm1.Button1Click(Sender: TObject);
begin
   gg.Login := 132456;
   gg.Password := hasło;
   gg.GGInitHost;
   gg.GGLogon;
   gg.UserStatus:=usAvailableDesc;
   gg.GGChangeUserStatus;
end;

Klient się połączył wiadomosci zaczeły działać , przywróciłem więc funkcje GGInitHost do poprzedniego stanu ...

Po czym zacząłem się rozpatrywać jak zrobić aby z inspektorze obiektów można było podać host oraz port..

do kodu dodałem procedury :

procedure SetHost(Ahost: string);
procedure SetPort(APort: int);
procedure TGGLite.Sethost(Ahost: string);
begin
 FHost:=Ahost;
end;

procedure TGGLite.SetPort(Aport: Integer);
begin
 FPort:=APort;
end;

W deklaracji Published dodałem :

property Host: string read Fhost write Sethost;
property Port: int read FPort write SetPort;

chciałem aby Od razu gdy położę na formatkę komponent GGlite , w inspektorze obiektów pojawił się port oraz host , w tym celu

w konstruktorze dodałem :

constructor TGGLite.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 Fhost := '91.197.13.2';
 FPort :=8074;
end;

P.S ten kod jest niepotrzebny , można usunąć czego ja zapomniałem zrobić :

const
    Fhost = '91.197.13.2';
    Ahost = '91.197.13.2';
    FPort =8074;
    APort =8074;

Jak widać NIE MA w tym nic trudnego ale było by dużo trudniej gdyby kod GGlite był mniej uporządkowany , a tak wszystkie zmienne były ładnie uporządkowane więc żadna filozofia dodać kilka nowych procedur ...
Teraz przydało by się przerobić THGG aby mógł przesyłając obrazki , ale to już nie ja lecz ktoś mądrzejszy . Powiec jak ty marogo przesyłasz te awatary .
Pzdr.

0
kamerok napisał(a)

Powiec jak ty marogo przesyłasz te awatary .

Jako że wg opisu HGG w jednym messedżu można wysyłać max 1989 znaków (czy da się więcej nie zdążyłem sprawdzić), więc testowałem póki co na małym pliczku, który zajmował około 1500 bajtów.
Okazało się, że pliki binarne można przesyłać jak zwykły komunikat (po odebraniu CRC jest OK), a zmajstrowałem to tak:

Wysyłanie pliczku wygląda tak:

 Var
  Plik: TFileStream;
  Bufor: array [1..1980] of Char;

Plik:=TFileStream.Create('d:\Marogo.jpg', fmOpenRead or fmShareDenyNone);
 try
   If Plik.Size<=1980 then
     Begin
       Plik.Read(Bufor, Plik.Size);
       lanc:=Copy(Bufor, 1, Plik.Size);      
       HGG1.SendMessage(StrToInt(NrAdresata.Text), lanc, []);
     End;
 finally
   Plik.Free;
 end;

A odbiór tak:

procedure TForm1.HGG1Message(Sender: TObject; GGNumber: Integer; MessageContent: String; MessageTime: TDateTime);
begin
  Plik:=TFileStream.Create('d:\Odebrany.jpg', fmCreate or fmShareDenyNone);
   try
     Move(MessageContent[1], Bufor, length(MessageContent));    
     Plik.Write(Bufor, length(MessageContent));
   finally
     Plik.Free;
   end;
end;

Jak widać banalne rozwiązanie, ale dla plików o większym rozmiarze trzeba będzie umieścić na początku każdego komunikatu dodatkowe coś jakby tagi, żeby strona odbiorcza wiedziała, co się wysyła i ile jeszcze paczek danych zostało do odebrania.
Jak będę miał chwilę czasu, to postaram się to zrobić i Wam tu wrzucić mój patencik :-)

Pzdr.
Marogo

0

Interesujące... Fajnie by było gdybyś wrzucił tutaj to 'udoskonalone' z pewnością wielu osobom by sie przydalo :]

0

jeeeeeee wieeeelki dzięki ziomek ;))))))))))

0

TSPablos... Co to za uniesienie ze można plik przez HGG przesłać??

W GGLite jest od tego funkcja... :P

0

Panowie dziś wieczorkiem bawiliśmy się trochę z Blade95 w GGlite i zerznęliśmy trochę kodu z klienta GGlite który umożliwia wysyłanie i odbieranie obrazków o wielkości nieprzekraczającej 255kb pozwolę sobie zacytować kody :

Wysyłanie obrazka do klienta Gadu-Gadu (testowałem na AQQ 2.0.2.10 poniewaz niemam zainstalowanego gg7.7)

na początek dodajemy procedurę:

procedure obraz(numer:integer;plik:string);
var ImageFile: TFileStream;
begin
  ImageFile:=TFileStream.Create(plik,fmOpenReadWrite);
  Form1.GG.GGSendImage(true,numer,ExtractFileName(plik),$FF00FF00,ImageFile);
  Form1.GG.GGSendImage(false,numer,ExtractFileName(plik),$FF00FF00,ImageFile);
  ImageFile.Free;
end;

teraz by wysłać obrazek :

procedure TForm1.Button1Click(Sender: TObject);
begin
  obraz(strtoint(numergg),'C:\test.jpg');
end;

ok wysyłanie obrazków mamy, teraz odbieranie .

uzupełnaiamy zdarzenie ggRecvImage :

procedure TForm1.ggRecvImage(Sender: TObject; ImageSize, ImageCRC32,
  ImageFrom: Integer; ImageBody: TMemoryStream);
begin
  ImageBody.SaveToFile(ExtractFilePath(application.ExeName)+'obrazek.jpg');
  Image1.Picture.LoadFromFile(ExtractFilePath(application.ExeName)+'obrazek.jpg');
end;

teraz do zdarzenia ggRecvMsg dodajemy poniższy kod :

procedure TForm1.ggRecvMsg(Sender: TObject; MsgBody: String;
  MsgFormat: array of Variant; MsgFrom: Integer);
var
 i,insertat: integer;
begin
Memo1.Lines.Add(MsgBody);
for i:=low(MsgFormat) to high(MsgFormat) do begin
if (i mod 2)=0 then begin
 if pos('<img>',MsgFormat[i+1])>0 then begin
  Insert(
  '(IMG)'+copy(MsgFormat[i+1],pos('<img>',MsgFormat[i+1])+5,8+8+1)+'(IMG)'
  ,MsgBody,integer(MsgFormat[i]+1)+insertat
  );
  inc(insertat,10+8+8+1);

  //gdy przychodza obrazki robic podmianke kodu html
  //zamawianie obrazkow powino byc poza ta petla bo moga byc opoznienia
  gg.GGAskForImage(MsgFrom,
  strtoint('$'+copy(MsgFormat[i+1],pos('<img>',MsgFormat[i+1])+5,8)),
  strtoint('$'+copy(MsgFormat[i+1],pos('<img>',MsgFormat[i+1])+14,8)),
  );
 end;
end;
end;
end;

to było by na tyle , jak widać kod prawie żywcem zerżnięty z demka GGlite ale ktoś może go niemieć a tu na forum nie zginie.
Pozdrawiam.

P.S. Blade nie maraj HGG chwała użytkownikowi Deti za stworzenie tego komponentu , i udostępnienie go za free.

0

kamerok, dzięki wielkie za przykładowy programik oparty na zmodyfikowanym przez Ciebie komponencie GGLite, a także dzięki za przykład wysyłania obrazków, działa extra! [browar]

Zastanawia mnie jedna rzecz: czy serwer GG zakłada jakiegoś tymczasowego bana na wysyłanie messedży i obrazków jeśli wyśle się większy obrazek, np. o rozmiarze 150 kB (choć limit jest 255 kB) ? W GGLite ustawiłem oczywiście property MaxImageSize na 255.
Zdarzyło mi się tak parę razy, że nawet jak odpaliłem dwie instancje GG to mogłem tylko wysyłać wiadomości i małe obrazki z jednego numeru na drugi, ale już nie w drugą stronę. Po kilkunastu minutach "przeszło" mu to kuku. :d Może to jakieś zabezpieczenie przez floodowaniem ? 8-O

Pzdr.
Marogo

0

O ile mi wiadomo to gdy za często wysyłasz wiadomości/obrazki/pliki przez protokół gg serwer gadu gadu uznaje ci za spamera i banuje na jakiś czas , zdarzyło mi się że gdy wysyłałem do siebie długie wiadomości
w krótkich odstępach czasu serwer zbanował na dwie godziny wysyłanie wiadomości , odbierać mogłem .
Więc w sumie to może i lepiej że gg team myśli coś o użytkownikach i proponuje zabezpieczenia przed spamerami/botami bla bla bla :P

0

Witam.
Sorka, że nie zakładam nowego tematu, ale mój problem też dotyczy GGLite.

Miałem problem z listą kontaktów. Opisy i statusy wczytywały się dopiero za osiemnastym razem, więc dokonałem wyżej wymienione zmiany i jest rewelacyjnie! Opisy i statusy wczytują mi się za każdym razem!

Ale pojawił się inny problem. Gdy dodam do listy więcej osób (przyjmijmy, że 50) to pierwsza dwudziestka wczyta się rewelacyjnie. Pozostali są niedostępni, bez opisów. Nie wiem czym jest to spowodowane.
Bardzo proszę o pomoc, ponieważ jest to dla mnie niezwykle ważne :)

edit: Przesiadka na HGG mija się z celem.

0

Witam serdecznie to mój pierwszy post na tym forum to się przywitam :) hehe

Mógłbym prosić o jakiś re-upload tego zmodyfikowanego gglite?

0

http://www.kamerok.yoyo.pl/downloads.php?cat_id=2

Tylko jest problem bo po pisaniu adresu ze strony: http://www.kadu.net/monitor/ mimo że kilka serwerów jest online problemy z odbiorem wiadomości nadal się pojawiają . Przedtem to działało a teraz już coś jest nie tak...

1 użytkowników online, w tym zalogowanych: 0, gości: 1