www.pudn.com > NETv2.0.rar > admin.cgi


#!/usr/bin/perl  
 
################################################################# 
# 【免責事項】 # 
# このスクリプトはフリーソフトです。このスクリプトを使用した # 
# いかなる損害に対して作者は一切の責任を負いません。 # 
# また設置に関する質問はサポート掲示板にお願いいたします。 # 
# 直接メールによる質問は一切お受けいたしておりません。 # 
################################################################# 
 
require 'jcode.pl'; 
require './ini_file/index.ini'; 
require 'suport.pl'; 
 
if($MENTE) { &ERR2("错误。"); } 
&DECODE; 
 
if(!$ADMIN_SET) { &ERR2("管理员使用。"); } 
 
# ------------ 要先注册下面你设的用户,才可以登录管理。管理用ID PASS設定 ----------- 
$adminid = "xxxx"; 
$adminpass = "xxxx00"; 
# ------------ ここまで ----------- 
 
 
 
 
if($mode eq 'CHANGE') { &CHANGE; } 
elsif($mode eq 'MENTE') { &MENTE; } 
elsif($mode eq 'MENTE2') { &MENTE2; } 
elsif($mode eq 'ITEM') { &ITEM; } 
elsif($mode eq 'ITEM2') { &ITEM2; } 
elsif($mode eq 'ITEM3') { &ITEM3; } 
elsif($mode eq 'ITEM4') { &ITEM4; } 
elsif($mode eq 'ARM') { &ARM; } 
elsif($mode eq 'ARM2') { &ARM2; } 
elsif($mode eq 'ARM3') { &ARM3; } 
elsif($mode eq 'PRO') { &PRO; } 
elsif($mode eq 'PRO2') { &PRO2; } 
elsif($mode eq 'PRO3') { &PRO3; } 
elsif($mode eq 'ACC') { &ACC; } 
elsif($mode eq 'ACC2') { &ACC2; } 
elsif($mode eq 'ACC3') { &ACC3; } 
elsif($mode eq 'CHANGE2') { &CHANGE2; } 
elsif($mode eq 'BBS') { &BBS; } 
elsif($mode eq 'BANK') { &BANK; } 
elsif($mode eq 'BANK2') { &BANK2; } 
elsif($mode eq 'BANK3') { &BANK3; } 
elsif($mode eq 'CONT') { &CONT; } 
elsif($mode eq 'CON2') { &CON2; } 
elsif($mode eq 'CON3') { &CON3; } 
elsif($mode eq 'TOW') { &TOW; } 
elsif($mode eq 'TOW2') { &TOW2; } 
elsif($mode eq 'TOW3') { &TOW3; } 
elsif($mode eq 'TOW_DEL') { &TOW_DEL; } 
elsif($mode eq 'CON_DEL') { &CON_DEL; } 
elsif($mode eq 'DEL') { &DEL; } 
elsif($mode eq 'DEL2') { &DEL2; } 
elsif($mode eq 'DEL_LIST') { &DEL_LIST; } 
elsif($mode eq 'ALL_DEL') { &ALL_DEL; } 
elsif($mode eq 'INIT_DATA') { &INIT_DATA; } 
else{⊤} 
 
 
#_/_/_/_/_/_/_/_/_/# 
#_/ MAIN画面 _/# 
#_/_/_/_/_/_/_/_/_/# 
 
sub TOP { 
 
if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ 
&ERR2("ID、パスワードエラー $num ");} 
 
 
&HEADER; 
print <<"EOM"; 

管理ツール


登録者のデータを編集します。通常はこちらで編集してください。 参加者の数が増えると使えなくなる可\能\性があります。

ランキングデータから登録者を編集します。キャラ編集1で編集できない 場合はこちらで編集してください。ランキングデータが更新されていないと 編集できないので参加者に「ランキングの更新」をして貰ってください。

持ち物データを編集します。

武器の編集、新規武器の作成

防具の編集、新規防具の作成

アクセサリの編集、新規アクセサリの作成

銀行データを編集します。

国データの編集、新しい国を作成します。

街データの作成、新しい街を作成します。

すべてのデータを初期化します。
MEMO: NAME:

裏口入学
前回の続きから始める
USER ID
PASS WORD
EOM open(IN,"$ADMIN_BBS"); @A_BBS = ; close(IN); print "
@A_BBS
"; &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ MENTE画面 _/# #_/_/_/_/_/_/_/_/_/# sub MENTE { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("ID、パスワードエラー $num ");} $dir="./charalog/main"; opendir(dirlist,"$dir"); $i=0; while($file = readdir(dirlist)){ if($file =~ /\.cgi/i){ $datames = "検索:$dir/$file
\n"; if(!open(page,"$dir/$file")){ $datames .= "$dir/$fileがみつかりません。
\n"; return 1; } @page = ; close(page); $list[$i]="$file"; ($eid,$epass,$ename,$echara,$estr,$eint,$elea,$echa,$esol,$egat,$econ,$egold,$erice,$ecex,$eclass,$earm,$ebook,$ebank,$esub1,$esub2,$epos,$emes,$ehost,$edate,$email,$eos) = split(/<>/,$page[0]); if("$in{'serch'}" ne ""){ if("$ename" =~ "$in{'serch'}"){ $human_data[$i]="$ehost<>$ename<>$eid<>"; }else{ next; } }else{ if($in{'no'} eq "2"){ $human_data[$i]="$ename<>$ehost<>$eid<>"; }elsif($in{'no'} eq "3"){ $human_data[$i]="$eid<>$ehost<>$ename<>"; }else{ $human_data[$i]="$ehost<>$ename<>$eid<>"; } } push(@newlist,"@page
"); $i++; } } closedir(dirlist); @human_data = sort @human_data; $tt = time - (60 * 60 * 24 * 34); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime($tt); $year += 1900; $mon++; $ww = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[$wday]; $daytime = sprintf("%4d\/%02d\/%02d\/(%s) %02d:%02d:%02d", $year,$mon,$mday,$ww,$hour,$min,$sec); &HEADER; print <<"EOM";

キャラ管理ツール


IDはファイル名と同じになっているので変更しないで下さい。
削除をする時は闘技場、天真に登録していないかを確認してから削除して下さい。
ホスト名は随時更新しています。
編集するファイル:

ホスト名順(2重登録チェック
名前順
ID順
名前検索

ファイル消去

2重登録者を強制削除します。

2重登録疑惑者

$mess


EOM open(IN,"$ADMIN_LIST"); @A_LOG = ; close(IN); print "@A_LOG"; &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/_/_/# #_/ DEL LIST画面 _/# #_/_/_/_/_/_/_/_/_/_/_/# sub DEL_LIST { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("ID、パスワードエラー $num ");} $tt = time - (60 * 60 * 24 * 34); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime($tt); $year += 1900; $mon++; $ww = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[$wday]; $daytime = sprintf("%4d\/%02d\/%02d\/(%s) %02d:%02d:%02d", $year,$mon,$mday,$ww,$hour,$min,$sec); $dir="./charalog/main"; opendir(dirlist,"$dir"); $i=0; while($file = readdir(dirlist)){ if($file =~ /\.cgi/i){ $datames = "検索:$dir/$file
\n"; if(!open(page,"$dir/$file")){ $datames .= "$dir/$fileがみつかりません。
\n"; return 1; } @page = ; close(page); $list[$i]="$file"; ($eid,$epass,$ename,$echara,$estr,$eint,$elea,$echa,$esol,$egat,$econ,$egold,$erice,$ecex,$eclass,$earm,$ebook,$ebank,$esub1,$esub2,$epos,$emes,$ehost,$edate,$email,$eos) = split(/<>/,$page[0]); if($edate < $tt){ $i++; ($sec2,$min2,$hour2,$mday2,$mon2,$year2,$wday2,$yday2) = localtime($edate); $mon2++; $last_login = "$mon2月$mday2日$hour2時$min2分"; $LIST .= "$ename$eid$email$last_login"; } } } closedir(dirlist); @human_data = sort @human_data; $a = "ss"; $dir="./charalog/main"; unlink("$dir/$a\.cgi"); &HEADER; print <<"EOM";

キャラ管理ツール


ファイル消去

$LIST
名前IDMAIL最終更新
>>以上の人を削除します。宜しいですか?


EOM &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ ファイル削除 _/# #_/_/_/_/_/_/_/_/_/# sub ALL_DEL { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR("ID、パスワードエラー $num ");} $tt = time - (60 * 60 * 24 * 34); $dir="./charalog/main"; opendir(dirlist,"$dir"); $i=0; while($file = readdir(dirlist)){ if($file =~ /\.cgi/i){ $datames = "検索:$dir/$file
\n"; if(!open(page,"$dir/$file")){ $datames .= "$dir/$fileがみつかりません。
\n"; } @page = ; close(page); $list[$i]="$file"; ($eid,$epass,$ename,$eurl,$echara,$esex,$ehp,$emaxhp,$emp,$emaxmp,$eele,$estr,$evit,$eint,$emen,$eagi,$ecom,$egold,$e_ex,$ecex,$eunit,$econ,$earm,$epro,$eacc,$esub1,$esub2,$etac,$esta,$epos,$emes,$ehost,$edate,$esyo,$eclass,$etotal,$ekati) = split(/<>/,$page[0]); if($edate < $tt){ $dir2="./charalog/main"; unlink("$dir2/$eid\.cgi"); $dir2="./charalog/bank"; unlink("$dir2/$eid\.cgi"); $dir2="./charalog/arm"; unlink("$dir2/$eid\.cgi"); $dir2="./charalog/item"; unlink("$dir2/$eid\.cgi"); $dir2="./charalog/chara_max"; unlink("$dir2/$eid\.cgi"); $dir2="./charalog/map"; unlink("$dir2/$eid\.cgi"); $i++; } } } closedir(dirlist); &HOST_NAME; &TIME_DATA; unshift(@S_MOVE,"\[削除\] 34日以降ログインのない方を削除しました。($mday日$hour時$min分)
\n"); splice(@S_MOVE,20); open(OUT,">$MAP_LOG_LIST") or &ERR2('LOG 新しいデータを書き込めません。'); print OUT @S_MOVE; close(OUT); &HEADER; print <<"EOM";

34日以降ログインのない方($i名)を削除しました。



EOM &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ WRITE画面 _/# #_/_/_/_/_/_/_/_/_/# sub BBS { &TIME_DATA; if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("ID、パスワードエラー $num ");} open(IN,"$ADMIN_BBS"); @AD_DATA = ; close(IN); if($in{'message'} eq "") { &ERR2("メッセージが記入されていません。"); } $bbs_num = @AD_DATA; if($bbs_num > 40) { pop(@AD_DATA); } unshift(@AD_DATA,"$in{'message'} $in{'name'}より($mday日$hour時$min分)

\n"); open(OUT,">$ADMIN_BBS"); print OUT @AD_DATA; close(OUT); &HEADER; print <<"EOM";

書き込みました。


EOM &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ MENTE2画面 _/# #_/_/_/_/_/_/_/_/_/# sub MENTE2 { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("ID、パスワードエラー $num ");} open(IN,"$CHARA_DATA_LIST"); @CL_DATA = ; close(IN); foreach(@CL_DATA) { ($eid,$epass,$ename,$echara,$estr,$eint,$elea,$echa,$esol,$egat,$econ,$egold,$erice,$ecex,$eclass,$earm,$ebook,$ebank,$esub1,$esub2,$epos,$emes,$ehost,$edate,$email,$eos) = split(/<>/); $human_data[$i]="$ehost<>$ename<>$eid<>"; push(@newlist,"@page
"); $i++; } @human_data = sort @human_data; &HEADER; print <<"EOM";

キャラ管理ツール


IDはファイル名と同じになっているので変更しないで下さい。
削除をする時は闘技場、天真に登録していないかを確認してから削除して下さい。
ホスト名は随時更新しています。
編集するファイル:
2重登録疑惑者 $mess

EOM open(IN,"$ADMIN_LIST"); @A_LOG = ; close(IN); print "@A_LOG"; &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ 武器編集 _/# #_/_/_/_/_/_/_/_/_/# sub ARM { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("ID、パスワードエラー $num ");} open(IN,"$TOWN_LIST") or &ERR("指定されたファイルが開けません。"); @TOWN_DATA = ; close(IN); foreach(@TOWN_DATA){ ($zcid,$zname,$zele,$zcon,$zmoney,$zmes,$zx,$zy,$zarm,$zpro,$zacc,$zuni,$zdis,$zbat)=split(/<>/); $town_name[$zcid] = $zname; } open(IN,"$ARM_LIST"); @ARM_DATA = ; close(IN); $i=0; foreach(@ARM_DATA) { ($karmname,$karmval,$karmdmg,$karmwei,$karmele,$karmsta,$karmclass,$karmtownid) = split(/<>/); if($karmdmg/2 <= $armwei){$wei=0;}else{$wei=($karmdmg-$karmwei);} $karmval = int(((5000000*($karmdmg**2))+(50000000*($wei**2)))/(255**2)); if($karmtownid eq "0"){ $town = "全て"; }elsif($town_name[$karmtownid] eq ""){ $town = "非売品"; }else{ $town = "$town_name[$karmtownid]"; } if($i >= 162 && $i <= 171){ $arm_data .= "$karmname$karmval$karmdmg$karmwei$ELE[$karmele]$town"; }elsif($karmdmg eq ""){ $arm_data .= "$karmname"; }else{ $arm_data .= "$karmname$karmval$karmdmg$karmwei$ELE[$karmele]$town"; } $i++; } $arm_data .= "新規武器作成"; &HEADER; print <<"EOM";

武器管理ツール


オリジナル武器はここでは変更できません。(/charalog/arm を参照。)
現在装備している武器も変更されるので注意してください。
メモリが足りない場合は\表\示できない場合があります。
ピンクの部分は上級の敵が落とすレアアイテム
編集する武器: $arm_data
選択武器名価格威力重さ属性販売店舗


EOM &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ 編集画面 _/# #_/_/_/_/_/_/_/_/_/# sub ARM2 { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR("ID、パスワードエラー $num ");} if($in{'select'} eq ""){&ERR2("選択されていません。");} open(IN,"$TOWN_LIST") or &ERR2("指定されたファイルが開けません。"); @TOWN_DATA = ; close(IN); foreach(@TOWN_DATA){ ($zcid,$zname,$zele,$zcon,$zmoney,$zmes,$zx,$zy,$zarm,$zpro,$zacc,$zuni,$zdis,$zbat)=split(/<>/); if($zcid eq "1"){ $zcid = 0; $town = "全て"; }elsif($zname eq ""){ $town = "非売品"; }else{ $town = "$zname"; } $town_sel .= "