罪と罰++二律背反


[[罪罰改造]]
*概要 [#o814da46]
他国の情報を収集して各国会議室ログに書き込みます

*./inc/ore_sub-mission.cgi [#xd0e8adb]
**sub mission_menu にメニュー項目を追加 [#e1bf9382]
 my @gu           = ('やめる','諜報','強奪','洗脳','偵察');
 
**sub mission_exe に偵察処理を追加 [#c3404b25]
         }elsif($cmd==4){  # @guのメニュー番号に合わせる
             $log .= qq|偵察を行います|;
             &misson_menu2;
             $tm=61;
         }
-&write_dataの上に追加

     }elsif($tm==61){
         &gun_tm61;
     }
     &write_data;
 }

**偵察処理 [#p800ec47]

 #-------------------------------------------------------------------------------
 # 収集
 sub gun_tm61 {
 
     if($cmd<1 || $cmd>5){
         $log .= qq|情報収集を中止しました<br>|;
     }elsif(rand(100)<30){
         $log .= qq|情報の収集に失敗しました<br>|;
     }elsif($cmd){
         my @cdat_title = ('国力','資金','兵糧','兵士');
         my @cdat_data = (
                 [],
                 [ $cn1, $cg1, $cf1, $cs1, $ct1 ],
                 [ $cn2, $cg2, $cf2, $cs2, $ct2 ],
                 [ $cn3, $cg3, $cf3, $cs3, $ct3 ],
                 [ $cn4, $cg4, $cf4, $cs4, $ct4 ],
                 [ $cn5, $cg5, $cf5, $cs5, $ct5 ],
         );
 
         $com = $cmp[$cmd];
         foreach(0..$#cdat_title){
             my $gosa = int(rand(20))-10;
             $com .= qq|/$cdat_title[$_]:|.int($cdat_data[$cmd][$_]/100*(100+$gosa));
         }
 
         $log .= qq|$cmp[$cmd]の情報を収集しました<br><br>$com|;
         &regist_bbs;
 
     }
 
     # 偵察
     $scout[$camp]+=int(rand(10)+5) if($scout[$camp]<rand(80));
     $sct_cnt++;
     $rank_exe+=int(rand(2)+1); 
 
     $pr += $GMT;
     $type='';
     $tm=$cmd=0;
     &call_main_st;
 }

**ログ書き込み処理 [#xd5b934a]
書き込み内容を$comにセットして、regist_bbsを呼び出します


 #-------------------------------------------------------------------------------
 # ログ書き込み処理
 #
 sub regist_bbs {
         my $logfile = './logdata/camp_log_';
         my $lockkey = 0;
         my $lockfile = "./camp.lock";
         my $max = 15;
 
 
         # ファイルロック
         if ($lockkey) { &lock; }
 
         # ログを読み込み
         open(IN,"$logfile$camp\.cgi") || &error("Open Error : $logfile$camp\.cgi");
         @lines = <IN>;
         close(IN);
 
         # 最大記事数処理
         while ($max <= @lines) { pop(@lines); }
 
         # ログ更新処理
         if($sogo_txt ne ''){
                 unshift (@lines,"$date<>$nm<>$camp<>$com<>$sogo_txt<>$addr<>$host<>$agent<>\n");
         }else{
                 unshift (@lines,"$date<>$nm<>$camp<>$com<>$sogo<>$addr<>$host<>$agent<>\n");
         }
         open(OUT,">$logfile$camp\.cgi") || &error("Write Error : $logfile$camp\.cgi");
         print OUT @lines;
         close(OUT);
 
         # ロック解除
         if (-e $lockfile) { unlink($lockfile); }
 }

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS