Mercurial > eagle-eye
view freeland.pl @ 36:704d76b67670
fixed the island cache problem
author | "Rex Tsai <chihchun@kalug.linux.org.tw>" |
---|---|
date | Sat, 11 Oct 2008 05:21:06 +0800 |
parents | b18369979b58 |
children | f25d13153501 |
line wrap: on
line source
#!/usr/bin/perl use strict; use Ikariam; use Data::Dumper; package main; if($#ARGV != 1) { die("Usage: $0 x y\n"); } my ($x, $y) = @ARGV; my @location = (($x + 6), ($x - 6), ($y + 6), ($y - 6)); # 找空位 Ikariam::Cities->set_sql(lamers => qq { SELECT cities.cityId FROM user, cities WHERE user.id == cities.user AND user.score <= 1000 AND cities.status != 'v' AND cities.island IN (SELECT island.id FROM island WHERE island.x <= ? AND island.x >= ? AND island.y <= ? AND island.y >= ? AND tradegood == 2) } ); my @islands = Ikariam::Island->retrieve_from_sql(qq{ tradegood == 2 AND people < 16 AND x <= $location[0] AND x >= $location[1] AND y <= $location[2] AND y >= $location[3] }); if($#islands == -1) { my @cities = Ikariam::Cities->search_lamers(@location); foreach my $city (@cities) { my $island = Ikariam::Island->retrieve($city->island); my $user = Ikariam::User->retrieve($city->user); printf("%s (%d) \"%s\" %d [%d,%d] http://s2.ikariam.tw/index.php?view=island&id=%d&selectCity=%d\n", $user->name, $user->score, $city->cityname, $city->citylevel, $island->x, $island->y, $island->id, $city->cityId ); } } else { foreach my $island (@islands) { printf("[%d:%d] http://s2.ikariam.tw/index.php?view=island&id=%d%s\n", $island->x, $island->y, $island->id, ); } }