劇ぱわ 改造方法

不正試合防止(当て馬の防止)

要旨

「重複登録の禁止」をしても「登録時のIPアドレスが違えば、重複登録が可能」となってしまいます。
その為に重複登録して「当て馬」を使って自分のチームの成績を上げる不正参加者が現れてしまいます。
この「当て馬」行為の回避策として、「同一IPアドレスでの参加者同士の試合を禁止」とします。

不正試合防止(当て馬の防止)をする改造

■「gekipawa.ini」の変更(1ヶ所)
■「geki_game.cgi」の変更(3ヶ所)

gekipawa.ini」ファイルをエディタで開きます。
任意の場所に下記赤文字部分を追加して下さい。

$ateuma  = '1';   # 不正試合防止(1:当て馬防止、0:規制無し)

geki_game.cgi」ファイルをエディタで開きます。
キャンプ画面を変更します。
下記部分を探して下さい。(無改造なら18行目〜)
(下記は画面に収まらないので改行が加えてあります。)

##### 試合結果画面
sub playlog{

 $userdata = &user_check;
 ($saku[0], $pass[0], $home[0], $team[0], $icon[0], $date[0], $ip[0], $teamdata[0], $pointdata[0], $bosstype, $charadata,
  $gamedata[0], $campflag[0]) = split(/<p>/, $userdata);

下記赤文字部分を追加する。

##### 試合結果画面
sub playlog{

 $host = $ENV{'REMOTE_HOST'} || $ENV{'REMOTE_ADDR'}; # 不正試合防止(当て馬防止)リモートホスト取得
 $userdata = &user_check;
 ($saku[0], $pass[0], $home[0], $team[0], $icon[0], $date[0], $ip[0], $teamdata[0], $pointdata[0], $bosstype, $charadata,
  $gamedata[0], $campflag[0]) = split(/<p>/, $userdata);

geki_game.cgi」の下記部分を探して下さい。(無改造の場合は、43〜47行目)
(下記は画面に収まらないので改行が加えてあります。)

$charadata[0] = join('', @{$player[0]});

$userdata[0] = "$saku[0]<p>$pass[0]<p>$home[0]<p>$team[0]<p>$icon[0]<p>$date[0]<p>$ip[0]<p>$teamdata[0]<p>$pointdata[0]<p>
$bosstype[0]<p>$charadata[0]<p>$gamedata[0]<p>$campflag[0]<p>\n";

open(WN,"$leaguefold/$winfile") || &error('指定されたファイルが開けません。');

上記青文字部分を下記赤文字部分の様に修正する。

$charadata[0] = join('', @{$player[0]});

$userdata[0] = "$saku[0]<p>$pass[0]<p>$home[0]<p>$team[0]<p>$icon[0]<p>$date[0]<p>$host<p>$teamdata[0]<p>$pointdata[0]<p>
$bosstype[0]<p>$charadata[0]<p>$gamedata[0]<p>$campflag[0]<p>\n";

open(WN,"$leaguefold/$winfile") || &error('指定されたファイルが開けません。');

geki_game.cgi」の下記部分を探して下さい。(無改造の場合は、52行目〜64行目)

if(!$winners[0]){
     open(WN,"+<$leaguefold/$winfile") || &error('指定されたファイルが開けません。');
     truncate (WN, 0);
     seek(WN,0,0); print WN $userdata[0];
     close(WN);

     &error('現在の勝利者がいないため、試合を行えませんでした。');
}

($saku[1], $pass[1], $home[1], $team[1], $icon[1], $date[1], $ip[1],$teamdata[1], $pointdata[1], $bosstype[1],$charadata[1],
          $gamedata[1], $campflag[1]) = split(/<p>/, $winners[0]);
if($saku[1] eq $saku[0] && $pass[1] eq $pass[0]){ &error('自分のチームとは対戦できないよ。'); }

($lastjun[1], $win[1], $wincon[1], $winmax[1], $lose[1], $kaio[1],
 $kaid[1], $get[1], $loss[1], $t_jiseki[1], $boxsum[1], $hitsum[1],
 $hrsum[1], $stesum[1], $errsum[1]) = split(/<>/, $teamdata[1]);

下記赤文字部分を追加する。

if(!$winners[0]){
     open(WN,"+<$leaguefold/$winfile") || &error('指定されたファイルが開けません。');
     truncate (WN, 0);
     seek(WN,0,0); print WN $userdata[0];
     close(WN);

     &error('現在の勝利者がいないため、試合を行えませんでした。');
}

($saku[1], $pass[1], $home[1], $team[1], $icon[1], $date[1], $ip[1], $teamdata[1], $pointdata[1], $bosstype[1], $charadata[1],
 $gamedata[1], $campflag[1]) = split(/<p>/, $winners[0]);
if($saku[1] eq $saku[0] && $pass[1] eq $pass[0]){ &error('自分のチームとは対戦できないよ。'); }

# 不正試合防止(当て馬防止)ここから
if($ateuma){
     if($ip[0] eq $ip[1]){
          &error('不正試合防止のため、この対戦は許可できません!'); # 前回のIPと同じため試合禁止
     }elsif($host eq  $ip[1]){
          &error('不正試合防止のため、この対戦は許可できません!'); # 現在のIPと同じため試合禁止
     }
}
$ip[0] = $host; # 仕掛けたチームのIPを現在のものと置き換えます
# 不正試合防止(当て馬防止)ここまで

($lastjun[1], $win[1], $wincon[1], $winmax[1], $lose[1], $kaio[1], $kaid[1], $get[1], $loss[1], $t_jiseki[1], $boxsum[1], $hitsum[1],
 $hrsum[1], $stesum[1], $errsum[1]) = split(/<>/, $teamdata[1]);

改造内容の注意事項

改造スクリプトの表示に画面に収めるため「改行」が加えられています。

これで「不正試合(当て馬)」はある程度防止できると思います。
また、チームに記録されるIPアドレスは最終試合を行った時のものと入れ替わりますので、新規登録での重複防止にも有効と思います。

更に規制を強化したい場合は、
$ENV{'HTTP_X_FORWARDED_FOR'}
$ENV{'HTTP_CLIENT_IP'};
$ENV{'HTTP_X_CISCO_BBSM_CLIENTIP'}
などのチェックも追加してみる事が有効かもしれません。

同一チームへの連敗制限」なども導入して不正のない運営を心掛けましょう。

「劇ぱわ」の下部著作権部分へのリンクを貼る方法

##### 著作権表示
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="改造:「野良猫のCGI講座」Take it easy !">
      <font size="2">改造:「野良猫のCGI講座」Take it easy !</font>
    </a>
  </div>
  <!--広告バナー挿入位置、ページ下部-->
  </body>
  </html>
  _CHOSAKU_
}#end chosaku

前後の内容

CGI/perl劇ぱわ俺ペナ
不具合対策改造方法
キャンプでアイコン変更不正試合防止(当て馬の防止)

【劇ぱわ改造設置支援サイト】Take it easy ! RYOQUEST presents

『野良猫のCGI講座』は、
【劇ぱわ改造設置支援サイト】Take it easy ! RYOQUEST presents のコンテンツとして、虎猫が公開しています。

「劇空間ぱわふるリーグ2 ver 3.00b(劇ぱわ)」は、
きままなまま』で管理人にーやん様が作成・無料配布されているCGI/Perlによる野球ゲームです。

参考にされた方は、当サイトへリンクを貼って下さい♪
サイト名:Take it easy ! RYOQUEST presents
(サイト名:Take it easy !
URL:http://ryoquest.sakura.ne.jp/
バナーURL:http://ryoquest.sakura.ne.jp/image/tie_8831an.gif
Take it easy !

『旧:野良猫のCGI講座』

以前の『野良猫のCGI講座』をご覧になりたい方は、『旧:野良猫のCGI講座』からアクセスして下さい。
但し、更新は一切していません。

ページのトップへ戻る