Körülbelül egy hónapja szinte teljes egészében hülye böngésző alapú játékokkal töltöm el az időmet. Régebben nem tartottam normális dolognak az ilyet, de most valahogy nem tudom rávenni magam hogy abbahagyjam, egyszerűen nincs szívem otthagyni a kicsi falucskákat amit eddig építgettem, hogy elismerjem hogy az a rengeteg beleölt idő valójában pocséklás volt.
A két falúépítgető játék amivel szórakozom a travian és a tribal wars, tulajdonképpen mindkettő nagyon érdekes játék lenne, csak kár hogy van vagy 6 accountom és hogy ezeket csak karbantartsam rámegy az egész napom.
De amiért írok, mert ez az egész böngésző játék (vagyis PBBG...) függőségem egy Stargate Wars nevű játékkal kezdődött, amiről hamar rájöttem hogy eszementül hülye és primitív, de abbahagyni valahogy mégsem tudtam.
Ekkor vétkeztem a nyári szünetem egyetlen értelmes megmozdulását, programoztam egy botot, ami képes a játék legelemibb lépéseit anélkül megcsinálni, hogy nekem kéne órákat ülnöm a monitor előtt. Konkrétan a robot végignézi a játékosok listáját és lefarmolja azokat akiknek elég nyersanyaga van szabadon.
A bot gyakorlatilag egy javascript program, a futtatásához greasemonkey-t használok. A forráskód megtalálható itt.
Az alapkoncepciója nagyon egyszerű, a greasmonkey API lehetőséget ad külömböző értékek elmentésére, ezzel elmentem hogy épp milyen oldalon és milyen fázisban tart a bot és az új oldalra lépésnél egy állapotgép meghívja az éppen szükséges függvényt.
Nehézség volt az oldal rendezetlen és hibás HTML forrásából kinyerni az adatokat (ezért is kell szabvány szerint programozni...), ezért úgy nagyjából megtanultam az XPath nevezetű technológiát amivel végül is gyorsan meg lehetett oldani.
A másik gond az oldal egyetlen hatékony biztonsági intézkedésének, a referrer értékek folyamatos ellenőrzésének leküzdése volt. Ez amúgy tényleg okos megoldás, mert például a legtöbb webproxy és a javascript átirányítások nem adják tovább ezt az értéket, így a multizókat és a robotokat nagyrészt kiszűrik. De szerencsére én találtam egy elég egyszerű kikerülését a javascript átirányítás referrer értékének megtartására, de ezt inkább senki ne terjessze mert az hogy a böngészők nem küldik a spammerek elleni harc eredménye, rá lehet jönni hogy miért.
Tehát ez lenne a robotkám, amit nagyképűen glidernek nevezek, egy jobb játékhoz írt jobb testvére nyomán. A userscript.org-ra egyelőre még nem tervezem feltölteni, nehogy majd engem is lefarmoljanak vele. Ha a játékban eljutok addig hogy majd kereskedni is korlátlanul tudjak, akkor talán írok hozzá olyat is, hogy elkölteni is tudja majd a nyersanyagokat.
2007. augusztus 1., szerda
Feliratkozás:
Megjegyzések küldése (Atom)
Nincsenek megjegyzések:
Megjegyzés küldése