#修行メニュー1.3 PC sub training{ if(!$type){ if($hp<10||$shugyo>=200||($hour>=18&&$camp)){ $log .= "休憩しましょう・・・
\n"; $tm= $cmd = 0; $type=''; &call_main_st; }else{ $log .= "修行を行います。
\n"; $tm= $cmd = 0; $type = '修行'; $log2 .=qq|
\n|; $log2 .=qq|\n| if($mv_mode eq 'pc'); $log2 .=qq|\n\n|; $log2 .=qq|
\n|; $log2 .=qq|$td_end
\n|; } } &dat_write; } # 修行処理1 sub training_exe{ if($cmd==0){ $log .= "修行を中止します
\n"; $tm = $cmd = 0; $type=''; &call_main_st; }elsif($cmd==1 && !$com){ # GETによる不正処理にペナルティ &penalty if($mv_mode eq 'pc' && $method eq 'POST' && !$post_flag); open(IN,"$usrdata$tid\.cgi") || &error("Open Error : $usrdata$tid\.cgi",1); $tdat = ; close(IN); %VS = ''; my @prats = split(/,/,$tdat); foreach $prats (@prats){ my ($u,$q) = split(/;/,$prats); $VS{$u} = $q; } $tid = $VS{'id'}; # ID $tnm = $VS{'nm'}; # 名前 $tlv = $VS{'lv'}; # レベル $thp = $VS{'max_hp'}; # HP $thp_max= $VS{'max_hp'}; # MAX_HP $tmp = $VS{'max_mp'}; # MP $tua = $VS{'ua'}; # UA $tud = $VS{'ud'}; # UD $tag = $VS{'ag'}; # AG $tcp = $VS{'camp'}; # 所属 $tlr = $VS{'lr'}; #LR $tdf_a = $VS{'df_a'}; # 防具 $tdg_a = $VS{'dg_a'}; # 武具 $log .="前回の対戦相手と修行を行います。
試合開始!
\n"; $type = '修行中'; $tm = 0; $cmd =-1; # $log2 .=qq|
\n|; # $log2 .=qq|\n\n|; # $log2 .=qq|\n|; # $log2 .=qq|$td_end
\n|; # &dat_write; require './inc/ore_sub-battle.cgi'; &bt_st; }else{&sele_list;} } # 修行リスト表示 sub sele_list { # GETによる不正処理にペナルティ &penalty if($mv_mode eq 'pc' && $method eq 'POST' && !$post_flag); local(@usrfile,@BT_LIST,@tdat); # 参加者データファイル一覧取得 &usrdata_read; # 表示参加者ランダム選出 foreach(0 .. $bt_count){ $bt_list = int(rand($#usrfile+1)); $flag = 0; foreach(0 .. $#BT_LIST){ $flag = 1 if $bt_list eq $BT_LIST[$_]; } push(@BT_LIST,$bt_list) if !$flag; } # @BT_LIST = sort(@BT_LIST); # ランダム選出参加者のデータ一括読み込み foreach (0 .. $#BT_LIST) { open(IN,"$usrdata$usrfile[$BT_LIST[$_]]") || &error("Can't open $usrfile[$BT_LIST[$_]].cgi",1); push(@tdat,); close(IN); } # 参加者ステータス取得 foreach(0 ..$#tdat){ %R = ''; my @prats = split(/,/,$tdat[$_]); foreach $prats (@prats){ my($y,$x) = split(/;/,$prats); $R{$y} = $x; } ### if($nm ne $R{'nm'}){ $NM_V{$R{'nm'}} = $R{'nm'}; # 名前 $NM_V{$R{'nm'}} = "コピーロボット" if($nm eq $R{'nm'});### $HP_MAX_V{$R{'nm'}} = $R{'max_hp'}; # HP $MP_MAX_V{$R{'nm'}} = $R{'max_mp'}; # MP $LV_V{$R{'nm'}} = $R{'lv'}; # レベル $TM_V{$R{'nm'}} = $R{'tm'}; # 行動 $UA_V{$R{'nm'}} = $R{'ua'}; # UA $UD_V{$R{'nm'}} = $R{'ud'}; # UD $LR_V{$R{'nm'}} = $R{'lr'}; # LR $AG_V{$R{'nm'}} = $R{'ag'}; # AG $CP_V{$R{'nm'}} = $R{'camp'}; # 所属 $SG_V{$R{'nm'}} = $R{'sogo'}; # 称号 $N_M{$R{'nm'}} = $R{'id'}; # ID ### } } # 修行リスト表示 if(!$tm){ $log .=qq|
\n|; $log .=qq|\n\n|; $log .=qq|\n|; $log .=qq|\n\n|; $l = $rk = 1; foreach $nm (sort sclv keys(%LV_V)){ $lv_v = $LV_V{$nm}; next if($lv_v<=0); if($lv_v<$prv_lv){ $rk = $l; } $log .= ($agent !~ /Mac/) ? qq|\n|; $prv_lv = $lv_v; $l++; } $log .=qq|
順位LVカモリストHP/MPUA/UD/LR/AG所属
\n|: qq|
\n|; $log .="$rk$lv_v"; # 称号 $log .= ($SG_V{$nm} > 0) ? "$NM_V{$nm} [$sogo_p[$SG_V{$nm}]]" : "$NM_V{$nm}"; $log .=qq|$HP_MAX_V{$nm}/$MP_MAX_V{$nm}$UA_V{$nm}/$UD_V{$nm}/$LR_V{$nm}/$AG_V{$nm}$cmp[$CP_V{$nm}]
\n|; $log .=qq|
\n|; $log .=qq|
\n|; $tm=1; $layout_flag=1; &dat_write; } # 対戦相手割り当て elsif($tm){ if($com){ open(IN,"$usrdata$com\.cgi") || &error("Open Error : $usrdata$com\.cgi",1); $tdat = ; close(IN); %VS = ''; my @prats = split(/,/,$tdat); foreach $prats (@prats){ my ($u,$q) = split(/;/,$prats); $VS{$u} = $q; } $tid = $VS{'id'}; # ID $tnm = $VS{'nm'}; # 名前 $tnm = "コピーロボット" if($VS{'nm'} eq $nm);### $tlv = $VS{'lv'}; # レベル $thp = $VS{'max_hp'}; # HP $thp_max= $VS{'max_hp'}; # MAX_HP $tmp = $VS{'max_mp'}; # MP $tua = $VS{'ua'}; # UA $tud = $VS{'ud'}; # UD $tag = $VS{'ag'}; # AG $tcp = $VS{'camp'}; # 所属 $tlr = $VS{'lr'}; #LR $tdf_a = $VS{'df_a'}; # 防具 $tdg_a = $VS{'dg_a'}; # 武具 $log .="試合開始!
\n"; $type = '修行中'; $tm = 0; # $log2 .=qq|$td_end\n|; require './inc/ore_sub-battle.cgi'; &bt_st; } elsif(!$com){ $log .="中止した…
\n"; $type = ''; $tm = 0; &call_main_st; } } # &dat_write; } # 不正GET処理のペナルティ sub penalty{ $pr=60*60; $sogo=18; $camp=0; $tm = $cmd = 0; $type='服役'; $max_hp =int($max_hp*0.8); $max_mp =int($max_mp*0.8); $ua =int($ua*0.8); $ud =int($ud*0.8); $lr =int($lr*0.8); $ag =int($ag*0.8); &dat_write; &error("不正処理です。ペナルティが発生します。",1); } 1;#削除不可