Mercurial > eagle-eye
annotate scores.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 | 53c87400183f |
children | e551351b18de |
rev | line source |
---|---|
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1 #!/usr/bin/perl |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
2 use strict; |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
3 use Ikariam; |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
4 use Data::Dumper; |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
5 |
12
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
6 # highscoreType |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
7 # <option value="score">總積分</option> |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
8 # <option value="building_score_main">建築大師</option> |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
9 # <option value="building_score_secondary">建築等級</option> |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
10 # <option value="research_score_main">科學巨人</option> |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
11 # <option value="research_score_secondary">研究等級</option> |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
12 # <option value="army_score_main" selected="selected">戰爭將軍</option> |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
13 # <option value="trader_score_secondary">黃金存量</option> |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
14 # my $users = $i->viewScore('score', 'chihchun', '0'); |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
15 |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
16 package main; |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
17 |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
18 sub saveUser |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
19 { |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
20 my $users = shift; |
8
e4b3168d0319
implemented sheep and enemy scripts.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
7
diff
changeset
|
21 |
91
53c87400183f
rewrite viewScore with Extractor.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
41
diff
changeset
|
22 foreach my $user (values(%{$users})) { |
7
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
23 printf("Saving %s\n", $user->{'name'}); |
8
e4b3168d0319
implemented sheep and enemy scripts.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
7
diff
changeset
|
24 if(my $c = Ikariam::User->retrieve($user->{id})) |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
25 { |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
26 foreach my $i (keys(%$user)) { |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
27 eval($c->$i($user->{$i})); |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
28 } |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
29 $c->autoupdate(1); |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
30 $c->update(); |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
31 } else { |
8
e4b3168d0319
implemented sheep and enemy scripts.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
7
diff
changeset
|
32 Ikariam::User->insert($user); |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
33 } |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
34 } |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
35 } |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
36 |
41
5849b6fdc76c
removed my password from scripts.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
13
diff
changeset
|
37 my $i = new Ikariam($::server, $::user, $::pass); |
12
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
38 $i->login; |
7
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
39 |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
40 if($#ARGV == 0) { |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
41 my $users; |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
42 foreach my $x (qw/score army_score_main trader_score_secondary/) |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
43 { |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
44 $users = $i->viewScore($x, $ARGV[0], 0); |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
45 saveUser($users); |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
46 } |
7
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
47 } elsif ($#ARGV == 1) { |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
48 # search the islands and cities nearby |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
49 my ($x, $y) = @ARGV; |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
50 my $offset = 5; |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
51 |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
52 Ikariam::Island->has_many(cities => 'Ikariam::Cities'); |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
53 |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
54 my @islands = Ikariam::Island->retrieve_from_sql( |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
55 "x >= " . ($x - $offset) . " AND " . " x <= " . ($x + $offset) . |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
56 " AND " . |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
57 "y >= " . ($y - $offset) . " AND " . " y <= " . ($y + $offset) |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
58 ); |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
59 |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
60 my %owners; |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
61 foreach my $island (@islands) |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
62 { |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
63 my @cities = $island->cities; |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
64 foreach my $city (@cities) |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
65 { |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
66 $owners{$city->owner} += 1; |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
67 } |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
68 } |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
69 |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
70 foreach my $o (keys(%owners)) |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
71 { |
9
ae412d1f7761
added logout function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
8
diff
changeset
|
72 foreach my $type (qw/score army_score_main trader_score_secondary/) |
7
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
73 { |
9
ae412d1f7761
added logout function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
8
diff
changeset
|
74 my $users = $i->viewScore($type, $o, 0); |
7
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
75 saveUser($users); |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
76 } |
2040ccc95670
implemented scores collection.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
5
diff
changeset
|
77 } |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
78 } else { |
12
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
79 if(0) { |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
80 # Update all the users |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
81 my @users = Ikariam::User->retrieve_all(); |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
82 foreach my $user (@users) |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
83 { |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
84 printf("%s\n", $user->name); |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
85 foreach my $type (qw/score army_score_main trader_score_secondary/) |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
86 { |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
87 my $users = $i->viewScore($type, $user->name, 0); |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
88 saveUser($users); |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
89 } |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
90 } |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
91 } else { |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
92 # Update owner of cities |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
93 my @cities = Ikariam::Cities->retrieve_all(); |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
94 foreach my $city (@cities) |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
95 { |
13
bb6eebd349fc
removed debug message
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
12
diff
changeset
|
96 # printf("%s\n", $city->owner); |
12
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
97 foreach my $type (qw/score army_score_main trader_score_secondary/) |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
98 { |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
99 my $users = $i->viewScore($type, $city->owner, 0); |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
100 saveUser($users); |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
101 } |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
102 } |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
103 } |
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
104 # die("Usage: $0 nickname\nUsage: $0 x y"); |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
105 } |
12
0aeb0fe59257
added update owner of cities
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
106 $i->logout; |