修正前
sex = opener.newform.sx.value;
(修正後)
sex = window.opener.document.newform.sx.value;
修正前
<script language="JavaScript" src="javascript/GetObject.js"></script>
修正後
<script language="JavaScript" src="javascript/GetView.js"></script>
修正前
tag += "<th><img src=" + ImageDirectory + sex + ++count + ImageFileType + "><br>" + count + "</th>";
修正後
tag += "<th><img src=" + MainImageDirectory + sex + ++count + ImageFileType + "><br>" + count + "</th>";
library/word.cgi: 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>
library/fight.cgi: sub fight_player
修正前
&partner('',"$Unmとは暫く戦えません・・・") if @Den;
修正後
&partner('',"$U->{nm}とは暫く戦えません・・・") if @Den;
library/pack.cgi: sub pack
追加
$Ui->{sp} = '';
push(@{$I->{Bg}},$Ui);
library/base.cgi: sub set_code
削除 return;library/compose.cgi: sub compose_after
追加
else {
&M("$Ui->{dt}{nm}の作成に失敗しました。");
$Ui->{dt}{qn} = 0;
&change_status($I,'hy',-1,1);
$Ui->{ex} &&= int($Ui->{ex} / 2);
}
library/compose.cgi: sub compose_after
修正前
&excellent_roll($Ui->{dt}) if $Ui->{dt}{cl} =~ /(Sw|Kt|Sp|Ax|Cl|Hm|Ar|Bt|Rg|Ac|Sh|Wn|Bo|Cl|Ht|Ds|Bt|Tl)/;
&deluxe_roll($Ui->{dt}) if $Ui->{dt}{cl} eq 'Fd';
修正後
&excellent_roll($I,$Ui->{dt}) if $Ui->{dt}{cl} =~ /(Sw|Kt|Sp|Ax|Cl|Hm|Ar|Bt|Rg|Ac|Sh|Wn|Bo|Cl|Ht|Ds|Bt|Tl)/;
&deluxe_roll($I,$Ui->{dt}) if $Ui->{dt}{cl} eq 'Fd';
library/church.cgi: sub church_after
修正前
if ($F{tp} eq 'Dd') {
&say("$set::cnd{'Dd'}[1]していません",'church_before') if $I->{da} ne 'Dd';
$V = $set::acm * $I->{lv};
修正後
if ($F{tp} eq 'Dd') {
&say("$set::cnd{'Dd'}[1]していません",'church_before') if $I->{da} ne 'Dd';
$V = $set::rvm * $I->{lv};
差し替え
# Sub Change Status #
sub change_status {
my $S = shift;
my $T = shift; # ステータス略字
my $V = shift; # 増減させる値
my $F = shift; # true -> メッセージを表示する
my $X = shift; # Max値が他にある場合
my ($Y,$Z);
$S->{$T} += $V;
$Y = $T eq 'hl' ? 'Mn':
$T eq 'ap' ? 'Dt':
$T eq 'hy' ? 'En':
'';
if ($S->{$T} <= 0) {
$S->{$T} = 0;
if ($Y) {
&change_condition($S,'cd',$Y,1);
$Z = "$set::cnd{$Y}[1]になりました。";
}
}
elsif ($S->{"M$T"} && $S->{$T} >= $S->{"M$T"} && !$X) {
$S->{$T} = $S->{"M$T"};
if ($Y) {
&change_condition($S,'cd',$Y);
$Z = "$set::cnd{$Y}[1]が治りました。";
}
}
elsif ($X && $S->{$T} > $X) {
$S->{$T} = $X;
}
return if !$F;
if ($V > 0) {
&M("<span class=up>$set::lab{$T}が<span class=alert>$V</span>上昇</span>");
}
else {
$V = abs($V);
&M("<span class=down>$set::lab{$T}が<span class=alert>$V</span>減少</span>");
}
&M("<img src=$set::mim_dir/redcross.gif> <span class=sick>$Y</span>") if $Z;
}
library/base.cgi: sub condition_initial
追加
$V = $S->{Ij}{in} = $set::cnd{$S->{ij}}[0];
undef $S->{ij} if !$V;
追加
$V = $S->{Cd}{in} = join('・',@L);
undef $S->{cd} if !$V;
library/bath.cgi: sub bath_before
追加 my ($V); $I = &get_user('I'); 追加 &get_code; $V = int($set::bmn * $I->{lv} * ($I->{Map} - $I->{ap})); 修正前 入浴料は$set::bmn $set::mnyです。<br> 修正後 入浴料は$V $set::mnyです。<br>library/bath.cgi: sub bath_after
追加 my ($V); $I = &get_user('I'); $V = int($set::bmn * $I->{lv} * ($I->{Map} - $I->{ap})); 修正前 &say("$set::lab{gl}が足りません",'CLOSE') if $I->{gl} < $set::bmn; 修正後 &say("$set::lab{gl}が足りません",'CLOSE') if $I->{gl} < $V; 修正前 &change_status($I,'gl',-$set::bmn); 修正後 &change_status($I,'gl',-$V);library/blackmarket.cgi: sub blackmarket_before
修正前
$t1 .= qq|<input type=radio name=ui class=radio value="$Ui->{id}"> |;
修正後
$t1 .= qq|<input type=radio name=ui class=radio value="$Ui->{id}_$Ui->{gd}"> |;
library/blackmarket.cgi: sub blackmarket_after
修正前
if ($F{ui} eq $Ui->{id}) {
修正後
if ($F{ui} eq "$Ui->{id}_$Ui->{gd}") {
library/buy.cgi: sub buy_after
修正前
%$Ii = %$Ui;
修正後
$Ii = {%{$Ui}};
修正前
%$Ip = %$Up;
修正後
$Ip = {%{$Up}};
library/castle.cgi: sub castle_before
修正前
$t1 .= "\n";
修正後
$t1 .= "\n";
library/castle.cgi: sub castle_after
修正前
&say("これ以上は重くて持てません",'castle_before') if $I->{bg} + $FI{Dd}{qn} > $I->{Mbg};
修正後
&say("これ以上は重くて持てません",'castle_before') if $I->{bg} + $OI{Dd}{qn} > $I->{Mbg};
修正前
push (@{$I->{Bg}},$FI{Dd});
修正後
push (@{$I->{Bg}},$OI{Dd});
修正前
&change_status($I,'bg',$FI{Dd}{qn});
修正後
&change_status($I,'bg',$OI{Dd}{qn});
追加
# 指定したスキルを削除
$I->{sk} =~ s/(,*)$L->{dl}(,*)/$1/ if $L->{dl};
$I->{sk} = join(',',split(/,/,$I->{sk}),$L->{sk});
library/compose.cgi: sub compose
修正前
if ($I->{Sk}{Ck}) { $t2 .= qq|<option value="dish=Ck">調理する</option>\n| }
修正後
if ($I->{Sk}{Ck}) { $t2 .= qq|<option value="dish_soup=Ck">調理する(スープ)</option>\n| }
if ($I->{Sk}{Ck}) { $t2 .= qq|<option value="dish_sandwich=Ck">調理する(サンドイッチ)</option>\n| }
if ($I->{Sk}{Ck}) { $t2 .= qq|<option value="dish_sweets=Ck">調理する(菓子)</option>\n| }
if ($I->{Sk}{Ck}) { $t2 .= qq|<option value="dish_other=Ck">調理する(その他)</option>\n| }
library/compose.cgi: sub compose_after
追加
&get_item($I);
&say("荷物スロットに空きを用意して下さい。",'compose') if @{$I->{Bg}} >= $I->{bs};
追加
foreach (split(/,/,$Ui->{gv})) {
($K,$V) = split(/=/);
&say("$set::lab{$K}が $V 必要です",'compose') if $I->{$K} < $V;
&change_status($I,$K,-$V);
&reload_gage($K,'V') if ${"M$K"};
}
&say("$set::lab{lf}が足りません",'compose') if !$I->{lf};
修正前
if (&roll_dice(100) < $Ui->{rl} + $I->{lv} * 3 - $I->{Gd} * 10) {
修正後
$V = $I->{ij} ? 120 : 100;
$I->{Gd} ||= 1;
if (&roll_dice($V) < $Ui->{rl} + $I->{dx} * 3 - ($I->{Gd} - 1) * 10) {
修正前
&excellent_roll($I,$Ui->{dt}) if $Ui->{dt}{cl} =~ /(Sw|Kt|Sp|Ax|Cl|Hm|Ar|Bt|Rg|Ac|Sh|Wn|Bo|Cl|Ht|Ds|Bt|Tl)/;
修正後
&excellent_roll($I,$Ui->{dt}) if $Ui->{db};
追加
&change_status($I,'hy',-1,1);
&health_bonus($I);
&unexpected_accident($I);
if ($I->{in} * 3 >= &roll_dice(100) + 80 - $Ui->{rl}) {
&M("作成に使用した材料は無事でした。");
$Ui->{ex} = 0;
$I->{DS} = 1;
}
修正前
&experience($I,$Ui->{ex});
修正後
&experience($I,$Ui->{ex} * $I->{Gd});
削除
&say("$Ui->{dt}{nm}の重量が所持上限をオーバーしています。",'compose') if @{$I->{Bg}} > $I->{bs};
修正前
&set_item($I);
修正後
&set_item($I) if !$I->{DS};
修正前
$Ui->{dt}{gr} = $I->{Gd};
修正後
$Ui->{dt}{gd} = $I->{Gd};
library/compose.cgi: sub reduce_item
修正前
&grade_check($S,$Si) if $Si->{gd};
修正後
&grade_check($S,$Si) if $Si->{gd} && $Ui->{ki} && $Ui->{ki} eq $Y;
library/compose.cgi:
サブルーチンを新たに追加
# Sub Unexpected Accident #
sub unexpected_accident {
my $S = shift;
my ($V);
return if $S->{ij};
$V = $S->{cn};
$V *= $set::sUb if $S->{Sk}{Ub};
if (&roll_dice(100 - $S->{Hl} + $V) <= $set::ibp) {
$V = &roll_dice(4) - 1;
$V = ('Fr','La','Bn','Pw')[$V];
&change_condition($S,'ij',$V,1);
&M("<span class=alert>$set::cnd{$V}[1]</span>を負いました。");
&change_status($S,'hy',-3,1);
}
}
library/fight.cgi: sub fight_player
移動
require "$set::lib_dir/partner.cgi";
を
&partner('',"対人とは戦闘できません") if $I->{Sk}{So};
の上に移動
library/fight.cgi: sub fight_creature
修正前
&M("$U->{nm}は逃走した!</span><br>") && last if $i++ >= $V && !$I->{Ij};
修正後
&M("$U->{nm}は逃走した!</span><br>") && last if $i++ >= $V;
library/fight.cgi: sub concrete_battle
追加
$ADM += $set::sDg if $A->{Sk}{Dg} && $D->{Sk}{Cp}; # 返り討ち
$ADM += $set::sWc if !$D->{Sk}{Ma} && !$D->{Rh}; # 詠春拳
修正前
&injury_check($A,$D,$ADM);
修正後
&injury_check($A,$D,$ADM) if !$D->{ij};
library/fight.cgi: sub get_option
追加
&change_status($S,$K,$V,1);
# 酔拳
if ($S->{Sk}{Zq} && $S->{Op}{Ql}{Al} && $K eq 'hy') {
$S->{Op}{At} = $V;
}
library/fight.cgi: sub destruction_check
修正前
my $Ii;
修正後
my $E;
追加
return if $S->{$e} eq '';
return if $e eq 'rh' && $S->{Rh}{nm} eq '';
return if $S->{Op}{Ub};
library/fight.cgi: sub knock_weapon
修正前
return if $D->{rh} eq '';
修正後
return if $D->{Rh}{nm} eq '';
library/find.cgi: sub find
修正前
$I->{bonus} = 2 if $I->{Sk}{Th};
修正後
$I->{bonus} = $set::sSi if $I->{Sk}{Si};
library/find.cgi: sub found
修正前
my ($i,$V,$D,@FI);
修正後
my ($i,$V,@V,$D,@FI);
追加
require "$set::itm_dir/$S->{Pl}{$V0}";
require "$set::itm_dir/otheritem.cgi" if $S->{Sk}{Gt};
修正前
undef $Ii;
foreach (@FI) {
if ($D <= $_) {
$Ii = $FI{$_};
last;
}
}
修正後
undef $Ii;
if ($S->{Sk}{Gt} && $D <= $set::sGt) {
$Ii = {%{$OI{Tm}}};
$V = @V = keys %PL;
$V = &roll_dice($V) - 1;
$Ii->{ef} = $V[$V];
$Ii->{nm} = $PL{$V[$V]}{nm} . 'の' . $Ii->{nm};
}
else {
foreach (@FI) {
if ($D <= $_) {
$Ii = $FI{$_};
last;
}
}
}
修正前
next if &roll_dice(1000) > $U->{gi} + $I->{bonus};
修正後
next if &roll_dice(1000) > $U->{gi} + $S->{bonus};
library/main.cgi: main
追加
# HEAの消費
&change_status($I,'hl',-$set::lgh);
# VITの回復
修正前
&condition_initial($I,'cd');
修正後
&condition_initial($I,'cd') if !$I->{Cd}{in};
library/pack.cgi: sub pack
修正前
my $id;
修正後
my ($id,$gd);
修正前
&say("パックできるのは食料か素材のみです",'bag') if $Ii->{cl} ne 'Fd' && $Ii->{cl} ne 'Mt';
修正後
&say("パックできるのは食料か素材のみです",'bag') if $Ii->{cl} !~ /(Fd|Mt|Ig|Pi|Wd|Lt|Ct|Jw)/;
追加
&say("同じものしかパックできません",'bag') if $id ne $Ii->{id};
&say("同じグレードの物しかパックできません",'bag') if $gd != $Ii->{gd};
追加
$id = $Ii->{id};
$gd = $Ii->{gd};
library/playerlist.cgi: sub sales_information
修正前
$t1 .= "<tr><td nowrap>$T->{nm}</td><td nowrap align=right>$T->{sp} $set::mny</td><td nowrap>$T->{Id}</td><td nowrap>$T->{Nm}</td><td width=100%>$T->{Pl}</td></tr>\n";
修正後
$T->{nm} .= " x $T->{qn}" if $T->{qn} > 1;
$t1 .= "<tr><td nowrap>$T->{nm}</td><td>$T->{gd}</td><td nowrap align=right>$T->{sp} $set::mny</td><td nowrap>$T->{Id}</td><td nowrap>$T->{Nm}</td><td width=100%>$T->{Pl}</td></tr>\n";
修正前
<tr><th nowrap>商品名</th><th nowrap>金額</th><th nowrap>ID</th><th nowrap>販売者</th><th width=100%>所在地</th></tr>
修正後
<tr><th nowrap>商品名</th><th>G</th><th nowrap>金額</th><th nowrap>ID</th><th nowrap>販売者</th><th width=100%>所在地</th></tr>
library/poem.cgi: sub poem_before
追加
<input type=hidden name=md value="poem_after">
<input type=hidden name=xx value="$I->{XX}">
library/sell.cgi: sub sell_after
追加
my $i;
my $id;
修正前
%UI = map { $_->{id} => $_ } @{$U->{Bg}};
修正後
%UI = map { $_->{id}."_".$_->{gd} => $_ } @{$U->{Bg}};
修正前
if ($Ii->{cl} !~ /(Fd|Mt|Ig|Pi|Ct|Jw)/) {}
elsif ($UI{$Ii->{id}}) {
&change_status($UI{$Ii->{id}},'qn',$Ii->{qn},0,$set::mix);
}
else {
$Ii->{Ql}{Dx} = $Ii->{sp} = $Ii->{rs} = '';
$UI{$Ii->{id}} = {%$Ii};
}
修正後
$id = "$Ii->{id}_$Ii->{gd}";
if ($Ii->{cl} !~ /(Fd|Mt|Ig|Pi|Wd|Lt|Ct|Jw)/) {}
elsif ($UI{$id}) {
&change_status($UI{$id},'qn',$Ii->{qn},0,$set::mix);
}
else {
$Ii->{Ql}{Dx} = $Ii->{sp} = $Ii->{rs} = '';
$UI{$id} = {%$Ii};
}
library/shopping.cgi: sub shopping_after
修正前
&say("荷物スロットが一杯です",'shopping_before') if @{$I->{Bg}} >= $I->{bs};
修正後
&say("荷物スロットが一杯です",'shopping_before') if @{$I->{Bg}} > $I->{bs};
library/status.cgi: sub get_appearance
修正前
&get_equipment('bd');
修正後
&get_equipment($S,'bd');
library/transfer.cgi: sub transfer_before
追加
旅費が$set::tmn $set::mnyかかります。
</tt></div>
<input type=checkbox name=bw> 裏街道を行く<br>
<div class=r>
<tt>旅費は無料ですが、$set::lab{vt}と$set::lab{ap}が倍減ります。</tt>
<br>
library/transfer.cgi: sub transfer_after
追加
&transfer_vitality;
$set::tmn = 0 if $F{bw};
$set::tap *= 2 if $F{bw};
library/transfer.cgi: sub transfer_vitality
追加
$set::tvt -= $set::tvr{$I->{Co}{cl}};
$set::tvt *= 2 if $F{bw};
library/use.cgi: sub use
追加
elsif ($Ii->{cl} eq 'Mm') { &read($I,$Ii) }
elsif ($Ii->{cl} eq 'Tm') { &unearth_treasure($I,$Ii) }
library/use.cgi: sub type_expendable
修正前
if ($Si->{ql} =~ /R\d/ && !&fresh_check($Ii)) {
修正後
if ($Si->{ql} =~ /R\d/ && !&fresh_check($Si)) {
library/use.cgi: sub learn_magic
修正前
&type_expendable($Si,'読破');
修正後
&type_expendable($Si,'読破し');
library/use.cgi: sub deliver_ship
追加
&M("$SK{Sm}のスキルが必要です。") && return if !$S->{Sk}{Sm};
&M("既に船を所有しています。") && return if -e "$set::sip_dir/$S->{id}.cgi";
require "$set::lib_dir/sailing.cgi";
require "$set::itm_dir/ship.cgi";
library/use.cgi:
サブルーチンを新たに追加
# Sub Unearth Treasure #
sub unearth_treasure {
my $S = shift;
my $Si = shift;
my ($D,$Ii,@FI);
&M("$SK{Th}のスキルが必要です。") && return if !$S->{Sk}{Th};
&M("$Si->{nm}が指示す場所にいません。") && return if $S->{pl} ne $Si->{ef};
# 探索の特殊能力
$S->{bonus} = $set::sSi if $S->{Sk}{Si};
$Si->{qn} = 0;
&change_status($S,'bg',-$Si->{wt});
require "$set::itm_dir/treasure.cgi";
@FI = sort { $a <=> $b } keys %FI;
$D = &roll_dice(1000) - $S->{bonus};
foreach (@FI) {
if ($D <= $_) {
$Ii = $FI{$_};
last;
}
}
&M("何も見つかりませんでした。") && next if !$Ii;
if ($Ii->{cl} eq 'Ob') {
$Ii->{Im} = &orb_image($Ii->{ef});
$S->{ob} .= $Ii->{ef};
}
else {
&error("$Ii->{nm} has no quantity!") if !$Ii->{qn};
$Ii->{Im} = &item_image($Ii);
push (@{$S->{Bg}},$Ii);
&change_status($S,'bg',$Ii->{wt} * $Ii->{qn});
}
&M("$Ii->{Im}$Ii->{nm}を発見しました。");
&sort_item($I);
}
library/yield.cgi: sub yield
修正前
push (@{$I->{Bg}},$Ii);
修正後
push (@{$I->{Bg}},{%$Ii});
data/job.cgi
追加
こそ泥、間者、用心棒のスキルに'Cs'(カオス)を追加
set.cgi
追加 # プレイヤーデータ設定 Player's Data ################# # $lgh = 5; # Loginに消費するHEAの量 # スキル Skill ####################################### # $sWc = 2; # 詠春拳ボーナス(追加ダメージ値) $sGt = 5; # 旅の噂成功確率(n/1000) $sSi = 2; # 探索ボーナス 修正 # 公衆浴場 Public Bath ############################### # $bmn = 1; # 公共浴場入浴料(減ったAPP * Level * n)
sos3.cgihtmlファイルの差し替え
accessary.html animal.html guild.html item.html job.html orb.html ship.html skill.html sub.csshtmlファイルを追加
armor.html weapon.htmlデータファイルの差し替え
data/classchange.cgi data/sort.cgi item/animaldrug.cgi item/bread.cgi item/cloth.cgi item/clothes.cgi item/corpse.cgi item/crops.cgi item/dairyproduct.cgi item/driedfood.cgi item/drug.cgi item/farm_livestock_all.cgi item/farm_sale_all.cgi item/find_item_all.cgi item/forest_berry_all.cgi item/forest_wood_all.cgi item/forest_herb_all.cgi item/forest_wood_all.cgi item/jewery.cgi item/market_sale_fir.cgi item/market_sale_qui.cgi item/market_sale_uls.cgi item/monster_cov.cgi item/monster_gho.cgi item/monster_ven.cgi item/otheritem.cgi item/preparation.cgi item/product.cgi item/river_fish_all.cgi item/roastedfood.cgi item/woodwork.cgiデータファイルを追加
item/arms.cgi item/dish_other.cgi item/dish_sandwich.cgi item/dish_soup.cgi item/dish_sweets.cgi item/liquor.cgi item/treasure.cgiデータファイルを削除
item/dish.cgi item/find_item_ven.cgi item/market_sale_all.cgiメイン画像ファイルを追加(mainimage/)
redcross.gif未透過メイン画像ファイルの差し替え(mainimage/)
guild39.gif guild40.gifアイテム画像ファイルを追加(itemimage/)
beehive.gif chain.gif coal.gif cotton.gif cottonseed.gif dragon.gif haft.gif hammerhead.gif ironplate.gif longblade.gif leatherstrap.gif mediumblade.gif mucus.gif piecrust.gif sandpaper.gif shortblade.gif squaredlumber.gif spinningwheel.gif stonemill.gif sugarcane.gif thinboard.gif thread.gif treasuremap.gif woodenstick.gif wood1.gif wood2.gif wood3.gif wood4.gif wood5.gif wood6.gif wood7.gif wood8.gif未透過アイテム画像ファイルの差し替え(itemimage/)
blackflower.gif blueflower.gif brownflower.gif purpleflower.gif redflower.gif skyblueflower.gif whiteflower.gif yellowflower.gif
'Sm' => '操舵術',
'Th' => '宝探し',
data/itemdictionary.cgi
Al => '酒類です。',
Mi => '穀物などを粉にする道具です。',
Nd => '消費しても無くならないアイテムです。',
Lt => '革(皮)です。',
Sm => '糸を紡ぐ道具です。',
Tm => '宝の地図です。',
Wd => '木材です。',
Copyright 2000-2007 Missing Link All Rights Reserved.