close(IN);
%DAT = '';
my @prats = split(/,/,$dat[0]); foreach (0 .. $#prats){ my($key,$v) = split(/;/,$prats[$_]); $DAT{$key} = $v; } &error("パスワードが間違っています",1) if($pw ne $DAT{'pw'} && $admin_pass ne $pw);
&hash_data;
# 行動セッションリセット $act_cnt=0 if($time-$la>3600*24);
foreach(0..$#sogo_p){ $sogo_lv[$_]=$DAT{"sglv$_"};
$pw = $DAT{'pw'}; # パスワード $sogo = $DAT{'sogo'}; $sogo3 = $DAT{'sogo3'}; $soko_cnt= $DAT{'soko_cnt'}; # 倉庫の収納数 $soko_lst= $DAT{'soko_lst'}; # 倉庫の収納品 $gold = $DAT{'gold'}; # お金 $nm = $DAT{'nm'}; # 名前 $nai_cnt = $DAT{'nai_cnt'}; # 内政カウント $wua_cnt = $DAT{'wua_cnt'}; # 武器強化カウント $ten_cnt = $DAT{'ten_cnt'}; # 転生カウント $gun_cnt = $DAT{'gun_cnt'}; # 軍事カウント $war_cnt = $DAT{'war_cnt'}; # 戦争カウント $s_g = $DAT{'s_g'}; # 統一ボーナス $lv = $DAT{'lv'}; # レベル $sei = $DAT{'sei'}; # 性別 $hp = $DAT{'hp'}; # 体力 $max_hp = $DAT{'max_hp'}; # 最大体力 $mp = $DAT{'mp'}; # 魔力 $max_mp = $DAT{'max_mp'}; # 最大魔力 $ua = $DAT{'ua'}; # 攻撃力 $ud = $DAT{'ud'}; # 防御力 $lr = $DAT{'lr'}; # 指揮力 $ag = $DAT{'ag'}; # 敏捷力 $exe = $DAT{'exe'}; # 経験値 $rank = $DAT{'rank'}; # 階級 $rank_exe = $DAT{'rank_exe'}; # 貢献値 $camp = $DAT{'camp'}; # 所属国 $sol = $DAT{'sol'}; # 部隊数 $sol_lv = $DAT{'sol_lv'}; # 部隊訓練度 $nation = $DAT{'nation'}; # 対象国 $we = $DAT{'we'}; # 討伐 回数 $dg_a = $DAT{'dg_a'}; # 武具 $dg_cnt = $DAT{'dg_cnt'}; # 武具 回数 $df_a = $DAT{'df_a'}; # 防具 $df_cnt = $DAT{'df_cnt'}; # 防具 回数 $di_a = $DAT{'di_a'}; # 道具 $di_cnt = $DAT{'di_cnt'}; # 道具 回数 $sogo = $DAT{'sogo'}; # 称号 $sogo2 = $DAT{'sogo2'}; # 称号2 $sogo3 = $DAT{'sogo3'}; # 称号3 $type = $DAT{'type'}; # 行動判定(行動フラグ) $tm = $DAT{'tm'}; # 行動判定(行動フラグ) $bt = $DAT{'bt'}; # 戦闘時敵キャラ判別(行動フラグ) $bst = $DAT{'bst'}; # 技による能力上昇の判定 $ck = $DAT{'ck'}; # 戦闘判定(行動フラグ) $pr = $DAT{'pr'}; # 拘束時間 残り(行動フラグ) $la = $DAT{'la'}; # 更新時間 $roku = $DAT{'roku'}; # 前回給料が払われた時間(仕官した時間) $mes = $DAT{'mes'}; # メッセージ $tnm = $DAT{'tnm'}; # 名前 敵 $tid = $DAT{'tid'}; # ID 敵 $thp = $DAT{'thp'}; # 体力 敵 $thp_max = $DAT{'thp_max'}; # 最大体力 敵 $tmp = $DAT{'tmp'}; # 魔力 敵 $tlv = $DAT{'tlv'}; # レベル 敵 $tua = $DAT{'tua'}; # 攻撃力 敵 $tud = $DAT{'tud'}; # 防御力 敵 $tlr = $DAT{'tlr'}; # 指揮力 敵 $tag = $DAT{'tag'}; # 敏捷力 敵 $tdf_a = $DAT{'tdf_a'}; # 防具 敵 $tdg_a = $DAT{'tdg_a'}; # 武器 敵 $tcp = $DAT{'tcp'}; # 所属国 敵 $tsol = $DAT{'tsol'}; # 部隊数 敵 $tsg = $DAT{'tsg'}; # 称号 敵 $tsol_lv = $DAT{'tsol_lv'}; # 敵部隊訓練度 $b_n = $DAT{'b_n'}; # 戦闘限界ターン $b_v = $DAT{'b_v'}; # 現在のターン数 # 配列インデックス
$act_cnt = $DAT{'act_cnt'}; # 行動セッション値 $age_time = $DAT{'age_time'}; # 前回のレベルアップ < time式 $info_mes = $DAT{'info_mes'}; # 情報時に表示されるコメント
$pr -= $time-$la; $pr = 0 if($pr<0);
&cdat_write; &dat_write;
&error("open error no such a file!",1) if(!$nm || !$id);
$dat[0] = "la;$time,nm;$nm,nai_cnt;$nai_cnt,dat_sogo_lv;$dat_sogo_lv,ten_cnt;$ten_cnt,gun_cnt;$gun_cnt,war_cnt;$war_cnt,pw;$pw,id;$id,sei;$sei,type;$type,age_time;$age_time,act_cnt;$act_cnt,hp;$hp,max_hp;$max_hp,lv;$lv,mp;$mp,max_mp;$max_mp,rank;$rank,ua;$ua,ud;$ud,lr;$lr,ag;$ag,ck;$ck,tm;$tm,bt;$bt,bst;$bst,exe;$exe,rank_exe;$rank_exe,sol;$sol,sol_lv;$sol_lv,nation;$nation,we;$we,camp;$camp,pr;$pr,tnm;$tnm,tid;$tid,thp;$thp,tlr;$tlr,tag;$tag,tsol;$tsol,tsg;$tsg,tsol_lv;$tsol_lv,b_n;$b_n,b_v;$b_v,thp_max;$thp_max,tlv;$tlv,tdg_a;$tdg_a,tdf_a;$tdf_a,tua;$tua,tud;$tud,tmp;$tmp,tcp;$tcp,gold;$gold,roku;$roku,dg_a;$dg_a,dg_cnt;$dg_cnt,df_a;$df_a,df_cnt;$df_cnt,di_a;$di_a,di_cnt;$di_cnt,sogo;$sogo,sogo2;$sogo2, sogo3;$sogo3,soko_cnt;$soko_cnt,soko_lst;$soko_lst,wua_cnt;$wua_cnt,mes;$mes,s_g;$s_g,info_mes;$info_mes,\n";foreach(0..$#sogo_p){ $dat_sogo_lv.="sglv$_;$sogo_lv[$_]," if($sogo_lv[$_]);
$dat[1] = "$date<>$addr<>$host<>$agent<>\n";
open (OUT,">$usrdata$id\.cgi") || &error("open error:$usrdata$id\.cgi",1); print OUT @dat; close(OUT) or die "Can't close : $!";
$sogo3=$sogo2; # 3つめの称号 $sogo2=$sogo; $sogo = @_[0];
# 称号取得時の効果 # たとえば、3回連続 覇者なら10万G # if($sogo==1&&$sogo==$sogo2&&$sogo2==$sogo3){ # $gold+=100000; # }
# 称号レベルアップ $sogo_lv[$sogo]++;
1: # キャラデータ書き込み 2: sub dat_write{ 3: 4: &error("open error no such a file!",1) if(!$nm || !$id); 5: 6: $dat[0] = "la;$time,nm;$nm,nai_cnt;$nai_cnt,dat_sogo_lv;$dat_sogo_lv,ten_cnt;$ten_cnt,gun_cnt;$gun_cnt,war_cnt;$war_cnt,pw;$pw,id;$id 7: ,sei;$sei,type;$type,age_time;$age_time,act_cnt;$act_cnt,hp;$hp,max_hp;$max_hp,lv;$lv,mp;$mp,max_mp;$max_mp,rank;$rank,ua;$ua 8: ,ud;$ud,lr;$lr,ag;$ag,ck;$ck,tm;$tm,bt;$bt,bst;$bst,exe;$exe,rank_exe;$rank_exe,sol;$sol,sol_lv;$sol_lv,nation;$nation,we;$we 9: ,camp;$camp,pr;$pr,tnm;$tnm,tid;$tid,thp;$thp,tlr;$tlr,tag;$tag,tsol;$tsol,tsg;$tsg,tsol_lv;$tsol_lv,b_n;$b_n,b_v;$b_v,thp_max;$thp_max 10: ,tlv;$tlv,tdg_a;$tdg_a,tdf_a;$tdf_a,tua;$tua,tud;$tud,tmp;$tmp,tcp;$tcp,gold;$gold,roku;$roku,dg_a;$dg_a,dg_cnt;$dg_cnt,df_a;$df_a 11: ,df_cnt;$df_cnt,di_a;$di_a,di_cnt;$di_cnt,sogo;$sogo,sogo2;$sogo2, sogo3;$sogo3,soko_cnt;$soko_cnt,soko_lst;$soko_lst,wua_cnt;$wua_cnt 12: ,mes;$mes,s_g;$s_g,info_mes;$info_mes,\n"; 13: 14: foreach(0..$#sogo_p){ 15: $dat_sogo_lv.="sglv$_;$sogo_lv[$_]," if($sogo_lv[$_]); 16: } 17: $dat[1] = "$date<>$addr<>$host<>$agent<>\n"; 18: if ( $sogo != $sogo3 ) { 19: $sogo_lv[$sogo]++; 20: $sogo3=$sogo; 21: } 22: $dat_sogo_lv = "sogo3;$sogo3,"; 23: 24: open (OUT,">$usrdata$id\.cgi") || &error("open error:$usrdata$id\.cgi",1); 25: print OUT @dat; 26: close(OUT) or die "Can't close : $!";