#!/usr/local/bin/perl #------------------------------------------------------# # FF ADVENTURE v0.21 # programed by CUMRO # http://cgi.members.interq.or.jp/sun/cumro/mm/ # cumro@sun.interq.or.jp # # FF ADVENTURE(改) v1.104 # remodeling by GUN # http://www.gun-online.com/ # webmaster@gun-online.com #------------------------------------------------------# # 日本語ライブラリの読み込み require 'jcode.pl'; # 挑戦者ライブラリの読み込み require 'battle.pl'; # レジストライブラリの読み込み require 'regist.pl'; # 初期設定ファイルの読み込み require 'ffadventure.ini'; ########################################## #▼▼▼▼骨董屋ライブラリ読み込み▼▼▼▼# ########################################## require "./pppitem.cgi"; require "./pppitem2.cgi"; require "./pppget.cgi"; ########################################## #▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲# ########################################## #-----------------------------------------------------------------------------# if($mente) { &error("現在バージョンアップ中です。しばらくお待ちください。"); } &decode; if($mode eq 'battle') { &battle; } else { &error("アクセスできません"); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ オートローダー #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub AUTOLOAD { my $name = ($AUTOLOAD =~ /^main::(.+)$/)[0]; ($FLAG{'autoload'}++ > 50) && die $AUTOLOAD; # 念のため無限ループ防止 defined %SUB or &SUBS; if (!defined $SUB{$name}) { &error("定義されていない関数($AUTOLOAD)が呼ばれました。"); exit; } eval $SUB{$name}; length($@) && &error("EVAL ERROR: $@ ($AUTOLOAD)"); delete $SUB{$name}; goto &{'main::' . $name}; } sub SUBS { %SUB = ( battle => <<'__SUB__', #------------# # 戦闘画面 # #------------# sub battle { if($battle_flag) { &error("現在戦闘中です。少しお待ちになってから戦闘してください。"); } $battle_flag=1; open(IN,"./charalog/$in{'id'}.cgi") or &error('ファイルを開けませんでした'); @battle = ; close(IN); foreach(@battle){ ($kid,$kpass,$ksite,$kurl,$kname,$ksex,$kchara,$kn_0,$kn_1,$kn_2,$kn_3,$kn_4,$kn_5,$kn_6,$ksyoku,$khp,$kmaxhp,$kex,$klv,$kgold,$klp,$ktotal,$kkati,$kwaza,$kitem,$kmons,$khost,$kdate,$kmori,$kdef,$ktac) = split(/<>/); if($in{'id'} eq "$kid" and $in{'pass'} eq "$kpass") { last; } } if($in{'id'} ne "$kid" or $in{'pass'} ne "$kpass"){&error("オープンエラー、ID・パスワードが正しくありません。");} &read_winner; $date = time(); $ltime = time(); $ltime = $ltime - $kdate; $vtime = $b_time - $ltime; if($wid eq $kid) { &error("現在チャンプなので闘えません。"); } if($chanp_milit) { if($kid eq $lid) { &error("チャンプが変わるまで闘えません。"); } } if($vtime > 0){ if($ltime < $b_time) { &error("あと$vtime秒間闘えません。"); } } if($in{'site'} eq "" or length($in{'site'}) > 50) { &error("サイト名がないか、長すぎます"); } if($in{'c_name'} eq "" or length($in{'c_name'}) > 30) { &error("キャラ名がないか、長すぎます"); } if($kitem){ open(IN,"$item_file"); @battle_item = ; close(IN); foreach(@battle_item){ ($ci_no,$ci_name,$ci_dmg) = split(/<>/); if($kitem eq $ci_no) { last; } } } if($witem){ open(IN,"$item_file"); @battle_item = ; close(IN); foreach(@battle_item){ ($wi_no,$wi_name,$wi_dmg) = split(/<>/); if($witem eq $wi_no) { last; } } } if($kdef){ open(IN,"$def_file"); @battle_def = ; close(IN); foreach(@battle_def){ ($cd_no,$cd_name,$cd_dmg) = split(/<>/); if($kdef eq $cd_no) { last; } } } if($wdef){ open(IN,"$def_file"); @battle_def = ; close(IN); foreach(@battle_def){ ($wd_no,$wd_name,$wd_dmg) = split(/<>/); if($wdef eq $wd_no) { last; } } } ###################################### #▼▼アイテムログ読み込みルーチン▼▼# ###################################### &psetitem; ###################################### #▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲# ###################################### if($in{'site'}) { $ksite = $in{'site'}; } if($in{'url'}) { $kurl = $in{'url'}; } if($in{'waza'}) { $kwaza = $in{'waza'}; } if($in{'c_name'}) { $kname = $in{'c_name'}; } $khp_flg = $khp; $whp_flg = $whp; $i=1;$j=0;@battle_date=(); foreach(1..$turn) { $dmg1 = $klv * (int(rand(3)) + 1); $dmg2 = $wlv * (int(rand(3)) + 1); $clit1 = ""; $clit2 = ""; $com1 = ""; $com2 = ""; $kawasi1 = ""; $kawasi2 = ""; $sake1 = int(rand($kn_5)) - int(rand($wn_4)); $sake2 = int(rand($wn_5)) - int(rand($kn_4)); $kclit = $khp_flg / 10; $wclit = $whp_flg / 10; $kmclit = $kmaxhp / 10; $wmclit = $wmaxhp / 10; $kaihiritu1 = int($kn_5 / 2); $kaihiritu2 = int($wn_5 / 2); &tyousensya; # チャンプダメージ計算 if($wsyoku == 0){ $dmg2 = $dmg2 + int(rand($wn_0)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameを取って\構\えた!磨き抜かれた$wi_nameが天地覇王の如く敵を斬り捌くッ!!

"; } else{ $com2 = "$wnameは、剣を取って\構\えた!! 磨き抜かれた剛剣が天地覇王の如く敵を斬り捌くッ!!

";} }elsif($wsyoku == 1){ $dmg2 = $dmg2 + int(rand($wn_1)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameを掲げ詠唱を始めた!! 古代より生まれし言葉が紅蓮の炎を作り上げ、敵を包むッ!!

"; } else{ $com2 = "$wnameは、杖を掲げ詠唱を始めた!! 古代より生まれし言葉が紅蓮の炎を作り上げ、敵を包むッ!!

";} }elsif($wsyoku == 2){ $dmg2 = $dmg2 + int(rand($wn_2)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameを天にかざし神に祈りを捧げた!! 汚れ無き心は天に届き、聖なる力が邪なる者を粛正するッ!!

"; } else{ $com2 = "$wnameは、神に祈りを捧げた!! 汚れ無き心は天に届き、聖なる力が邪なる者を粛正するッ!!

";} }elsif($wsyoku == 3){ $dmg2 = $dmg2 + int(rand($wn_4)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameを掴み、敵の目の前から姿を消した!! 目標を見失った敵は成す術無く傷が増えていくッ!!

"; } else{ $com2 = "$wnameは、敵の目の前から姿を消した!! 目標を見失った敵は成す術無く斬られて行くッ!!

";} }elsif($wsyoku == 4){ $dmg2 = $dmg2 + int(rand($wn_4)) + int(rand($wn_0)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameで攻撃!!"; } else{ $com2 = "$wnameは、弓を引いた!! 放たれた矢は風を斬り、真空と化して敵の心臓を貫くッ!!

";} }elsif($wsyoku == 5){ $dmg2 = $dmg2 + (int(rand($wn_1)) + int(rand($wn_4))) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameを竜の如く操った!! 命を貰い受けた$wi_nameが唸りを上げ、敵に向かっていくッ!!

"; } else{ $com2 = "$wnameは、鎖を竜の如く操った!! 命を貰い受けた鎖が唸りを上げ、敵を縛り上げるッ!!

";} }elsif($wsyoku == 6){ $dmg2 = $dmg2 + int(rand($wn_4)) + int(rand($wn_6)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameで攻撃!!"; } else{ $com2 = "$wnameは、楽器を奏でた!! その美しい音色が刃となり、敵をあの世に誘うッ!!

";} }elsif($wsyoku == 7){ $dmg2 = $dmg2 + (int(rand($wn_1)) + int(rand($wn_3))) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameを目の前に突き出した!!$wi_nameから発した何にも属さぬ稲妻が轟き、敵の生命を絶つッ!!

"; } else{ $com2 = "$wnameは、身体中から蒼い電流を発した!! 何にも属さぬ稲妻が轟き、敵の生命を絶つッ!!

";} }elsif($wsyoku == 8){ $dmg2 = $dmg2 + (int(rand($wn_0)) + int(rand($wn_2))) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameを\構\え空高く舞った!! 神の力を宿した$wi_nameが主君に逆らいし邪なる敵を貫くッ!!

"; } else{ $com2 = "$wnameは、翼を広げ空高く舞った!! 神の力を宿した槍が主君に逆らいし邪なる敵を貫くッ!!

";} }elsif($wsyoku == 9){ $dmg2 = $dmg2 + int(rand($wn_1)) + int(rand($wn_2)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameを掲げ神聖魔法の詠唱を始めた。聖なる波動が体を包むッ!! 波動は天の光に姿を変えて敵を焼き焦すッ!!

"; } else{ $com2 = "$wnameは、神聖魔法の詠唱を始めた。聖なる波動が体を包むッ!! 波動は天の光に姿を変えて敵を焼き焦すッ!!

";} }elsif($wsyoku == 10){ $dmg2 = $dmg2 + int(rand($wn_0)) + int(rand($wn_2)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameを天に翳した!! 大いなる父、神の名の元に敵を斬るッ!!

"; } else{ $com2 = "$wnameは、剣を天に翳した!! 大いなる父、神の名の元に敵を斬るッ!!

";} }elsif($wsyoku == 11){ $dmg2 = $dmg2 + int(rand($wn_0)) + int(rand($wn_5)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameで攻撃!!"; } else{ $com2 = "$wnameは、刀を抜き放った!! 東方より伝わりし剣術、その極意は、一刀両断ッ!!

";} }elsif($wsyoku == 12){ $dmg2 = $dmg2 + int(rand($wn_0)) + int(rand($wn_3)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameで攻撃!!"; } else{ $com2 = "$wnameは、静かに精神集中した。鼓動が秘めたる力を解放するッ!! 拳は波動を宿し敵を砕くッ!!

";} }elsif($wsyoku == 13){ $dmg2 = $dmg2 + int(rand($wn_0)) + int(rand($wn_4)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameで攻撃!!"; } else{ $com2 = "$wnameは、闇の中に姿を消した。刹那の動きが嵐となり、刃は疾風迅雷の如く敵を斬り捨てるッ!!

";} }elsif($wsyoku == 14){ $dmg2 = $dmg2 + int(rand($wn_0)) + int(rand($wn_3)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameを強く握り締めた!! 負の闘気が$wi_nameに宿り、敵を絶望の淵に追いやるッ!!

"; } else{ $com2 = "$wnameは、剣を強く握り締めた!! 負の闘気が剣に宿り、敵を絶望の淵に追いやるッ!!

";} }elsif($wsyoku == 15){ $dmg2 = $dmg2 + int(rand($wn_0)) + int(rand($wn_1)) + int(rand($wn_4)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameに古代文字を書き入れた!! 魔力を込めた$wi_nameは紅く光り、全てを斬り裂く衝撃破を発するッ!!

"; } else{ $com2 = "$wnameは、剣に古代文字を書き入れた!! 魔力を込めた剣は紅く光り、全てを斬り裂く衝撃破を発するッ!!

";} }elsif($wsyoku == 16){ $dmg2 = $dmg2 + int(rand($wn_1)) + int(rand($wn_4)) + int(rand($wn_5)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameで攻撃!!"; } else{ $com2 = "$wnameは、銃を\構\えた!! 古代の遺産、マテリアに凝縮された魔力が弾丸に込められ敵を撃つッ!!

";} }elsif($wsyoku == 17){ $dmg2 = $dmg2 + int(rand($wn_1)) + int(rand($wn_2)) + int(rand($wn_6)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameで六芒星を描いた!! 異世界より呼ばれし者が命を受け、敵を亡き者と化すッ!!

"; } else{ $com2 = "$wnameは、六芒星を描いた!! 異世界より呼ばれし者が命を受け、敵を亡き者と化すッ!!

";} }elsif($wsyoku == 18){ $dmg2 = $dmg2 + int(rand($wn_1)) + int(rand($wn_2)) + int(rand($wn_3)) + int(rand($wn_4)) + int(rand($wn_5)) + int(rand($wn_6)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameで攻撃!!"; } else{ $com2 = "$wnameは、両腕を広げた!! を越えたを魔力が地球を揺るがすッ!! 想像を絶する強大な力は全てを破壊するッ!!

";} }elsif($wsyoku == 19){ $dmg2 = $dmg2 + int(rand($wn_0)) + int(rand($wn_3)) + int(rand($wn_4)) + int(rand($wn_5)) + $wi_dmg; if($witem){ $com2 = "$wnameは、$wi_nameを取り出した!! 死角のない完璧な攻撃が敵を翻弄し、知らぬ間に死を与えるッ!!

"; } else{ $com2 = "$wnameは、全ての武器を取り出した!! 死角のない完璧な攻撃が敵を翻弄し、知らぬ間に死を与えるッ!!

";} }elsif($wsyoku == 20){ if($witem) { $com2 = "$wnameは$wi_nameを取り出した・・・

"; if($wi_no eq 0234 or $wi_no eq 0235 or $wi_no eq 0236){ $wura = int(rand($wi_dmg)); }else{ $wura = int(rand(40)); } }else{ $wura = int(rand(40)); } $com2 = "$wnameは、タロットカードを一枚捲った!! 生か死か? 全てはこの運命のカード一枚に委ねられたッ!!

"; if(0 == $wura) { $com2 .= "THE MAGICIAN!!!!\n"; $dmg2 = $dmg2 + int(rand($wn_1)) + int(rand($wn_1)) + int(rand($wn_1)) * 30; }elsif(1 == $wura) { $com2 .= "THE CHARIOT!!!!\n"; $dmg2 = $dmg2 + int(rand($wn_0)) + int(rand($wn_0)) + int(rand($wn_0)) * 30; }elsif(2 == $wura) { $com2 .= "STRENGTH!!!\n"; $dmg2 = $dmg2 + int(rand($wn_0)) + int(rand($wn_3)) * 15; }elsif(3 == $wura) { $com2 .= "THE HIGH PRIESTESS!!!\n"; $dmg2 = $dmg2 + int(rand($wn_2)) + int(rand($wn_6)) * 13; }elsif(4 == $wura) { $com2 .= "THE HIEROPHANT!!!!\n"; $dmg2 = $dmg2 + int(rand($wn_2)) + int(rand($wn_2)) + int(rand($wn_6)) * 20; }elsif(5 == $wura) { $com2 .= "THE EMPRESS!!!!\n"; $dmg2 = $dmg2 + int(rand($wn_6)) + int(rand($wn_6)) + int(rand($wn_6)) * 15; }elsif(6 == $wura) { $com2 .= "THE EMPEROR!!!!!\n"; $dmg2 = $dmg2 + int(rand($wn_0)) + int(rand($wn_1)) + int(rand($wn_3)) + int(rand($wn_6)) * 20; }elsif(7 == $wura) { $com2 .= "THE LOVERS!!!!\n"; $dmg2 = $dmg2 + int(rand($wn_6)) * 13; }elsif(8 == $wura) { $com2 .= "THE HERMIT!!!!\n"; $dmg2 = $dmg2 + int(rand($wn_1)) + int(rand($wn_2)) * 13; }elsif(9 == $wura) { $com2 .= "WHEEL of FORTUNE!!!!\n"; $dmg2 = $dmg2 * int(rand(300)); }elsif(10 == $wura) { $com2 .= "JUSTICE!!!!\n"; $dmg2 = $dmg2 + int(rand($wn_4)) + int(rand($wn_5)) * 13; }elsif(11 == $wura) { $com2 .= "THE HANGEDMAN!!!!\n"; $dmg2 = 0; }elsif(12 == $wura) { $com2 .= "DEATH!!!!\n"; $dmg2 = 0 - int(rand($wn_2)) - int(rand($wn_2)) - int(rand($wn_6)) * 20; }elsif(13 == $wura) { $com2 .= "TEMPERANCE!!!!\n"; $dmg2 = $dmg2 * int(rand($wn_4)); }elsif(14 == $wura) { $com2 .= "THE DEVIL!!!!\n"; $dmg2 = 0 - $dmg2 - int(rand($wn_2)) - int(rand($wn_2)) - int(rand($wn_2)) * 15; }elsif(15 == $wura) { $com2 .= "THE TOWER!!!!\n"; $dmg2 = 0 - int(rand($wn_2)) - int(rand($wn_2)) - int(rand($wn_6)) * 13; }elsif(16 == $wura) { $com2 .= "THE STAR!!!!\n"; $dmg2 = $dmg2 + int(rand($wn_3)) * 13; }elsif(17 == $wura) { $com2 .= "THE MOON!!!!\n"; $dmg2 = $dmg2 - int(rand($wn_2)) - int(rand($wn_6)) * 13; }elsif(18 == $wura) { $com2 .= "THE SUN!!!!\n"; $dmg2 = $dmg2 + int(rand($wn_3)) + int(rand($wn_3)) * 13; }elsif(19 == $wura) { $com2 .= "THE JUDGEMENT!!!!\n"; $dmg2 = $dmg2 + int(rand($wn_2)) + int(rand($wn_2)) * int(rand($wn_2)); }elsif(20 == $wura) { $com2 .= "THE WORLD!!!!\n"; $dmg2 = ($dmg2 + int(rand($wn_0)) + int(rand($wn_1)) + int(rand($wn_2)) + int(rand($wn_3)) + int(rand($wn_4)) + int(rand($wn_5)) + int(rand($wn_6))) * 100; }else{ $com2 .= "THE FOOL・・・・\n"; $dmg2 = 0; } }elsif($wsyoku == 21){ $dmg2 = $dmg2+ (int(rand($wn_4)) + int(rand($wn_5)) + int(rand($wn_6))) + $wi_dmg; if($witem){ $com2 = "$wnameはダンスを始めた。$wi_nameが華麗な舞いを惹き立てる!!!"; } else{ $com2 = "$wnameは、ダンスを始めた!!

";} }elsif($wsyoku == 22){ $dmg2 = $dmg2 + int(rand($wn_0)) + int(rand($wn_0)) + int(rand($wn_3)) + int(rand($wn_3)) + int(rand($wn_4)) + int(rand($wn_5)); if($witem){ $com2 = "$wnameは$wi_name後ろに投げた・・・。天地を砕く剛拳が敵を襲う!!

"; } else{ $com2 = "$wnameに後退はない。あるのは前進勝利のみ!天地を砕く剛拳が敵を襲う!!

";} } if(int(rand(20)) == 0) { $clit1 = "クリティカル!!

"; $dmg1 = $dmg1 * 2; } if(int(rand(30)) == 0) { $clit2 = "$wname「$wwaza

クリティカル!!

"; $dmg2 = int($dmg2 * 1.5); } if($wmaxhp > ($kmaxhp * 2) and $i == 1) { if($wlv - $klv >= $level_sa){ $sa = $kmaxhp; $clit1 .= "

$knameの体から青い炎のようなものが湧き上がる・・・。

"; if($whp_flg < $sa){$dmg1 = $dmg1;} elsif($dmg1 > $whp_flg - $sa){$dmg1 = $dmg1;} else{$dmg1 = $whp_flg - $sa;} }else{ if(int(rand(4)) == 1){ $sa = $kmaxhp; $clit1 .= "

$knameの体から青い炎のようなものが湧き上がる・・・。

"; if($whp_flg < $sa){$dmg1 = $dmg1;} elsif($dmg1 > $whp_flg - $sa){$dmg1 = $dmg1;} else{$dmg1 = $whp_flg - $sa;} } } } if($kmaxhp > ($wmaxhp * 2) and $i == 1) { if($klv - $wlv >= $level_sa){ $wsa = $wmaxhp; $clit2 .= "

$wnameの体から青い炎のようなものが湧き上がる・・・。

"; if($khp_flg < $wsa){$dmg2 = $dmg2;} elsif($dmg2 > $khp_flg - $wsa){$dmg2 = $dmg2;} else{$dmg2 = $khp_flg - $wsa;} }else{ if(int(rand(4)) == 1){ $wsa = $wmaxhp; $clit2 .= "

$wnameの体から青い炎のようなものが湧き上がる・・・。

"; if($khp_flg < $wsa){$dmg2 = $dmg2;} elsif($dmg2 > $khp_flg - $wsa){$dmg2 = $dmg2;} else{$dmg2 = $khp_flg - $wsa;} } } } if($ktac == 1 or $ktac == 18 or $ktac == 29 or $ktac == 52){ $dmg1 = int($dmg1 * 1.5); $dmg2 = int($dmg2 * 1.5); } if($ktac == 2 or $ktac == 4 or $ktac == 6 or $ktac == 12 or $ktac == 17 or $ktac == 24){ $dmg1 = int($dmg1 * 0.75); $dmg2 = int($dmg2 * 0.75); } if($ktac == 3 or $ktac == 21 or $ktac == 33 or $ktac == 42){ $sake1 = $sake1 - int(rand($kn_1)); if($wsyoku ==0 or $wsyoku == 3 or $wsyoku == 4 or $wsyoku == 11 or $wsyoku == 12 or $wsyoku == 13 or $wsyoku == 14 or $wsyoku == 19 or $wsyoku == 22){ $dmg1 = $dmg1 * 3; } } if($ktac == 5 or $ktac == 22){ $sake1 = $sake1 - int(rand($kn_2)); if(int(rand(2)) == 0){ $dmg1 =$dmg1 * 3; $com1 .="

祈りが通じた!!!

"; } } if($ktac == 7 or $ktac == 31 or $ktac == 35 or $ktac == 51){ $dmg1 = int($dmg1 * 0.75); $sake1 = $sake1 + int(rand($kn_5)); } if($ktac == 8){ $kubau += $dmg1; $sake1 = $sake1 - int(rand($kn_4)); } if($ktac == 9 or $ktac == 27 or $ktac == 34 or $ktac == 46){ $sake2 = $sake2 - int(rand($wn_4)); $dmg1 = int($dmg1 * 0.75); } if($ktac == 10){ $waza_ritu = 5; $waza_ritu1 = 3; $waza_ritu2 = 2; $sake2 = $sake2 + int(rand($kn_0)); } if($ktac == 11 or $ktac == 15){ if(int(rand(2)) == 0){ $dmg1 = $dmg1 * 2; }else{ $dmg1 = int($dmg1 * 0.5); } } if($ktac == 13){ $dmg1 = $dmg1 * 3; $dmg2 = $dmg2 * 2; $sake1 = $sake1 - int(rand($kn_0)); } if($ktac == 14){ $sake2 = $sake2 - int(rand($wn_6)); $dmg1 = int($dmg1 * 0.75); } if($ktac == 16){ $sake1 = $sake1 - int(rand($kn_3)); $dmg1 = $dmg1 * 2; } if($ktac == 19){ $sake1 = $sake1 + int(rand($kn_2)); $dmg1 = int($dmg1 * 1.25); $dmg2 = $dmg2 * 2; } if($ktac == 20){ $sake1 = $sake1 + (int(rand($kn_5)) * 2); $dmg1 = int($dmg1 * 0.5); $dmg2 = $dmg2 * 2; } if($ktac == 23){ if($wsyoku ==0 or $wsyoku == 3 or $wsyoku == 4 or $wsyoku == 11 or $wsyoku == 12 or $wsyoku == 13 or $wsyoku == 14 or $wsyoku == 19 or $wsyoku == 22){ $dmg1 = $dmg1 * 3; } if(int(rand(2)) == 0){ $dmg1 =$dmg1 * 3; } $sake1 = int($sake1 * 0.5); $dmg2 = int($dmg2 * 1.5); } if($ktac == 25){ $sake2 = int($sake2 * 0.5); $dmg1 = int($dmg1 * 0.75); } if($ktac == 26){ $sake1 = $sake1 - int(rand($kn_2)); if(int(rand(2)) == 0){ $dmg1 =$dmg1 * 4; } } if($ktac == 28 and $i ==1){ if(int(rand(4)) == 0){ $dmg1 = $wmaxhp * 10; } $sake1 = $sake1 - 100; $dmg2 = $dmg2 * 10; } if($ktac == 30){ $dmg2 = int($dmg2 * 0.5); $sake1 = int($sake1 * 0.5); } if($ktac == 32){ if($i%10 == 0){ $dmg1 = $dmg1 * 100; } $sake1 = $sake1 - int(rand($kn_3)); } if($ktac == 36){ $dmg1 = $dmg1 * 2; $dmgme1 = int($dmg1 / 5); } if($ktac == 37){ $dmg2 = int($dmg2 * 0.5); $sake2 = $sake2 - int(rand($wn_6)); $sake1 = $sake1 - 100; } if($ktac == 38){ if($wsyoku ==0 or $wsyoku == 3 or $wsyoku == 4 or $wsyoku == 11 or $wsyoku == 12 or $wsyoku == 13 or $wsyoku == 14 or $wsyoku == 19 or $wsyoku == 22){ $dmg1 = $dmg1 * 3; } $dmg1 = $dmg1 * 2; $sake1 = $sake1 - 100; } if($ktac == 39){ $dmg1 = $dmg1 * int(rand(10)); $sake1 = $sake1 - 100; $sake2 = $sake2 * int(rand($wn_1)); } if($ktac == 40){ if($i%2 == 0){ $dmg1 = $dmg1 * 4; $sake1 = $sake1 * int(rand($kn_5)); } $dmg1 = int($dmg1 * 0.75); $sake1 = $sake1 - int(rand($kn_5)); } if($ktac == 41){ $dmg1 = $dmg1 + ($ci_dmg * 5); $dmg2 = $dmg2 * 2; } if($ktac == 43){ if($wsyoku ==0 or $wsyoku == 3 or $wsyoku == 4 or $wsyoku == 11 or $wsyoku == 12 or $wsyoku == 13 or $wsyoku == 14 or $wsyoku == 19 or $wsyoku == 22){ $dmg1 = $dmg1 * 3; } $sake1 = $sake1 - 100; $sake2 = $sake2 - $sake1; } if($ktac == 44){ if($khp_flg < $kmclit){ if(int(rand(9)) == 0){ $khp_flg = $kmaxhp; $com1 .="

奇跡が起こった!!

"; } } $dmg1 = int($dmg1 * 0.75); } if($ktac == 45){ $dmg1 = $dmg1 * 6; $dmg2 = $dmg2 * 2; $sake2 = $sake2 + int(rand($kn_5)); $sake1 = $sake1 - int(rand($kn_5)); $com1 .="

連続攻撃!!!

"; } if($ktac == 47){ $sake1 = $sake1 * 2; $sake2 = $sake2 - 100; $dmg1 = int($dmg1 * 0.5); } if($ktac == 48){ $dmg2 = $dmg2 * 2; $dmg1 = $dmg1 * 2; } if($ktac == 49){ if($dmg1 < 0){ $dmg1 = 0; } $dmg1 = int($dmg1 * 0.5); } if($ktac == 53){ if($i%15 == 0){ $dmg1 = $dmg1 * 1000; } $sake1 = 1; } if($wtac == 1 or $wtac == 18 or $wtac == 29 or $wtac == 52){ $dmg2 = int($dmg2 * 1.5); $dmg1 = int($dmg1 * 1.5); } if($wtac == 2 or $wtac == 4 or $wtac == 6 or $wtac == 12 or $wtac == 17 or $wtac == 24){ $dmg1 = int($dmg1 * 0.75); $dmg2 = int($dmg2 * 0.75); } if($wtac == 3 or $wtac == 21 or $wtac == 33 or $wtac == 42){ $sake2 = $sake2 - int(rand($wn_1)); if($ksyoku ==0 or $ksyoku == 3 or $ksyoku == 4 or $ksyoku == 11 or $ksyoku == 12 or $ksyoku == 13 or $ksyoku == 14 or $ksyoku == 19 or $ksyoku == 22){ $dmg2 = $dmg2 * 3; } } if($wtac == 5 or $wtac == 22){ $sake2 = $sake2 - int(rand($wn_2)); if(int(rand(2)) == 0){ $dmg2 =$dmg2 * 3; $com2 .="

祈りが通じた!!!

"; } } if($wtac == 7 or $wtac == 31 or $wtac == 35 or $wtac == 51){ $dmg2 = int($dmg2 * 0.75); $sake2 = $sake2 + int(rand($wn_5)); } if($wtac == 8){ $wubau += $dmg1; $sake2 = $sake2 - int(rand($wn_4)); } if($wtac == 9 or $wtac == 27 or $wtac == 34 or $wtac == 46){ $sake1 = $sake1 - int(rand($wn_4)); $dmg2 = int($dmg2 * 0.75); } if($wtac == 11 or $wtac == 15){ if(int(rand(2)) == 0){ $dmg2 = $dmg2 * 2; }else{ $dmg2 = int($dmg2 * 0.5); } } if($wtac == 13){ $dmg2 = $dmg2 * 3; $dmg1 = $dmg1 * 2; $sake2 = $sake2 - int(rand($wn_0)); } if($wtac == 14){ $sake1 = $sake1 - int(rand($wn_6)); $dmg2 = int($dmg2 * 0.75); } if($wtac == 16){ $sake2 = $sake2 - int(rand($wn_3)); $dmg2 = $dmg2 * 2; } if($wtac == 19){ $sake2 = $sake2 + int(rand($wn_2)); $dmg2 = int($dmg2 * 1.25); $dmg1 = $dmg1 * 2; } if($wtac == 20){ $sake2 = $sake2 + (int(rand($wn_5)) * 2); $dmg2 = int($dmg2 * 0.5); $dmg1 = $dmg1 * 2; } if($wtac == 23){ if($ksyoku ==0 or $ksyoku == 3 or $ksyoku == 4 or $ksyoku == 11 or $ksyoku == 12 or $ksyoku == 13 or $ksyoku == 14 or $ksyoku == 19 or $ksyoku == 22){ $dmg2 = $dmg2 * 3; } if(int(rand(2)) == 0){ $dmg2 =$dmg2 * 3; } $sake2 = int($sake2 * 0.5); $dmg1 = int($dmg1 * 1.5); } if($wtac == 25){ $sake1 = int($sake1 * 0.5); $dmg2 = int($dmg2 * 0.75); } if($wtac == 26){ $sake2 = $sake2 - int(rand($wn_2)); if(int(rand(2)) == 0){ $dmg2 =$dmg2 * 4; } } if($wtac == 28 and $i ==1){ if(int(rand(4)) == 0){ $dmg2 = $kmaxhp * 10; } $sake2 = $sake2 - 100; $dmg1 = $dmg1 * 10; } if($wtac == 30){ $dmg1 = int($dmg1 * 0.5); $sake2 = int($sake2 * 0.5); } if($wtac == 32){ if($i%10 == 0){ $dmg2 = $dmg2 * 100; } $sake2 = $sake2 - int(rand($wn_3)); } if($wtac == 36){ $dmg2 = $dmg2 * 2; $dmgme2 = int($dmg2 / 5); } if($wtac == 37){ $dmg1 = int($dmg1 * 0.5); $sake1 = $sake1 - int(rand($wn_6)); $sake2 = $sake2 - 100; } if($wtac == 38){ if($ksyoku ==0 or $ksyoku == 3 or $ksyoku == 4 or $ksyoku == 11 or $ksyoku == 12 or $ksyoku == 13 or $ksyoku == 14 or $ksyoku == 19 or $ksyoku == 22){ $dmg2 = $dmg2 * 3; } $dmg2 = $dmg2 * 2; $sake2 = $sake2 - 100; } if($wtac == 39){ $dmg2 = $dmg2 * int(rand(10)); $sake2 = $sake2 - 100; $sake1 = $sake1 * int(rand($wn_1)); } if($wtac == 40){ if($i%2 == 0){ $dmg2 = $dmg2 * 4; $sake2 = $sake2 * int(rand($wn_5)); } $dmg2 = int($dmg2 * 0.75); $sake2 = $sake2 - int(rand($wn_5)); } if($wtac == 41){ $dmg2 = $dmg2 + ($wi_dmg * 5); $dmg1 = $dmg1 * 2; } if($wtac == 43){ if($ksyoku ==0 or $ksyoku == 3 or $ksyoku == 4 or $ksyoku == 11 or $ksyoku == 12 or $ksyoku == 13 or $ksyoku == 14 or $ksyoku == 19 or $ksyoku == 22){ $dmg2 = $dmg2 * 3; } $sake2 = $sake2 - 100; $sake1 = $sake1 - $sake2; } if($wtac == 44){ if($whp_flg < $wmclit){ if(int(rand(9)) == 0){ $whp_flg = $wmaxhp; $com2 .="

奇跡が起こった!!

"; } } $dmg2 = int($dmg2 * 0.75); } if($wtac == 45){ $dmg2 = $dmg2 * 6; $dmg1 = $dmg1 * 2; $sake1 = $sake1 + int(rand($wn_5)); $sake2 = $sake2 - int(rand($wn_5)); $com2 .="

連続攻撃!!!

"; } if($wtac == 47){ $sake2 = $sake2 * 2; $sake1 = $sake1 - 100; $dmg2 = int($dmg2 * 0.5); } if($wtac == 48){ $dmg2 = $dmg2 * 2; $dmg1 = $dmg1 * 2; } if($wtac == 49){ if($dmg2 < 0){ $dmg2 = 0; } $dmg2 = int($dmg2 * 0.5); } if($wtac == 53){ if($i%15 == 0){ $dmg2 = $dmg2 * 1000; } $sake2 = 1; } #################### #▼▼技ルーチン▼▼# #################### #キャラ用 &pppattack; #チャンプ用 &pppattack2; #キャラ用2 &pppattacka; #################### #▲▲▲▲▲▲▲▲▲# #################### if($dmg2 < 0){$dmg2 = $dmg2;} elsif($dmg2 < $cd_dmg){$dmg2 = 0;} else{$dmg2 = $dmg2 - $cd_dmg;} if($dmg1 < 0){$dmg1 = $dmg1;} elsif($dmg1 < $wd_dmg){$dmg1 = 0;} else{$dmg1 = $dmg1 - $wd_dmg;} if($whp_flg < $wmclit){ if($whp_flg < $kclit){ if($i > 5){ $dmg2 = $dmg2 * 10; $com2 .="

残った力をふりしぼった!!

"; } } }elsif(int(rand($sake1)) + int(rand($klp)) - int(rand($wlp))> $kaihiritu1 && !$allhit2) { $dmg2 = 0; $kawasi1 = "

$knameは身をかわした!

"; } if($khp_flg < $kmclit){ if($khp_flg < $wclit){ if($i > 5){ $dmg1 = $dmg1 * 10; $com1 .="

残った力をふりしぼった!!

"; } } }elsif(int(rand($sake2)) + int(rand($wlp)) - int(rand($klp))> $kaihiritu2 && !$allhit1) { $dmg1 = 0; $kawasi2 = "

$wnameは身をかわした!

"; } $battle_date[$j] = <<"EOM";
$iターン
武器$ci_name
防具$cd_name
小物$pppitemname\[$pppitemkazu\]
武器$wi_name
防具$wd_name
小物$pppitemname2\[$pppitemkazu2\]
なまえ HP 職業 LV
$kname $khp_flg\/$kmaxhp $chara_syoku[$ksyoku] $klv
VS
なまえ HP 職業 LV
$wname $whp_flg\/$wmaxhp $chara_syoku[$wsyoku] $wlv

EOM ############################################ #▼▼▼回復量表示のためのコメント追加▼▼▼# ############################################ if($kaifuku1){$battle_date[$j] .= "$com1 $knameのHPが$kaifuku1<\/font>回復した!!
$kawasi2 $wname に $dmg1 のダメージを与えた。

";} else{$battle_date[$j] .= "$com1 $clit1 $kawasi2 $wname に $dmg1 のダメージを与えた。

";} if($kaifuku2){$battle_date[$j] .= "$com2 $wnameのHPが$kaifuku2<\/font>回復した!!
$kawasi1 $kname に $dmg2 のダメージを与えた。

";} else{$battle_date[$j] .= "$com2 $clit2 $kawasi1 $kname に $dmg2 のダメージを与えた。

";} ############################################ #▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲# ############################################ ################################################################ #▼▼▼回復量変数$kaifuku1 $kaifuku2をダメージ計算に追加▼▼▼# ################################################################ $whp_flg = $whp_flg - $dmg1 - $dmgme2 + $kaifuku2; if($whp_flg <= 0) { $win = 1; last; } else { $khp_flg = $khp_flg - $dmg2 - $dmgme1 + $kaifuku1; } if($khp_flg <= 0) { $win = 0; last; } ################################################################ #▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲# ################################################################ $i++; $j++; } if($win) { $ktotal += 1; $kkati += 1; $exp = int($wlv * $kiso_exp + (rand($klp) + 1)); $kex = $kex + $exp; if($kgold < $wgold){ $gold = $klv * 10 + int(rand($klp)) + $kubau; }else{ $gold = $klv * 10 + int(rand($klp)); } $kmons = $sentou_limit; $kmori = $boss; $kkumite = 10000; $comment = "$knameは、戦闘に勝利した!!

"; }else{ $ktotal += 1; $exp = int($wlv * (rand($klp) + 1)); $kex = $kex + $exp; $gold = int(rand($klp)); $kmons = $sentou_limit; $kmori = $boss; $kkumite = 10000; $comment = "$knameは、戦闘に負けた・・・。

"; } ################################## #▼▼アイテム減少数の書き込み▼▼# ################################## &plostitem; ################################## #▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲# ################################## if($kex >= ($klv * $lv_up)) { $comment .= "$knameは、レベルが上がった!!

"; $hpup = int(rand($kn_3)) + 1; $kmaxhp = $kmaxhp + $hpup; $khp = $kmaxhp; $comment .= "HPが$hpup上がった!!

"; $kex = 0; $klv += 1; if(int(rand(5)) == 0) { $kn_0 += 1; $t1 = 1;} if(int(rand(5)) == 0) { $kn_1 += 1; $t2 = 1;} if(int(rand(5)) == 0) { $kn_2 += 1; $t3 = 1;} if(int(rand(5)) == 0) { $kn_3 += 1; $t4 = 1;} if(int(rand(5)) == 0) { $kn_4 += 1; $t5 = 1;} if(int(rand(5)) == 0) { $kn_5 += 1; $t6 = 1;} if(int(rand(5)) == 0) { $kn_6 += 1; $t7 = 1;} if($t1) { $comment .= "力が上がった。"; } if($t2) { $comment .= "知\能\が上がった。"; } if($t3) { $comment .= "信仰心が上がった。"; } if($t4) { $comment .= "生命力が上がった。"; } if($t5) { $comment .= "器用さが上がった。"; } if($t6) { $comment .= "速さが上がった。"; } if($t7) { $comment .= "魅力が上がった。"; } } $khp = $khp_flg + int(rand($kn_3)); if($khp > $kmaxhp) { $khp = $kmaxhp; } $whp = $whp_flg + int(rand($wn_3)); if($whp > $wmaxhp) { $whp = $wmaxhp; } if($khp <= 0) { $khp = $kmaxhp; } if($whp <= 0) { $whp = $wmaxhp; } $kgold = $kgold + $gold; # ファイルロック if ($lockkey == 1) { &lock1; } elsif ($lockkey == 2) { &lock2; } if($win){ @new=(); open(IN,">$winner_file"); @winnew = ; unshift(@new,"$kid<>$kpass<>$ksite<>$kurl<>$kname<>$ksex<>$kchara<>$kn_0<>$kn_1<>$kn_2<>$kn_3<>$kn_4<>$kn_5<>$kn_6<>$ksyoku<>$khp<>$kmaxhp<>$kex<>$klv<>$kgold<>$klp<>$ktotal<>$kkati<>$kwaza<>$kitem<>$kmons<>$host<>$date<>$win<>$wsite<>$wurl<>$wname<>$kmori<>$kdef<>$ktac<>$wid<>\n"); print IN @new; close(IN); }else{ $wcount += 1; @new=(); open(IN,">$winner_file"); @winnew = ; unshift(@new,"$wid<>$wpass<>$wsite<>$wurl<>$wname<>$wsex<>$wchara<>$wn_0<>$wn_1<>$wn_2<>$wn_3<>$wn_4<>$wn_5<>$wn_6<>$wsyoku<>$whp<>$wmaxhp<>$wex<>$wlv<>$wgold<>$wlp<>$wtotal<>$wkati<>$wwaza<>$witem<>$wmons<>$host<>$date<>$wcount<>$ksite<>$kurl<>$kname<>$wmori<>$wdef<>$wtac<>$kid<>\n"); print IN @new; close(IN); open(IN,"$recode_file") or &error('ファイルを開けませんでした'); @recode = ; close(IN); ($count,$name) = split(/<>/,$recode[0]); if($wcount > $count) { open(OUT,">$recode_file") or &error('ファイルを開けませんでした'); print OUT "$wcount<>$wname<>$wsite<>$wurl<>$date<>\n"; close(IN); } open(IN,"$recode_file1") or &error('ファイルを開けませんでした'); @recode1 = ; close(IN); ($tocount,$toname,$tosite,$tourl,$todate) = split(/<>/,$recode1[0]); if(($date - $todate) > (60 * 60 * 24 * 7)){ open(OUT,">$recode_file1") or &error('ファイルを開けませんでした'); print OUT "<><><><><>\n"; close(IN); } if($wcount > $tocount) { open(OUT,">$recode_file1") or &error('ファイルを開けませんでした。'); print OUT "$wcount<>$wname<>$wsite<>$wurl<>$date<>\n"; close(IN); } } # ロック解除 if (-e $lockfile) { unlink($lockfile); } ®ist; if($refresh and !$win) { &header2; } else { &header; } ############################################################ #▼▼▼▼▼▼▼▼対戦相手の装備アイテム表示▼▼▼▼▼▼▼▼# ############################################################ print "

$knameは、$wnameに戦いを挑んだ!!

$battle_date_p

\n"; ############################################################ #▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲# ############################################################ $i=0; foreach(@battle_date){ print "$battle_date[$i]"; $i++; } print "$comment

$knameは、$expの経験値を手に入れた。$goldG手に入れた。

\n"; &footer; $battle_flag=0; exit; } __SUB__ read_winner => <<'__SUB__', #--------------------# # チャンプ読み込み # #--------------------# sub read_winner { open(IN,"$winner_file") or &error('ファイルを開けませんでした。'); @winner = ; close(IN); ($wid,$wpass,$wsite,$wurl,$wname,$wsex,$wchara,$wn_0,$wn_1,$wn_2,$wn_3,$wn_4,$wn_5,$wn_6,$wsyoku,$whp,$wmaxhp,$wex,$wlv,$wgold,$wlp,$wtotal,$wkati,$wwaza,$witem,$wmons,$whost,$wdate,$wcount,$lsite,$lurl,$lname,$wmori,$wdef,$wtac,$lid,) = split(/<>/,$winner[0]); } __SUB__ footer => <<'__SUB__', #------------------# # HTMLのフッター # #------------------# sub footer { if($refresh and !$win and $mode eq 'battle') { print "【チャンプのホームページへ】\n"; }else{ print "

\n"; print "TOPページへ\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; } print "
\n"; print "$verbg edit by GUN
\n"; print "$verg remodeling by GUN
\n"; print "$ver by D.Takamiya(CUMRO)
\n"; print "
\n"; } __SUB__ header => <<'__SUB__', #------------------# # HTMLのヘッダー # #------------------# sub header { print "Cache-Control: no-cache\n"; print "Pragma: no-cache\n"; print "Content-Type: text/html\n\n"; print <<"EOM"; EOM print "$main_title\n"; print "\n"; } __SUB__ header2 => <<'__SUB__', #--------------# # 強制送還用 # #--------------# sub header2 { print "Content-Type: text/html\n\n"; print <<"EOM"; EOM print "$main_title\n"; print "\n"; } __SUB__ ); }