|
重複登録や故意の連敗などによる不正防止のために「同一チームへの連敗」を制限します。
連敗制限数は「1〜5試合まで」です。
「1試合」に設定するとチャンピオン時に負けたチームへの試合が出来なくなります。
gekipawa.iniの任意の場所(最後の「##### 設定はここまで」よりは前)に
#同一チームへの連敗制限(0:なし 1〜5:連敗制限試合数)
$renpai = '3';
を追加します。
geki_login.cgiの(52行目〜)
@game_data = split(/<g>/, $gamedata);
@kekka_pri = ();
for($i=0; $i<5; $i++){
($g_time, $kekka, $aite) = split(/<>/, $game_data[$i]);
$g_time = &date($g_time);
if($game_data[$i]){
$kekka_pri[$i] = "<tr align=center><td width=40%>$g_time</td><td width=20%>$kekka</td><td width=40%>$aite</td></tr>\n";
}else{
$kekka_pri[$i] = "<tr align=center><td width=40%> - </td><td width=20%> - </td><td width=40%> - </td></tr>\n";
}
}
を下の様に変更します。(赤字部分を追加)
@game_data = split(/<g>/, $gamedata);
@kekka_pri = ();
for($i=0; $i<5; $i++){
($g_time, $kekka, $aite) = split(/<>/, $game_data[$i]);
$g_ateam[$i] = $aite; # 同一チームへの連敗制限 対戦カード取得
($g_aten[$i],$g_bten[$i]) = split(/ - /, $kekka); # 同一チームへの連敗制限
点数取得
$g_time = &date($g_time);
if($game_data[$i]){
$kekka_pri[$i] = "<tr align=center><td width=40%>$g_time</td><td
width=20%>$kekka</td><td width=40%>$aite</td></tr>\n";
}else{
$kekka_pri[$i] = "<tr align=center><td width=40%> - </td><td width=20%> - </td><td width=40%> - </td></tr>\n";
}
}
# 同一チームへの連敗制限
open(WN,"$leaguefold/$winfile") || &error('指定されたファイルが開けません。');
eval 'flock(WN,1);';
seek(WN,0,0); @winners = <WN>; close(WN);
eval 'flock(WN,8);';
($xxx1, $xxx2, $xxx3, $cteam, $xxx4, $xxx5, $xxx6, $xxx7) = split(/<p>/, $winners[0]);
$g_cteam = $cteam; # 対戦チェック用チャンピオンチーム
$g_flg = 0; # 対戦チェック用フラグ
if($renpai){
for($i = 0; $i < $renpai; $i++){
if($g_aten[$i] < $g_bten[$i] && $g_cteam eq $g_ateam[$i]){
$g_flg = 1;
}else{
$g_flg = 0;
$i = $renpai;
} # if
} # for
} # if
# 同一チームへの連敗制限 ここまで
更に(304行目〜)
if($form{'kanri_mode'}){
print "管理モード画面です。\n";
}elsif($win + $lose >= $league_game){
print "1回のリーグは$league_game試合までだよ。次のリーグが始まるまで待っててね。\n";
}elsif(($times - $date) < $between * 60 && $win + $lose > 0){
$nexttimes = $date + ($between + 1) * 60 - $times;
$nextminits = int($nexttimes / 60);
print "次の試合まであと$nextminits分くらい待っててね。\n";
}else{
print "<input type=submit name=playkaku value=\"試合開始\">\n";
if($campflag < $camp_limit){
print " <input type=submit name=campin value=\"キャンプイン\">\n";
}
print "\n";
}
を下の様に変更します。(赤字部分を追加)
if($form{'kanri_mode'}){
print "管理モード画面です。\n";
}elsif($win + $lose >= $league_game){
print "1回のリーグは$league_game試合までだよ。次のリーグが始まるまで待っててね。\n";
}elsif(($times - $date) < $between * 60 && $win + $lose > 0){
$nexttimes = $date + ($between + 1) * 60 - $times;
$nextminits = int($nexttimes / 60);
print "次の試合まであと$nextminits分くらい待っててね。\n";
}elsif($g_flg eq 1){ # 同一チームへの連敗制限
print "同一カードの連続敗戦は$renpai試合までだよ。他のチームと試合してね♪\n";
# 同一チームへの連敗制限
}else{
print "<input type=submit name=playkaku value=\"試合開始\">\n";
if($campflag < $camp_limit){
print " <input type=submit name=campin value=\"キャンプイン\">\n";
}
print "\n";
}
これで、gekipawa.iniで設定した試合数の同一チームへの連敗が制限できます。
設定方法は、
「$renpai = '0';」で連敗制限無し、
「$renpai = '1';」で連敗制限1試合です。
「$renpai = '5';」で最大5試合まで制限できます。
|