修正前
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
追加
&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
修正前
&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
修正前
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
追加 &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
修正前
&error('不正なエラー') unless &creativity_check($I,$Ui);
修正後
$Ui->{Tc} = &creativity_check($I,$Ui) || &error('不正なエラー');
library/compose.cgi: sub compose_after
追加
$V *= $F{do};
$V *= 2 if $K eq 'vt' && $I->{Cd}{Wk}; # 衰弱
library/compose.cgi: sub compose_after
追加
&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
修正前
$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
追加
&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
追加
($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
修正前
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
修正前
&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
削除
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
修正前
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
修正前
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
修正前
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
修正前
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
修正前 $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
修正前
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
修正前
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
修正前
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
修正前
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
修正前
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
修正前
&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
修正前
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
修正前
&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
追加
&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
追加
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
修正前
$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
修正前
$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
修正前
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
追加
$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
修正前
$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
追加
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:
追加
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', => ['呪','呪い'], );
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.