罪と罰++二律背反

my @gu           = ('やめる','諜報','強奪','洗脳','偵察');
        }elsif($cmd==4){  # @guのメニュー番号に合わせる
            $log .= qq|偵察を行います|;
            &misson_menu2;
            $tm=61;
        }
    }elsif($tm==61){
        &gun_tm61;
    }
    &write_data;
}
#-------------------------------------------------------------------------------
# 収集
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;
}
#-------------------------------------------------------------------------------
# ログ書き込み処理
#
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
Last-modified: 2012-06-08 (金) 00:26:08 (4340d)