Mercurial > eagle-eye
view inactive-map.pl @ 232:978a949602e5
Auto-update Scientists numbers for Academy.
Refined the rules for safehouse, the safe house must be same or higher level then Town Hall.
Make people very happy, when the townHall is less then 16.
Build museum first then tavern
THG: changed warfare.pl
author | "Rex Tsai <chihchun@kalug.linux.org.tw>" |
---|---|
date | Thu, 06 Nov 2008 20:31:05 +0800 |
parents | da0dd597401c |
children |
line wrap: on
line source
#!/usr/bin/perl use strict; use Ikariam; use Data::Dumper; use List::Util qw[min max]; package main; Ikariam::User->has_many(cities => 'Ikariam::Cities'); Ikariam::User->set_sql(inactivity => 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 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 cities.status = 'i' AND user.trader_score_secondary >= 50000 AND user.army_score_main <= 40 } ); listSheeps(Ikariam::User->search_sheeps()); sub listSheeps { my @sheeps = @_; my %results; my $s; my %maps; my $x1 = 99; my $x2 = 0; my $y1 = 99; my $y2 = 0; foreach my $sheep (sort (@sheeps)) { # avoid duplicate next if($sheep->id == $s); $s = $sheep->id; foreach my $c ($sheep->cities) { my $line = ""; my $island = Ikariam::Island->retrieve($c->island); # 所得金錢 = 對方城鎮等級x(對方城鎮等級-1)x對方金錢/10000 my $robbery = $c->citylevel * ($c->citylevel - 1) * $sheep->trader_score_secondary / 10000; next if($robbery < 1000); $maps{$island->x}{$island->y}{'id'} = $island->id; $maps{$island->x}{$island->y}{'density'} += 1; $x1 = min ($x1, $island->x); $x2 = max ($x2, $island->x); $y1 = min ($y1, $island->y); $y2 = max ($y2, $island->y); } } open(OUT, ">map.html") or die $!; printf(OUT "<html><head><style type=\"text/css\"> body {color: #FFFFFF; } a {color: #000000; } table { border-width: 0px 0px 0px 0px; border-spacing: 0px; border-style: inset inset inset inset; border-color: gray gray gray gray; border-collapse: collapse; background-color: white; } </style></head><body><table border=1>"); foreach my $y($y1..$y2) { print(OUT "<tr>"); foreach my $x ($x1..$x2) { # printf("<div stlye='float:left; background-color: black; padding: 0; Display:inline;'>o</div>"); if(defined($maps{$x}{$y}{'density'})) { my $c = 255 - (15 * $maps{$x}{$y}{'density'}); printf(OUT "<td style=\"background-color: rgb(255,%d,%d);\"><a href=\"http://%s/index.php?view=island&id=%d\" title=\"[%d,%d] (%d)\">[%d,%d]</a></td>", $c, $c, $::server, $maps{$x}{$y}{'id'}, $x, $y, $maps{$x}{$y}{'density'}, $x, $y); } else { printf(OUT "<td style=\"background-color: rgb(255,255,255);\">[%d,%d]</td>", $x, $y); } } print(OUT "</tr>"); } printf(OUT "</table></body></html>"); close(OUT); } # find_or_create