#!/usr/local/bin/perl # 日本語ライブラリの読み込み require 'jcode.pl'; # 挑戦者ライブラリの読み込み require 'battle.pl'; # レジストライブラリの読み込み require 'regist.pl'; require 'ffadventure.cgi'; #-----------------------------------------------# #ダンジョン拡張スクリプト by Red # #HOME http://red911.starweb.ne.jp/ # #SUB http://www6.ocn.ne.jp/~red911/ # #MAIL malmsteen911@yahoo.co.jp # #お気づきの点があれば上記連絡先へw # #サポートは行いません、自己責任でお使い下さい♪ # #-----------------------------------------------# #gun-online.com様のFFADVENTURE(改)フォーマットです。 # #----ST画面からのリンク方法----# #下記の様なフォームを取り付けてください。 #(何度でも行けてしまうのも問題なので$kmori等と絡めると良いですね。^^;) #
#戦闘場所名 $dan_name = "***"; #連続戦闘数(つまり敵の数)、ここに合わせてモンスターの設定も増減して下さい。 $m_kazu = "20"; #最高ターン数 $m_turn = "90"; #連続レベルアップ on=1 off=0 $lvup = "1"; #突破記録 使用=1 未使用=0 使用する場合は空のm_battle2.cgiを属性606で作成して下さい。 #記録を見るファイルパスはm_battle.cgi?mode=check $m_kiroku = "0"; #記録を使う場合のランキング最大表示人数 $rank_suu = "20"; #背景画像(ffadventure.iniで設定したものを使うならこのまま) $back_ground = "$backgif"; #モンスター名 $m_name[1] = "***のモンスターNo.1"; $m_name[2] = "***のモンスターNo.2"; $m_name[3] = "***のモンスターNo.3"; $m_name[4] = "4"; $m_name[5] = "5"; $m_name[6] = "6"; $m_name[7] = "7"; $m_name[8] = "8"; $m_name[9] = "9"; $m_name[10] = "10"; $m_name[11] = "11"; $m_name[12] = "12"; $m_name[13] = "13"; $m_name[14] = "14"; $m_name[15] = "15"; $m_name[16] = "16"; $m_name[17] = "17"; $m_name[18] = "18"; $m_name[19] = "19"; $m_name[20] = "20"; #経験値 $m_ex[1] = "350000000"; $m_ex[2] = "489999999"; $m_ex[3] = "685999998"; $m_ex[4] = "960399997"; $m_ex[5] = "1344559995"; $m_ex[6] = "1882383992"; $m_ex[7] = "2635337588"; $m_ex[8] = "3689472623"; $m_ex[9] = "5165261672"; $m_ex[10] = "7231366340"; $m_ex[11] = "10123912876"; $m_ex[12] = "14173478026"; $m_ex[13] = "19842869236"; $m_ex[14] = "27780016930"; $m_ex[15] = "38892023702"; $m_ex[16] = "54448833182"; $m_ex[17] = "76228366454"; $m_ex[18] = "106719713035"; $m_ex[19] = "149407598249"; $m_ex[20] = "209170637548"; #モンスターのHP、(設定数+(ランダム(設定数/10)))つまり設定数の1.0〜1.1倍。 $m_hp[1] = "184880057"; $m_hp[2] = "198820869"; $m_hp[3] = "371382195"; $m_hp[4] = "541767087"; $m_hp[5] = "629580270"; $m_hp[6] = "1218609378"; $m_hp[7] = "1238025106"; $m_hp[8] = "2549439982"; $m_hp[9] = "2524225522"; $m_hp[10] = "2897299648"; $m_hp[11] = "6498542540"; $m_hp[12] = "9078573315"; $m_hp[13] = "12052799615"; $m_hp[14] = "19364713043"; $m_hp[15] = "20670680487"; $m_hp[16] = "28391912220"; $m_hp[17] = "34408023346"; $m_hp[18] = "56345035926"; $m_hp[19] = "104712157068"; $m_hp[20] = "107393085441"; #回避率、(設定数%の確率で回避) $m_kaihi[1] = "10"; $m_kaihi[2] = "20"; $m_kaihi[3] = "30"; $m_kaihi[4] = "40"; $m_kaihi[5] = "50"; $m_kaihi[6] = "60"; $m_kaihi[7] = "70"; $m_kaihi[8] = "70"; $m_kaihi[9] = "80"; $m_kaihi[10] = "90"; $m_kaihi[11] = "100"; $m_kaihi[12] = "110"; $m_kaihi[13] = "120"; $m_kaihi[14] = "130"; $m_kaihi[15] = "140"; $m_kaihi[16] = "150"; $m_kaihi[17] = "170"; $m_kaihi[18] = "180"; $m_kaihi[19] = "190"; $m_kaihi[20] = "200"; #命中率、(設定数%の確率でHIT) $m_hit[1] = "90"; $m_hit[2] = "110"; $m_hit[3] = "120"; $m_hit[4] = "110"; $m_hit[5] = "110"; $m_hit[6] = "110"; $m_hit[7] = "110"; $m_hit[8] = "110"; $m_hit[9] = "110"; $m_hit[10] = "110"; $m_hit[11] = "110"; $m_hit[12] = "110"; $m_hit[13] = "110"; $m_hit[14] = "130"; $m_hit[15] = "140"; $m_hit[16] = "150"; $m_hit[17] = "160"; $m_hit[18] = "170"; $m_hit[19] = "190"; $m_hit[20] = "200"; #モンスターの攻撃力、(ランダム(設定数))+(設定数/10)が受けるダメージ $m_dmg[1] = "1000000"; $m_dmg[2] = "2000000"; $m_dmg[3] = "3000000"; $m_dmg[4] = "8000000"; $m_dmg[5] = "16000000"; $m_dmg[6] = "32000000"; $m_dmg[7] = "64000000"; $m_dmg[8] = "12800000"; $m_dmg[9] = "25600000"; $m_dmg[10] = "512000000"; $m_dmg[11] = "500000000"; $m_dmg[12] = "600000000"; $m_dmg[13] = "120000000"; $m_dmg[14] = "240000000"; $m_dmg[15] = "480000000"; $m_dmg[16] = "960000000"; $m_dmg[17] = "189990000"; $m_dmg[18] = "200000000"; $m_dmg[19] = "220000000"; $m_dmg[20] = "200000000"; #勝利時の入手金額 $m_gold[1] = "10000000"; $m_gold[2] = "20000000"; $m_gold[3] = "30000000"; $m_gold[4] = "40000000"; $m_gold[5] = "50000000"; $m_gold[6] = "60000000"; $m_gold[7] = "70000000"; $m_gold[8] = "80000000"; $m_gold[9] = "90000000"; $m_gold[10] = "100000000"; $m_gold[11] = "110000000"; $m_gold[12] = "120000000"; $m_gold[13] = "130000000"; $m_gold[14] = "140000000"; $m_gold[15] = "150000000"; $m_gold[16] = "160000000"; $m_gold[17] = "170000000"; $m_gold[18] = "180000000"; $m_gold[19] = "190000000"; $m_gold[20] = "200000000"; &decode; if($ENV{HTTP_REFERER} eq "m_1"){&error("アクセスできません。");} if($mode eq 'm_1'){&m_1;} elsif($mode eq 'check'){✓} 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 = ( m_1 => <<'__SUB__', sub m_1 { if($battle_flag) { &error("現在戦闘中です。少しお待ちになってから戦闘してください。"); } $battle_flag=1; open(IN,"./charalog/$in{'id'}.cgi") or &error('ファイルを開けませんでした。'); @battle =$knameは身をかわした!"; } if($mkahi > int(rand(100)) and $meityu==0) { $dmg1 = 0; $kawasi2 = "
$mnameは身をかわした!"; } $battle_date[$j] = <<"EOM";
| $iターン | ||||||||||||||
|
VS |
|
||||||||||||
$com1 $clit1 $kawasi2 $mname に $dmg1 のダメージを与えた。
$com2 $clit2 $kawasi1 $kname に $dmg2 のダメージを与えた。
EOM
$mhp = $mhp - $dmg1;
if($mhp <= 0) { $win = 1; last; }
else {$khp_flg = $khp_flg - $dmg2;}
if($khp_flg <= 0) { $win = 0; last; }
$i++;
$j++;
}
if($win) {
if($m_kiroku == "1"){if($in{'mno'} eq $m_kazu){
if($lockkey == 1){ &lock1; }elsif($lockkey == 2){ &lock2; }
open(IN,"m_battle2.cgi")|| &error('オープンエラー','指定された書込みファイルが開けません。');
@m_k = ";
}else{
if($m_kiroku == "1"){if($lockkey == 1){ &lock1; }elsif($lockkey == 2){ &lock2; }
open(IN,"m_battle2.cgi")|| &error('オープンエラー','指定された書込みファイルが開けません。');
@m_k = ";
}
if($lvup){
while($kex >= ($klv * $lv_up)) {
$comment .= " ";
$hpup = int(rand($kn_3)) + 1;
$kmaxhp = $kmaxhp + $hpup;
$khp = $kmaxhp;
$comment .= "HPが$hpup上がった!! ";
$kex = $kex - ($klv * $lv_up);
$klv += 1;
if(int(rand(5)) == 0) { $kn_0 += 1; $comment .= "力が上がった。";}
if(int(rand(5)) == 0) { $kn_1 += 1; $comment .= "知\能\が上がった。";}
if(int(rand(5)) == 0) { $kn_2 += 1; $comment .= "信仰心が上がった。";}
if(int(rand(5)) == 0) { $kn_3 += 1; $comment .= "生命力が上がった。";}
if(int(rand(5)) == 0) { $kn_4 += 1; $comment .= "器用さが上がった。";}
if(int(rand(5)) == 0) { $kn_5 += 1; $comment .= "速さが上がった。";}
if(int(rand(5)) == 0) { $kn_6 += 1; $comment .= "魅力が上がった。";}
}
}else{
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; $comment .= "力が上がった。";}
if(int(rand(5)) == 0) { $kn_1 += 1; $comment .= "知\能\が上がった。";}
if(int(rand(5)) == 0) { $kn_2 += 1; $comment .= "信仰心が上がった。";}
if(int(rand(5)) == 0) { $kn_3 += 1; $comment .= "生命力が上がった。";}
if(int(rand(5)) == 0) { $kn_4 += 1; $comment .= "器用さが上がった。";}
if(int(rand(5)) == 0) { $kn_5 += 1; $comment .= "速さが上がった。";}
if(int(rand(5)) == 0) { $kn_6 += 1; $comment .= "魅力が上がった。";}
}
}
$khp = $khp_flg + int(rand($kn_3));
if($khp > $kmaxhp) { $khp = $kmaxhp; }
if($khp <= 0) { $khp = $kmaxhp; }
®ist;
&header;
print <<"_BATTLE_";
$dan_name
$knameは、$mexの経験値を手に入れた。$goldG手に入れた。 \n"; }
else { print "$comment $knameは、$mexの経験値を手に入れた。 \n"; }
if($m_kazu eq $in{'mno'}) {
print "
$knameは、レベルが上がった!!
_BATTLE_
$i=0;
foreach(@battle_date){
print "$battle_date[$i]";
$i++;
}
if($win) { print "$comment
\n";
print "FF ADVENTURE(改) v1.104 edit by GUN
\n";
print "FF ADVENTURE(改) v1.104 remodeling by GUN
\n";
print "FF ADVENTURE v0.43 by D.Takamiya(CUMRO)
\n";
print "