TOP > 野良猫のCGI講座 > 5.「劇ぱわ2」改造方法 > 同一チームへの連敗制限
凡田クンが教えます! 【初心者コース】 虎猫が教えます♪
『5.「劇ぱわ2」改造方法』

同一チームへの連敗制限
おことわり
ここに記載してある「セキュリティ対策」「不具合対策」「改造方法」を含む全てのコンテンツの無断転載を禁止します。

参考にされる方の自己責任でご覧下さい。
参考にされた方は、リンクを貼ってくれると嬉しいです♪
『参考:"Take it easy !"』
URL:http://ryoquest.sakura.ne.jp/
バナー:tie_8831an.gif(3611 byte)
当サイトの改造スクリプトを使用された方は、
当サイトトップページにリンクを貼って下さい♪
参考にされる方は、下のリンクからクリック募金をして下さい♪
あなたの善意をクリックにのせて♪
アドバイス!
@コピペ(コピー&ペースト)
改造方法をコピペで写す事は出来るだけ止めましょう。
『500エラー』がよく出ます。
原因は、コピーした時に不要な物(と言うか、あってはならない物)までコピーしてしまう事が有るからです。
例えば、空白(全角)が含まれているとか、HTMLのスクリプトがコピーされちゃったとか^^
面倒だけど、出来るだけ「打つべし!」(間違えない様に♪)
コピペするなら、「1行づつコピペするべし!」(おかしな空白がないか、おかしな改行がないか、気を付けながら♪)
A意味を考えながら、改造法を参考にしましょう
単純にコピペして、改造終了!なんて事は、止めましょう!
改造されたスクリプトの意味を考えながら参考にすれば、参考資料が間違っていても自分で改造できます。
『ちゃんとコピーしたのに動かない!』と嘆く前に、何故、こうすると改造できるのかを考える様にしましょう。
スクリプトの意味や、組み立て方が分かってきます♪
そうすれば、
『投手4人制』も自分で改造出来ちゃいます♪
画面下にリンク先を追加する
画面右下の
で「気ままなまま」へリンクが貼ってあるものの下に同様の表示をする。

gekipawa.cgi
##### 著作権表示
sub chosaku{
print <<"_CHOSAKU_";
</center>
<hr size="1">
<div align="right"><a href="http://homepage2.nifty.com/osktaka/" target="_blank"><font size="2">劇空間ぱわふるリーグ2 ver 3.00b (Free)</font></a></div>
<!--広告バナー挿入位置、ページ下部-->
</body>
</html>
_CHOSAKU_
}#end chosaku


に、下記の
赤字を追加します。
##### 著作権表示
sub chosaku{
print <<"_CHOSAKU_";
</center>
<hr size="1">
<div align="right"><a href="http://homepage2.nifty.com/osktaka/" target="_blank"><font size="2">劇空間ぱわふるリーグ2 ver 3.00b (Free)</font></a></div>
<div align="right"><a href="http://ryoquest.sakura.ne.jp/" target="_blank"><font size="2">改造:"Take it easy !"RYOQUEST presents(虎猫 presents)</font></a></div>
<!--広告バナー挿入位置、ページ下部-->
</body>
</html>
_CHOSAKU_
}#end chosaku


すると下記の様に表示されます。

画面下にリンク先を追加する(その2)
もう少しだけ、手を加えてみましょう♪

##### 著作権表示
sub chosaku{
print <<"_CHOSAKU_";
</center>
<hr size="1">
<div align="right"><a href="http://homepage2.nifty.com/osktaka/" target="_blank"
title="気ままなまま"><font size="2">劇空間ぱわふるリーグ2 ver 3.00b (Free)</font></a></div>
<div align="right"><a href="http://ryoquest.sakura.ne.jp/" target="_blank" title="改造:"Take it easy !"RYOQUEST presents(虎猫 presents)"><font size="2">改造:"Take it easy !"RYOQUEST presents(虎猫 presents)</font></a></div>
<!--広告バナー挿入位置、ページ下部-->
</body>
</html>
_CHOSAKU_
}#end chosaku


すると下記の様に表示されます。

見た目は変わりませんが、カーソルを合わせてみて下さい♪タイトルが出たでしょ♪さりげなく、お洒落になります。(但し、少しだけ重くなります・・・^^;)

更に本家『気ままなまま』に敬意を表して、1行改行する場合は、
##### 著作権表示
sub chosaku{
print <<"_CHOSAKU_";
</center>
<hr size="1">
<div align="right"><a href="http://homepage2.nifty.com/osktaka/" target="_blank"
title="気ままなまま"><font size="2">劇空間ぱわふるリーグ2 ver 3.00b (Free)</font></a></div>
<BR>
<div align="right"><a href="http://ryoquest.sakura.ne.jp/" target="_blank" title="改造:"Take it easy !"RYOQUEST presents(虎猫 presents)"><font size="2">改造:"Take it easy !"RYOQUEST presents(虎猫 presents)</font></a></div>
<!--広告バナー挿入位置、ページ下部-->
</body>
</html>
_CHOSAKU_
}#end chosaku


すると下記の様に表示されます。
このまま下に画像提供サイトや他の参考サイトを追加していきましょう♪
同一チームへの連敗制限
重複登録や故意の連敗などによる不正防止のために「同一チームへの連敗」を制限します。
連敗制限数は「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試合まで制限できます。
「あそびかた」への追加
同一チームへの連敗制限を「あそびかた」の中にも表記しましょう♪
「あそびかた」に表記してあった方が、親切ですよね。

gekipawa.cgiの(1188行目〜)

##### ルール説明
sub rule{

&header;

print <<"_HTML_";
<font color="$tcolor" size="$tsize">あそびかた</font>

<hr size="1">
<br>
<table border="1" width="$ysize" cellpadding="5" cellspacing=0 bgcolor="FFFFFF" bordercolor="009900"><tr><td>
<font size="2">
□ あそびかた<BR><BR>
 ・ チームを登録して<b>$league_limit日間のリーグ戦</b>を行います。もちろん途中参加もOKです。<BR><BR>
 ・ 登録できるチームは最大で<b>$team_maxチーム</b>です。<br><br>
 ・ 日付は<b>毎日$league_time時</b>に変更されます。<br><br>
 ・ リーグ戦では最大<b>$league_game試合まで</b>行えます。<BR><BR>
 ・ 日程が$league_limit日を過ぎると、各種成績は<b>全て初期化</b>されます。<BR><BR>

を下記の様に変更します。(赤字部分追加)

##### ルール説明
sub rule{

if($renpai){
$renpai_com = "不正防止のため、同一チームへの連敗は$renpai試合までで制限されています。";(2005/06/04修正)
$renpai_com = " 不正防止のため、同一チームへの連敗は$renpai試合までで制限されています。";
}else{
$renpai_com = "同一チームへの連敗制限はありません。";(2005/06/04修正)
$renpai_com = " 同一チームへの連敗制限はありません。";
}

&header;

print <<"_HTML_";
<font color="$tcolor" size="$tsize">あそびかた</font>

<hr size="1">
<br>
<table border="1" width="$ysize" cellpadding="5" cellspacing=0 bgcolor="FFFFFF" bordercolor="009900"><tr><td>
<font size="2">
□ あそびかた<BR><BR>
 ・ チームを登録して<b>$league_limit日間のリーグ戦</b>を行います。もちろん途中参加もOKです。<BR><BR>
 ・ 登録できるチームは最大で<b>$team_maxチーム</b>です。<br><br>
 ・ 日付は<b>毎日$league_time時</b>に変更されます。<br><br>
 ・ リーグ戦では最大<b>$league_game試合まで</b>行えます。<BR><BR>
 ・ $renpai_com<br><br>(2005/06/04修正)
 ・$renpai_com <br><br>
 ・ 日程が$league_limit日を過ぎると、各種成績は<b>全て初期化</b>されます。<BR><BR>

「あそびかた」の何処に表示するかは、ご自分で決めて下さい……^^

※表示不具合がありましたので、修正しました。(2005/06/04)
$renpai_com = " 不正防止のため、同一チームへの連敗は$renpai試合までで制限されています。";
上記注意点は、「" 不正」の間に
全角スペースを1個入れて下さい。
$renpai_com = " 同一チームへの連敗制限はありません。";
上記注意点は「" 同一」の間に全角スペースを1個入れて下さい。
 ・$renpai_com <br><br>
上記注意点は「・$」の間に何も入れないで下さい。
上記注意点は「m <」の間に
半角スペースを1個入れて下さい。
参考にされた方は、リンクを貼ってくれると嬉しいです♪
『参考:"Take it easy !"』
URL:http://ryoquest.sakura.ne.jp/
バナー:tie_8831an.gif(3611 byte)
当サイトの改造スクリプトを使用された方は、
当サイトトップページにリンクを貼って下さい♪
2005/06/05
TOP > 野良猫のCGI講座 > 5.「劇ぱわ2」改造方法 > 同一チームへの連敗制限