旧バージョンの「鍛冶用ハンマー」はデータにミスがあり作成に使用できません。
修正前
&change_status($Si,'pl',-1);
$M = $Si->{pl} ? "$Si->{nm}のプラスが1下がりました。" : "$Si->{nm}のプラスに変化はありません。";
修正後
$M = $Si->{pl} ? "$Si->{nm}のプラスが1下がりました。" : "$Si->{nm}のプラスに変化はありません。";
&change_status($Si,'pl',-1);
library/transfer.cgi: sub transfer_after
修正前
&say("$I->{Pl}{nm}に移動しました",'CLOSE','Reload');
修正後
&say("$I->{Pl}{nm}に移動しました",'transfer_before','Reload');
library/use.cgi: sub use
修正前
elsif ($Si->{Ql}{Rf} && !$I->{Sk}{Wb}) { &M("$Ii->{nm}は生で食べられない食材です。") }
修正後
elsif ($Ii->{Ql}{Rf} && !$I->{Sk}{Wb}) { &M("$Ii->{nm}は生で食べられない食材です。") }
library/use.cgi: sub type_expendable
追加
if ($Si->{Ql}{Pm}) { $V = &roll_dice(2) == 1 ? $V : -$V }
if ($K eq 'lf' && $I->{$K} + $V < 1) { $I->{$K} = abs($V) + 1 }
追加
<input type=hidden name=xx value="$I->{XX}">
<input type=hidden name=fl value="bag">
library/base.cgi: sub change_status
修正前
$S->{$T} = $S->{"M$T"};
if ($Y) {
修正後
$S->{$T} = $S->{"M$T"};
if ($Y && $S->{Cd}{$Y}) {
library/base.cgi: sub decorate_item
修正前
my ($V,$W,$X);
修正後
my ($V,$W,$X,$Y,$Z);
追加
$X = $I->{Ap} ? $I->{Ap} : 1;
$W = $Si->{Qn} ne '' ? $Si->{Qn} : $Si->{qn};
$Y = $Si->{Sp} ? $Si->{Sp} : $Si->{sp};
$Z = $Si->{wt} if $T;
$Z ||= $Si->{wt} * $W;
$Z ||= $Si->{sl};
$Z = 0 if $Si->{cl} eq 'Cu';
修正前
$V .= " x $Si->{qn}" if $Si->{qn} > 1 && !$Si->{Qn} && !$T;
$V .= " x $Si->{Qn}" if $Si->{Qn};
$V .= " = " . int($Si->{sp} * $X) . " $set::mny" if $Si->{sp} && !$Si->{Sp};
$V .= " = " . int($Si->{Sp} * $X) . " $set::mny" if $Si->{Sp};
$V .= " (" . $Si->{wt} * $Si->{qn} . "$set::wgt)" if $Si->{cl} ne 'Cu';
$V .= "・・・在庫 $Si->{qn}" if $T;
修正後
$V .= " x $W" if $W > 1 && !$T;
$V .= " = " . int($Y * $X) . " $set::mny" if $Y;
$V .= " ($Z$set::wgt)" if $Z;
$V .= "・・・在庫 $W" if $T;
library/base.cgi:
サブルーチンを新たに追加
# Sub Item Class Check #
sub item_class_check {
my $Si = shift;
return 'M' if $Si->{cl} =~ /(Fd|Mt|Ig|Pi|Wd|Lt|Ct|Jw)/;
}
library/blackmarket.cgi: sub blackmarket_before
追加
$t1 .= qq|<p><input type=checkbox name=dl class=checkbox> 買わずに削除する</p>\n| if $I->{Sk}{Rm};
&get_code;
library/blackmarket.cgi: sub blackmarket_after
追加
if ($F{ui} eq "$Ui->{id}_$Ui->{gd}") {
if ($F{dl}) { $Ui->{qn} = 0; last }
library/butcher.cgi: sub butcher_before
修正前
if (!$Ip->{hg}) {
$t1 .= "$Ip->{Nm}は既に死んでいます。$Ip->{Nm}からは何も手に入りません。<hr>\n";
next;
}
if (!$Ip->{sg} || !exists $FI{$Ip->{nm}}) {
$t1 .= "$Ip->{Nm}からは何も手に入りません。<hr>\n";
next;
}
$age = &get_passage($Ip->{bt},$set::pyt);
$Ip->{Im} = &item_image($Ip);
修正後
$Ip->{Im} = &item_image($Ip);
&say("$Ip->{Im}$Ip->{Nm}は既に死んでいます。$Ip->{Nm}からは何も手に入りません。",'pet') if !$Ip->{hg};
&say("$Ip->{Im}$Ip->{Nm}からは何も手に入りません。",'pet') if !$Ip->{sg} || !exists $FI{$Ip->{nm}};
&say("$Ip->{Im}$Ip->{Nm}は騎乗中です。",'pet') if $Ip->{eq} eq 'rd';
&say("$Ip->{Im}$Ip->{Nm}は冒険に同行中です。",'pet') if $Ip->{eq} eq 'co';
$age = &get_passage($Ip->{bt},$set::pyt);
追加
$Ui->{Qn} = int($age * $set::pcp * $Ui->{qn} * $Ip->{ft} / (80 - $I->{st}) * $I->{bonus});
$Ui->{Qn} ||= 1;
library/butcher.cgi: sub butcher_after
追加
require "$set::itm_dir/corpse.cgi";
require "$set::lib_dir/experience.cgi";
追加
&error('Butcher Error') if $Ui->{Qn} > 100;
$Ui->{Qn} ||= 1;
追加
&M("$Ui->{Im}$Ui->{nm}を$Ui->{qn}つ手に入れました。");
&experience($I,$Ui->{Qn} * 20) if $I->{Sk}{Bc};
追加
&reload_data('ex') if $I->{Sk}{Bc};
&reload_gage('hy','V') if !$I->{Sk}{Bc};
library/buy.cgi: sub buy_after
修正前
$M .= "$Ui->{Im}$I->{nm}は$Ui->{nm}を$Ui->{sp} $set::mnyで購入しました。<br>\n";
&M("$Up->{Im}$Up->{nm}を購入しました。");
修正後
$M .= "$Up->{Im}$I->{nm}は$Up->{nm}を$Up->{sp} $set::mnyで購入しました。<br>\n";
&M("$Up->{Im}$Up->{nm}を購入しました。");
修正前
$Up->{qn} = 0;
修正後
$Up->{id} = '';
library/castle.cgi: sub castle_before
修正前
my ($L,$V1,$V2,$V3,$V4);
修正後
my ($L,$V1,$V2,$V3,$V4,$V5);
修正前
$V3 = ($I->{pc} + 1) * $set::psp;
$V4 = ($I->{bk} + 1) * $set::bkp;
修正後
$V3 = ($I->{Mpx} + 1) * $set::pxp;
$V4 = ($I->{pc} + 1) * $set::psp;
$V5 = ($I->{bk} + 1) * $set::bkp;
修正前
<input type=radio class=radio name=tp value=pc> パックスキルを習得する・・・$V3 $set::mny<br>
<input type=radio class=radio name=tp value=bk> 銀行保管料を支払う・・・$V4 $set::mny<br>
修正後
<input type=radio class=radio name=tp value=Dd3> 飼養許可証を購入する・・・$V3 $set::mny<br>
<input type=radio class=radio name=tp value=pc> パックスキルを習得する・・・$V4 $set::mny<br>
<input type=radio class=radio name=tp value=bk> 銀行保管料を支払う・・・$V5 $set::mny<br>
library/castle.cgi: sub castle_after
修正前
if ($F{tp} eq 'Dd1' || $F{tp} eq 'Dd2') {
修正後
if ($F{tp} eq 'Dd1' || $F{tp} eq 'Dd2' || $F{tp} eq 'Dd3') {
修正前
else {
$V = ($I->{bs} - $set::bbs + 1) * $set::bsp;
$M = $I->{bs};
}
修正後
elsif ($F{tp} eq 'Dd2') {
$V = ($I->{bs} - $set::bbs + 1) * $set::bsp;
$M = $I->{bs};
}
else {
$V = ($I->{Mpx} + 1) * $set::pxp;
$M = $I->{px} + $set::mpx;
}
library/companion.cgi: sub set_companion
追加
$Sp->{eq} = $V;
$Sp->{sp} = '';
$Sp->{rs} = '';
library/compose.cgi: sub compose
修正前
&header(CSS=>'sub');
修正後
&header(CSS=>'sub',JavaScript=>'GetView');
修正前
<select name=tp class=select>
修正前
<select id=mode name=md class=select onChange="HideObject('type','mode','compose_before','normal');">
<option value="compose_before">作成する</option>
<option value="pack">パックにする</option>
<option value="unpack_before">パックを分ける</option>
<option value="dump">捨てる</option>
</select>
<select id=type style="visibility:visible" name=tp class=select>
修正前
<input type=hidden name=md value="compose_before">
修正前
<input type=hidden name=fl value="compose">
library/compose.cgi: sub compose_before
修正前
my $t1;
修正後
my ($t1,$t2);
追加
foreach (1 .. $I->{pc}) {
$t2 .= qq|<option value="$_">$_</option>\n|;
}
&set_code;
修正前
<select name=ci class=select>$t1</select> $set::but{'OK'}
修正後
<select name=ci class=select>$t1</select> 数量:<select name=do class=select>$t2</select> $set::but{'OK'}
library/compose.cgi: sub compose_after
追加
$Ui = $FI[$F{ci}-1];
if ($F{do} > 1 && &item_class_check($Ui->{dt}) ne 'M') {
&M("$Ui->{dt}{nm}は一つずつしか作成できません。");
$F{do} = 1;
}
if ($F{do} > 1) {
foreach $V (keys %{$Ui->{cl}}) {
$Ui->{cl}{$V} *= $F{do};
}
foreach $V (keys %{$Ui->{id}}) {
$Ui->{id}{$V} *= $F{do};
}
$Ui->{dt}{qn} *= $F{do};
$Ui->{ex} *= $F{do};
$Ui->{gl} *= $F{do};
}
追加
($K,$V) = split(/=/);
$V *= $F{do};
修正前
&say("$set::lab{$K}が $V 必要です",'compose') if $I->{gl} < $Ui->{gl};
修正後
&say("作成には $Ui->{gl} $set::mny必要です",'compose') if $I->{gl} < $Ui->{gl};
修正前
&M("$Ui->{Im}$Ui->{dt}{nm}を作成しました。");
修正後
&M("$Ui->{Im}$Ui->{dt}{nm} x $Ui->{dt}{qn}を作成しました。");
追加
&deluxe_roll($I,$Ui->{dt}) if $Ui->{dt}{cl} eq 'Fd';
&double_roll($I,$Ui->{dt}) if $Ui->{dt}{cl} eq 'Mt';
library/compose.cgi: sub reduce_item
修正前
my ($X,$Y,$Z);
修正後
my ($W,$X,$Y,$Z);
追加
$W = $Si->{db} ? 'db' : 'qn';
if ($Ui->{ss}{$Y}) { # 代替品
修正前
if ($Si->{qn} >= $X->{$Y}) {
$Z = $X->{$Y};
$X->{$Y} = 0;
}
else {
$Z = $Si->{qn};
$X->{$Y} -= $Si->{qn};
}
修正後
if ($Si->{$W} >= $X->{$Y}) {
$Z = $X->{$Y};
$X->{$Y} = 0;
}
else {
$Z = $Si->{$W};
$X->{$Y} -= $Si->{$W};
}
library/compose.cgi: sub unexpected_accident
修正前
if (&roll_dice(100 - $S->{Hl} + $V) <= $set::ibp) {
修正後
if (&roll_dice(100 - $S->{Hl} + $V) <= $set::icp) {
library/compose.cgi:
サブルーチンを新たに追加
# Sub Double Roll #
sub double_roll {
my $S = shift;
my $Si = shift;
if (&roll_dice(100 + $S->{Hy}) <= $set::erb + $S->{st}) {
$Si->{qn} *= 2;
&M("いつもの二倍の量を作成する事に成功しました。");
}
}
library/consumption.cgi: sub consumption_check
修正前
$Si->{db}--;
if ($Si->{db} <= 0) {
&M("$Si->{nm}が壊れました。");
修正後
$V ||= 1;
$Si->{db} -= $V;
if ($Si->{db} <= 0) {
&M("$Si->{nm}を使い切りました。");
library/cure.cgi: sub cure_after
追加
require "$set::lib_dir/partner.cgi";
require "$set::lib_dir/myrecord.cgi";
library/delete.cgi: sub delete_after
修正前
&say('削除完了','CLOSE');
修正後
&header(CSS=>'sub',JavaScript=>'ReturnTop',Body=>qq| onLoad="ReturnTop('$set::cgi_url');"|);
print <<" END_OF_HTML";
<div class=outbox>
削除完了<br>
<p class=r>$set::but{CLOSE}</p>
</div>
END_OF_HTML
&footer;
library/dump.cgi: sub dump
修正前
&say($I->{M},'bag');
修正後
&say($I->{M},$F{fl});
library/experience.cgi: sub experience
追加
&reload_data('lv') if $S->{id} eq $F{id};
if ($S->{Sk}{Tb}) {
$S->{Mlf} += $set::clf;
&reload_gage('lf','V') if $S->{id} eq $F{id};
}
library/feed.cgi: sub feed_after
削除
my $tecbonus;
修正前
$I->{bonus} = $Ip->{cl} eq 'Ls' || $Ip->{cl} eq 'Hr' ? 'Br':
$Ip->{cl} eq 'Wa' ? 'At':
$Ip->{cl} eq 'Dr' ? 'Dt':
'Bt';
&get_bonus($I,$I->{bonus});
$intbonus = (1 + $I->{in} / 10) * $I->{bonus};
$tecbonus = (1 + $I->{tc} / 10) * $I->{bonus};
修正後
$V = $Ip->{cl} eq 'Ls' || $Ip->{cl} eq 'Hr' ? 'Br':
$Ip->{cl} eq 'Wa' ? 'At':
$Ip->{cl} eq 'Dr' ? 'Dt':
'Bt';
$I->{bonus} = $I->{Sk}{$V} ? 3 : 1;
$intbonus = (1 + $I->{in} / 10) * $I->{bonus};
修正前
if ($Ii->{cl} eq 'Ad') {
&M("$Ip->{Nm}に$Ii->{nm}を投与しました。");
&change_status($Ip,'lf',$Ii->{ef},1,$Ip->{lx});
}
else {
&M("$Ip->{Nm}はこれ以上食べられません。") && next if $energy + $Ip->{hg} >= $Ip->{hx};
foreach (split(/,/,$Ii->{ef})) {
($K,$V) = split(/=/);
next if $K ne 'lf';
$energy += int($V * $Ii->{qn} * $tecbonus);
&M("$Ip->{Nm}に$Ii->{nm}をあげました。");
&change_status($Ip,'lf',$V,1,$Ip->{lx}) if $Ip->{lf} < $Ip->{lx};
$Ii->{qn} = 0;
last;
}
}
修正後
foreach (split(/,/,$Ii->{ef})) {
($K,$V) = split(/=/);
$Ii->{Ef} += $V;
}
if (!$Ii->{Ql}{Ad}) {
&M("$Ip->{Nm}はこれ以上食べられません。") && next if $energy + $Ip->{hg} >= $Ip->{hx};
$energy += int($Ii->{Ef} * $Ii->{qn});
}
&M("$Ip->{Nm}に$Ii->{nm}をあげました。");
&change_status($Ip,'lf',$Ii->{Ef},1,$Ip->{lx}) if $Ip->{lf} < $Ip->{lx};
$Ii->{qn} = 0;
library/feed.cgi: sub favorite_check
修正前
foreach (@{$Sp->{Fd}},'Ad') {
修正後
foreach (@{$Sp->{Fd}}) {
library/fight.cgi: sub fight_player
以下の部分を
# 正体不明 #
$V = $I->{Nm} = $I->{Sk}{Uk} ? '何者か' : $I->{nm};
$U->{Nm} = $U->{nm};
以下の部分の上に移動
# ペットの準備 #
&prepare_companion($I);
&prepare_companion($U);
library/fight.cgi: sub fight_creature
修正前
&reload_gage([@set::gva],'V');
修正後
&reload_gage(['lf','hl','ap','hy'],'V');
library/fight.cgi: sub skill_roll
修正前
return 1 if &roll_dice(100 + $S->{Hy}) <= $X + $Y;
修正後
return 1 if &roll_dice(100 + $S->{Hy}) <= $X + &roll_dice($Y);
library/fight.cgi: sub first_battle
修正前
if (&skill_roll($A,$set::sQg,$A->{lv} * 2)) {
修正後
if (&skill_roll($A,$set::sQg,$A->{in} * 3)) {
修正前
if (&skill_roll($A,$set::sQd,$A->{lv} * 2)) {
修正後
if (&skill_roll($A,$set::sQd,$A->{in} * 3)) {
library/fight.cgi: sub concrete_battle
修正前
if ($F && $D->{Sk}{Kn} && &skill_roll($D,$set::sKn,$D->{lv} * 2)) {
&M("$D->{Nm}はそれを素早く察知し、$A->{Nm}の攻撃を阻止した。") && return;
}
修正後
if ($F && $D->{Sk}{Kn} && &skill_roll($D,$set::sKn,$D->{in} * 4)) {
&M("$D->{Nm}はそれを素早く察知し、$A->{Nm}の攻撃を阻止した。") && return;
}
# 迷彩 #
if ($D->{Sk}{Cf} && &skill_roll($D,$set::sCf,$D->{in} * 3)) {
&M("だが$A->{Nm}は一瞬相手を見失ってしまった。") && return;
}
修正前
if ($D->{lf} <= $D->{sc} && &skill_roll($D,$D->{Lg}{ef},&equip_bonus($D,'Lg'))) {
$battleisover = 2;
&M("$D->{Nm}は逃走した。") && return;
}
修正後
if ($D->{lf} <= $D->{sc} && &roll_dice(100) <= $D->{BT} + $D->{DX} * 2) {
$battleisover = 2;
&M("$D->{Nm}は逃走した。");
&destruction_check($D,'lg');
return;
}
修正前
if ($A->{Sk}{Ss} && &skill_roll($A,$set::sSs,$A->{lv} * 3)) {
修正後
if ($A->{Sk}{Ss} && &skill_roll($A,$set::sSs,$A->{in} * 4)) {
修正前
# 盾による回避(槍系には無効) #
$V = $D->{Sk}{Ip} ? $set::sIp : 1; # 鉄壁の守りボーナス
if ($D->{SH} && !$A->{Rh}{cl} eq 'Sp' && &roll_dice(100) <= $D->{SH} * $V) {
修正後
# 盾による回避(槍系には無効) #
if ($D->{SH} && !$A->{Rh}{cl} eq 'Sp' && &roll_dice(100) <= $D->{SH}) {
修正前
elsif ($D->{Sk}{Be} && $A->{sx} eq 'm' && &skill_roll($D,$set::sBe,$D->{lv} * 2) &&
(!$A->{Sk}{As} || !&skill_roll($A,$set::sAs,$A->{lv}))) {
修正後
elsif ($D->{Sk}{Be} && $A->{sx} eq 'm' && &skill_roll($D,$set::sBe,$D->{in} * 3) &&
(!$A->{Sk}{As} || !&skill_roll($A,$set::sAs,$A->{in} * 2))) {
修正前
if ($A->{Sk}{Kd} && $D->{sx} eq 'm' && &skill_roll($A,$set::sKd,$D->{lv} * 2) &&
(!$D->{Sk}{As} || !&skill_roll($D,$set::sAs,$D->{lv}))) {
修正後
if ($A->{Sk}{Kd} && $D->{sx} eq 'm' && &skill_roll($A,$set::sKd,$D->{lv} * 3) &&
(!$D->{Sk}{As} || !&skill_roll($D,$set::sAs,$D->{in} * 2))) {
修正前
if ($A->{Sk}{Ow} && $D->{sx} eq 'w' && &skill_roll($A,$set::sOw,$D->{lv} * 2) &&
(!$D->{Sk}{Be} || !&skill_roll($D,$set::sBe,$D->{lv}))) {
修正後
if ($A->{Sk}{Ow} && $D->{sx} eq 'w' && &skill_roll($A,$set::sOw,$D->{lv} * 3) &&
(!$D->{Sk}{Be} || !&skill_roll($D,$set::sBe,$D->{in} * 2))) {
修正前
if ($D->{da} eq 'Dd' && $D->{id} eq $U->{id} && $D->{Sk}{Dc} && &skill_roll($D,$set::sDc,$D->{lv} * 2)) {
修正後
if ($D->{da} eq 'Dd' && $D->{id} eq $U->{id} && $D->{Sk}{Dc} && &skill_roll($D,$set::sDc,$D->{in} * 4)) {
修正前
&pet_experience($A->{Co},$CDM);
修正後
&pet_experience($A->{Co},$CADM);
library/fight.cgi: sub throw_weapon
修正前
if ($D->{Sk}{Kn} && &skill_roll($D,$set::sKn,$D->{lv} * 2)) {
修正後
if ($D->{Sk}{Kn} && &skill_roll($D,$set::sKn,$D->{in} * 4)) {
library/fight.cgi: sub shield_check;
変更 # Sub Protector Check # sub protector_check { 追加 my $S = shift; my $V; 追加 # 盾チェック # $V = $D->{Sk}{Ip} ? $set::sIp : 1; # 鉄壁の守りボーナス $S->{SH} = $S->{Lh}{cl} eq 'Sh' ? $S->{Lh}{ef} + &equip_bonus($S,'Lh',$set::shb) : undef; $S->{SH} *= $V; # 兜チェック # $V = $S->{Sk}{Ne} ? $set::sNe : 1; # 九死に一生 $S->{HM} = $S->{Hd}{cl} eq 'Hm' ? $S->{Hd}{ef} * $V + &equip_bonus($S,'Hd',$set::shb) : undef; # 靴チェック # $S->{BT} = $S->{Lg}{ef} + &equip_bonus($S,'Lg',$set::shb); # 盾装備時のDEX変化 # $S->{DX} += $S->{Lh}{cl} eq 'Sh' && $S->{dx} > $S->{st} ? $S->{st} : $S->{dx}; 置換 呼び出し元の&shield_checkを全て&protector_checkに置換。library/fight.cgi: sub winner
修正前
if ($V && $O->{id} ne $F{id} && $O->{Sk}{Fc} && &skill_roll($O,$set::sFc,$O->{lv})) {
修正後
if ($V && $O->{id} ne $F{id} && $O->{Sk}{Fc} && &skill_roll($O,$set::sFc,$O->{in} * 2)) {
library/fight.cgi: sub dead_or_alive
修正前
if ($A->{Sk}{Da} && &skill_roll($A,$set::sDa,$A->{lv})) {
修正後
if ($A->{Sk}{Da} && &skill_roll($A,$set::sDa,$A->{in} * 2)) {
修正前
elsif ($A->{Sk}{Dh} && $D->{sx} eq 'm' && &skill_roll($A,$set::sDh,$A->{lv}) &&
(!$D->{Sk}{As} || !&skill_roll($D,$set::sAs,$D->{lv}))) {
修正後
elsif ($A->{Sk}{Dh} && $D->{sx} eq 'm' && &skill_roll($A,$set::sDh,$A->{in} * 2) &&
(!$D->{Sk}{As} || !&skill_roll($D,$set::sAs,$D->{in} * 2))) {
修正前
elsif ($A->{Sk}{Bh} && ($D->{Sk}{Da} || $D->{rw} >= $set::sps) &&
&skill_roll($A,$set::sBh,$A->{lv})) {
修正後
elsif ($A->{Sk}{Bh} && ($D->{Sk}{Da} || $D->{rw} >= $set::sps) &&
&skill_roll($A,$set::sBh,$A->{in} * 3)) {
修正前
# 九死に一生 #
$V = $D->{Sk}{Ne} ? $set::sNe : 1;
if ($D->{Hd}{ef} && !$A->{Sk}{Fd} &&
&roll_dice(100) <= $D->{Hd}{ef} * $V + &equip_bonus($D,'Hd',1.5)) {
修正後
if ($D->{HM} && !$A->{Sk}{Fd} && &roll_dice(100) <= $D->{HM} + $D->{DX} * 2) {
修正前
$D->{dt}++;
$A->{kl}++;
修正後
if ($U->{id} ne '') {
$D->{dt}++;
$A->{kl}++;
}
library/fight.cgi: sub avoid_death
修正前
return 0 if !&skill_roll($S,$set::sAd,$S->{lv} * 2);
修正後
return 0 if !&skill_roll($S,$set::sAd,$S->{in} * 3);
library/fight.cgi: sub destruction_check
修正前
elsif ($e eq 'lh' && $S->{$E}{cl} eq 'Sh') {
&shield_check($S);
&dex_bonus;
}
修正後
elsif ($e eq 'lh' && $S->{$E}{cl} eq 'Sh') {
undef $S->{SH};
}
elsif ($e eq 'hd' && $S->{$E}{cl} eq 'Hm') {
undef $S->{HM};
}
library/fight.cgi: sub steal_check
修正前
return if !&skill_roll($S,$set::sSt,$S->{lv});
修正後
return if !&skill_roll($S,$set::sSt,$S->{in} * 2);
library/find.cgi: sub find
修正前
&reload_gage(['vt','lf'],'V');
修正後
&reload_gage(['vt'],'V');
library/forest.cgi: sub forest
修正前
my $do;
修正後
my ($do,$t1);
修正前
&header(CSS=>'sub');
修正後
&header(CSS=>'sub',JavaScript=>'GetView');
追加
for (1..$set::wdo) { $do .= qq|| }
$t1 = '罠を仕掛ける'; # 文字エラー対策
$t1 = qq|<option value="capture_before">$t1</option>\n| if $I->{Sk}{Cc};
修正前
<select name=do class=select>$do</select>
<select name=md class=select>
修正後
<select id=do style="visibility:visible" name=do class=select>$do</select>
<select id=mode name=md class=select onChange="HideObject('do','mode','capture_before','reverse');">
追加
<option value="hunting">狩りをする</option>
$t1
追加
<input type=hidden name=xx value="$I->{XX}">
<input type=hidden name=fl value="forest">
library/hunting.cgi: sub hunting
追加
&found($I,'ht',$set::wvt,'狩り','つ手に入れました',0,'hunting');
&reload_gage(['vt'],'V');
library/look.cgi: sub look
修正前
if (!$Ii->{Ql}{El}) {
修正後
if (!$Ii->{Ql}{El} && $Ii->{cl} ne 'Mm') {
修正前
if ($Ii->{ef} && $Ii->{cl} ne 'Gd') {
修正後
if ($Ii->{ef} && $Ii->{cl} !~ /(Gd|Gm|Tp)/) {
library/new.cgi: sub new_before
修正前
イメージ <select name=im class=select onChange="Image('$F{sx}')"></select> <tt>【<a href=image.html target=_blank>画像リスト</a>】</tt>
職業 <select name=jb class=select>$t1</select> <tt>【<a href=job.html target=_blank>職業リスト</a>】</tt>
開始国 <select name=kg class=select>$t2</select> <tt>【<a href=kingdom.html target=_blank>国リスト</a>】</tt>
修正後
イメージ <select name=im class=select onChange="Image('$F{sx}')"></select> <tt>【<a href=$set::htm_dir/image.html target=_blank>画像リスト</a>】</tt>
職業 <select name=jb class=select>$t1</select> <tt>【<a href=$set::htm_dir/manual/job.html target=_blank>職業リスト</a>】</tt>
開始国 <select name=kg class=select>$t2</select> <tt>【<a href=$set::htm_dir/kingdom.html target=_blank>国リスト</a>】</tt>
library/pack.cgi: sub pack
修正前
my ($id,$gd);
修正後
my ($id,$gd,$ql);
修正前
&say("パックできるのは食料か素材のみです",'bag') if $Ii->{cl} !~ /(Fd|Mt|Ig|Pi|Wd|Lt|Ct|Jw)/;
if ($id) {
&say("同じものしかパックできません",'bag') if $id ne $Ii->{id};
修正後
&say("パックできるのは食料か素材のみです",$F{fl}) if &item_class_check($Ii) ne 'M';
&say("耐久力があるアイテムはパックできません",$F{fl}) if $Ii->{db};
if ($id) {
&say("同じものしかパックできません",$F{fl}) if $id ne $Ii->{id} || $ql ne $Ii->{ql};
追加
$id = $Ii->{id};
$gd = $Ii->{gd};
$ql = $Ii->{ql};
修正
全ての&sayへの第二引数を'bag'から$F{fl}へ変更する。
library/pet.cgi: sub pet
修正前
<input type=hidden name=tp value="pet">
修正後
<input type=hidden name=fl value="pet">
library/playerlist.cgi: sub playerlist
修正前
&get_item($U);
undef @T;
foreach $Ui (@{$U->{Bg}}) {
修正後
&get_item($U);
&get_pet($U);
undef @T;
foreach $Ui (@{$U->{Bg}},@{$U->{Pt}}) {
library/playerlist.cgi: sub sales_information
修正前
&get_item($U);
foreach $Ui (@{$U->{Bg}}) {
修正後
&get_item($U);
&get_pet($U);
foreach $Ui (@{$U->{Bg}},@{$U->{Pt}}) {
library/price.cgi:
置換
全ての「tp」を「fl」に置換。
library/price.cgi: sub price_before
修正前
$t2 = '騎乗';
修正後
&get_companion($I);
$t2 = $I->{Co}{tp} eq 'rd' ?'騎乗': '冒険に同行';
追加
$Ii->{qn} = 1 if $F{fl} eq 'pet';
$Ii->{Sp} = $Ii->{bp} * $Ii->{qn} + $set::lip;
修正前
&back_close('bag');
修正後
&back_close($F{fl});
library/price.cgi: sub price_after
追加
if (exists $F{$i}) {
$Ii->{qn} = 1 if $F{fl} eq 'pet';
修正前
if ($F{fl} eq 'pet') {
&set_pet($I);
&say($I->{M},'pet');
}
else {
&set_item($I);
&say($I->{M},'bag');
}
修正後
if ($F{fl} eq 'pet') {
&set_pet($I);
}
else {
&set_item($I);
}
&say($I->{M},$F{fl});
library/reserve.cgi:
置換
全ての「tp」を「fl」に置換。
library/reserve.cgi: sub reserve_before
修正前
&back_close('bag');
修正後
&back_close($F{fl});
library/reserve.cgi: sub reserve_after
修正前
if ($F{fl} eq 'pet') {
&set_pet($I);
&say($I->{M},'pet');
}
else {
&set_item($I);
&say($I->{M},'bag');
}
修正後
if ($F{fl} eq 'pet') {
&set_pet($I);
}
else {
&set_item($I);
}
&say($I->{M},$F{fl});
library/sell.cgi: sub sell_after
修正前
if ($Ii->{cl} !~ /(Fd|Mt|Ig|Pi|Wd|Ct|Jw)/) {}
修正後
if (&item_class_check($Ii) ne 'M') {}
library/top.cgi: sub top
追加
</form>
<div class=words>
<a class=back href=$set::htm_dir/manual/ target=_blank>マニュアル</a><br>
<a class=back href=$set::htm_dir/statistics.html target=_blank>参加者の統計</a>
</div>
library/transfer.cgi: sub transfer_before
修正前
my $V;
修正後
my ($V,@L);
修正前
foreach (@{$I->{Pl}{tf}}) {
修正後
@L = @{$I->{Pl}{tf}};
push(@L,split(/,/,$I->{Pl}{lt}),split(/,/,$I->{Pl}{lh})) if $I->{Sk}{Fy}; # 飛翔
foreach (@L) {
library/unpack.cgi: sub unpack_before
修正前
&say("荷物スロットに空きがありません",'bag') if @{$I->{Bg}} >= $I->{bs};
修正後
&say("荷物スロットに空きがありません",$F{fl}) if @{$I->{Bg}} >= $I->{bs};
追加
<input type=hidden name=ps value="$F{ps}">
<input type=hidden name=fl value="$F{fl}">
修正前
&back_close('bag');
修正後
&back_close($F{fl});
library/unpack.cgi: sub unpack_after
修正前
&M("$Ii->{nm}を$F{$i}個を分けました。");
修正後
&M("$Ii->{nm}を$F{$i}個分けました。");
修正前
&say($I->{M},'bag');
修正後
&say($I->{M},$F{fl});
library/use.cgi: sub use
追加
elsif ($Ii->{id} eq 'Deed02') { &extend_bag($I,$Ii) }
elsif ($Ii->{id} eq 'Deed03') { &extend_kennel($I,$Ii) }
library/use.cgi: sub use
サブルーチンを新たに追加
# Sub Extend Kennel #
sub extend_kennel {
my $S = shift;
my $Si = shift;
my ($F,$Ui);
&M("これ以上$set::lab{pt}スロットを増やすことはできません。") && return if $I->{Mpx} + $set::mpx >= $set::mbs;
foreach $Ui (@{$S->{Bg}}) {
next if !$Ui;
next if $Ui->{cl} ne 'Kn';
&change_status($S,'bg',-$Ui->{wt});
$Ui->{qn}--;
$F = 1;
last;
}
&M("$set::lab{pt}スロットを増やすには飼育小屋か檻が必要です。") && return if !$F;
&change_status($S,'bg',-$Si->{wt});
$Si->{qn}--;
$S->{Mpx}++;
&M("$set::lab{pt}スロットを増やしました。");
}
set.cgi
修正(今後変更する可能性あり。取り敢えず5時間で100回復) # 時間 Time ########################################## # $rcv = 18; # VITが0.1回復するのに必要な秒数 修正(HEAの減少が回復に追いつかない為) # プレイヤーデータ設定 Player's Data ################# # $lgh = 3; # Loginに消費するHEAの量 修正 # プレイヤーデータ設定 Player's Data ################# # $lip = 0; # 最低販売額の設定(yes=市場買取額に上乗せする額) # プレイヤーデータ設定 Player's Data ################# # $ibp = 15; # 戦闘での基本負傷率(%) 修正 # 城 Castle ########################################### # $bsp = 3000; # 財産権利書価格(現在の荷物スロット - 初期荷物スロット + 1) * n 追加 # プレイヤーデータ設定 Player's Data ################# # $mpx = 10; # 拡張可能なペットスロットの上限(拡張可能な荷物スロットの上限 - n) 追加(負傷率は戦闘と作成で分ける) # プレイヤーデータ設定 Player's Data ################# # $icp = 5; # 作成での基本負傷率(%) 追加 # 城 Castle ########################################### # $pxp = 600; # 飼養許可証価格(現在のペットスロット + 1) * n 追加 # スキル Skill ####################################### # $sCf = 10; # 迷彩の基本発動率(%)manualファイルの差し替え
manual/armor.html manual/beginner.html manual/job.html manual/menu.html manual/item01.html manual/item02.html manual/item03.html manual/skill.html manual/status.html manual/weapon.htmlmanualファイルの追加
manual/nutrition.htmlJavaScriptファイルの差し替え
javascript/GetView.jsJavaScriptファイルの追加
javascript/ReturnTop.jslibraryファイルの追加
library/capture.cgiデータファイルの差し替え
data/classchange.cgi 格闘家に「Tb(強靭な肉体)」を追加。 ガーディアンから「Cc(捕獲)」を外し「Ct(迷彩)」を代わりに追加。 data/itemdictionary.cgi data/job.cgi 農民のペット上限(px) 4 → 2 牛飼いのペット上限(px) 3 → 4 狩人に「Cc(捕獲)」を追加。 data/memo.cgi data/sort.cgi item/arms.cgi item/bread.cgi item/clothes.cgi item/corpse.cgi item/crops.cgi item/dairyproduct.cgi item/dish_other.cgi item/dish_sandwich.cgi item/dish_soup.cgi item/dish_sweets.cgi item/driedfood.cgi item/farm_livestock_all.cgi item/farm_sale_all.cgi item/farm_sale_all2.cgi item/find_item_all.cgi item/find_item_all2.cgi item/forest_berry_all.cgi item/forest_herb_all.cgi item/forest_hunting_all.cgi item/leathercraft.cgi item/liquor.cgi item/market_sale_bat.cgi item/market_sale_fir.cgi item/market_sale_lyn.cgi item/market_sale_mil.cgi item/market_sale_qui.cgi item/market_sale_thi.cgi item/market_sale_uls.cgi item/otheritem.cgi item/product.cgi item/river_fish_all.cgi item/roastedfood.cgi item/woodwork.cgiデータファイルを追加
place/ein.cgi place/pir.cgi item/creature.cgiアイテム画像を差し替え(itemimage/)
haft.cgi hammerhead.gif ironplate.gifアイテム画像を追加(itemimage/)
brownsauce.gif cage.gif cassis.gif cowskin.gif croissant.gif ironpipe.gif irontrap.gif kennel.gif redsauce.gif saladdressing.gif spiceblend.gif stew.gif woodentrap.gif
Copyright 2000-2007 Missing Link All Rights Reserved.