Script of Saga III b1.3 修正点

戻る

library/base.cgi: sub change_status
状態変化のメッセージが正しく表示されないエラーの修正。
修正前
    &M("<img src=$set::mim_dir/redcross.gif> <span class=sick>$Y</span>") if $Z;
修正後
    &M("<img src=$set::mim_dir/redcross.gif> <span class=sick>$Z</span>") if $Z;
library/consumption.cgi: sub consumption_check
使い切った空の容器で水を汲むときの不具合を修正。
追加
                $Si->{cl} = $FI{$Si->{id}}{cl};
                $Si->{id} = $FI{$Si->{id}}{id};
library/base.cgi: sub change_status
性別による装備条件のメッセージの不具合を修正。
修正前
    &M("$Si->{nm}は<img src=$set::mim_dir/$K.gif>専用です。") && return 0;
修正後
    &M("$Si->{nm}は<img src=$set::mim_dir/$V.gif>専用です。") && return 0;
library/equip.cgi: sub fitting_room
略字のミス。Dr → Ds
修正前
    elsif (($Si->{cl} eq 'Dr' || $Si->{cl} eq 'Ht') && !$I->{Sk}{Cz}) {
修正後
    elsif (($Si->{cl} eq 'Ds' || $Si->{cl} eq 'Ht') && !$I->{Sk}{Cz}) {
library/fishing.cgi: sub fishing
釣った魚が荷物に追加されない不具合の修正。
修正前
    $Ii = $I->{Bg}[$F{ft}];
修正後↓
    $Ui = $I->{Bg}[$F{ft}];

修正前
    &error('エラー:釣り道具を選択し直して下さい') if $Ii->{cl} ne 'Fr';
修正後↓
    &error('エラー:釣り道具を選択し直して下さい') if $Ui->{cl} ne 'Fr';

修正前
    $I->{bonus} = $I->{lv} * 20 * $I->{Sk}{Fi} + $Ii->{ef};
修正後
    $I->{bonus} = $I->{lv} * 20 * $I->{Sk}{Fi} + $Ui->{ef};

修正前
    &consumption_check($Ii);
修正後↓
    &consumption_check($Ui);

以上の修正情報はUchimata様よりご提供頂きました。






library/base.cgi: sub get_effect
装備中の武具にプラスを表示する。
追加
    $Si->{Ef}  = "<span class=effect>$Si->{Ef}</span>" if !$T;
    $Si->{Ef}  = "+$Si->{pl}" . $Si->{Ef} if $Si->{pl};
library/base.cgi: sub decorate_item
アイテム表示にプラスを追加。
追加
    $V = $Si->{Nm} ? $Si->{Nm} : $Si->{nm};
    $V .= "+$Si->{pl}" if $Si->{pl};
library/bath.cgi: sub bath_before
不潔な人は料金二倍。
追加
    $V = int($set::bmn * $I->{lv} * ($I->{Map} - $I->{ap}));
    $V *= 2 if $I->{Cd}{'Dt'};
library/bath.cgi: sub bath_after
不潔な人は料金二倍。
入浴しても不潔が消えないバグを修正。
追加
    $V = int($set::bmn * $I->{lv} * ($I->{Map} - $I->{ap}));
    $V *= 2 if $I->{Cd}{'Dt'};

修正前
    $I->{ap}  = $I->{Map};
修正後
    &change_status($I,'ap',$I->{Map});
library/buy.cgi: sub buy_before
治療が買えてしまうバグを修正。
修正前
        next unless $Ui->{sp} && $Ui->{ct} ne 'Cu';
修正後
        next unless $Ui->{sp} && $Ui->{cl} ne 'Cu';
library/castle.cgi: sub castle_before
荷物スロットの拡張に必要な財産権利書を買えるようにする。
修正前
my ($L,$V1,$V2,$V3);
修正後
my ($L,$V1,$V2,$V3,$V4);

修正前
    $V1 = ($I->{vx} + 1) * $set::ddp;
    $V2 = ($I->{pc} + 1) * $set::psp;
    $V3 = ($I->{bk} + 1) * $set::bkp;
修正後
    $V1 = ($I->{vx} + 1) * $set::ddp;
    $V2 = ($I->{bs} - $set::bbs + 1) * $set::bsp;
    $V3 = ($I->{pc} + 1) * $set::psp;
    $V4 = ($I->{bk} + 1) * $set::bkp;

修正前
    <input type=radio class=radio name=tp value=dd checked> 販売権利書を購入する・・・$V1 $set::mny<br>
    <input type=radio class=radio name=tp value=pc> パックスキルを習得する・・・$V2 $set::mny<br>
    <input type=radio class=radio name=tp value=bk> 銀行保管料を支払う・・・$V3 $set::mny<br>
修正後
    <input type=radio class=radio name=tp value=Dd1 checked> 販売権利書を購入する・・・$V1 $set::mny<br>
    <input type=radio class=radio name=tp value=Dd2> 財産権利書を購入する・・・$V2 $set::mny<br>
    <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>
library/castle.cgi: sub castle_after
荷物スロットの拡張に必要な財産権利書を買えるようにする。
販売権利書と財産権利書をそれぞれ複数所持できないようにする。
修正前
my ($L,$V,$M);
修正後
my ($L,$V,$M,$Ii);

修正前
    if ($F{tp} eq 'dd') {
        $V = ($I->{vx} + 1) * $set::ddp;

        require "$set::itm_dir/otheritem.cgi";

        &say("$set::lab{gl}が足りません",'castle_before') if $I->{gl} < $V;
        &say("これ以上は重くて持てません",'castle_before') if $I->{bg} + $OI{Dd}{qn} > $I->{Mbg};

        &get_item($I);
        push (@{$I->{Bg}},$OI{Dd});
        &sort_item($I);
        &set_item($I);
        &change_status($I,'bg',$OI{Dd}{qn});
        &M("販売権利書を購入しました。");
    }
修正後
    if ($F{tp} eq 'Dd1' || $F{tp} eq 'Dd2') {
        if ($F{tp} eq 'Dd1') {
            $V = ($I->{vx} + 1) * $set::ddp;
            $M = $I->{vx};
        }
        else {
            $V = ($I->{bs} - $set::bbs + 1) * $set::bsp;
            $M = $I->{bs};
        }

        require "$set::itm_dir/otheritem.cgi";

        &say("$set::lab{gl}が足りません",'castle_before') if $I->{gl} < $V;
        &say("荷物スロットに空きがありません",'castle_before') if $I->{bg} + $OI{$F{tp}}{qn} > $I->{Mbg};
        &say("$OI{$F{tp}}{nm}はこれ以上購入できません",'castle_before') if $M >= $set::mbs;

        &get_item($I);
        foreach $Ii (@{$I->{Bg}}) {
            &say("$OI{$F{tp}}{nm}を複数所持することはできません",'castle_before') if $Ii->{id} eq $OI{$F{tp}}{id};
        }
        push (@{$I->{Bg}},$OI{$F{tp}});
        &sort_item($I);
        &set_item($I);
        &change_status($I,'bg',$OI{$F{tp}}{qn});
        &M("$OI{$F{tp}}{nm}を購入しました。");
    }
library/compose.cgi: sub compose
「服を作る」と「革製品を作る」を分割。
追加
    if ($I->{Sk}{Tl}) { $t2 .= qq|<option value="clothes=Tl">服を作る</option>\n| }
    if ($I->{Sk}{Tl}) { $t2 .= qq|<option value="leathercraft=Tl">革製品を作る</option>\n| }
library/compose.cgi: sub reduce_item
代替品でも作成可能にするプログラムを追加。(例:羊毛の代わりに綿花を使い糸を作成する)
追加
    $Y = $Si->{$V};
    if ($Ui->{ss}{$Y}) { # 代替品
        $Y = $Ui->{ss}{$Y};
    }
library/compose.cgi: sub excellent_roll
作成成功率にSTRが影響するように修正。
修正前
    if (&roll_dice(100 + $S->{Hy}) <= $set::erb) {
修正後
    if (&roll_dice(100 + $S->{Hy}) <= $set::erb + $S->{st}) {
library/compose.cgi: sub deluxe_roll
作成成功率にSTRが影響するように修正。
修正前
    if (&roll_dice(100 + $S->{Hy}) <= $set::erb) {
修正後
    if (&roll_dice(100 + $S->{Hy}) <= $set::erb + $S->{st}) {
library/cure.cgi: sub cure_after
患者を治療した事がMy Recordに記録されなかったので追加。
追加
my  $Ui;
my  $M;

追加
            if ($I->{da} eq $Ui->{cp}) {
                $M .= "$Ui->{Im}$Ui->{sp} $set::mnyで$I->{nm}を生還させました。<br>\n";

追加
            elsif ($I->{ij} eq $Ui->{cp}) {
                $M .= "$Ui->{Im}$Ui->{sp} $set::mnyで$I->{nm}の$I->{Ij}を完治させました。<br>\n";

追加
            elsif ($I->{Cd}{$Ui->{cp}}) {
                $M .= "$Ui->{Im}$Ui->{sp} $set::mnyで$I->{nm}の$I->{Cd}{$Ui->{cp}}を治療しました。<br>\n";

追加
    &unlock($F{ud});

    if ($M) {
        $M = "$I->{nm}が診療に来ました。<br>\n" . $M;
        &set_record($M);
    }
library/fight.cgi: sub shield_check
グレードとプラスのボーナスを盾は何倍にするのかをset.cgiで設定可能にする。
修正前
    $S->{SH} = $S->{Lh}{cl} eq 'Sh' ? $S->{Lh}{ef} + &equip_bonus($S,'Lh',1.5) : undef;
修正後
    $S->{SH} = $S->{Lh}{cl} eq 'Sh' ? $S->{Lh}{ef} + &equip_bonus($S,'Lh',$set::shb) : undef;
library/fight.cgi: sub dead_or_alive
グレードとプラスのボーナスを兜は何倍にするのかをset.cgiで設定可能にする。
修正前
            &roll_dice(100) <= $D->{Hd}{ef} * $V + &equip_bonus($D,'Hd',1.5)) {
修正後
            &roll_dice(100) <= $D->{Hd}{ef} * $V + &equip_bonus($D,'Hd',$set::shb)) {
library/find.cgi: sub found
Mobを倒さないとアイテムを獲得できないように修正。
修正前
            $Ii = &select_acquisition($U);
修正後
            $Ii = &select_acquisition($U) if !$U->{lf};

修正前
        else {
            &error("$Ii->{nm} has no quantity!") if !$Ii->{qn};
修正後
        elsif ($Ii->{qn}) {
library/main.cgi: sub main
「武具を宝飾する」コマンドを追加。
データベース類のhtmlファイルをmanualフォルダ内に移動した為リンクを変更。
追加
    <option value="stance_before">スタンスの設定</option>
    <option value="ornament_before">武具を宝飾する</option>

修正前
    <td width=33%>
    <a class=back href=$set::htm_dir/manual/ target=_blank>データベース</a><br>
    <a class=back href=$set::htm_dir/item.html target=_blank>アイテム一覧表\</a><br>
    <a class=back href=$set::htm_dir/weapon.html target=_blank>武器一覧表\</a><br>
    <a class=back href=$set::htm_dir/armor.html target=_blank>防具一覧表\</a><br>
    <a class=back href=$set::htm_dir/animal.html target=_blank>動物一覧表\</a><br>
    </td>
    <td width=33%>
    <a class=back href=$set::htm_dir/job.html target=_blank>職業一覧表\</a><br>
    <a class=back href=$set::htm_dir/skill.html target=_blank>スキル一覧表\</a><br>
    <a class=back href=$set::htm_dir/kingdom.html target=_blank>国一覧表\</a><br>
    </td>
修正後
    <td width=33%>
    <a class=back href=$set::htm_dir/manual/ target=_blank>マニュアル</a><br>
    <a class=back href=$set::htm_dir/kingdom.html target=_blank>国一覧表\</a><br>
    </td>
    <td width=33%>
    </td>
library/playerlist.cgi: sub playerlist
トレードに出しているオーブを表示する。
販売しているアイテムを表示する。
修正前
my  $t1;
修正後
my ($t1,$t2,@T);

追加
        &condition_initial($U,'cd');
        @{$U->{Ob}} = map { &orb_image($_) }
                     grep { /[a-z]/ } split(//,$U->{ob});
        $U->{Ob} = join('',@{$U->{Ob}});
        &get_item($U);
        undef @T;
        foreach $Ui (@{$U->{Bg}}) {
            next unless $Ui->{sp} && !$Ui->{rs};
            $t2  = $Ui->{nm};
            $t2 .= "+$Ui->{pl}" if $Ui->{pl};
            $t2  = "<span class=i$Ui->{gd}>$t2</span>" if $Ui->{gd};
            $t2 .= "x$Ui->{qn}" if $Ui->{qn} > 1;
            push(@T,"$t2=$Ui->{sp} $set::mny");
        }
        $t2 = join(' ',@T);
        $U->{Ob} = join('',@{$U->{Ob}});

追加
        $t1 .= qq|</tr>\n|;
        $t1 .= qq|<tr><td colspan=10>$U->{Ob}</td><td colspan=6>$t2</td></tr>\n| if $U->{Ob} || $t2;

追加
    </tr>
    <tr><th colspan=10>オーブ</th><th colspan=6>販売</th></tr>
    $t1
library/playerlist.cgi: sub sales_information
分単位で販売情報を更新できるように変更。
販売するアイテムにプラスを追加。
修正前
    &transfer_HTML($set::sli_htm) if !&schedule_monitor(2);
修正後
    &transfer_HTML($set::sli_htm) if time - (stat("$set::sli_htm"))[9] < $set::ssi * 60;

追加
        $T->{nm} .= "+$T->{pl}" if $T->{pl};
        $T->{nm} .= " x $T->{qn}" if $T->{qn} > 1;

library/status.cgi: sub get_appearance
略字修正。Dr → Ds
グレードによるボーナスを追加。
修正前
    $S->{Ap} += $S->{Bd}{ef} if $S->{Bd}{cl} eq 'Dr';
修正後
    $S->{Ap} += $S->{Bd}{ef} if $S->{Bd}{cl} eq 'Ds';
    $S->{Ap} += $set::grd[$S->{Bd}{gd}] if $S->{Bd}{cl} eq 'Ds';
library/use.cgi: sub use
販売権利書と財産権利書に伴う修正。
薬師が自分で治療できるようにする。
修正前
my ($L,$V,$M);
修正後
my ($L,$V,$M,$Ii);

修正前
        elsif ($Ii->{cl} eq 'Dd') { &extend_trade($I,$Ii) }
修正後
        elsif ($Ii->{cl} eq 'Cu') { &medicine($I,$Ii) }
        elsif ($Ii->{id} eq 'Deed01') { &extend_trade($I,$Ii) }
        elsif ($Ii->{id} eq 'Deed02') { &extend_bag($I,$Ii) }
library/use.cgi: sub extend_trade
販売スロットが上限に達した場合の処理中断のメッセージ。
追加
    &M("これ以上販売スロットを増やすことはできません。") && return if $S->{vx} >= $set::mbs;

    foreach $Ui (@{$S->{Bg}}) {
library/use.cgi:
薬師が自分自身を治療するサブルーチン。
サブルーチンを新たに追加
# Sub Medicine #
sub medicine {
my  $S = shift;
my  $Si = shift;

    $Si->{Gd} = $Si->{gd} * $set::gde;
    &M("$Si->{nm}は$set::lab{lv} $Si->{Gd}までしか効果がありません。") && return if $Si->{Gd} < $S->{lv};
    &M("$Si->{nm}は現在の$set::lab{lv}ではまだ使えません。") && return if $Si->{Gd} - $set::gde >= $S->{lv};

    if ($S->{ij} eq $Si->{cp}) {
        &M("$S->{Ij}が完治しました。");
        &change_condition($S,'ij');
    }
    elsif ($S->{Cd}{$Si->{cp}}) {
        &M("$S->{Cd}{$Si->{cp}}が治りました。");
        &change_condition($S,'cd',$Si->{cp});
    }
    else {
        &M("$Si->{nm}は今は必要ありません。");
        return;
    }

    return if $Si->{Ql}{Nd};

    $Si->{qn}--;
    &change_status($S,'bg',-$Si->{wt});
}
library/use.cgi:
財産権利書を使用するサブルーチン。
サブルーチンを新たに追加
# Sub Extend Bag #
sub extend_bag {
my  $S = shift;
my  $Si = shift;
my ($F,$Ui);

    &M("これ以上荷物スロットを増やすことはできません。") && return if $S->{bs} >= $set::mbs;

    foreach $Ui (@{$S->{Bg}}) {
        next if !$Ui;
        next if $Ui->{cl} ne 'Bg';
        &change_status($S,'bg',-$Ui->{wt});
        $Ui->{qn}--;
        $F = 1;
        last;
    }

    &M("荷物スロットを増やすにはナップサックが必要です。") && return if !$F;

    &change_status($S,'bg',-$Si->{wt});
    $Si->{qn}--;
    $S->{bs}++;

    &M("荷物スロットを増やしました。");
}
set.cgi
修正
# プラスデータ Plus Data ############################## #
@pls = (0,2,4,6,8,10,12,14,16,18);

追加
# 戦闘 Fight ######################################### #
$shb = 2;                    # 盾と兜はグレードとプラスのボーナスをn倍する

# 時間 Time ########################################## #
$ssi = 15;                   # n分に一回販売情報を更新する

# プレイヤーデータ設定 Player's Data ################# #
$mbs = 20;                   # 拡張可能な荷物スロットの上限

# 城 Castle ########################################### #
$bsp = 4000;                 # 財産権利書価格(現在の荷物スロット - 初期荷物スロット + 1) * n
職種を修正
医者と錬金術師を統合し「薬師」に変更する。
錬金術師 → スキルに「Cu」を追加し名前を薬師に変更。性別は女性。
医者 → 削除。
フォルダの差し替え
manual以下全て
HTMLファイルを削除(manualフォルダ内に移動した為)
accessary.html
animal.html
armor.html
item.html
job.html
orb.html
ship.html
skill.html
weapon.html
CSSファイルの差し替え
list.css
ライブラリファイルを追加
library/ornament.cgi
データファイルの差し替え
data/job.cgi
data/memo.cgi
data/place.cgi
data/sort.cgi
item/arms.cgi
item/cloth.cgi
item/clothes.cgi
item/dish_other.cgi
item/dish_sandwich.cgi
item/dish_soup.cgi
item/dish_sweets.cgi
item/drug.cgi
item/farm_sale_all.cgi
item/forest_hunting_all.cgi
item/jewery.cgi
item/liquor.cgi
item/market_sale_fir.cgi
item/monster_ven.cgi
item/otheritem.cgi
item/preparation.cgi
item/woodwork.cgi
データファイルを追加
blackmarket/blackmarket_mil.cgi
blackmarket/blackmarket_bat.cgi
blackmarket/blackmarket_thi.cgi
place/mil.cgi
place/bat.cgi
place/thi.cgi
item/find_item_all2.cgi
item/farm_sale_all2.cgi
item/leathercraft.cgi
item/market_sale_lyn.cgi
item/market_sale_mil.cgi
item/market_sale_bat.cgi
item/market_sale_thi.cgi
メイン画像を差し替え(mainimage/)
place10.gif
place11.gif
place12.gif
place14.gif
place15.gif
アイテム画像を追加(itemimage/)
bear.gif
bearskin.gif
blackliquid.gif
blackresin.gif
blackonion.gif
boar.gif
boarskin.gif
darkleather.gif
deerskin.gif
foxskin.gif
frog.gif
knapsack.gif
magazine.gif
otogirisou.gif
rabbitskin.gif
raccoondog.gif
raccoondogskin.gif
redfizz.gif
snail.gif
tiger.gif
tigerskin.gif
wolfskin.gif
データを追加(data/itemdictionary.cgi)
    Bg => '荷物スロットを増やすことができます。',
    Sn => '音を立てずに行動できます。',



Copyright 2000-2007 Missing Link All Rights Reserved.