Odp: Niezbędnik programisty
Warto też dodać że oprócz podanych tu odnośników do plików z końcówką *.gz
np:
http://pl21.grepolis.com/data/players.txt.gz
istnieją też ich odpowiedniki bez końcówki *.gz
np:
http://pl21.grepolis.com/data/players.txt
... czyli w tym przypadku plik players.txt.gz to zwykły plik players.txt tylko spakowany zipem.
Plik ten zawiera informacje w stylu:
...
869804,STANISLOPULOS,,0,1624,0
423199,Potusek,263,562841,309,42
493411,Prision,2544,8757,1044,2
...
dane są przedstawiane następująco:
id_gracza , nazwa_gracza , id_sojuszu_gracza , punkty_gracza , ranking_gracza , liczba_miast_gracza
przykładowa procedura wczytująca informacje o graczach do tablicy
players
w formie skryptu przedstawia się następująco:
$.ajax({type:"GET",url:"http://pl21.grepolis.com/data/players.txt",dataType:"text",
success:function(data)
{
data=data.replace(/\+/g,' ')+"\n";
tmp=data.split("\n");
players=new Array();
for (e in tmp)
if (e!="")
{
tmp[e]+=",";
t=tmp[e].split(",");
players[t[0]]=new Array();
players[t[0]]['id']=t[0];
players[t[0]]['name']=decodeURIComponent(t[1]);
players[t[0]]['allianceID']=t[2];
players[t[0]]['points']=t[3];
players[t[0]]['rank']=t[4];
players[t[0]]['towns']=t[5];
}
}});
Wszystkim polecam używanie tej metody w swoich skryptach, gdyż lepiej wczytać od razu wszystkie informacje
niż wypytywać serwer pojedynczo o każdego gracza, jak robi to jeden z dość powszechnych skryptów
korzystając z metody która zwraca całą stronę internetową z informacją o profilu gracza (i paru innych)
a dodatkowo musi jeszcze tą kupę śmieci przeszukać w celu znalezienia jedynej potrzebnej informacji np. nazwa sojuszu.
Lepiej wczytać raz i mieć cały czas pod ręką (czyli po stronie przeglądarki)
niż obciążać serwery gry ciągłymi niepotrzebnymi (i sporo ważącymi) zapytaniami.