# #マスターモード(削除機能とパスワード閲覧) # #0.52βm1(04/10/04) sub master{ print "master mode
"; print "
[登録システム入り口][使い方][ホームページへ戻る]
"; print "[各種設定][ソ\ート][バックアップ][お知らせ変更]
"; if(($g_pass ne $master_pass)){&error_message('illegal login','password is not correct.');} if ($mode eq "delete" && $anon eq "on") { print "$name さんを削除します。データはすべて抹消されます。
"; if(!open(IN,"$datafile")){&error_message('datafile error193','data file access failed.');} @all=; close IN; @out=(); foreach $i (@all){ ($r_no,$r_name,$dummy)=split(/\t/,$i); if($name ne $r_name){ push(@out,$i); } } if(!open(OUT,">$datafile")){&error_message('datafile error204','data file access failed.');} print OUT @out; close OUT; print "$name さんのデータは削除されました。
"; print "
"; } elsif ($mode eq "edit") { if(!open(IN,"$datafile")){&header; &error_message('datafile error214','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])=split(/\t/,$match); @prod_r = split(/,/,$etc[1]); print "'$name'($no) さんのデータを修正します。
"; print ""; print "\n"; print "\n"; print ""; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; for($i=0;$i<$job_max;$i++){ print "\n"; } print "\n"; for($i=0;$i<$prod_max;$i++){ print "\n"; } ####ミッション進行度フラグ #pm,jm,sm,bm,wm,ds,db,dw,dj,df,dx @mission = split(/,/,$prod[15]); print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; ####ミッション進行度ここまで ############## #-- 以下スキル表示機能で追加した部分 @skill = split(/,/,$etc[2]); if ($skill_visible) { print ""; print ""; } #-- スキル表示機能で追加した部分ここまで ############## print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; $comment2 =~ s/
/\r/g; print "\n"; print "\n
$field[0]
$field[1]
$field[2]
no
$field[3]
$field[4]
$field[5] ($field[18])
$field[6]

$field[7]
$field[8]
$joblist[$i]

$prodlist[$i]\n"; print "
プロマシア "; print "
ジラート"; print "
サンドリア"; print "
バストゥーク"; print "
ウインダス"; print "
デュナミスーサンドリア"; print "
デュナミスーバストゥーク"; print "
デュナミスーウインダス"; print "
デュナミスージュノ"; print "
デュナミスーボスディン"; print "
デュナミスーザルカバード"; print "
※各スキルの入力は任意です。記録を希望されるときだけご利用ください
"; for($i=0;$i<15;$i++){ print ""; } print ""; for($i=0;$i<15;$i++){ print "\n"; } print "
$skilllist[$i]
"; for($i=15;$i<$#skilllist+1;$i++){ print ""; } print ""; for($i=15;$i<$#skilllist+1;$i++){ print "\n"; } print "
$skilllist[$i]
$field[9]
$field[10]
$field[11]

$field[12]
$field[13]
$field[14]
$field[15]
$field[16]
$field[17]
"; } elsif ($mode eq "modify") { &dirlock; if(!open(IN,"$datafile")){&header; &error_message('datafile error332','data file access failed.');} @all=; close IN; if($mainjob == $supportjob){&header; &error_message('main/job error','メインとサポートは同一のジョブにはできません');} if( !($pass =~ /^[A-Za-z0-9_]+$/) ){ &error_message('そのパスワードは登録に利用できません。','パスワードは半角英数字で登録してください。'); } if( !($name2 =~ /^[A-Za-z0-9_]+$/) ){ &error_message('その名前は使えません。','名前は半角英数字で登録してください。'); } @out=(); foreach $i(@all){ ($r_no,$r_name,$dummy1,$dummy2,$dummy3,$dummy4,$dummy5,$dummy6,$dummy7,$dummy8,$dummy9,$dummy10,$dummy11,$dummy12,$dummy13,$dummy14,$r_time)=split(/\t/,$i); if($r_name eq $name){ push(@out,"$no\t$name2\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$r_time\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\n"); } else { push(@out,$i); } } if(!open(OUT,">$datafile")){&header; &error_message('datafile error353','data file access failed.');} print OUT @out; close OUT; rmdir($lockdir); print "
'$name'さんのデータを修正しました
"; print "
"; } elsif($mode eq "backup"){ if(!open(IN,"$datafile")){&error_message('datafile error364','data file access failed.');} @all=; close IN; if(!open(OUT,">$name")){&error_message('datafile error368','data file access failed.');} print OUT @all; close OUT; print "バックアップファイル'$name'を作成しました。データ破損の場合はこのファイルを'$datafile'に上書きしてください。
"; print "
"; } elsif($mode eq "sort"){ &dirlock; if(!open(IN,"$datafile")){&error_message('datafile error380','data file access failed.');} @all=; close IN; @all=sort(@all); @out=(); $count=1; foreach $i (@all){ @temp=split(/\t/,$i); $c=$count; if($c<10){$c="0$c";} if($c<100){$c="0$c";} $value="$c"; for($j=1;$j<$#temp+1;$j++){ $value="$value\t$temp[$j]"; } push (@out,"$value"); $count++; } if(!open(OUT,">$datafile")){&error_message('datafile error406','data file access failed.');} print OUT @out; close OUT; rmdir($lockdir); print "Noを元にソ\ート、Noを振りなおしました。デフォルトでNo順で表\示されるようになります。
"; print "
"; } elsif($mode eq "sort2"){ &dirlock; if(!open(IN,"$datafile")){&error_message('datafile error419','data file access failed.');} @all=; close IN; @all=sort(@all); if(!open(OUT,">$datafile")){&error_message('datafile error425','data file access failed.');} print OUT @all; close OUT; rmdir($lockdir); print "Noを元にソ\ートしました。
"; print "
"; } elsif($mode eq "message"){ $body =~ s/<//g; $name =~ s/<//g; if(!open(OUT,">message.tbl")){&error_message('message datafile error437','data file access failed.');} print OUT "$name\n$body\n"; close OUT; print "お知らせを書き換えました。
"; print "
"; } else { if(!open(IN,"$datafile")){&error_message('datafile error446','data file access failed.');} @all=; close IN; if($sort ne ""){ &sort_table; } print ""; print ""; $count=0; 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])=split(/\t/,$i); if($count==$c_max){ print "
noclassnamepasstimeedit

"; $count=0; } print ""; print ""; $count++; } print "
noclassnamepasstimeedit
$no$class$name$pass
$time確認
"; if(!open(IN,"message.tbl")){$osirase="no"} else { $osirase=; $osirase =~ s/\n//g; $osirase =~ s/\r//g; $osirasebody=; close IN; } $osirasebody =~ s/
/\n/g; print <<"EOM";
設定ファイルを書き換えます
表\示項目のカスタマイズ

No順にソ\ート、Noを振りなおして、その順で書き込みます。

No順にソ\ート、Noを振りなおしません。

データのバックアップ
ファイル名を入れてバックアップボタンを押してください。

お知らせの表\示
お知らせの文章を入れてください。
お知らせのタイトル(なしで表\示しません)

お知らせの文章

EOM print "
[登録システム入り口][使い方][ホームページへ戻る]
"; } } 1;