# GMR for Keitai sub routine # ver 0.63beta3(06/09/23) sub header_i{ print "Content-type: text/html\n\n"; print "$topic\n"; } sub footer_i{ print ""; } sub list_i{ &get_cookie; if(!open(IN,"$datafile")){&error_message('datafile error','data file access failed.');} @all=; close IN; $sort=16; $mode=r; &sort_table; print "[]
"; $count=0; $pagenow=1; foreach $i (@all){ ($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$i); $count++; if($count==15){$count=0;$pagenow++;} if($pagenow==$page){ $date=substr($time,0,8); $diary=""; $diaryfile="$diarydir$name.$diaryletter"; if(-e "$diaryfile"){ if((-M $diaryfile)<1){ $diary.="UP!"; } print "$date:$name"; print " $diary
"; } else{ print "$date:$name
"; } } } print "[Top]"; $pastpage=$page-1; if($pastpage<1){ print "[--]"; } else { print "[]"; } $page++; print "[]"; print "[]"; print <<"EOM";
<メンバーメニュー>
Name
Pass
EOM #if($mes_avail){ #print ""; #} print "

新規登録
"; if($reg_mode==0){print "";} print ""; print "
"; } sub prof_i{ &get_cookie; print "Profile: $name
"; if(!open(IN,"$datafile")){&error_message('datafile error2098','data file access failed.');} @all=; close IN; $match=""; foreach $i(@all){ ($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i); if($r_name eq $name){ $match=$i; } } if($match eq ""){&header; &error_message('id/pass error','access failed.');} ($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$match); if($mode eq "detail"){ #detail @skill = split(/,/,$etc[2]); print "[Skill]
\n"; print "メリットポイント状況
\n"; $prod[12] =~ s/<\/TD>]+>/
/g; $prod[12] =~ s/]+>//g; $prod[12] =~ s/<\/TD><\/TR>//g; $prod[12] =~ s/]+>//g; $prod[12] =~ s/<\/div>/
/g; $dummy=quotemeta("基本
グループ1
グループ2"); $prod[12] =~ s/$dummy//g; print "$prod[12]
"; print "
武器魔法スキル
"; if ($skill_visible) { for($i=0;$i<$#skilllist+1;$i++){ print "$skilllist[$i]:$skill[$i]
"; } } else { print "skill function is not available.
"; } } elsif($mode eq "prof"){ if($class_edit==0){ $class =~ s/<//g; } print "$no/[$class]
"; print "$racelist[$race]($facetypename[$etc[0]])/$relmlistl[$relm]/$point/rank $mrank
"; print "コメント[$comment]
"; if($prof ne "off"){ print "ハンドル[$handle]
"; print "POLハンドル[$polhn]
"; print "e-mail[
$mail]
"; print "ホームページ[$home]
"; print "コメント
$comment2"; } else { print "
プロフィール非公開"; } } elsif($mode eq "level"){ if(($anon ne "on") || ($anon_mode != 1 )){ if($lev[$mainjob]<10){ $main_level="0$lev[$mainjob]"; } else { $main_level=$lev[$mainjob]; } if($supportjob <99){ $mod_level=int($lev[$mainjob]/2); if($mod_level==0){$mod_level=1;} if($mod_level>$lev[$supportjob]){$mod_level=$lev[$supportjob];} if($mod_level<10){ $mod_level="0$mod_level"; } print "$joblist[$mainjob]$main_level/$joblist[$supportjob]$mod_level
"; } else { print "$joblist[$mainjob]$main_level
"; } print "ジョブレベル
"; for ($j=0;$j<$job_max;$j++){ print "$joblist[$j]:$lev[$j]
"; } @prod_r = split(/,/,$etc[1]); print "合成
"; for ($j=0;$j<$prod_max;$j++){ print "$prodlist[$j]:$prod[$j]($ranklist[$prod_r[$j]])
"; } } } elsif($mode eq "mission"){ @mission = split(/,/,$prod[15]); @assault= split (//,$mission[16]); print"
ミッション
"; print"アトルガン:$amlist[$mission[15]]
"; print"プロマシア:$pmlist[$mission[0]]
"; print"ジラート:$jmlist[$mission[1]]
"; print"サンドリア:$smlist[$mission[2]]
"; print"バストゥーク:$bmlist[$mission[3]]
"; print"ウインダス:$wmlist[$mission[4]]
"; print"裏サンド:$maru[$mission[5]]
"; print"裏バス:$maru[$mission[6]]
"; print"裏ウイン:$maru[$mission[7]]
"; print"裏ジュノ:$maru[$mission[8]]
"; print"裏氷河:$maru[$mission[9]]
"; print"裏ザルカ:$maru[$mission[10]]
"; print"裏バルクルム:$maru[$mission[11]]
"; print"裏ブブリム:$maru[$mission[12]]
"; print"裏クフィム:$maru[$mission[13]]
"; print"裏タブナジア:$maru[$mission[14]]
"; print "
アサルト
"; print"$aslist[0]:$asrank[$assault[0]]
"; print"$aslist[1]:$maru[$assault[1]]
"; print"$aslist[2]:$maru[$assault[2]]
"; print"$aslist[3]:$maru[$assault[3]]
"; print"$aslist[4]:$maru[$assault[4]]
"; print"$aslist[5]:$maru[$assault[5]]
"; print"$aslist[6]:$maru[$assault[6]]
"; print"$aslist[7]:$maru[$assault[7]]
"; print"$aslist[8]:$maru[$assault[8]]
"; print"$aslist[21]:$maru[$assault[21]]
"; print"$aslist[22]:$maru[$assault[22]]
"; print"$aslist[9]:$maru[$assault[9]]
"; print"$aslist[10]:$maru[$assault[10]]
"; print"$aslist[11]:$maru[$assault[11]]
"; print"$aslist[23]:$maru[$assault[23]]
"; print"$aslist[24]:$maru[$assault[24]]
"; print"$aslist[12]:$maru[$assault[12]]
"; print"$aslist[13]:$maru[$assault[13]]
"; print"$aslist[14]:$maru[$assault[14]]
"; print"$aslist[25]:$maru[$assault[25]]
"; print"$aslist[26]:$maru[$assault[26]]
"; print"$aslist[15]:$maru[$assault[15]]
"; print"$aslist[16]:$maru[$assault[16]]
"; print"$aslist[17]:$maru[$assault[17]]
"; print"$aslist[27]:$maru[$assault[27]]
"; print"$aslist[28]:$maru[$assault[28]]
"; print"$aslist[18]:$maru[$assault[18]]
"; print"$aslist[19]:$maru[$assault[19]]
"; print"$aslist[20]:$maru[$assault[20]]
"; print"$aslist[29]:$maru[$assault[29]]
"; print"$aslist[30]:$maru[$assault[30]]
"; } elsif($mode eq "custom"){ @custom=split(/,/,$prod[11]); print "
$custom_field[0]
"; for($j=1;$j<$#custom_field+1;$j++){ if($custom_pulldown[$j]==0){ print "$custom_field[$j]:$custom[$j]
"; } else { print "$custom_field[$j]:".${"custom_list$j"}[$custom[$j]]."
"; } } } else { #detailend } print "
"; print "プロフィール
"; print "レベル・合成スキル
"; print "ミッション
"; print "$custom_field[0]
"; print "メリポ/スキル
"; if($mes_avail){ print <<"EOM"; $nameさんへメッセージ送信
name pass
EOM } print "
ListTop"; } sub diary_i{ print "$name 's diary
"; if(!open(IN,"$datafile")){&error_message('datafile error2098','data file access failed.');} @all=; close IN; $match=""; foreach $i(@all){ ($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i); if($r_name eq $name){ $match=$i; } } if($match eq ""){&header; &error_message('id/pass error','access failed.');} ($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$match); $diaryfile="$diarydir$name.$diaryletter"; if($diarybg ne ""){$dbg=" bgcolor=$diarybg";} if (!open(DB,"$diaryfile")) { print "$name さんの日記はありません。"; } elsif($prof ne "off"){ @lines = ; close(DB); $pagenow=1; foreach $i (@lines){ ($no,$today2,$title,$body,$imgexist,$res)=split(/\t/,$i); if($pagenow==$page){ print "●$title/$today2($no)
"; if($imgexist ne ""){ @imgfiles = split(/,/,$imgexist); foreach $imgfile(@imgfiles){ print "[画像]
"; } } if ($FORM{'all'} ne "true") { @diarylines = split(/
/,$body); if ($#diarylines > 8) { $body = join("
", @diarylines[0..8])."(略
[全文を読む]"; } } print "$body"; if($res ne ""){print "
$res
";} if($diaryres){ print "
名前
"; } } $pagenow++; } $page++; print "
Next"; print "
DiaryTop"; print "
ListTop"; } else { print "$name さんの日記は非公開になっています。"; } } sub res_diary_i{ if($body eq ""){&header;&error_message('本文がありません','');} if($name eq ""){&header;&error_message('名前がありません','');} if($body !~ /[\x81-\x9A]/ && $denyeng){&header;&error_message('アルファベットのみの書き込みは禁止されています。','')}; &word_ban; $diaryfile="$diarydir$name2.$diaryletter"; &dirlock; if (!open(DB,"$diaryfile")) { &header; print "
$name さんの日記はありません。
"; } else { @lines = ; close(DB); foreach $i(@lines){ ($r_no,$r_today,$r_title,$r_body,$r_img,$r_res)=split(/\t/,$i); if($no !=$r_no){ push(@out,$i); } else { $r_res =~ s/\n//g; $body =~ s/
//g; $r_res.="$name > $body ($today2)
"; $r_body =~ s/\n//g; #旧バージョン対策 push(@out,"$r_no\t$r_today\t$r_title\t$r_body\t$r_img\t$r_res\t\n"); } } if (!open(OUT,">$diaryfile")) {&header; &error_message('filesystem error','access failed.');} print OUT @out; close(OUT); if(!open(IN,"$datafile")){&error_message('datafile error2480','data file access failed.');} @all=; close IN; @out=(); foreach $i(@all){ ($no,$r_name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$i); if($r_name eq $name2){ push(@out,"$no\t$r_name\t$pass\t$anon\t$race\t$relm\t$mainjob\t$supportjob\t$prof\t$handle\t$polhn\t$mail\t$home\t$comment2\t$point\t$class\t$timenow\t$comment\t$mrank\t$etc[0]\t$etc[1]\t$etc[2]\t$prod[0]\t$prod[1]\t$prod[2]\t$prod[3]\t$prod[4]\t$prod[5]\t$prod[6]\t$prod[7]\t$prod[8]\t$prod[9]\t$prod[10]\t$prod[11]\t$prod[12]\t$prod[13]\t$prod[14]\t$prod[15]\t$lev[0]\t$lev[1]\t$lev[2]\t$lev[3]\t$lev[4]\t$lev[5]\t$lev[6]\t$lev[7]\t$lev[8]\t$lev[9]\t$lev[10]\t$lev[11]\t$lev[12]\t$lev[13]\t$lev[14]\t$lev[15]\t$lev[16]\t$lev[17]\t$lev[18]\t$lev[19]\t\n"); } else { push(@out,$i); } } if(!open(OUT,">$datafile")){&header; &error_message('datafile error2494','data file access failed.');} print OUT @out; close OUT; rmdir($lockdir); #RSS用履歴ファイル作成 $historybase="RESDIA\t$name $name2\t$timenow\t$rsstime\t$no\t$body\t$rh\t$addr\t\n"; &add_history; } $name=$name2; } sub new_regist_i{ if(($gpass ne $reg_pass && $reg_mode==0)){&error_message('illegal login','password is not correct.');} if($mode eq "regist"){ &new_regist_regist_i; } else { &new_regist_normal_i; } } sub new_regist_regist_i{ if(!open(IN,"$datafile")){&error_message('datafile error1791','data file access failed.');} @all=; close IN; if( !($pass =~ /^[A-Za-z0-9_]+$/) ){ &error_message('そのパスワードは登録に利用できません。','パスワードは半角英数字で登録してください。'); } if( !($name =~ /^[A-Za-z0-9_]+$/) ){ &error_message('その名前は使えません。','名前は半角英数字で登録してください。'); } if($mainjob == $supportjob){&error_message('main/job error','メインとサポートは同一のジョブにはできません');} $min_no=0; foreach $i (@all){ ($r_no,$r_user,$dummy)=split(/\t/,$i); if($r_user eq $name){&error_message('already registed',"'$name' has already registed.");} } $no=$#all+2; if($no<10){$no="0$no";} if($no<100){$no="0$no";} push(@all,"$no\t$name\t$pass\t$anon\t$race\t$relm\t$mainjob\t$supportjob\t$prof\t$handle\t$polhn\t$mail\t$home\t$comment2\t$point\t$class\t$timenow\t$comment\t$mrank\t$etc[0]\t$etc[1]\t$etc[2]\t$prod[0]\t$prod[1]\t$prod[2]\t$prod[3]\t$prod[4]\t$prod[5]\t$prod[6]\t$prod[7]\t$prod[8]\t$prod[9]\t$prod[10]\t$prod[11]\t$prod[12]\t$prod[13]\t$prod[14]\t$prod[15]\t$lev[0]\t$lev[1]\t$lev[2]\t$lev[3]\t$lev[4]\t$lev[5]\t$lev[6]\t$lev[7]\t$lev[8]\t$lev[9]\t$lev[10]\t$lev[11]\t$lev[12]\t$lev[13]\t$lev[14]\t$lev[15]\t$lev[16]\t$lev[17]\t$lev[18]\t$lev[19]\t\n"); &dirlock; if(!open(OUT,">$datafile")){&error_message('datafile error1819','data file access failed.');} print OUT @all; close OUT; rmdir($lockdir); #RSS用履歴ファイル作成 $historybase="NEWREG\t$name\tNewMember\t$rsstime\t$no\t$rh\t\t$addr\t\n"; &add_history; print "新規メンバー'$name'($no)の登録を完了しました。"; print "
ListTop"; } sub new_regist_normal_i{ print <<"EOM"; 必要事項を入力してください。
name
pass
anon mode
EOM print "Race
"; print "Realm
"; print "FaceType"; print "Main
"; print "Sup
"; for($i=0;$i<$job_max;$i++){ print "$joblist[$i]
"; } for($i=0;$i<$prod_max;$i++){ print "$prodlist[$i]
"; } print "point
"; print "rank
"; print "comment
"; print "profile 公開
"; print "ハンドル
"; print "POL内ハンドル
"; print "e-mail
"; print "url
"; $comment2 =~ s/
/\r/g; print "prof comment
"; print "
"; } sub keitai_menu{ print "modifying=$all
"; ($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$match); @prod_r = split(/,/,$etc[1]); @mp=split(/,/,$prod[13]); @mission = split(/,/,$prod[15]); @assault=split( //,$mission[16]); #################共通フォーム print "
"; print "No. $no : '$name' 修正
"; ####################ジョブ・合成スキル if($all eq "m_level"){ print ""; print "Main Job
"; print "Support Job
"; for($i=0;$i<$job_max;$i++){ print "$joblist[$i]
\n"; } for($i=0;$i<$prod_max;$i++){ print "$prodlist[$i]\n"; print "
\n"; } } ######################プロフィール if($all eq "m_prof"){ print ""; if($class_edit){ print "class
"; } else { print "
"; } print "anon mode(レベル表\示を隠します)
"; print "Race
"; print "Realm
"; print "FaceType"; print "個人ポイント(リージョン情報参照)
"; print "ミッションランク
"; print "comment(リストに表\示されます)
"; print "
"; print "profile&日記公開スイッチ(on:公開)
"; print "ハンドル
"; print "POL内ハンドル
"; print "e-mail
"; print "homepage url
"; print ""; #プロフ画像 $comment2 =~ s/
/\r/g; print "プロフィール用コメント
"; } ######################武器魔法スキル if($all eq "m_skill"){ print ""; @skill = split(/,/,$etc[2]); if ($skill_visible) { for($i=0;$i<$#skilllist+1;$i++){ print "$skilllist[$i]
"; } } else { print "skill function is not available.
"; } } #######################カスタムフィールド if($all eq "custom"){ print ""; @custom=split(/,/,$prod[11]); for ($i=1;$i<$#custom_field+1;$i++){ if($custom_pulldown[$i]==0){ if($custom_control[$i] eq "0"){ print "$custom_field[$i]
"; } else { print ""; } } else { if($custom_control[$i] eq "0"){ print "$custom_field[$i]
"; } else { print ""; } } } } ######################メリポ1 0-27 if($all eq "mpoint1"){ &list_mpoint_i; print ""; for($i=0;$i<28;$i++){ print "$m_name[$i]($m_categoryname[$m_categorycode[$i]])"; print "
"; } } ######################メリポ2 28-44 if($all eq "mpoint2"){ &list_mpoint_i; print ""; for($i=28;$i<45;$i++){ print "$m_name[$i]($m_categoryname[$m_categorycode[$i]])"; print "
"; } } ######################メリポ3 45-140 if($all eq "mpoint3"){ &list_mpoint_i; print ""; for($i=45;$i<141;$i++){ if($lev[$m_jobcode[$i]] == 75){ print "$m_name[$i]($m_categoryname[$m_categorycode[$i]])"; print "
"; } } } ######################メリポ4 141-210 if($all eq "mpoint4"){ &list_mpoint_i; print ""; for($i=141;$i<211;$i++){ if($lev[$m_jobcode[$i]] == 75){ print "$m_name[$i]($m_categoryname[$m_categorycode[$i]])"; print "
"; } } } ######################ミッション1 三国 if($all eq "mission1"){ print ""; print "$mlist[2]"; print "
\n"; print "$mlist[3]"; print "
\n"; print "$mlist[4]"; print "\n"; } ######################ミッション2 デュナミス if($all eq "mission2"){ print ""; for($k=5;$k<15;$k++){ print "$mlist[$k]
"; } } ######################ミッション3 ジラート if($all eq "mission3"){ print ""; print "$mlist[1]"; print "
\n"; } ######################ミッション4 プロマシア if($all eq "mission4"){ print ""; print "$mlist[0]"; print "
\n"; } ######################ミッション5 アトルガン if($all eq "mission5"){ print ""; print "$mlist[15]"; print "
\n"; } ######################ミッション6 アサルト if($all eq "mission6"){ print ""; print "$aslist[0]"; print "
\n"; for($j=1;$j<$#aslist+1;$j++){ print "$aslist[$j]
\n"; } } ####################共通部フッタ print "
"; } sub keitai_mpoint_menu{ #メリポ用メニュー #mpoint1 HPMPステータス戦闘 0-27 #mpoint2 魔法その他 28-44 #mpoint3 ジョブ1 45-140 #mpoint4 ジョブ2 141-210 print "
"; print "
"; print "
"; print "
"; } sub keitai_mission_menu{ #ミッション用メニュー #mission1 3国 #mission2 デュナミス #mission3 ジラート #mission4 プロマシア #mission5 アトルガン #mission6 アサルト print "
"; print "
"; print "
"; print "
"; print "
"; print "
"; } sub keitai_modify{ print "modifying=$all
"; print "
"; #最初に$allをチェックしてマッチファイルから元データを上書きする。 if($all eq "m_prof"){ ($no,$name,$pass,$dummy,$dummy,$dummy,$mainjob,$supportjob,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$match); } elsif ($all eq "m_level"){ ($no,$name,$pass,$anon,$race,$relm,$dummy,$dummy,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$dummy,$etc[2],$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy,$dummy)=split(/\t/,$match); } elsif ($all eq "m_skill"){ ($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$dummy,$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$match); } elsif ($all eq "custom"){ ($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$match); for($j=1;$j<$#custom_field+1;$j++){ if($custom_control[$j] eq $name){ $custom[$j]=$FORM{"custom$count"."_$j"}; if($FORM{"custom0"} != 0){ $custom[$FORM{"custom0"}] += $FORM{"custom$count"."_$j"}; } } } $prod[11]=join(",", @custom); } elsif ($all =~ "mission"){ ($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$match); @mission = split(/,/,$prod[15]); if($all eq "mission1"){ $mission[2]=$FORM{"mission2"}; $mission[3]=$FORM{"mission3"}; $mission[4]=$FORM{"mission4"}; } if($all eq "mission2"){ for($i=5;$i<15;$i++){ $mission[$i]=$FORM{"mission$i"}; } } if($all eq "mission3"){ $mission[1]=$FORM{"mission1"}; } if($all eq "mission4"){ $mission[0]=$FORM{"mission0"}; } if($all eq "mission5"){ $mission[15]=$FORM{"mission15"}; } if($all eq "mission6"){ $mission[16]=""; for($j=0;$j<$#aslist+1;$j++){ $mission[16]=$mission[16].$FORM{"assault$j"}; } } $prod[15]=join(",", @mission); } elsif ($all =~ "mpoint"){ ($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$match); &list_mpoint_i; @mp=split(/,/,$prod[13]); if($all eq "mpoint1"){ for($i=0;$i<28;$i++){ $mp[$i]=$FORM{"mp$i"} } } if($all eq "mpoint2"){ for($i=28;$i<45;$i++){ $mp[$i]=$FORM{"mp$i"} } } if($all eq "mpoint3"){ for($i=45;$i<141;$i++){ $mp[$i]=$FORM{"mp$i"} } } if($all eq "mpoint4"){ for($i=141;$i<211;$i++){ $mp[$i]=$FORM{"mp$i"} } } $prod[13]=""; $mptotal=0; for($i=0;$i<211;$i++){ $prod[13]=$prod[13].$mp[$i].","; if($mp[$i]>0){ for($j=0;$j<$mp[$i];$j++){ $mptotal= $mptotal + substr($m_needpoint[$i],$j,1); } } } #layout style2 $j=99; #現在カテゴリ $prod[12]="基本グループ1グループ2"; for($i=0;$i<45;$i++){ #基本 if($mp[$i]>0){ if($j !=$m_categorycode[$i]){ $prod[12]=$prod[12]."
$m_categoryname[$m_categorycode[$i]](カテゴリ上限$m_categorymax[$m_categorycode[$i]])
"; $j=$m_categorycode[$i]; } $prod[12]=$prod[12]."$m_name[$i] :".$mp[$i]."/$m_max[$i]
"; } } $prod[12]=$prod[12].""; for($i=45;$i<141;$i++){ #ジョブカテゴリ1 if($mp[$i]>0){ if($j !=$m_categorycode[$i]){ $prod[12]=$prod[12]."
$m_categoryname[$m_categorycode[$i]](カテゴリ上限$m_categorymax[$m_categorycode[$i]])
"; $j=$m_categorycode[$i]; } $prod[12]=$prod[12]."$m_name[$i] :".$mp[$i]."/$m_max[$i]
"; } } $prod[12]=$prod[12].""; for($i=141;$i<211;$i++){ #ジョブカテゴリ2 if($mp[$i]>0){ if($j !=$m_categorycode[$i]){ $prod[12]=$prod[12]."
$m_categoryname[$m_categorycode[$i]](カテゴリ上限$m_categorymax[$m_categorycode[$i]])
"; $j=$m_categorycode[$i]; } $prod[12]=$prod[12]."$m_name[$i] :".$mp[$i]."/$m_max[$i]
"; } } $prod[12]=$prod[12].""; if($mptotal>0){ $prod[12]=$prod[12]."総消費メリットポイント$mptotal"; } } else { ($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$match); } &dirlock; if(!open(IN,"$datafile")){&error_message('datafile error612i','data file access failed.');} @all=; close IN; @out=(); foreach $i(@all){ ($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i); if($r_name eq $name && $pass eq $r_pass){ $pastdat=$i; $newdat="$r_no\t$name\t$pass\t$anon\t$race\t$relm\t$mainjob\t$supportjob\t$prof\t$handle\t$polhn\t$mail\t$home\t$comment2\t$point\t$class\t$timenow\t$comment\t$mrank\t$etc[0]\t$etc[1]\t$etc[2]\t$prod[0]\t$prod[1]\t$prod[2]\t$prod[3]\t$prod[4]\t$prod[5]\t$prod[6]\t$prod[7]\t$prod[8]\t$prod[9]\t$prod[10]\t$prod[11]\t$prod[12]\t$prod[13]\t$prod[14]\t$prod[15]\t$lev[0]\t$lev[1]\t$lev[2]\t$lev[3]\t$lev[4]\t$lev[5]\t$lev[6]\t$lev[7]\t$lev[8]\t$lev[9]\t$lev[10]\t$lev[11]\t$lev[12]\t$lev[13]\t$lev[14]\t$lev[15]\t$lev[16]\t$lev[17]\t$lev[18]\t$lev[19]\t\n"; push(@out,$newdat); } else { push(@out,$i); } } if(!open(OUT,">$datafile")){&header; &error_message('datafile error627i','data file access failed.');} print OUT @out; close OUT; rmdir($lockdir); #RSS用履歴ファイル作成 &compare_history; $historybase="PROFED\t$name\t$name profile modify\t$rsstime\t$no\t$message\t$rh\t$addr\t\n"; &add_history; print "個人データ更新終了"; print "
ListTop"; } sub login_i { if(!open(IN,"$datafile")){&header; &error_message('datafile error/system','data file access failed.');} @all=; close IN; $match=""; foreach $i(@all){ ($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i); if($r_name eq $name && $pass eq $r_pass){ $match=$i; } } if($match eq ""){&header; &error_message('id/pass error','access failed.');} if($function eq "mission"){ &mission_i; } elsif ($mode eq "login"){ &login_enter_i; } elsif($mode eq "mission"){ &keitai_mission_menu; } elsif($mode eq "mpoint"){ &keitai_mpoint_menu; } elsif($mode eq "menu"){ &keitai_menu; } elsif($mode eq "modify"){ &keitai_modify; } else { &login_enter_i; } } sub login_enter_i{ print "MemberList Top
"; print "No. $no : '$name' LoginMenu
"; print "登録データ修正"; #prof print "
"; #levelf print "
"; #skill print "
"; #mpoint print "
"; #mission print "
"; #custom print "
"; #message if($mes_avail){ #新規メッセージチェック print "
メッセージ"; if (-e "$mesdir$name.cgi") { if(!open(IN,"$mesdir$name.cgi")){&error_message('datafile error490','data file access failed.');} @mes=; close IN; $k=0; for $i(@mes){ ($j,$dummy)=split(/\t/,$i); $k=$k+$j; } if($k>0){print "
$k 件の新しいメッセージがあります。";} } print "
"; } print "
日記を書く"; print "

"; } sub write_diary_i{ $diaryfile="$diarydir$name.$diaryletter"; if(!open(IN,"$datafile")){&header; &error_message('datafile error2249','data file access failed.');} @all=; close IN; $match=""; foreach $i(@all){ ($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i); if($r_name eq $name && $pass eq $r_pass){ $match=$i; } } if($match eq ""){&header; &error_message('id/pass error','access failed.');} if ($mode eq "write"){ if($body eq ""){&header;&error_message('本文がありません','');} if (!open(DB,"$diaryfile")) { @lines=(); } @lines = ; close(DB); ($maxno,$dummy1,$dummy2,$dummy3)=split(/\t/,$lines[0]); $maxno++; #あげ対策 $maxno=time(); $fnt=""; if($imgexist){$fnt="$name$maxno.$fileexst";} @lines=reverse(@lines); push(@lines,"$maxno\t$today2\t$title\t$body\t$fnt\t\t\n"); @lines=reverse(@lines); @out=(); $count=0; foreach $i(@lines){ if($count<$diarymax){ push(@out,$i); $count++; } } if (!open(OUT,">$diaryfile")) {&header; &error_message('filesystem error','access failed.');} print OUT @out; close(OUT); if(!open(IN,"$datafile")){&error_message('datafile error2315','data file access failed.');} @all=; close IN; @out=(); foreach $i(@all){ ($no,$r_name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15],$lev[16],$lev[17],$lev[18],$lev[19])=split(/\t/,$i); if($r_name eq $name){ push(@out,"$no\t$r_name\t$pass\t$anon\t$race\t$relm\t$mainjob\t$supportjob\t$prof\t$handle\t$polhn\t$mail\t$home\t$comment2\t$point\t$class\t$timenow\t$comment\t$mrank\t$etc[0]\t$etc[1]\t$etc[2]\t$prod[0]\t$prod[1]\t$prod[2]\t$prod[3]\t$prod[4]\t$prod[5]\t$prod[6]\t$prod[7]\t$prod[8]\t$prod[9]\t$prod[10]\t$prod[11]\t$prod[12]\t$prod[13]\t$prod[14]\t$prod[15]\t$lev[0]\t$lev[1]\t$lev[2]\t$lev[3]\t$lev[4]\t$lev[5]\t$lev[6]\t$lev[7]\t$lev[8]\t$lev[9]\t$lev[10]\t$lev[11]\t$lev[12]\t$lev[13]\t$lev[14]\t$lev[15]\t$lev[16]\t$lev[17]\t$lev[18]\t$lev[19]\t\n"); } else { push(@out,$i); } } if(!open(OUT,">$datafile")){&header; &error_message('datafile error2329','data file access failed.');} print OUT @out; close OUT; #RSS用履歴ファイル作成 $historybase="DWRITE\t$name\t$title\t$rsstime\t$maxno\t$body\t$rh\t$addr\t\n"; &add_history; print "日記を書き込みました。
"; print "
ListTop"; } else { print "新規日記
"; print "
\ntitle

body

"; print"
"; } } sub send_message_i{ if(!open(IN,"$datafile")){&error_message('datafile error/system','data file access failed.');} @all=; close IN; $match=""; foreach $i(@all){ ($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i); if($r_name eq $name && $pass eq $r_pass){ $match=$i; } } if($match eq ""){&header; &error_message('id/pass error','access failed.');} if($mode eq "submit"){ if($language ne "English"){ if($body eq ""){&error_message('本文がありません','');} if($name eq ""){&error_message('名前がありません','');} } else { if($body eq ""){&error_message('no text','');} if($name eq ""){&error_message('no name','');} } #未読flag sender title body time $message="1\t$name\t$title\t$body\t$timenow\t\n"; if(!open(IN,"$datafile")){&error_message('datafile error/system','data file access failed.');} @all=; close IN; $match=""; foreach $i(@all){ ($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i); if($r_name eq $name2){ $match=$i; } } if($match eq ""){&error_message('送信先が存在しません。','access failed.');} if(!open(OUT,">>$mesdir$name2.cgi")){&error_message('datafile error1872','data file access failed.');} print OUT $message; close OUT; print <<"EOM"; メッセージを送信しました。
MemberList Top
EOM } else { print "$name message send"; print "MemberList Top
"; #mode eq replyの場合は if($mode eq "reply"){ $title="Re: $title"; $body="> $body"; $body=~ s/
/\n> /g; } print <<"EOM"; send message from '$name' to '$name2'
title :

message
EOM } } sub check_message_i{ if(!open(IN,"$datafile")){&error_message('datafile error/system','data file access failed.');} @all=; close IN; $match=""; foreach $i(@all){ ($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i); if($r_name eq $name && $pass eq $r_pass){ $match=$i; } } if($match eq ""){&error_message('id/pass error','access failed.');} if(!open(IN,"$mesdir$name.cgi")){&error_message('メッセージはありません。','');} @mes=; close IN; if($mode eq "read"){ print "$name check message:"; print "MemberList Top
"; $count=0; @outmes=(); foreach $i(@mes){ print "
"; ($read,$from,$title,$body,$time)=split(/\t/,$i); if($count == $no){ print "Title:$title
"; print "From:$from
"; print "Time:$time
"; print "Message:
$body
"; $body2=$body; $body2=~ s/
/\n/g; $body2=~ s/"/"/g; print <<"EOM";
EOM if($read ==1){ $message="0\t$name(open)\t開封確認メッセージ\tこのメッセージは$timenowに開封されました。
Title:$title
Message:
$body\t$timenow\t\n"; if(!open(OUT,">>$mesdir$from.cgi")){&error_message('datafile error3354','data file access failed.');} print OUT $message; close OUT; $read=0; } } push(@outmes,"$read\t$from\t$title\t$body\t$time\t\n"); $count++; } if(!open(OUT,">$mesdir$name.cgi")){&error_message('datafile error3316','data file access failed.');} print OUT @outmes; close OUT; } elsif($mode eq "reply"){ &send_message_i; } else { print "$name message check:
"; print "MemberList Top
"; #新規メッセージチェック print "
"; if (-e "$mesdir$name.cgi") { if(!open(IN,"$mesdir$name.cgi")){&error_message('datafile error490','data file access failed.');} @mes=; close IN; $k=0; for $i(@mes){ ($j,$dummy)=split(/\t/,$i); $k=$k+$j; } if($k>0){print "$k 件の新しいメッセージがあります。";} } if($mode eq "delete"){ $count=0; @outmes=(); foreach $i(@mes){ print "
"; ($read,$from,$title,$body,$time)=split(/\t/,$i); if($count != $no){push(@outmes,"$read\t$from\t$title\t$body\t$time\t\n");} $count++; } if(!open(OUT,">$mesdir$name.cgi")){&error_message('datafile error3316','data file access failed.');} print OUT @outmes; close OUT; @mes=@outmes; print "メッセージを1件削除しました。
"; } @mes=reverse(@mes); $count=$#mes; foreach $i(@mes){ print ""; ($read,$from,$title,$body,$time)=split(/\t/,$i); if($read){ print "未読:$title from $from on $time"; } else {print "既読:$title from $from on $time";} print <<"EOM";

EOM $count--; } } } sub list_mpoint_i{ #カテゴリリスト @m_categoryname=('HP/MP','ステータス','戦闘スキル','魔法スキル','その他の能力','戦士1','モンク1','白魔道士1','黒魔道士1','赤魔道士1','シーフ1','ナイト1','暗黒騎士1','獣使い1','吟遊詩人1','狩人1','侍1','忍者1','竜騎士1','召喚士1','青魔道士1','コルセア1','からくり士1','戦士2','モンク2','白魔道士2','黒魔道士2','赤魔道士2','シーフ2','ナイト2','暗黒騎士2','獣使い2','吟遊詩人2','狩人2','侍2','忍者2','竜騎士2','召喚士2',); #各カテゴリのmax @m_categorymax=( '8','5','12','8','8','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','10','6','6','6','6','6','6','6','6','6','6','6','6','6','6','6',); #各項目名称 @m_name=( 'HP','MP','STR','DEX','VIT','AGI','INT','MND','CHR','格闘','短剣','片手剣','両手剣','片手斧','両手斧','両手鎌','両手槍','片手刀','両手刀','片手棍','両手棍','弓術','射撃','投てき','ガード','回避','盾','受け流し','神聖魔法','回復魔法','強化魔法','弱体魔法','精霊魔法','暗黒魔法','歌唱','弦楽器','管楽器','忍術','召喚魔法','青魔法','敵対心+','敵対心−','クリティカルヒット率','被クリティカルヒット率','詠唱中断率','バーサク使用間隔','ディフェンダー使用間隔','ウォークライ使用間隔','アグレッサー使用間隔','ダブルアタック確率','集中使用間隔','回避使用間隔','チャクラ使用間隔','カウンター確率','蹴撃確率','女神の印使用間隔','ケアル詠唱時間','属性耐性魔法効果','バニシュ効果','リジェネ効果','精霊の印使用間隔','火属性魔法攻撃力','氷属性魔法攻撃力','風属性魔法攻撃力','土属性魔法攻撃力','雷属性魔法攻撃力','水属性魔法攻撃力','コンバート使用間隔','火属性魔法命中率','氷属性魔法命中率','風属性魔法命中率','土属性魔法命中率','雷属性魔法命中率','水属性魔法命中率','とんずら使用間隔','かくれる使用間隔','不意打ち使用間隔','だまし討ち使用間隔','トリプルアタック確率','シールドバッシュ使用間隔','ホーリーサークル使用間隔','センチネル使用間隔','かばう効果時間','ランパート使用間隔','暗黒使用間隔','アルケインサークル使用間隔','ラストリゾート使用間隔','ラストリゾート効果','ウェポンバッシュ使用間隔','キラー確率','いたわる使用間隔','よびだす使用間隔','ほんきだせ使用間隔','なだめる使用間隔','ララバイ使用間隔','フィナーレ使用間隔','ミンネ効果','メヌエット効果','マドリガル効果','スカベンジ使用間隔','カモフラージュ使用間隔','狙い撃ち使用間隔','エンドレスショット使用間隔','ラピッドショット確率','心眼使用間隔','護摩の守護円使用間隔','ストアTP効果','黙想使用間隔','残心確率','モクシャ効果','火遁の術効果','氷遁の術効果','風遁の術効果','土遁の術効果','雷遁の術効果','水遁の術効果','エンシェントサークル使用間隔','ジャンプ使用間隔','ハイジャンプ使用間隔','スーパージャンプ使用間隔','スピリットリンク使用間隔','召喚獣物理命中率','召喚獣物理攻撃力','召喚獣魔法命中率','召喚獣魔法攻撃力','精霊維持費−','ブルーチェーン使用間隔','ブルーバースト使用間隔','モンスター相関関係効果','物理系青魔法攻撃力','魔法系青魔法命中率','ファントムロール使用間隔','クイックドロー使用間隔','クイックドロー命中率','ランダムディール使用間隔','Bust時間短縮','オートマトン白兵戦スキル','オートマトン射撃戦スキル','オートマトン魔法戦スキル','アクティベート使用間隔','リペアー使用間隔','ウォリアーチャージ','トマホーク','サベッジリ','アグレシブエイム','マントラ','無想無念','錬気','発剄','マーター','デヴォーション','プロテアV','シェルラV','フレアII','フリーズII','トルネドII','クエイクII','バーストII','フラッドII','ディアIII','スロウII','パライズII','ファランクスII','バイオIII','ブラインII','アサシンチャージ','フェイント','オーラスティール','アンブッシュ','フィールティー','シバルリー','アイアンウィル','ガーディアン','ダークシール','ディアボリクアイ','ミューテッドソウル','デスペレートブロー','フェラルハウル','K.インスティンクト','ビーストアフニティ','ビーストヒーラー','ナイチンゲール','トルバドゥール','魔物のシルベント','冒険者のダージュ','ステルスショット','フラッシーショット','スナップショット','リサイクル','士気高揚','峰打ち','意気衝天','正正堂堂','散華','忍具の知識','火遁の術:参','氷遁の術:参','風遁の術:参','土遁の術:参','雷遁の術:参','水遁の術:参','ディープブリージング','アンゴン','エンパシー','ストレイフ','メテオストライク','ヘヴンリーストライク','ウィンドブレード','ジオクラッシュ','サンダーストーム','グランドフォール',); #各項目のカテゴリコード @m_categorycode=( '0','0','1','1','1','1','1','1','1','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','2','3','3','3','3','3','3','3','3','3','3','3','3','4','4','4','4','4','5','5','5','5','5','6','6','6','6','6','7','7','7','7','7','8','8','8','8','8','8','8','9','9','9','9','9','9','9','10','10','10','10','10','11','11','11','11','11','12','12','12','12','12','13','13','13','13','13','14','14','14','14','14','15','15','15','15','15','16','16','16','16','16','17','17','17','17','17','17','17','18','18','18','18','18','19','19','19','19','19','20','20','20','20','20','21','21','21','21','21','22','22','22','22','22','23','23','23','23','24','24','24','24','25','25','25','25','26','26','26','26','26','26','27','27','27','27','27','27','28','28','28','28','29','29','29','29','30','30','30','30','31','31','31','31','32','32','32','32','33','33','33','33','34','34','34','34','35','35','35','35','35','35','35','35','36','36','36','36','37','37','37','37','37','37',); #各項目のMAX値 @m_max=( '8','8','5','5','5','5','5','5','5','8','8','8','8','8','8','8','8','8','8','8','8','8','8','8','4','4','4','4','8','8','8','8','8','8','8','8','8','8','8','8','4','4','4','4','4','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','5','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3','3',); #各カテゴリの必要ポイント @m_needpoint=( '12345555','12345555','36999','36999','36999','36999','36999','36999','36999','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','1233','1233','1233','1233','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','12333333','1234','1234','1234','1234','1234','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','12345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345','345'); #表示制限ジョブコード @m_jobcode=( '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','1','1','1','1','1','2','2','2','2','2','3','3','3','3','3','3','3','4','4','4','4','4','4','4','5','5','5','5','5','6','6','6','6','6','7','7','7','7','7','10','10','10','10','10','9','9','9','9','9','8','8','8','8','8','14','14','14','14','14','13','13','13','13','13','13','13','11','11','11','11','11','12','12','12','12','12','15','15','15','15','15','16','16','16','16','16','17','17','17','17','17','0','0','0','0','1','1','1','1','2','2','2','2','3','3','3','3','3','3','4','4','4','4','4','4','5','5','5','5','6','6','6','6','7','7','7','7','10','10','10','10','9','9','9','9','8','8','8','8','14','14','14','14','13','13','13','13','13','13','13','13','11','11','11','11','12','12','12','12','12','12',); } 1;