# HG changeset patch # User "Rex Tsai " # Date 1225080851 -28800 # Node ID 6527b4b20d60a52b38e2bba2431597f86d1e4180 # Parent 4dc71413195489c5a516986580e0edc232375df7 refiend the army score filtering diff -r 4dc714131954 -r 6527b4b20d60 sheep.pl --- a/sheep.pl Mon Oct 27 11:31:21 2008 +0800 +++ b/sheep.pl Mon Oct 27 12:14:11 2008 +0800 @@ -4,6 +4,10 @@ use Data::Dumper; package main; +my $mime = Ikariam::User->retrieve ('name' => $::user); +# only challenge the small victims +my $army_score_main = ($mime->army_score_main / 3); + my @tradegoodText = qw/NULL 葡萄酒 大理石 水晶 硫磺/; Ikariam::User->has_many(cities => 'Ikariam::Cities'); @@ -19,38 +23,17 @@ AND cities.status = 'i' } ); -#Ikariam::User->set_sql(sheeps => qq { -# SELECT user.id -# FROM user, cities, island -# WHERE user.id == cities.user -# AND cities.island == island.id -# AND island.x <= ? -# AND island.x >= ? -# AND island.y <= ? -# AND island.y >= ? -# AND user.trader_score_secondary >= 50000 -# AND user.army_score_main <= 100 -# } -#); Ikariam::User->set_sql(sheeps => qq { SELECT user.id FROM user, cities WHERE user.id == cities.user - AND user.trader_score_secondary >= 200 - AND user.army_score_main <= 100 + AND user.trader_score_secondary >= user.army_score_main*3 + AND user.army_score_main <= $army_score_main AND cities.island IN (SELECT island.id FROM island WHERE island.x <= ? AND island.x >= ? AND island.y <= ? AND island.y >= ? ) } ); -if($#ARGV != 1) { - die("Usage: $0 x y\n"); -} -my ($x, $y) = @ARGV; - -listSheeps(Ikariam::User->search_sheeps(($x + 6), ($x - 6), ($y + 6), ($y - 6))); -# listSheeps(Ikariam::User->search_inactivity(($x + 6), ($x - 6), ($y + 6), ($y - 6))); - sub listSheeps { my @sheeps = @_; @@ -73,6 +56,7 @@ next if($c->status eq 'v'); unless($c->status eq 'i') { + # Ignore 聯盟人數大於五 next if($members > 5); } @@ -100,4 +84,12 @@ } } } -# find_or_create + +__MAIN__: + +if($#ARGV != 1) { die("Usage: $0 x y\n"); } +my ($x, $y) = @ARGV; + +listSheeps(Ikariam::User->search_sheeps(($x + 6), ($x - 6), ($y + 6), ($y - 6))); +# listSheeps(Ikariam::User->search_inactivity(($x + 6), ($x - 6), ($y + 6), ($y - 6))); +