-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhako-top.cgi
257 lines (225 loc) · 7 KB
/
hako-top.cgi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
#----------------------------------------------------------------------
# 箱庭諸島 ver2.30
# トップモジュール(ver1.00)
# 使用条件、使用方法等は、hako-readme.txtファイルを参照
#
# 箱庭諸島のページ: http://www.bekkoame.ne.jp/~tokuoka/hakoniwa.html
#----------------------------------------------------------------------
#----------------------------------------------------------------------
# トップページモード
#----------------------------------------------------------------------
# メイン
sub topPageMain {
# 開放
unlock();
# テンプレート出力
tempTopPage();
}
# トップページ
sub tempTopPage {
# タイトル
out(<<END);
${HtagTitle_}$Htitle${H_tagTitle}
END
# デバッグモードなら「ターンを進める」ボタン
if($Hdebug == 1) {
out(<<END);
<FORM action="$HthisFile" method="POST">
<INPUT TYPE="submit" VALUE="ターンを進める" NAME="TurnButton">
</FORM>
END
}
my($mStr1) = '';
if($HhideMoneyMode != 0) {
$mStr1 = "<TH $HbgTitleCell align=center nowrap=nowrap><NOBR>${HtagTH_}資金${H_tagTH}</NOBR></TH>";
}
# フォーム
out(<<END);
<H1>${HtagHeader_}ターン$HislandTurn${H_tagHeader}</H1>
<HR>
<H1>${HtagHeader_}自分の島へ${H_tagHeader}</H1>
<FORM action="$HthisFile" method="POST">
あなたの島の名前は?<BR>
<SELECT NAME="ISLANDID">
$HislandList
</SELECT><BR>
パスワードをどうぞ!!<BR>
<INPUT TYPE="password" NAME="PASSWORD" VALUE="$HdefaultPassword" SIZE=32 MAXLENGTH=32><BR>
<INPUT TYPE="submit" VALUE="開発しに行く" NAME="OwnerButton"><BR>
</FORM>
<HR>
<H1>${HtagHeader_}諸島の状況${H_tagHeader}</H1>
<P>
島の名前をクリックすると、<B>観光</B>することができます。
</P>
<TABLE BORDER>
<TR>
<TH $HbgTitleCell align=center nowrap=nowrap><NOBR>${HtagTH_}順位${H_tagTH}</NOBR></TH>
<TH $HbgTitleCell align=center nowrap=nowrap><NOBR>${HtagTH_}島${H_tagTH}</NOBR></TH>
<TH $HbgTitleCell align=center nowrap=nowrap><NOBR>${HtagTH_}人口${H_tagTH}</NOBR></TH>
<TH $HbgTitleCell align=center nowrap=nowrap><NOBR>${HtagTH_}面積${H_tagTH}</NOBR></TH>
$mStr1
<TH $HbgTitleCell align=center nowrap=nowrap><NOBR>${HtagTH_}食料${H_tagTH}</NOBR></TH>
<TH $HbgTitleCell align=center nowrap=nowrap><NOBR>${HtagTH_}農場規模${H_tagTH}</NOBR></TH>
<TH $HbgTitleCell align=center nowrap=nowrap><NOBR>${HtagTH_}工場規模${H_tagTH}</NOBR></TH>
<TH $HbgTitleCell align=center nowrap=nowrap><NOBR>${HtagTH_}採掘場規模${H_tagTH}</NOBR></TH>
</TR>
END
my($island, $j, $farm, $factory, $mountain, $name, $id, $prize, $ii);
for($ii = 0; $ii < $HislandNumber; $ii++) {
$j = $ii + 1;
$island = $Hislands[$ii];
$id = $island->{'id'};
$farm = $island->{'farm'};
$factory = $island->{'factory'};
$mountain = $island->{'mountain'};
$farm = ($farm == 0) ? "保有せず" : "${farm}0$HunitPop";
$factory = ($factory == 0) ? "保有せず" : "${factory}0$HunitPop";
$mountain = ($mountain == 0) ? "保有せず" : "${mountain}0$HunitPop";
if($island->{'absent'} == 0) {
$name = "${HtagName_}$island->{'name'}島${H_tagName}";
} else {
$name = "${HtagName2_}$island->{'name'}島($island->{'absent'})${H_tagName2}";
}
$prize = $island->{'prize'};
my($flags, $monsters, $turns);
$prize =~ /([0-9]*),([0-9]*),(.*)/;
$flags = $1;
$monsters= $2;
$turns = $3;
$prize = '';
# ターン杯の表示
while($turns =~ s/([0-9]*),//) {
$prize .= "<IMG SRC=\"prize0.gif\" ALT=\"$1${Hprize[0]}\" WIDTH=16 HEIGHT=16> ";
}
# 名前に賞の文字を追加
my($f) = 1;
my($i);
for($i = 1; $i < 10; $i++) {
if($flags & $f) {
$prize .= "<IMG SRC=\"prize${i}.gif\" ALT=\"${Hprize[$i]}\" WIDTH=16 HEIGHT=16> ";
}
$f *= 2;
}
# 倒した怪獣リスト
$f = 1;
my($max) = -1;
my($mNameList) = '';
for($i = 0; $i < $HmonsterNumber; $i++) {
if($monsters & $f) {
$mNameList .= "[$HmonsterName[$i]] ";
$max = $i;
}
$f *= 2;
}
if($max != -1) {
$prize .= "<IMG SRC=\"${HmonsterImage[$max]}\" ALT=\"$mNameList\" WIDTH=16 HEIGHT=16> ";
}
my($mStr1) = '';
if($HhideMoneyMode == 1) {
$mStr1 = "<TD $HbgInfoCell align=right nowrap=nowrap><NOBR>$island->{'money'}$HunitMoney</NOBR></TD>";
} elsif($HhideMoneyMode == 2) {
my($mTmp) = aboutMoney($island->{'money'});
$mStr1 = "<TD $HbgInfoCell align=right nowrap=nowrap><NOBR>$mTmp</NOBR></TD>";
}
out(<<END);
<TR>
<TD $HbgNumberCell ROWSPAN=2 align=center nowrap=nowrap><NOBR>${HtagNumber_}$j${H_tagNumber}</NOBR></TD>
<TD $HbgNameCell ROWSPAN=2 align=left nowrap=nowrap>
<NOBR>
<A STYlE=\"text-decoration:none\" HREF="${HthisFile}?Sight=${id}">
$name
</A>
</NOBR><BR>
$prize
</TD>
<TD $HbgInfoCell align=right nowrap=nowrap>
<NOBR>$island->{'pop'}$HunitPop</NOBR></TD>
<TD $HbgInfoCell align=right nowrap=nowrap><NOBR>$island->{'area'}$HunitArea</NOBR></TD>
$mStr1
<TD $HbgInfoCell align=right nowrap=nowrap><NOBR>$island->{'food'}$HunitFood</NOBR></TD>
<TD $HbgInfoCell align=right nowrap=nowrap><NOBR>$farm</NOBR></TD>
<TD $HbgInfoCell align=right nowrap=nowrap><NOBR>$factory</NOBR></TD>
<TD $HbgInfoCell align=right nowrap=nowrap><NOBR>$mountain</NOBR></TD>
</TR>
<TR>
<TD $HbgCommentCell COLSPAN=7 align=left nowrap=nowrap><NOBR>${HtagTH_}コメント:${H_tagTH}$island->{'comment'}</NOBR></TD>
</TR>
END
}
out(<<END);
</TABLE>
<HR>
<H1>${HtagHeader_}新しい島を探す${H_tagHeader}</H1>
END
if($HislandNumber < $HmaxIsland) {
out(<<END);
<FORM action="$HthisFile" method="POST">
どんな名前をつける予定?<BR>
<INPUT TYPE="text" NAME="ISLANDNAME" SIZE=32 MAXLENGTH=32>島<BR>
パスワードは?<BR>
<INPUT TYPE="password" NAME="PASSWORD" SIZE=32 MAXLENGTH=32><BR>
念のためパスワードをもう一回<BR>
<INPUT TYPE="password" NAME="PASSWORD2" SIZE=32 MAXLENGTH=32><BR>
<INPUT TYPE="submit" VALUE="探しに行く" NAME="NewIslandButton">
</FORM>
END
} else {
out(<<END);
島の数が最大数です・・・現在登録できません。
END
}
out(<<END);
<HR>
<H1>${HtagHeader_}島の名前とパスワードの変更${H_tagHeader}</H1>
<P>
(注意)名前の変更には$HcostChangeName${HunitMoney}かかります。
</P>
<FORM action="$HthisFile" method="POST">
どの島ですか?<BR>
<SELECT NAME="ISLANDID">
$HislandList
</SELECT>
<BR>
どんな名前に変えますか?(変更する場合のみ)<BR>
<INPUT TYPE="text" NAME="ISLANDNAME" SIZE=32 MAXLENGTH=32>島<BR>
パスワードは?(必須)<BR>
<INPUT TYPE="password" NAME="OLDPASS" SIZE=32 MAXLENGTH=32><BR>
新しいパスワードは?(変更する時のみ)<BR>
<INPUT TYPE="password" NAME="PASSWORD" SIZE=32 MAXLENGTH=32><BR>
念のためパスワードをもう一回(変更する時のみ)<BR>
<INPUT TYPE="password" NAME="PASSWORD2" SIZE=32 MAXLENGTH=32><BR>
<INPUT TYPE="submit" VALUE="変更する" NAME="ChangeInfoButton">
</FORM>
<HR>
<H1>${HtagHeader_}最近の出来事${H_tagHeader}</H1>
END
logPrintTop();
out(<<END);
<H1>${HtagHeader_}発見の記録${H_tagHeader}</H1>
END
historyPrint();
}
# トップページ用ログ表示
sub logPrintTop {
my($i);
for($i = 0; $i < $HtopLogTurn; $i++) {
logFilePrint($i, 0, 0);
}
}
# 記録ファイル表示
sub historyPrint {
open(HIN, "${HdirName}/hakojima.his");
my(@line, $l);
while($l = <HIN>) {
chomp($l);
push(@line, $l);
}
@line = reverse(@line);
foreach $l (@line) {
$l =~ /^([0-9]*),(.*)$/;
out("<NOBR>${HtagNumber_}ターン${1}${H_tagNumber}:${2}</NOBR><BR>\n");
}
close(HIN);
}
1;