
設定で $kpm = 0; としてもKCatchが呼び出される(KCatchがないとエラーになる)不具合を修正します。
if ($set::kpm) { use KCatch qw( source ) }
↓
if ($set::kpm) { require KCatch; import KCatch qw( source ) }
sub new_before:
$F{im} ||= "1.$set::cit";
↓
$F{im} ||= "$F{sx}1.$set::cit";
function GetObject(id,target) {
if (document.getElementById) { target = target.document.getElementById(id) }
else if (navigator.appName.charAt(0) == "M") {
if (document.all) { target = target.document.all(id) }
}
else if (navigator.appName.charAt(0) == "N") {
if (document.layers) { target = target.document.layers[id] }
}
return target;
}
sex = opener.newform.sx.value; ↓ sex = window.opener.document.newform.sx.value; ImageDirectory → MainImageDirectory
自己紹介設定で、文字数制限がうまくいかない不具合を修正します。
sub words_after:
&say(qq|「$_」は全角${"set_wx$i"}文字まで|,'words_before') if length $F{"w$i"} > ${"set_wx$i"} * 2;
↓
&say(qq|「$_」は全角${"set::wx$i"}文字まで|,'words_before') if length $F{"w$i"} > ${"set::wx$i"} * 2;
自己紹介設定で、相手がアイテムを買うときのメッセージが詳細な自己紹介に書き換えられてしまう不具合を修正します。
sub words_before:
相手がアイテムを買う時 <tt>全角$set::wx3文字まで (改行可)</tt><br>
<textarea class=textarea name=w3 cols=40 rows=3>$I->{w2}</textarea><br>
↓
相手がアイテムを買う時 <tt>全角$set::wx3文字まで (改行可)</tt><br>
<textarea class=textarea name=w3 cols=40 rows=3>$I->{w3}</textarea><br>
人口統計のスケジュールでエラーが出たのでその修正をします(人がいれば問題ないと思う)
sub playerlist_statistics:
$L->{mp} = int($L->{m} / $L->{tp} * 100);
↓
$L->{mp} = $L->{tp} ? int($L->{m} / $L->{tp} * 100) : 0;
$L->{fp} = int($L->{f} / $L->{tp} * 100);
↓
$L->{fp} = $L->{tp} ? int($L->{f} / $L->{tp} * 100) : 0;
他の地へ移動したときに移動コマンドが変更されない(javascriptエラーになる)不具合を修正します。
探索でオーブを見つけてもユーザーデータに保存されない不具合を修正します。
sub found:
if ($Ii->{cl} eq 'Ob') {
$Ii->{Im} = &orb_image($Ii->{ef});
&M("$Ii->{Im}$Ii->{nm}を発見しました。");
$S->{ob} .= $Ii->{ef};
$S->{Ob} = split(//,$S->{ob});
}
↓
if ($Ii->{cl} eq 'Ob') {
$Ii->{Im} = &orb_image($Ii->{ef});
&M("$Ii->{Im}$Ii->{nm}を発見しました。");
$S->{ob} .= $Ii->{ef};
$S->{Ob} = [split(//,$S->{ob})];
}
オーブのトレードをしようとすると'Reload Lock Error'となる不具合を修正します。
sub trade_after:
&lock($U->{id});
↓
&lock($F{ud});
戦闘時、プレイヤーデータの保存が行われない不具合を修正します。
sub fight_player:
# &set_record($V,$I->{Id});
↓
&set_record($V,$I->{Id});
# &set_user($I);
# &set_user($U);
↓
&set_user($I);
&set_user($U);
コメントアウトを戻すだけ。
戦闘を仕掛けようとすると『現在、ファイル更新中です。』となる不具合を修正します。
sub fight_player:
# 相手のMy Recordに保存 #
$V = "<div class=alert>$Vが戦闘を仕掛けてきた。</div>";
map { $V .= $_ } @{$I->{M}};
$I->{Id} = $I->{WN} && $I->{Sk}{Uk} ? '????' : $I->{id};
&set_record($V,$I->{Id});
を
&unlock($F{ud});
の下へ移動。
戦闘直後でも再戦できてしまう(連戦可能)不具合を修正します。
sub fight_player:
# &partner('',"$Unmとは暫く戦えません・・・") if @Den;
↓
&partner('',"$U->{nm}とは暫く戦えません・・・") if @Den;
同じくコメントを戻す。
環境にガードがある地域でも戦闘できてしまう不具合を修正します。
sub fight_player:
# &partner('',"<img src=$set::mim_dir/envGd.gif><br><br>$I->{Pl}{nm}での戦闘は禁止されています") if $I->{Pl}{ev}{Gd};
↓
&partner('',"<img src=$set::mim_dir/envGd.gif><br><br>$I->{Pl}{nm}での戦闘は禁止されています") if $I->{Pl}{ev}{Gd};
同上。
対モンスター戦闘後アイテムを入手したと表示されるが荷物に追加されない(プレイヤーデータが保存されない)不具合を修正します。
sub encounter:
# &sort_item($I);
# &set_item($I);
# &set_user($I);
↓
&sort_item($I);
&set_item($I);
&set_user($I);
これまた。
対モンスター戦(狩り含む)後所持品がオプションに置き換えられてしまう(所持品が全て消えてしまう)不具合を修正します。
sub get_option:
my ($K,$V);
↓
my ($T,$K,$V);
&get_item($S,2);
$S->{Op} = shift @{$S->{Bg}};
return if !$S->{Op}{nm};
&set_item($S,2);
↓
$T->{id} = $S->{id};
&get_item($T,2);
$S->{Op} = shift @{$T->{Bg}};
return if !$S->{Op}{nm};
&set_item($T,2);
装備がはじかれたあと、ログインしなおすと装備が外れた状態(荷物は装備中のまま)になる不具合を修正します。
sub knock_weapon:
undef %{$D->{rh}};
$D->{rh} = '';
↓
undef %{$D->{Rh}};
戦闘中だけ外れるという解釈で修正。
装備がなくても装備がはじかれるメッセージが出る不具合を修正します。
sub knock_weapon:
if (&roll_dice(100) <= $dice) {
↓
if ($D->{WO} && $D->{WO} != 7 && &roll_dice(100) <= $dice) {
装備が壊れてもステータス画面ではまだ装備中になっている不具合を修正します。
sub baggage_check:
if ($I->{ST} == $i && !$Ii->{Ql}{Sc} && !$F) {
↓
if ($I->{ST} == $i && !$Ii->{Ql}{Sc} && !$F) {
&reload_data($Ii->{eq});
&reload_data('of') if $Ii->{eq} eq 'rh';
&reload_data('df') if $Ii->{cl} eq 'Ar';
if ($Ii->{Ql}{Rp}) {
↓
if ($Ii->{Ql}{Rp}) {
&reload_data($Ii->{eq});
&reload_data('of') if $Ii->{eq} eq 'rh';
&reload_data('df') if $Ii->{cl} eq 'Ar';
else {
↓
else {
&reload_data($Ii->{eq});
&reload_data('of') if $Ii->{eq} eq 'rh';
&reload_data('df') if $Ii->{cl} eq 'Ar';
sub use:
$I = &get_user('I');
&get_item($I);
↓
$I = &get_user('I');
&get_item($I);
&dead_check($I,'CLOSE');
蘇生用アイテムがあるとまずいかも。
城で、所持数に余裕があるのに販売権利書を買えない不具合を修正します。
sub castle_after:
&say("これ以上は重くて持てません",'castle_before') if $I->{bg} + $FI{Dd}{qn} < $I->{Mbg};
↓
&say("これ以上は重くて持てません",'castle_before') if $I->{bg} + $FI{Dd}{qn} > $I->{Mbg};
他プレイヤーから買い物をしても買ったアイテム・ペットが荷物に追加されない不具合を修正します。
sub buy_after:
push (@{$I->{Bg}},$Ui);
↓
my $Ii;
%$Ii = %$Ui;
push (@{$I->{Bg}},$Ii);
push (@{$I->{Pt}},$Up);
↓
my $Ip;
%$Ip = %$Up;
push (@{$I->{Pt}},$Ip);
function SetMap:
target.innerHTML += "<img src=" + MainImageDirectory + "1n.gif id=\"" + para[0] + "\" width=" + para[1] + " height=" + para[2] + " style=\"left:" + para[3] + ";top:" + para[4] + ";position:absolute;\" onMouseOver=\"Information(this.id)\" onMouseOut=\"Information(0)\">";
↓
target.innerHTML += "<img src=" + MainImageDirectory + "1n.gif id=\"" + para[0] + "\" width=" + para[1] + " height=" + para[2] + " style=\"left:" + para[3] + ";top:" + para[4] + ";position:absolute;\" onMouseOver=\"Information(this.id,event)\" onMouseOut=\"Information(0)\">";
function Information:
function Information(index) {
↓
function Information(index,e) {
else {
x = event.pageX;
y = event.pageY;
↓
else {
event = e || window.event;
x = event.pageX;
y = event.pageY;
if (document.layers) {
↓
else if (document.layers) {
Netscape未対応です(作ったIMGがどっか行ってしまう)
同一のIPがあっても新規登録できてしまう(多重登録できる)不具合を修正します。
sub regist_check:
# if ($U->{ip} eq $F{ip}) { &say('同一ホストIPを持つプレイヤーが既にいる為新規登録できません') }
↓
if ($U->{ip} eq $F{ip}) { &say('同一ホストIPを持つプレイヤーが既にいる為新規登録できません') }
これではちょっと足りないですけど・・・まあいっか。
ログイン中に戦闘を仕掛けられる、マイレコードを見ても新着メッセージのアラートが消えない等の不具合を修正します。
sub set_code: return; ↓ #return;
マップでリンにいるはずがウルシュの位置に表示される不具合を修正します。
'lyn' => { 'nm' => 'リン',
'im' => 'place04.gif',
'lc' => '468,322',
'kg' => 'ven',
'tf' => 'qui,uls',
'lt' => 'fir',
'lh' => 'ein',
'ev' => 'Hb,Pb,Gd',
'it' => 'find_item_all.cgi',
'se' => 'sea_fish_all.cgi',
'gl' => '6',
'pr' => '' },
↓
'lyn' => { 'nm' => 'リン',
'im' => 'place04.gif',
'lc' => '426,384',
'kg' => 'ven',
'tf' => 'qui,uls',
'lt' => 'fir',
'lh' => 'ein',
'ev' => 'Hb,Pb,Gd',
'it' => 'find_item_all.cgi',
'se' => 'sea_fish_all.cgi',
'gl' => '6',
'pr' => '' },
lcの値を変更。
LIFが回復しないのでゲームが進まなくなる不具合を修正します。
# 時間 Time ########################################## # $rcv = 90; # VITが0.1回復するのに必要な秒数 ↓ # 時間 Time ########################################## # $rcl = 60; # LIFが0.1回復するのに必要な秒数 $rcv = 90; # VITが0.1回復するのに必要な秒数設定はお好みで変えてください。
sub main:
# VITの回復
$I->{Vt} = int((time - $precode) / $set::rcv) / 10;
$I->{vt} += $I->{Vt};
$I->{vt} = $I->{Mvt} if $I->{vt} > $I->{Mvt};
$I->{Vt} = int($I->{vt});
$I->{li} = 'in';
の上に
# LIFの回復
if ($I->{da} ne 'Dd') {
$I->{Lf} = int((time - $precode) / $set::rcl) / 10;
$I->{lf} += $I->{Lf};
$I->{lf} = $I->{Mlf} if $I->{lf} > $I->{Mlf};
}
$I->{Lf} = int($I->{lf});
を追加
<td nowrap class=r><span id=lf>$I->{lf}</span></td>
↓
<td nowrap class=r><span id=lf>$I->{Lf}/$I->{Mlf}</span></td>
レベルアップボーナスを振ろうとすると'Crypt error'となる不具合を修正します。
sub levelup_before:
<input type=hidden name=id value="$F{id}">
<input type=hidden name=ps value="$F{ps}">
↓
<input type=hidden name=id value="$F{id}">
<input type=hidden name=ps value="$F{ps}">
<input type=hidden name=xx value="$I->{XX}">
$mvt = 0; # 採掘で消費するVIT ↓ $mvt = 5; # 採掘で消費するVIT設定はお好みで。
インフォメーション作成で文字実体参照が使えるようにします(問題が起こりそうなのでやらないほうがいいかも)
master.cgi sub edit_information:
$t1 =~ s/<br>/\n/g;
↓
$t1 =~ s/<br>/\n/g;
$t1 =~ s/&/&/g;
master.cgi sub make_information:
$F{in} =~ s/</</g;
$F{in} =~ s/>/>/g;
↓
$F{in} =~ s/</</g;
$F{in} =~ s/>/>/g;
$F{in} =~ s/&/&/g;
library/base.cgi sub decode:
$V =~ s/</</g;
$V =~ s/>/>/g;
↓
$V =~ s/&/&/g;
$V =~ s/</</g;
$V =~ s/>/>/g;
sub rights:
print qq|<br>Edit:$set::edt\n| if $set::edt;
↓
print qq|<br><a href="$set::rtn">Edit:$set::edt</a>\n| if $set::edt;
sub rights:
print qq|<a href="#" onClick="GetView('creators')">$creators_label</a>\n| if !$set::stv;
↓
print qq|<a href="#" onClick="GetView('creators');return false">$creators_label</a>\n| if !$set::stv;