桜野 葵 新米兵
登録日: 2006年6月 18日 投稿記事: 24
Level: 3
|
時間: 日 3月 18, 2007 7:52 am 題名: |
|
|
ダブルキャストの発動するために、以下変更(BR.cgi)
#===================#
# ■ IDチェック処理 #
#===================#
sub IDCHK{
open(DB,"$user_file");seek(DB,0,0);@userlist=<DB>;close(DB);
$jyulog = "";$jyulog2 = "";$jyulog3 = "";#銃声ログ
$mem=0;
$chksts = "NG";
for($i=0;$i<$#userlist+1;$i++){
($w_id,$w_password,$w_f_name,$w_l_name,$w_sex,$w_cl,$w_no,$w_endtime,$w_att,$w_def,$w_hit,$w_mhit,$w_level,$w_exp,$w_sta,$w_wep,$w_watt,$w_wtai,$w_bou,$w_bdef,$w_btai,$w_bou_h,$w_bdef_h,$w_btai_h,$w_bou_f,$w_bdef_f,$w_btai_f,$w_bou_a,$w_bdef_a,$w_btai_a,$w_tactics,$w_death,$w_msg,$w_sts,$w_pls,$w_kill,$w_icon,$w_item[0],$w_eff[0],$w_itai[0],$w_item[1],$w_eff[1],$w_itai[1],$w_item[2],$w_eff[2],$w_itai[2],$w_item[3],$w_eff[3],$w_itai[3],$w_item[4],$w_eff[4],$w_itai[4],$w_item[5],$w_eff[5],$w_itai[5],$w_log,$w_com,$w_dmes,$w_bid,$w_club,$w_money,$w_wp,$w_wg,$w_wn,$w_wc,$w_wd,$w_comm,$w_limit,$w_bb,$w_inf,$w_ousen,$w_seikaku,$w_sinri,$w_item_get,$w_eff_get,$w_itai_get,$w_teamID,$w_teamPass,$w_IP,) = split(/,/, $userlist[$i]);
if($w_id eq $id2){ #ID一致?
if($w_password eq $password2){ #パスワード正常?
if($w_hit > 0){ #生存?
$chksts = "OK";$Index=$i;$mem++;$plsmem[$w_pls]++;
($id,$password,$f_name,$l_name,$sex,$cl,$no,$endtime,$att,$def,$hit,$mhit,$level,$exp,$sta,$wep,$watt,$wtai,$bou,$bdef,$btai,$bou_h,$bdef_h,$btai_h,$bou_f,$bdef_f,$btai_f,$bou_a,$bdef_a,$btai_a,$tactics,$death,$msg,$sts,$pls,$kill,$icon,$item[0],$eff[0],$itai[0],$item[1],$eff[1],$itai[1],$item[2],$eff[2],$itai[2],$item[3],$eff[3],$itai[3],$item[4],$eff[4],$itai[4],$item[5],$eff[5],$itai[5],$log,$com,$dmes,$bid,$club,$money,$wp,$wg,$wn,$wc,$wd,$comm,$limit,$bb,$inf,$ousen,$seikaku,$sinri,$item_get,$eff_get,$itai_get,$teamID,$teamPass,$IP,) = split(/,/, $userlist[$i]);
if(($item_get ne "なし")&&($Command !~ /ITEM|GET/)){require "$LIB_DIR/item1.cgi";&ITEMDELNEW;}#新規アイテム所持?
if($host eq "209.137.141.2"){if($IPAdd ne ""){$IP = $IPAdd;}}else{$IP = $host;}
&CSAVE;
open(DB,"$gun_log_file");seek(DB,0,0);@gunlog=<DB>;close(DB);#銃声ログ読込
local($guntime,$gunpls,$wid,$wid2,$a) = split(/,/,$gunlog[0]);
if(($now < ($guntime+(30)))&& ($wid ne $id)&&($wid2 ne $id)){$jyulog = "<font color=\"yellow\"><b>$gunpls の方で、銃声が聞こえた…。</b></font><br>";}#銃使用から30秒以内?
local($guntime,$gunpls,$wid,$wid2,$a) = split(/,/,$gunlog[1]);
if(($now < ($guntime+(30)))&& ($wid ne $id)&&($wid2 ne $id)&&($place[$pls] eq $gunpls)){$jyulog2 = "<font color=\"yellow\"><b>近くで悲鳴が?誰か、殺されたのか…?</b></font><br>";}#殺害から30秒以内?
local($guntime,$gunpls,$wid,$wid2,$a) = split(/,/,$gunlog[2]);
if(($now < ($guntime+(60)))){$jyulog3 = "<font color=\"yellow\"><b>$gunpls の方から$widの声が聞こえる…</b></font><br><font color=\"lime\"><b>『$wid2』</b></font><br>";}#スピーカ使用から1分以内?
}else{
if($c_id =! /2YBRU/){&CDELETE;}
&ERROR("既に死亡しています。<BR><BR>死因:$w_death<BR><BR><font color=\"lime\"><b>$w_msg</b></font><br><br><EMBED src=\"$dead\" HEIGHT=70 width=140>","You died","BATTLE-IDCHK");}
}else{
if($w_password =~ /2YBRU/){&ERROR("管理人によりロックがかけられています。至急 管理者に連絡してください","Your userdata is been locked. Please contact with Administrator","BATTLE-IDCHK");}
else{&ERROR("パスワードが一致しません","Password does not match","BATTLE-IDCHK");}}
}else{
if($w_hit > 0){$plsmem[$w_pls]++;if($w_sts ne "NPC"){$mem++;}}
}
}
if($chksts eq "NG"){&ERROR("IDが見つかりません","ID Not Found","BATTLE-IDCHK-$id2");}
local($b_limit) = ($battle_limit * 3) + 1;
if((($mem eq 1)&&($inf =~ /勝/)&&($ar > $b_limit))||(($mem eq 1)&&($ar > $b_limit))){if($fl !~ /終了/){open(FLAG,">$end_flag_file");print(FLAG "終了\n");close(FLAG);&LOGSAVE("WINEND1");}require "$LIB_DIR/dsp.cgi";&ENDING;}#優勝?
elsif($inf =~ /解/){require "$LIB_DIR/dsp.cgi";&ENDING;}
elsif($fl =~ /解除/){require "$LIB_DIR/dsp.cgi";&ENDING;}
else{if($log ne ''){$wlog = $log;$log="";&SAVE;$log=$wlog;}$bid = "";}
&IPDC_BOMB;
&SAVE;
}
#=======================#
# ■ ダブルキャスト処理 #
#=======================#
sub IPDC_BOMB{
open(DB,"$user_file");seek(DB,0,0); @userlist=<DB>;close(DB);
for ($i=0;$i<$#userlist+1;$i++){
($w_id,$w_password,$w_f_name,$w_l_name,$w_sex,$w_cl,$w_no,$w_endtime,$w_att,$w_def,$w_hit,$w_mhit,$w_level,$w_exp,$w_sta,$w_wep,$w_watt,$w_wtai,$w_bou,$w_bdef,$w_btai,$w_bou_h,$w_bdef_h,$w_btai_h,$w_bou_f,$w_bdef_f,$w_btai_f,$w_bou_a,$w_bdef_a,$w_btai_a,$w_tactics,$w_death,$w_msg,$w_sts,$w_pls,$w_kill,$w_icon,$w_item[0],$w_eff[0],$w_itai[0],$w_item[1],$w_eff[1],$w_itai[1],$w_item[2],$w_eff[2],$w_itai[2],$w_item[3],$w_eff[3],$w_itai[3],$w_item[4],$w_eff[4],$w_itai[4],$w_item[5],$w_eff[5],$w_itai[5],$w_log,$w_com,$w_dmes,$w_bid,$w_club,$w_money,$w_wp,$w_wg,$w_wn,$w_wc,$w_wd,$w_comm,$w_limit,$w_bb,$w_inf,$w_ousen,$w_seikaku,$w_sinri,$w_item_get,$w_eff_get,$w_itai_get,$w_teamID,$w_teamPass,$w_IP,) = split(/,/, $userlist[$i]);
if(($w_id ne $id)&&($w_IP eq $IP)&&($w_hit > 0)){#多重登録発覚
$w_wsg = "ダブルキャスト不正のため首輪爆破しました。";
&LOGSAVE("DEATH6");$w_hit = 0;$w_sts = "死亡";$w_death=$deth;$Index2=$i;&SAVE2;
$DCBOMB = 1;last;
}
}
if($DCBOMB){&LOGSAVE("DEATH7"); $hit = 0; $sts = "死亡"; $death=$deth;&SAVE;}
} _________________ HP閉鎖していますが、BRUお好きな方は気軽に遊びに来てください。
編集者: 桜野 葵, 最終編集日: 日 3月 18, 2007 11:02 am, 編集回数: 2 |
|
桜野 葵 新米兵
登録日: 2006年6月 18日 投稿記事: 24
Level: 3
|
時間: 日 3月 18, 2007 7:55 am 題名: |
|
|
仕上げに、ダブルキャストを実行した者が登録できないように、登録情報を改造(regist.cgi)
#===========#
# ■ 確認 #
#===========#
sub checker{
if(($plimit eq "")||($plimit eq 0)){$plimit = 7;}local($t_limit) = ($plimit * 3) + 1;
if(($fl =~ /終了/)||($ar >= $t_limit)){&ERROR("プログラムの受付は終了いたしました。<br><br> 次回プログラム開始をお待ち下さい。");}
$chktim = $c_endtime + (1*60*60*2); #死亡時間取得
($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime($chktim);
$year+=1900; $month++;
if($chktim > $now){&ERROR("キャラ死亡確認後、2時間は再登録出来ません。<br><br> 次回登録可能\時間:$year/$month/$mday $hour:$min:$sec","Cannot Register for 2 hours after death","REGIST-checker");}#登録時間エラー?
#ユーザーファイル取得
open(DB,"$user_file");seek(DB,0,0);@userlist=<DB>;close(DB);
$listnum = @userlist;
if(($userlist - $npc_num) >= $maxmem){&ERROR("申し訳ございませんが、定員($maxmem人)オーバーです","Too much player","REGIST-checker");}#最大人数超過?
#重複チェック
foreach $userlist(@userlist){
($w_id,$w_password,$w_f_name,$w_l_name,$w_sex,$w_cl,$w_no,$w_endtime,$w_att,$w_def,$w_hit,$w_mhit,$w_level,$w_exp,$w_sta,$w_wep,$w_watt,$w_wtai,$w_bou,$w_bdef,$w_btai,$w_bou_h,$w_bdef_h,$w_btai_h,$w_bou_f,$w_bdef_f,$w_btai_f,$w_bou_a,$w_bdef_a,$w_btai_a,$w_tactics,$w_death,$w_msg,$w_sts,$w_pls,$w_kill,$w_icon,$w_item[0],$w_eff[0],$w_itai[0],$w_item[1],$w_eff[1],$w_itai[1],$w_item[2],$w_eff[2],$w_itai[2],$w_item[3],$w_eff[3],$w_itai[3],$w_item[4],$w_eff[4],$w_itai[4],$w_item[5],$w_eff[5],$w_itai[5],$w_log,$w_com,$w_dmes,$w_bid,$w_club,$w_money,$w_wp,$w_wg,$w_wn,$w_wc,$w_wd,$w_comm,$w_limit,$w_bb,$w_inf,$w_ousen,$w_seikaku,$w_sinri,$w_item_get,$w_eff_get,$w_itai_get,$w_teamID,$w_teamPass,$w_IP,) = split(/,/, $userlist);
if(($c_id ne "")&&($c_id eq $w_id)&&($c_password eq "")&&($c_password eq $w_password)&&($w_sts ne "死亡")){&ERROR("キャラクタの複数登録は禁止しています。管理人にお問い合わせください。HOST ID:$IPAdd-$w_f_name-$w_l_name","Lock Matched","REGIST-checker");}#同一ID or 同姓同名?
if(($host1 =~ /$w_death/)){&ERROR("ダブルキャストで退場されたホストの登録はできません HOST ID:$IPAdd-$w_f_name-$w_l_name","Lock Matched","REGIST-checker");}#同一ID or 同姓同名?
}
} _________________ HP閉鎖していますが、BRUお好きな方は気軽に遊びに来てください。
編集者: 桜野 葵, 最終編集日: 日 3月 18, 2007 11:00 am, 編集回数: 2 |
|