Script of Saga III b2.2 修正点

戻る

主な修正内容



戻る

複数のファイル
市場で、職人街で買い物をした時にエラーになると市場へ戻る不具合を修正。
複数のファイル
不正なデータを送られるとCGIプログラムエラーになる不具合を修正。
複数のファイル
OpenWindowでリクエストが二重に送られる不具合を修正。
複数のファイル
灯りを補助として装備出来るように。
複数のファイル
ペットのおなかの状態がMAXのときに「満腹」の表示になるように。
複数のファイル
両手装備のアイテムを補助に装備しているときでも左手にアイテムを装備出来るように。
library/base.cgi
グレードを文字で表示。
library/castle.cgi
権利書販売表示の順序を変更。
library/church.cgi
教会で、怪我の治療をして貰うとHAPの表示がおかしくなる不具合を修正。
library/compose.cgi
作成で、失敗して材料が戻ってくると、装備中の道具を使い切っていた時にその道具が外れる不具合を修正。
library/face.cgi
イメージ画像の変更で、変更前の画像が表示されない不具合を修正。
library/feed.cgi
ペットにえさを与えるとき、個数指定できるように。
library/fight.cgi
履歴の数の設定を変更前より少なくした場合に設定より多くの戦闘履歴が残る不具合を修正。
library/jobchange.cgi
転職で、費用が足りなくても転職できる、また費用がイメージ画像の変更費になっている不具合を修正。
library/orb.cgi
オーブ設定の「一個ずつ残してそれ以外はトレード」で個数指定できるように。
library/trade.cgi
複数オーブトレードを実装。
data/place.cgi
移動コマンドのプルダウンの順序を変更。

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





library/attune.cgi: sub attune_before
クラスの参照はitem_class_checkで行う。
修正前
        if ($Ii->{cl} !~ /(Sw|Ax|Sp|Kt|Bo|Cl|Wn|Hm|Ar|Bt|Sh|Ht|Ds|Ac|Rg)/) {
修正後
        if (&item_class_check($Ii) !~ /(W|P|D|J)/) {
library/base.cgi: sub header
&get_dateを修正。
&track_playerを追加。
追加
    &track_player($I->{M}) if !$V{Say};

    $t1  = qq|Content-type: text/html\n\n| if !$V{GetTag};

修正前
        $t1 .= &get_date;
修正後
        $t1 .= &get_date(0);
library/base.cgi: sub get_user
タイムリミット用の改造。
追加
    map { $S->{Cd}{$_} = $set::cnd{$_}[1] } split(/,/,$S->{cd});
    map { $S->{Tl}{$_->[0]} = $_->[1] }
    map { [split /:/] } split(/,/,$S->{tl});
library/base.cgi: sub set_user
タイムリミット用の改造。
追加
    while (($K,$V) = each %{$S->{Tl}}) {
        push(@L,"$K:$V") if $V;
    }
    $S->{tl} = join(',',@L);

    undef @L;

    while (($K,$V) = each %{$S->{Cd}}) {
library/base.cgi: sub change_status
「栄養失調」「不潔」「無気力」は薬でしか治らないようにする。
コメントアウト
#        if ($Y && $S->{Cd}{$Y}) {
#            &change_condition($S,'cd',$Y);
#            $Z = "$set::cnd{$Y}[1]が治りました。";
#        }
library/base.cgi: sub change_condition
状態異常の削除に合わせてタイムリミットも削除。
追加
            undef $S->{Cd}{$V} if $V;
            undef $S->{Tl}{$V} if $V;
library/base.cgi: sub get_equipment
ランクを追加。
修正前
    $S->{$E}{cr} = $L[8]; # Creator
修正後
    $S->{$E}{rk} = $L[8]; # Rank
    $S->{$E}{cr} = $L[9]; # Creator
library/base.cgi: sub set_equipment
ランクを追加。
修正前
    $S->{$e} = join('/',@{$Si}{nm,cl,ql,ef,db,im,gd,pl,cr});
修正後
    $S->{$e} = join('/',@{$Si}{nm,cl,ql,ef,db,im,gd,pl,rk,cr});
library/base.cgi: sub broken_item
戦闘時に破損した場合にメッセージが出てしまう不具合の修正。
修正前
        &M("$Si->{nm}が破損しました。")   if $F == 1 ||  $Si->{Ql}{Rp};
        &M("$Si->{nm}を使い切りました。") if $F == 2 && !$Si->{Ql}{Rp};
修正後
    if ($F) {
        &M("$Si->{nm}が破損しました。")   if $F == 1 ||  $Si->{Ql}{Rp};
        &M("$Si->{nm}を使い切りました。") if $F == 2 && !$Si->{Ql}{Rp};
    }
library/base.cgi: sub get_effect
指輪と首飾りを追加。
追加
                 $Si->{cl} eq 'Dr' ? " $set::lab{ap} +$Si->{ef}":
                 $Si->{cl} eq 'Rg' ? " $Si->{ef}%":
                 $Si->{cl} eq 'Ac' ? " $Si->{ef}%":
library/base.cgi: sub decoration_item
対人購入で個数を指定出来ない設定の時に値段設定されたアイテムの重量が二乗される不具合を修正。
煩雑になってきたので整理。
修正前
my  $T = shift; # Buy, Blackmarket = 1, Market = 2
修正後
my  $T = shift; # ばら売り = 1, まとめ売り = 2

修正前
    $X = $I->{Ap} ? $I->{Ap} : 1;
    $W = $Si->{Qn} ne '' ? $Si->{Qn} : $Si->{qn};
    $Y = $Si->{Sp} ? $Si->{Sp} : $Si->{sp};
修正後
    $W = $Si->{Qn} ne '' ? $Si->{Qn} : $Si->{qn};
    $X = $I->{Ap} || 1;
    $Y = $Si->{Sp} || $Si->{sp};

削除
    $Z = $Si->{wt} if $T == 1;
    $Z ||= $Si->{wt} * $W;
    $Z ||= $Si->{sl};
    $Z = 0 if $Si->{cl} eq 'Cu';

追加と削除
    if ($F && $Y) {
        $T = 2 if !$set::mif{Xx};
        $F = $set::uop <=> $set::mif{Xx};
        $Y = int($Y / $W) if $F == -1;
        $Y *= $W if $F == 1;
        $Z *= $W if $T == 2;
    }

    $Z = $Si->{wt};
    $Z *= $W if $T != 1;
    $Z = $Si->{sl} || $Z || 0;

修正前
    $V = $Si->{Nm} ? $Si->{Nm} : $Si->{nm};
修正後
    $V = $Si->{Nm} || $Si->{nm};
library/base.cgi: sub item_class_check
「罠」と「補強材」もパック可能に。
「宝石」はまだ使い道が無いのでパック対象から外す。
ついでに他のも追加。
修正前
    return 'M' if $Si->{cl} =~ /(Fd|Mt|Ig|Pi|Wd|Lt|Ct|Jw|Op|Gm)/;
修正後
    return 'M' if $Si->{cl} =~ /(Fd|Mt|Ig|Pi|Wd|Lt|Ct|Gm|Op|Tp|Bc)/;
    return 'W' if $Si->{cl} =~ /(Sw|Ax|Sp|Kt|Bo|Cl|Wn|Xx)/;
    return 'P' if $Si->{cl} =~ /(Hm|Ar|Bt)/;
    return 'C' if $Si->{cl} =~ /(Ht|Ds)/;
    return 'J' if $Si->{cl} =~ /(Ac|Rg)/;
library/base.cgi: sub password_check
アカウント停止中のプレイヤーはログイン時にその旨を通知する。
追加
    &error("ID:$S->{id}はアカウント停止中です") if $S->{ps} =~ /^$set::esc/;
    &get_crypt($F{ps},$S->{ps},$set::crp) || &error('パスワードが不正です');
library/base.cgi: sub login_check
アカウント停止中のプレイヤーに接触しようとした時にその旨を通知する。
追加
    unless (index($S->{id},'_')) { return 0 }
    if ($S->{ps} =~ /^$set::esc/ && !$T) { &error("$S->{nm}はアカウント停止中です") }
library/base.cgi: sub schedule_monitor
時間単位でもモニタリングできるようにする。
追加
my  $X = shift; # Monitor by Hour (1,2,3,4,6,8,12)

修正前
    if ($dy != $L[$V] && $hr >= $set::scm) {
修正後
    if ($X) {
        return 0 if $hr % $X;
        return 0 if $hr == $L[$V];
        $L[$V] = $hr;
        &write_dat("$set::dat_dir/schedule.cgi",join(',',@L));
        return 1;
    }
    elsif ($dy != $L[$V] && $hr >= $set::scm) {
library/base.cgi: sub say
&track_playerを追加。
修正前
    &header(CSS=>'sub',JavaScript=>$J);
修正後
    &track_player($M);
    &header(CSS=>'sub',JavaScript=>$J,Say=>1);
library/base.cgi: sub item_image
作成者をタグに埋め込む。
修正前
my  $V = shift;

    return "<img src=$set::iim_dir/$V->{im}> " if $V->{im};
修正後
my  $Si = shift;
my  $t1;

    $t1 = qq| title="$Si->{cr}作"| if $Si->{cr};
    $t1 = "<img src=$set::iim_dir/$Si->{im}$t1> ";
    return $t1 if $Si->{im};
    return undef;
library/base.cgi:
タイムリミット用のサブルーチンを追加。
サブルーチンを追加
# Set Time Limit Check #
sub time_limit_check {
my  $S = shift;
my ($K,$V,$F);

    while (($K,$V) = each %{$S->{Tl}}) {
        next if $V > time;
        $S->{Cd}{$K} = 0;
        $S->{Tl}{$K} = 0;
        $F = 1;
    }

    &condition_initial($S,'cd',1) if $F;
}
library/base.cgi:
プレイヤーの行動を追跡するサブルーチンを追加。
サブルーチンを追加
# Sub Track Player #
sub track_player {
my  $M = shift;
my ($L,@L,$V);

    return if !$set::tpl || $I->{id} ne $set::tpl;

    $V = $ENV{'HTTP_REFERER'};

    @L = &open_dat("$set::dat_dir/track_report.cgi");

    if (ref($M)) { $M = join('',@$M) }

    $M =~ s/\n//g;

    shift(@L) if @L >= $set::slg;
    $L = join('<>',$M,$F{md},$I->{lv},$I->{lf},$I->{vt},$I->{hl},$I->{ap},$I->{hy},$I->{gl},$I->{ex},$V,time,"\n");
    push(@L,$L);

    &write_dat("$set::dat_dir/track_report.cgi",@L);
}
library/berry.cgi: sub berry
find.cgiの修正に合わせた修正。
修正前
    require "$set::lib_dir/find.cgi";
    require "$set::dat_dir/forest_berry_catalog.cgi";

    &get_place($I);

    &say("環境保護区域です",'forest') unless $CA{$I->{pl}};
修正後
    require "$set::lib_dir/find.cgi";

    &get_place($I);

修正前
    &found($I,'forest_berry',$set::pvt,'採取','つ手に入れました');
修正後
    &found($I,'berry');
library/bounty.cgi: sub bounty_before
執行猶予解除額の半額までしか懸けられないように変更。
追加
my  $V;

追加
    $V = int($set::sps / 2);

    &get_code;

追加
    <div class=r><tt>限度額:$V $set::mny</tt></div><br>
    <div class=r>$set::but{OK} $set::but{CLOSE}</div>
library/bounty.cgi: sub bounty_after
数値以外も入力できる不具合を修正。
追加
    &say("数字以外は入力出来ません",'bounty_before') if $F{gl} =~ /\D/;
    &say('自分には懸けられません','bounty_before') if $F{ud} eq $F{id};
library/bounty.cgi: sub bounty_after
執行猶予解除額の半額までしか懸けられないように変更。
修正前
    $I = &get_user('I');

    &say('自分には懸けられません','bounty_before') if $F{ud} eq $F{id};
    &say("$set::lab{gl}が足りません",'bounty_before') if $F{gl} > $I->{gl};

    $U = &get_user('U');
    &login_check($U);
修正後
my  $V;

    $I = &get_user('I');
    $U = &get_user('U');
    &login_check($U);

    $V = int($set::sps / 2) - $U->{rw};

    &say('自分には懸けられません','bounty_before') if $F{ud} eq $F{id};
    &say("$set::lab{gl}が足りません",'bounty_before') if $F{gl} > $I->{gl};
    &say("$U->{nm}にはこれ以上$set::lab{rw}を懸ける事ができません",'bounty_before') if $V <= 0;

    $F{gl} = $V if $F{gl} > $V;
library/buy.cgi: sub buy_before
商人同士は売買できないようにする。
追加
    &place_check($U);

    &say("商人同士の売買はできません") if $I->{Sk}{Sh} && $U->{Sk}{Sh};
library/capture.cgi: sub capture_after
VITが減っていなかった不具合を修正。
追加
    &change_status($I,'vt',-$set::wvt);

    $Ii->{qn} -= 1;

    &set_item($I);

    &set_user($I);

    &reload_gage('vt','V');

    &inner_HTML;
library/companion.cgi: sub set_companion
乗馬中の馬から降りれないバグの修正。
修正前
    $I->{co} = join('/',$Sp->{Nm},$Sp->{cl},'co',$Sp->{im});
修正後
    $I->{co} = join('/',$Sp->{Nm},$Sp->{cl},$V,$Sp->{im});
library/compose.cgi: sub compose_after
アイテム作成に必要なTECを$Ui->{Tc}に格納。
修正前
    &error('不正なエラー') unless &creativity_check($I,$Ui);
修正後
    $Ui->{Tc} = &creativity_check($I,$Ui) || &error('不正なエラー');
library/compose.cgi: sub compose_after
「衰弱」→ 作成で減るVITが2倍に。
追加
        $V *= $F{do};
        $V *= 2 if $K eq 'vt' && $I->{Cd}{Wk}; # 衰弱
library/compose.cgi: sub compose_after
「出血」→ 作成する度にLIFが下がる。
「放心」→ 作成する度にHAPが下がる。
追加
    &say("$set::lab{lf}が足りません",'compose') if !$I->{lf};

    &change_status($I,'lf',-3) if $I->{Cd}{Bl}; # 出血
    &change_status($I,'hy',-3) if $I->{Cd}{Ab}; # 放心

    $I->{lf} = 1 if $I->{lf} < 1;
library/compose.cgi: sub compose_after
「暗闇」→ 作成の成功率が下がる。
失敗する恐れが無い場合は帽子を消費しないようにする為の追加処理。
&wear_checkの読み込み。
修正前
    $V  = $I->{ij} ? 120 : 100;
    $I->{Gd} ||= $Ui->{dt}{gd};
    $I->{Gd} ||= 1;

    if (&roll_dice($V) < $Ui->{rl} + $I->{dx} * 3 + &hat_bonus($I) - ($I->{Gd} - 1) * 10) {
修正後
    $I->{Gd} ||= $Ui->{dt}{gd};
    $I->{Gd} ||= 1;

    $Ui->{Rl}  = $Ui->{rl} + $I->{dx} * 3 - ($I->{Gd} - 1) * 10;
    $Ui->{Pc}  = $I->{ij} ? 120 : 100;
    $Ui->{Pc} += 20 if $I->{Cd}{Dk}; # 暗闇
    $Ui->{Pf}  = $Ui->{Pc} < $Ui->{Rl} ? 1 : 0;

    &wear_check($I);

    $Ui->{Rl} += $I->{HT};

    if (&roll_dice($Ui->{Pc}) < $Ui->{Rl}) {
library/compose.cgi: sub compose_after
使用したランク付き消費材によって最終的なランクを決める。
耐久力のあるアイテムは作成者名を追加。
追加
    $Ui->{dt}{gd} = $I->{Gd};
    $Ui->{dt}{rk} = $I->{Rk};
    $Ui->{dt}{cr} = $I->{nm} if $Ui->{dt}{db};
library/compose.cgi: sub compose_after
「麻痺」→ 作成に成功しても怪我判定。
追加
        &double_roll($I,$Ui->{dt}) if $Ui->{dt}{cl} =~ /(Fd|Mt)/;
        &unexpected_accident($I) if $I->{Cd}{Pz};
library/compose.cgi: sub compose_after
状態異常チェックを参照。
装身具の耐久力を減らす。
追加
    &abnormal_condition($I,$Ui);

    if ($Ui->{ex}) {
library/compose.cgi: sub compose_after
グレード分の経験値を無くす。
修正前
        &experience($I,$Ui->{ex} * $I->{Gd});
修正後
        &experience($I,$Ui->{ex});
library/compose.cgi: sub reduce_item
&rank_checkを参照するようにする。
追加
    &grade_check($S,$Si) if $Si->{gd} && $Ui->{ki} && $Ui->{ki} eq $Y;
    &rank_check($S,$Si)  if $Si->{rk};
library/compose.cgi: sub excellent_roll
「混乱」→ エクセレントと二倍作成に失敗する。
追加
    return if $S->{Cd}{Pn};

    if (&roll_dice(100 + $S->{Hy}) <= $set::erb + $S->{st}) {
library/compose.cgi: sub double_roll
「混乱」→ エクセレントと二倍作成に失敗する。
追加
    return if $S->{Cd}{Pn};

    if (&roll_dice(100 + $S->{Hy}) <= $set::erb + $S->{st}) {
library/compose.cgi: sub creativity_check
「恐怖」→ 作成に必要なTECが1つ上がる。
追加
        ($K,$V) = split(/=/);
        $V++ if $S->{Cd}{Fr} && $K eq 'tc';
library/compose.cgi: sub unexpected_accident
首飾りによる負傷回避。
追加
    $V  = $S->{cn};
    $V *= $set::sUb if $S->{Sk}{Ub};
    $V += $S->{AC};
library/compose.cgi:
使用したランク付き消費材によって作成したアイテムのランクが決まるサブルーチン。
サブルーチンを追加
# Sub Rank Check #
sub rank_check {
my  $S = shift;
my  $Si = shift;

    $S->{Rk} = $Si->{rk} if !$S->{Rk} || $Si->{rk} > $S->{Rk};
}
library/compose.cgi:
状態異常になるか判定するサブルーチン。
# Sub Abnormal condition #
sub abnormal_condition {
my  $S = shift;
my ($V,$M);

    return if &roll_dice(100) > $set::anc;
    return if &roll_dice(100) < $S->{RG};

    $V = &roll_dice(7) - 1;
    $V = ('Wk','Pz','Bl','Dk','Ab','Pn','Fr')[$V];
    $M = $V =~ /(Dk|Fr)/ ? 'に襲われました' : '状態になりました';

    &M();
    &M("$S->{nm}は突然具合が悪くなりました。");
    &M("$S->{nm}は「<span class=alert>$set::cnd{$V}[1]</span>」$M。");
    &M();

    $S->{Tl}{$V} = time + $set::ccl * 60;
    &change_condition($S,'cd',$V,1);
}
library/compose.cgi:
帽子と装身具をチェックするサブルーチン。
サブルーチンを追加
# Sub Wear Check #
sub wear_check {
my  $S = shift;
my  $Si = shift;
my ($V,$V1,$V2,$V3);

    require "$set::lib_dir/break.cgi";

    # 帽子チェック #
    &get_equipment($S,'hd');
    if ($S->{Hd}{cl} eq 'Ht' && !$Si->{Pf}) {
        $S->{HT} = $S->{Hd}{ef} + $set::grd[$S->{Hd}{gd}];
        &break_check($S,'hd');
    }

    # 指輪チェック #
    &get_equipment($S,'fg');
    if ($S->{Fg}{cl} eq 'Rg' && $S->{Fg}{rk} * 3 + 1 >= $Si->{Tc}) {
        $S->{RG} = $S->{Fg}{ef} + $set::grd[$S->{Fg}{gd}] * $set::acb;
        &break_check($S,'fg');
    }

    # 首飾りチェック #
    &get_equipment($S,'nk');
    if ($S->{Nk}{cl} eq 'Ac' && $S->{Nk}{rk} * 3 + 1 >= $Si->{Tc}) {
        $S->{AC} = $S->{Nk}{ef} + $set::grd[$S->{Nk}{gd}] * $set::acb;
        &break_check($S,'nk');
    }
}
library/date.cgi: sub get_date
現在時間以外も返すようにする。
修正前
my  @wk;
my ($sc,$mn,$hr,$dy,$mt,$yr,$wd) = localtime(time);
修正後
my  $V = shift || time;
my  @wk;
my ($sc,$mn,$hr,$dy,$mt,$yr,$wd) = localtime($V);
library/date.cgi: sub departure_time
日に複数回出航するようになった定期船の乗船予約画面で表示される出航時刻の修正。
修正前
    return sprintf("%02d:%02d",$set::scm) if !$V;
    return sprintf("%02d/%02d %02d:%02d",$mt+1,$dy,$hr,$mn);
修正後
    if (!$V) {
        $V = (split(/,/,(&open_dat("$set::dat_dir/schedule.cgi"))[0]))[2] + $set::olt;
        $V -= 24 if $V >= 24;
        return sprintf("%02d:%02d",$V);
    }
    else {
        return sprintf("%02d/%02d %02d:%02d",$mt+1,$dy,$hr,$mn);
    }
library/dye.cgi: sub dye
find.cgiの修正に合わせた修正。
修正前
    require "$set::lib_dir/find.cgi";
    require "$set::dat_dir/forest_dye_catalog.cgi";

    &get_place($I);

    &say("環境保護区域です",'forest') unless $CA{$I->{pl}};
修正後
    require "$set::lib_dir/find.cgi";

    &get_place($I);

修正前
    &found($I,'forest_dye',$set::pvt,'採取','つ手に入れました');
修正後
    &found($I,'dye');
library/equip.cgi: sub equip
装備したアイテムが上に行くようソートする。
追加
    &sort_item($I);
    &set_item($I);
library/feed.cgi: feed_after
「イワシを1個」とかだ日本語的に変な為、「x 1」とかに変更。
修正前
        &M("$Ip->{Nm}に$Ii->{nm}を".$F{"t$i"}."個あげました。");
修正後
        &M(qq|$Ip->{Nm}に$Ii->{nm} x $F{"t$i"} をあげました。|);
library/fight.cgi:
今回あまりにも修正箇所が多く掲載見落としも多いため、申し訳ありませんが、省略させて頂きます。
ファイルごと差し替え
library/find.cgi: sub find
今回修正箇所が多く掲載見落としも多いため、申し訳ありませんが、省略させて頂きます。
ファイルごと差し替え
library/fishing.cgi: sub mine_after
find.cgiの修正に合わせた修正。
削除
    require "$set::dat_dir/$F{fl}_fish_catalog.cgi";

削除
    &say("漁猟禁止区域です",$F{fl}) unless $CA{$I->{pl}};

修正前
    &found($I,"$F{fl}_fish",$set::yvt,'釣り','匹釣りました');
修正後
    &found($I,"$F{fl}_fishing");
library/herb.cgi: sub herb
find.cgiの修正に合わせた修正。
修正前
    require "$set::lib_dir/find.cgi";
    require "$set::dat_dir/forest_herb_catalog.cgi";

    &get_place($I);

    &say("環境保護区域です",'forest') unless $CA{$I->{pl}};
修正後
    require "$set::lib_dir/find.cgi";

    &get_place($I);

修正前
    &found($I,'forest_herb',$set::pvt,'採取','つ手に入れました');
修正後
    &found($I,'herb');
library/hunting.cgi: sub hunting
find.cgiの修正に合わせた修正。
修正前
    require "$set::lib_dir/find.cgi";
    require "$set::lib_dir/fight.cgi";
    require "$set::dat_dir/forest_animal_catalog.cgi";

    &get_place($I);

    &say("禁猟区です",'forest') unless $CA{$I->{pl}};
修正後
    require "$set::lib_dir/find.cgi";

    &get_place($I);

修正前
    &found($I,'forest_animal',$set::wvt,'狩り','つ手に入れました',0,'hunting');
修正後
    &encounter($I,'hunting');
library/jobchange.cgi: sub jobchange_after
転職した際に、最大ペット枠が現在のペット枠にセットされてしまう不具合を修正。
レベル&性別照合通過対策。
LEVELと経験値をリセットしない設定の場合でもレベルアップボーナスが付加される不具合の修正。
転職後、全ての装備を外す。
修正前
my ($t1);
修正後
my ($Ii,$t1,@EQ);

追加
    $I = &get_user('I');

    &error("Job Change Error") if $I->{lv} > $set::jcl;

追加
    $U = $JB[$F{i}];

    &error("Job Change Error") if $U->{sx} ne 'a' && $U->{sx} ne $F{sx};

修正前
    $I->{px} = $U->{px}; # ペットスロット
修正後
    $I->{Mpx} = $U->{px}; # ペット上限

修正前
    $I->{lb} = ($I->{lv} - 1) * $set::lub;        # レベルアップボーナス
修正後
    $I->{lb} = ($I->{lv} - 1) * $set::lub if $set::jcr;        # レベルアップボーナス

修正前
    &set_user($I);
修正後
    &get_item($I);

    foreach $Ii (@{$I->{Bg}}) {
        next if !$Ii;
        $Ii->{eq} = '';
    }

    @EQ = keys %set::eqp;

    foreach (@EQ) {
        $I->{$_} = '';
        &reload_data($_);
    }

    &set_user($I);
    &set_item($I);
library/lumberjacking.cgi: sub lumberjacking
find.cgiの修正に合わせた修正。
修正前
    require "$set::lib_dir/find.cgi";
    require "$set::dat_dir/forest_wood_catalog.cgi";

    &get_place($I);

    &say("伐採禁止区域です",'forest') unless $CA{$I->{pl}};
修正後
    require "$set::lib_dir/find.cgi";

    &get_place($I);

修正前
    &found($I,'forest_wood',$set::wvt,'伐採','本手に入れました');
修正後
    &found($I,'lumberjacking');
library/magic.cgi: sub magic_count
設定回数を変更。
修正前
    # 基本戦闘回数
    $C = $set::frd;
    # 闇討ちがある
    $C++ if $I->{Sk}{Sa};
    # カウンター攻撃がある
    $C++ if $I->{Sk}{Ct};
    # 暴走対応
    $C += $set::uBk;
修正後
    # 基本戦闘回数
    $C = $set::ffx;
    # 闇討ちがある
    $C++ if $I->{Sk}{Sa};
    # 暴走対応
    $C += $set::uBk;
library/mail.cgi: sub mail_confirm
アカウント停止中のプレイヤーに手紙を送ろうとした時にその旨を通知する。
追加
    $U = &get_user('U');

    &say("$U->{nm}はアカウント停止中です",'mail_before') if $U->{ps} =~ /^$set::esc/;
library/mail.cgi: sub mail_after
&get_dateを修正。
修正前
	$V = &get_date;
修正後
	$V = &get_date(0);
library/main.cgi: sub main
ログイン監視モニター。
追加
    $I = &get_user('I','','in');

    if ($set::wcm) {
        require "$set::lib_dir/watchman.cgi";
        &watchman;
    }
library/main.cgi: sub main
schedule_monitorの引数が二つに増えた事への対処。
修正前
    if (&schedule_monitor(0)) {
修正後
    if (&schedule_monitor(0,0)) {
library/main.cgi: sub main
状態異常のタイムリミット確認。
追加
    # HEAの消費
    &change_status($I,'hl',-$set::lgh);

    # 状態異常のタイムリミット確認
    &time_limit_check($I);
library/main.cgi: sub main
「武具を補強する」コマンドを追加。
追加
    <option value="ornament_before">武具を宝飾する</option>
    <option value="reinforce_before">武具を補強する</option>
library/main.cgi: sub oceanliner_monitor
定期船を一日に複数回数出航させる為の改造。
修正前
    return if !&schedule_monitor(2);
修正後
    return if !&schedule_monitor(2,$set::olt);
library/mine.cgi: sub mine_after
find.cgiの修正に合わせた修正。
修正前
    require "$set::lib_dir/find.cgi";
    require "$set::dat_dir/mine_catalog.cgi";

    &get_place($I);

    $V = $I->{Sk}{Gm} ? 'mine_gold' : 'mine_ore';
    &say("$I->{Pl}{nm}の$I->{Sp}{Mn}{nm}は閉鎖しています",'CLOSE') unless $CA{$I->{pl}};
修正後
    require "$set::lib_dir/find.cgi";

    &get_place($I);

    $V = $I->{Sk}{Gm} ? 'mine_gold' : 'mine_ore';

修正前
    &found($I,$V,$set::mvt,'採掘','つ手に入れました');
修正後
    &found($I,$V);
library/myrecord.cgi: sub set_record
&get_dateを修正。
修正前
	unshift(@L,join('<>',time,&get_date,$V,$T,"\n"));
修正後
	unshift(@L,join('<>',time,&get_date(0),$V,$T,"\n"));
library/option.cgi: sub option_before
「Op」クラス以外のアイテムはセットできないようにする。
修正前
        next if $Ii->{cl} ne 'Fd' && $Ii->{cl} ne 'Op';
        next if $Ii->{cl} eq 'Fd' && $Ii->{Ql}{Rf} && !$I->{Sk}{Wb};
        next if $Ii->{cl} eq 'Fd' && $Ii->{Ql}{Fe} && !$I->{Sk}{Wb};
        next if $Ii->{cl} eq 'Op' && $Ii->{gd} * $set::gde < $I->{lv};
修正後
        next if $Ii->{cl} ne 'Op';
        next if $Ii->{gd} * $set::gde < $I->{lv};
library/orb.cgi: sub orb_unite
ファイル名の変更。
修正前
    require "$set::itm_dir/jewery.cgi";
修正後
    require "$set::itm_dir/jewel.cgi";
library/ornament.cgi: sub ornament_before
クラスの参照はitem_class_checkで行う。
修正前
        next if $Ii->{cl} !~ /(Sw|Ax|Sp|Kt|Bo|Cl|Wn|Hm|Ar|Bt|Sh|Gm)/;
修正後
        next if &item_class_check($Ii) !~ /(W|P)/ && $Ii->{cl} ne 'Gm';
library/playerlist.cgi: sub playerlist
「引分け」を表示。
追加
        $t1 .= qq|<td>$U->{ls}</td>|;
        $t1 .= qq|<td>$U->{dr}</td>|;
追加
    <th>負</th>
    <th>引</th>

修正前
        $t1 .= qq|<tr class=sec><td colspan=10>$U->{Ob}</td><td colspan=6>$t2</td></tr>\n| if $U->{Ob} || $t2;
修正後
        $t1 .= qq|<tr class=sec><td colspan=10>$U->{Ob}</td><td colspan=7>$t2</td></tr>\n| if $U->{Ob} || $t2;

修正前
    <tr><th colspan=10>オーブ</th><th colspan=6>販売</th></tr>
修正後
    <tr><th colspan=10>オーブ</th><th colspan=7>販売</th></tr>
library/playerlist.cgi: sub playerlist_statistics
schedule_monitorの引数が二つに増えた事への対処。
修正前
    &transfer_HTML($set::stt_htm) if !&schedule_monitor(1);
修正後
    &transfer_HTML($set::stt_htm) if !&schedule_monitor(1,0);
library/playerlist.cgi: sub sales_information
死亡したペットは販売情報に載せない。
変数を$Tから$Uiに変更。
修正前
my (@L,@T,$T);
修正後
my (@L,@T,$Ui);

追加
            next unless $Ui->{sp} && !$Ui->{rs};
            next if $Ui->{bt} && &get_passage($Ui->{bt},$set::pyt) > $Ui->{ls};

修正前
    foreach $T (@T) {
        &playerlist_decorate_item($T);
        $T->{qn} ||= 1;

        $T->{Sp} = $T->{sp} * $T->{qn} if $F == 1;
        $T->{sp} = int($T->{sp} / $T->{qn}) if $F == -1;

        $t3 = "<td nowrap align=right>$T->{Sp} $set::mny</td>" if $F == 1;
        $t1 .= "<tr><td nowrap>$T->{nm}</td><td>$T->{gd}</td><td nowrap align=right>$T->{sp} $set::mny</td>$t3<td nowrap>$T->{Id}</td><td nowrap>$T->{Nm}</td><td width=100%>$T->{Pl}</td></tr>\n";
    }
修正後
    foreach $Ui (@T) {
        &playerlist_decorate_item($Ui);
        $Ui->{qn} ||= 1;

        $Ui->{Sp} = $Ui->{sp} * $Ui->{qn} if $F == 1;
        $Ui->{sp} = int($Ui->{sp} / $Ui->{qn}) if $F == -1;

        $t3 = "<td nowrap align=right>$Ui->{Sp} $set::mny</td>" if $F == 1;
        $t1 .= "<tr><td nowrap>$Ui->{nm}</td><td>$Ui->{gd}</td><td nowrap align=right>$Ui->{sp} $set::mny</td>$t3<td nowrap>$Ui->{Id}</td><td nowrap>$Ui->{Nm}</td><td width=100%>$Ui->{Pl}</td></tr>\n";
    }
library/playerlist.cgi: sub ranking
schedule_monitorの引数が二つに増えた事への対処。
修正前
    &transfer_HTML($set::rnk_htm) if !&schedule_monitor(3);
修正後
    &transfer_HTML($set::rnk_htm) if !&schedule_monitor(3,0);
library/playerlist.cgi: sub ranking
「引分け」を表示。
追加
    <th>負</th>
    <th>引</th>

修正前
        $t1 .= "<tr><th colspan=12 class=heading>$t0{$K}</th></tr>\n";
修正後
        $t1 .= "<tr><th colspan=13 class=heading>$t0{$K}</th></tr>\n";

追加
            $t1 .= qq|<td>$U->{ls}</td>|;
            $t1 .= qq|<td>$U->{dr}</td>|;
library/playerlist.cgi: sub playerlist_decorate_item
死亡したペットは販売情報に載せない。
削除
    $Si->{nm} = "<span class=broken>死んだ</span>".$Si->{nm} if $Si->{bt} && &get_passage($Si->{bt},$set::pyt) > $Si->{ls};
library/purchase.cgi: sub purchase_item
「常連」スキル導入。
追加
        $Ui->{sp} = $T != 2 ? $T == 1 ? $Ui->{bp} * $set::mtp + $set::mpp : $Ui->{bp} : $Ui->{sp};
        $Ui->{sp} = $Ui->{bp} if $T == 1 && $I->{Sk}{Ff};
library/purchase.cgi: sub purchase_item
「商魂」スキル導入。
「xxを25つ」とかだと日本語的に変なため、「x 25」とかに変更。
追加
        &change_status($U,'bg',-$Ui->{Wt});

        if ($U->{Sk}{Sh}) {
            $U->{Ex} = int(($Ui->{Sp} - $Ui->{bp} * $Ui->{Qn}) / 10);
            $U->{Ex} = $set::sSh if $U->{Ex} > $set::sSh;
            $U->{ex} += $U->{Ex};
        }

修正前
        $M .= "$Ui->{Im}$I->{nm}は$Ui->{nm}を$Ui->{Qn}つ、$Ui->{Sp} $set::mnyで購入しました。<br>\n";
        &M("$Ui->{Im}$Ui->{nm}を$Ui->{Qn}つ、$Ui->{SP} $set::mnyで購入しました。");
修正前
        $M .= "$Ui->{Im}$I->{nm}は$Ui->{nm} x $Ui->{Qn} を$Ui->{Sp} $set::mnyで購入しました。<br>\n";
        $M .= "<span class=exp>$U->{Ex}の$set::lab{ex}を獲得</span>" if $U->{Ex};
        &M("$Ui->{Im}$Ui->{nm} x $Ui->{Qn} を$Ui->{SP} $set::mnyで購入しました。");
library/purchase.cgi: sub purchase_pet
恐らくと思われる箇所を修正。
追加
            $T == 2 && &M("$Up->{nm}のためのスロットが空いていません。") && next;
library/repair.cgi: sub repair_before
最大耐久力が$set::rpd以下なら修理できない。
追加
	    if (!$Ii->{Ql}{Br}) { $t1 .= "$Ii->{nm}は壊れていません。<br>\n" }
	    elsif ($Ii->{Mdb} <= $set::rpd) { $t1 .= "$Ii->{nm}はこれ以上修理できません。<br>\n" }
library/repair.cgi: sub repair_before
修理した後に表示されるメッセージで戻るボタンを押すとトップに戻ってしまう不具合の修正。
追加
    <input type=hidden name=ps value="$F{ps}">
    <input type=hidden name=fl value="$F{fl}">
library/repair.cgi: sub repair_after
「修理」したアイテムは耐久力を$set::rpd減らし、闇市に売れなくし、尚且つ再修理できなくする。
修正前
        $Ii->{ql} = join(',',grep { $_ ne 'Br' } keys %{$Ii->{Ql}});
修正後
        $Ii->{ql} = join(',',grep { $_ !~ /(Br|Rp)/ } keys %{$Ii->{Ql}},'Tr');
        $Ii->{Mdb} -= $set::rpd;
        $Ii->{db} = $Ii->{Mdb};
library/repair.cgi: sub repair_price
「修理」に掛かる費用のうち、基本価格分は半額にし(補強材分を引く)、Ex分は基本価格に含まれているので削除。
修正前
    $Si->{Sp}  = $Si->{bp};
    $Si->{Sp} *= 1 + ($Si->{gd} - 1) / 5 if $Si->{gd};
    $Si->{Sp} *= 1.2 if $Si->{Ql}{Ex};
修正後
    $Si->{Sp}  = $Si->{bp} / 2;
    $Si->{Sp} *= 1 + ($Si->{gd} - 1) / 5 if $Si->{gd};
library/repair.cgi: sub repair_bonus
Rbから棍棒を外し、Rsに投擲武器を追加、防具は消音性能があるかどうかでRbとRtに振り分ける。
修正前
    if (($I->{Sk}{Rb} && $Si->{cl} =~ /(Sw|Kt|Sp|Ax|Cl|Hm|Ar|Bt)/) ||
        ($I->{Sk}{Rs} && $Si->{cl} =~ /(Rg|Ac)/) ||
        ($I->{Sk}{Rc} && $Si->{cl} =~ /(Sh|Wn|Bo|Cl)/) ||
        ($I->{Sk}{Rt} && $Si->{cl} =~ /(Ht|Ds|Bt)/)) {
        return $set::srb;
    }
修正後
my  $V = $set::srb;

    return $V if $I->{Sk}{Rb} && $Si->{cl} =~ /(Sw|Kt|Sp|Ax)/;
    return $V if $I->{Sk}{Rs} && $Si->{cl} =~ /(Rg|Ac)/;
    return $V if $I->{Sk}{Rc} && $Si->{cl} =~ /(Sh|Wn|Bo|Cl)/;
    return $V if $I->{Sk}{Rt} && $Si->{cl} =~ /(Ht|Ds|Bt)/;
    return $V if $I->{Sk}{Rb} && $Si->{cl} =~ /(Hm|Ar|Bt)/ && !$Si->{Ql}{Sn};
    return $V if $I->{Sk}{Rt} && $Si->{cl} =~ /(Hm|Ar|Bt)/ &&  $Si->{Ql}{Sn};
    return $V if $I->{Sk}{Rs} && $Si->{Ql}{Th};
library/sell.cgi: sub sell_before
「常連」スキル導入。
市場・農場で買ったアイテムは買取額を最低販売価格の70%にする (APPが上がると市場の売値が買取額より安くなってしまう為)。
追加
        $Ii->{Sp} = $Ii->{bp} * $Ii->{qn};
        $Ii->{Sp} = int($Ii->{Sp} * 0.8) if $I->{Sk}{Ff};
        $Ii->{Sp} = int($Ii->{Sp} * 0.7) if $Ii->{Ql}{Dk};
library/sell.cgi: sub sell_after
「常連」スキル導入。
市場・農場で買ったアイテムは買取額を最低販売価格の70%にする。
修正前
        $I->{gl} += $Ii->{bp} * $Ii->{qn};
修正後
        $Ii->{Sp} = $Ii->{bp} * $Ii->{qn};
        $Ii->{Sp} = int($Ii->{Sp} * 0.8) if $I->{Sk}{Ff};
        $Ii->{Sp} = int($Ii->{Sp} * 0.7) if $Ii->{Ql}{Dk};
        $I->{gl} += $Ii->{Sp};
library/shut_out.cgi: sub shutout
モードが無い場合は許可
追加
    return if $F{md} eq '';
    if ($ref_url eq '') { &error("Referrer情報の無いブラウザでのプレイは禁止しています") }
library/takeoff.cgi: sub takeoff
装備を外したアイテムが下に行くようソートする。
追加
    &sort_item($I);
    &set_item($I);
library/transfer.cgi: sub transfer_before
行き先のリストを別のサブルーチンに移動。
修正前
    &get_place($I);

    @L = @{$I->{Pl}{tf}};
    push(@L,split(/,/,$I->{Pl}{lt}),split(/,/,$I->{Pl}{lh})) if $I->{Sk}{Fy}; # 飛翔

修正後
    @L = &get_destination($I);
library/transfer.cgi: sub transfer_after
セキュリティ対策。
追加
    &delete_place($I);

    &error('Transfer Error') if !grep { $_ eq $F{pl} } &get_destination($I);
library/transfer.cgi: sub transfer_after
「一日千里」スキル導入。
修正前
    $set::tap *= 2 if $F{bw};
修正後
    $set::tap *= 2 if $F{bw} && !$I->{Sk}{Ie};
library/transfer.cgi: sub transfer_vitality
「一日千里」スキル導入。
追加
    $set::tvt *= 2 if $F{bw};
    $set::tvt = 0 if $I->{Sk}{Ie};
library/transfer.cgi: sub dress_bonus
「一日千里」スキル導入。
追加
    $set::tmn = 0 if $I->{Sk}{Ie};

    &get_equipment($I,'bd');

追加
    $set::tmn -= $set::grd[$I->{Bd}{gd}];
    $set::tmn  = 0 if $set::tmn < 0;
library/transfer.cgi: sub transfer_before
行き先のリスト用のサブルーチンを新たに作成。
「飛翔」スキルは離島へは渡航できないようにする(管理者除く)。
サブルーチンの追加
# Sub Get Destination #
sub get_destination {
my  $S = shift;
my  @L;

    &get_place($S);

    @L = @{$S->{Pl}{tf}};
    # 飛翔 #
    if ($S->{Sk}{Fy}) {
        undef %SI if $F{ps} eq $set::pas;
        push(@L,grep !$SI{$_}, split(/,/,$S->{Pl}{lt}));
        push(@L,grep !$SI{$_}, split(/,/,$S->{Pl}{lh}));
    }

    return @L;
}
library/use.cgi: sub type_expendable
腐食確率がある食品は食中毒の時に摂取できないようにする。
追加
    if ($Si->{ql} =~ /R\d/ && $I->{Cd}{Fp}) { &M("$Si->{nm}は$Tたくない・・・。") && return }

    if ($Si->{ql} =~ /R\d/ && !&fresh_check($Si)) {
library/use.cgi: sub type_expendable
食中毒用のサブルーチンの呼び出し。
追加
        &M("$Si->{nm}は腐ってました。");
        &food_poisoning($I);
library/use.cgi: sub type_expendable
栄養失調時は回復量を2/3に。
追加
            if ($Si->{Ql}{Pm}) { $V = &roll_dice(2) == 1 ? $V : -$V }
            if ($Si->{cl} eq 'Fd' && $I->{Cd}{Mn}) { $V = int($V / 3 * 2) }
library/use.cgi: sub medicine
変動ステータスを回復するアイテム。
万能薬用の例外処理を追加。
追加
my ($K,$V);

修正前
    if ($S->{ij} eq $Si->{cp}) {
修正後
    if (!$Si->{cp}) {
        &M("$Si->{nm}を服用しました。");
        foreach (split(/,/,$Si->{ef})) {
            ($K,$V) = split(/=/);
            &change_status($S,$K,$V,1);
            &reload_gage($K,'V');
        }
    }
    elsif ($S->{ij} eq $Si->{cp}) {

追加
    elsif ($Si->{cp} eq 'All') {
        foreach $K (keys %{$S->{Cd}}) {
            next if $K !~ /(Fp|Wk|Pz|Bl|Dk|Ab|Pn|Fr)/;
            &M("$S->{Cd}{$K}が治りました。");
            &change_condition($S,'cd',$K);
            last;
        }
    }
    elsif ($S->{Cd}{$Si->{cp}}) {
library/use.cgi:
食中毒用のサブルーチンを追加。
サブルーチンを追加
# Sub Food Poisoning #
sub food_poisoning {
my  $S = shift;
my ($V);

    if ($S->{Fg}{cl} eq 'Rg') {
        $V = $S->{Fg}{ef} + $S->{Fg}{gd} * $set::acb;
    }

    return if &roll_dice(100) > $set::anc;
    return if &roll_dice(100) < $V;

    &M();
    &M("「<span class=alert>$set::cnd{Fp}[1]</span>」になりました。");
    &M();

    $S->{Tl}{Fp} = time + $set::ccl * 60;
    &change_condition($S,'cd','Fp',1);
}
javascript/OpenWindow.js:
最大でも1024x768になるよう変更。
追加
      if (!h_size) h_size = screen.availHeight;

      if (w_size > 1024) w_size = 1024;
      if (h_size > 768) h_size = 768;
set.cgi
修正
# 時間 Time ########################################## #
$ddy = 14;                   # 何日更新がなかったらユーザデータを削除するか(日)

追加
# 設定開始 Start Define ############################# #
$wcm = 0;                    # ログイン監視モニターを使用する(yes=1,no=0) [レポートはmaster.cgiで閲覧可能]

セキュリティに移動
# 設定開始 Start Define ############################# #
$alw = '';                   # 外部アクセス禁止(yes=許可するURL,no=空白)
                             # yesにした場合リンク元のURLを吐かないブラウザも禁止になります。

追加
# セキュリティ Security ############################## #
$wcm = 0;                    # ログイン監視モニターを使用する(yes=1,no=0) [レポートはmaster.cgiで閲覧可能]
$tpl = '';                   # 特定プレイヤーの行動を追跡する(yes=ID,no=空白) [レポートはmaster.cgiで閲覧可能]
$slg = 200;                  # 記録用ログの最大行数

修正
# 探索 Transfer ###################################### #
$ffx = 7;                    # モンスター遭遇時の最大戦闘回数

修正
# 公衆浴場 Public Bath ############################### #
$bmn = 0.5;                  # 公共浴場入浴料(減ったAPP * Level * n)

追加
# 港 Harbor ########################################## #
$olt = 4;                    # 定期船の出航回数(n時間に一回) {nの値は24の約数}

追加
# 戦闘 Fight ######################################### #
$adm = 7;                    # 最終ダメージを調整する(yes={仮数値<n=実際値が上昇、仮数値>n=実際値が低下},no=0)
$mex = 0.6;                  # モンスターから得られる経験値の調整 ((モンスターのLEVEL * 10 * n) + 5);
$mgl = 15;                   # モンスターから得られる金の調整 (モンスターのLEVEL * n - (プレイヤーのLEVEL - 1) * 5)
@acl = (0,3,6,9,12,          # 装身具が各ランクで許容するレベル
        14,16,18,20);

修正
# 戦闘 Fight ######################################### #
$frd = 5;                    # 1回の戦闘回数(先制攻撃除く)
@dms = (3,6,9,12,15);        # ダメージn未満でそれぞれのメッセージを表示する
$icd = 9;                    # n以上のダメージ値で負傷チェックする

修正
# 賞金首 Bounty ###################################### #
$sps = 400;                  # 賞金首として登録される金額(執行猶予がつかない)

追加
# その他 Others ###################################### #
$acb = 5;                    # 指輪と首飾りはグレードのボーナスをn倍する
$anc = 10;                   # 状態異常になる基本確率
$ccl = 120;                  # 状態異常の持続時間(分)
$rpd = 10;                   # 修理後に最大耐久力をn減らす

追加
# スキル Skill ####################################### #
$sSh = 50;                   # 商魂で一度に獲得できる経験値のMAX

修正前
# アイテムデータ Item Data ########################### #
        'ob', # オーブ           Orb
        'cr', # 作成者           Creator
修正後
# アイテムデータ Item Data ########################### #
        'rk', # ランク           Rank
        'cr', # 作成者           Creator

差し替え
# 状態データ Condition Data ########################## #
%cnd = (
    'Av'  => ['生','生存'],
    'Dd'  => ['死','死亡'],
    'St', => ['石','石化'],
    'Ps'  => ['毒','毒化'],
    'Fr', => ['骨','骨折'],
    'La', => ['裂','裂傷'],
    'Bn', => ['熱','熱傷'],
    'Pw', => ['刺','刺傷'],
    'Mn', => ['失','栄養失調'],
    'En', => ['無','無気力'],
    'Fp', => ['食','食中毒'],
    'Dt', => ['汚','不潔'],
    'Wk', => ['衰','衰弱'],
    'Pz', => ['痺','麻痺'],
    'Bl', => ['血','出血'],
    'Dk', => ['暗','暗闇'],
    'Ab', => ['放','放心'],
    'Pn', => ['混','混乱'],
    'Fr', => ['怖','恐怖'],
    'Cs', => ['呪','呪い'],
);


マニュアルファイルを差し替え(manual/)
accessary.html (644,604)
armor.html (644,604)
beginner.html (644,604)
item01.html (644,604)
item03.html (644,604)
job.html (644,604)
menu.html (644,604)
ship.html (644,604)
skill.html (644,604)
status.html (644,604)
weapon.html (644,604)
マニュアルファイルを追加(manual/)
condition.html (644,604)
Javascriptファイルを差し替え(javascript/)
OpenWindow.js (644,604)
データファイルを差し替え
data/classchange.cgi (644,604)
data/compose_category.cgi (644,604)
data/craftunion_item_catalog.cgi (644,604)
data/durability.cgi (644,604)
data/find_item_catalog.cgi (644,604)
data/find_monster_catalog.cgi (644,604)
data/itemdata.cgi (644,604)
data/itemdictionary.cgi (644,604)
data/job.cgi (644,604)
data/magic.cgi (644,604)
data/market_item_catalog.cgi (644,604)
data/petdata.cgi (644,604)
data/place.cgi (644,604)
data/sort.cgi (644,604)
dungeon/dungeon_fir_monster.cgi (644,604)
item/arms.cgi (644,604)
item/bread.cgi (644,604)
item/clothes.cgi (644,604)
item/craftunion_sale_item.cgi (644,604)
item/crops.cgi (644,604)
item/dish_sweets.cgi (644,604)
item/drug.cgi (644,604)
item/find_item.cgi (644,604)
item/forest_animal.cgi (644,604)
item/hat.cgi (644,604)
item/leathercraft.cgi (644,604)
item/market_sale_item.cgi (644,604)
item/mine_gold.cgi (644,604)
item/monster_cov.cgi (644,604)
item/monster_gho.cgi (644,604)
item/monster_isl.cgi (644,604)
item/monster_tow.cgi (644,604)
item/monster_ven.cgi (644,604)
item/preparation.cgi (644,604)
item/ship.cgi (644,604)
item/woodwork.cgi (644,604)
データファイルの追加
data/creaturedata.cgi (644,604)
data/track_report.cgi (606,600,666)
data/watchmans_report.cgi (606,600,666)
item/accessories.cgi (644,604)
item/monster_dha.cgi (644,604)
place/dha.cgi (606,600,666)
データファイル名の変更
item/jewery.cgi → item/jewel.cgi (644,604)
データファイルの削除
data/condition.cgi
ライブラリファイルの追加(library/)
reinforce.cgi (644,604)
watchman.cgi (644,604)
メイン画像ファイルを追加(mainimage/)
place17.gif
アイテム画像ファイルを追加(itemimage/)
alraune.gif
birdnecklace.gif
birdring.gif
blackginger.gif
blackginseng.gif
brace.gif
buckle.gif
bugnecklace.gif
bugring.gif
butterflynecklace.gif
butterflyring.gif
centipede.gif
cranberry.gif
cureall.gif
emergencyfood.gif
emulsion.gif
eucalyptus.gif
facetedcrystal.gif
firebomb.gif
flowernecklace.gif
flowerring.gif
healthydrink.gif
herbmedicine.gif
ironwire.gif
lizard.gif
lovenecklace.gif
lovering.gif
mantis.gif
newt.gif
ornament.gif
perfume.gif
phantomship.gif
pirateship.gif
ringsetting.gif
shieldnecklace.gif
shieldring.gif
spider.gif
starnecklace.gif
starring.gif
udumbara.gif
vial.gif
vikingship.gif
waterdropnecklace.gif
waterdropring.gif
winebottle.gif
アイテム画像ファイルを差し替え(itemimage/)
boomerang.gif
chain.gif
javelin.gif
アイテム画像名を変更(itemimage/)
artemissbow.gif → artemisbow.gif
centaurussbow.gif → centaurusbow.gif

戻る


Copyright 2000-2007 Missing Link All Rights Reserved.