diff freeland.pl @ 32:b18369979b58

looking for available land.
author "Rex Tsai <chihchun@kalug.linux.org.tw>"
date Sat, 11 Oct 2008 01:22:16 +0800
parents
children f25d13153501
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/freeland.pl	Sat Oct 11 01:22:16 2008 +0800
@@ -0,0 +1,56 @@
+#!/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,
+        );
+    }
+}