- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!Parts1
<TABLE width="778" border="0" cellspacing="0" cellpadding="5">
<TR bgcolor="#FFCCCC">
<TD class="text">
<HR>
<B>masimaro さんの配布されております、<FONT color="#0000FF">[ 装備使用回数制限 ] </FONT> と併用する場合には、下記修正を必ず実施して下さい。<BR>
</B><B><FONT color="#0000FF">[ 装備使用回数制限 ]</FONT></B> は、非戦闘系の戦闘を想定していない為、この修正が必要となります。<BR>
# sub fight # <FONT color="#FF0000" face="MS ゴシック, Osaka−等幅">【 <B>if ($pc
> 0) {</B> 】</FONT>の行を、<FONT color="#FF0000" face="MS ゴシック, Osaka−等幅">【
<B>if ($break == 0 || $pc > 0) {</B> 】</FONT>として下さい。
<HR>
<B>ねる部屋 さんの配布されておりました、<FONT color="#0000FF">[ 戦闘に解説を付ける ] </FONT> と併用する場合には、下記修正を必ず実施して下さい。</B><BR>
<B><FONT color="#0000FF">[ 戦闘に解説を付ける ]</FONT></B> の該当部分は、問題を孕んでいます。 <BR>
battle.pl sub bmsg <FONT color="#FF0000" face="MS ゴシック, Osaka−等幅"><BR>
foreach $item (@items) {</FONT> <BR>
<FONT color="#FF0000" face="MS ゴシック, Osaka−等幅"> ($item,$sts,$price) = split(/△/,$item);</FONT><BR>
の所を、 <BR>
<FONT color="#FF0000" face="MS ゴシック, Osaka−等幅"> foreach $temp (@items) {</FONT>
<BR>
<FONT color="#FF0000" face="MS ゴシック, Osaka−等幅"> ($item,$sts,$price) = split(/△/,$temp);
</FONT><BR>
として下さい。
<HR>
</TD>
</TR>
</TABLE>
!Parts2
<BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Get Partner # Line:2164<BR>
perl/subsos.cgi # Sub Get Partner # Line:83</FONT></B> <BR>
<b>shift(@_); </b><br>
<FONT color="#FF00FF">
<TEXTAREA name="textarea10" cols="100" wrap="OFF" rows="5">
#-ADD-
if ($find || $Fm{'find'}) {
$ptw = $tw; $parea = $area;
if ($php < 3) { $php = 3; }
}
#-END of ADD- SOSWiki0002v3.01-1-1/18
#-END of ADD- SION0002v3.01-1-1/18
shift(@_);
</TEXTAREA><BR>
※ 街移動システム/エリア移動システムが未導入の場合、特に必要ありません。<BR>
※【 NPC強化 】</A>改造を併せてお奨めします。 </FONT>
!Parts3
<BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Fight # Line:1550</FONT></B><BR>
<b>if ($plf eq $id) { push (@msg,"$pnmとは暫く戦えません"); return }</b><br>
<TEXTAREA name="textarea13" cols="100" wrap="OFF" rows="3">
#-EDIT- if ($plf eq $id) { push (@msg,"$pnmとは暫く戦えません"); return }
if ($plf eq $id && !$find) { push (@msg,"$pnmとは暫く戦えません"); return }
#-END of EDIT- SOSWiki0002v3.01-2-2/18
#-END of EDIT- SION0002v3.01-2-2/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Fight # Line:1572 </FONT></B><BR>
<b>$uatk = $ak + $ab + $uw + $uo; $patk = $pak + $pab + $def_ab + $pw + $po;</b><br>
<TEXTAREA name="textarea13" cols="100" wrap="OFF" rows="3">
#-EDIT- $uatk = $ak + $ab + $uw + $uo; $patk = $pak + $pab + $def_ab + $pw + $po;
if ($find) { $uatk = $ak + $ab + $def_ab + $uw + $uo; $patk = $pak + $pab + $pw + $po;
push (@editor,"NPC遭遇(モンスター遭遇) Ver 3.00 <A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'>by SION & SOSWiki</A>"); }
else { $uatk = $ak + $ab + $uw + $uo; $patk = $pak + $pab + $def_ab + $pw + $po; }
#-END of EDIT- SOSWiki0002v3.01-2-3/18
#-END of EDIT- SION0002v3.01-2-3/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Fight # Line:1626</FONT></B><BR>
<b>if (!$Bidice) { </b><Br>
<TEXTAREA name="textarea13" cols="100" wrap="OFF" rows="3">
#-EDIT- unless ($Bidice) {
if (!$Bidice && !$find) {
#-END of EDIT- SOSWiki0002v3.01-2-4/18
#-END of EDIT- SION0002v3.01-2-4/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Fight # Line:1649-1661</FONT></B> <BR>
<b>if ($itemchance && $pitems[$Sidice]) {<BR>
&splititem('i');<BR>
($item,$sts,$price) = split(/△/,$pitems[$Sidice]);<BR>
if ($sts !~ /Ns/) {<BR>
if ($sts =~ s/Q[swat]//g) { $pab -= substr($sts,4,2); $pdb -= substr($sts,6,2)
}<BR>
splice(@pitems,$Sidice,1); push(@items,"$item△$sts");<BR>
$psp =~ s/Qb//g if $sts =~ /Bw/;<BR>
$psp =~ s/Qk//g if $sts =~ /Kt/;<BR>
$psp =~ s/Qx//g if $sts =~ /Ax/; <BR>
$psp =~ s/Qm//g if $sts =~ /Sw/;<BR>
&joinitem('iI'); &fmsg('奪');<BR>
}<BR>
} </b><br>
<TEXTAREA name="textarea14" cols="100" wrap="OFF" rows="5">
#-ADD-
if (!$find) {
#-END of ADD- SOSWiki0002v3.01-2-5(1)/18
#-END of ADD- SION0002v3.01-2-5(1)/18
if ($itemchance && $pitems[$Sidice]) {
&splititem('i');
($item,$sts,$price) = split(/△/,$pitems[$Sidice]);
if ($sts !~ /Ns/) {
if ($sts =~ s/Q[swat]//g) { $pab -= substr($sts,4,2); $pdb -= substr($sts,6,2) }
splice(@pitems,$Sidice,1); push(@items,"$item△$sts");
$psp =~ s/Qb//g if $sts =~ /Bw/;
$psp =~ s/Qk//g if $sts =~ /Kt/;
$psp =~ s/Qx//g if $sts =~ /Ax/;
$psp =~ s/Qm//g if $sts =~ /Sw/;
&joinitem('iI'); &fmsg('奪');
}
}
#-ADD-
} else {
if ($itemchance && $items[$Sidice]) {
&splititem('i');
($item,$sts,$price) = split(/△/,$items[$Sidice]);
if ($sts !~ /Ns/) {
if ($sts =~ s/Q[swat]//g) { $ab -= substr($sts,4,2); $db -= substr($sts,6,2) }
splice(@items,$Sidice,1); push(@pitems,"$item△$sts");
$sp =~ s/Qb//g if $sts =~ /Bw/;
$sp =~ s/Qk//g if $sts =~ /Kt/;
$sp =~ s/Qx//g if $sts =~ /Ax/;
$sp =~ s/Qm//g if $sts =~ /Sw/;
&joinitem('iI'); &fmsg('失');
} } }
#-END of ADD- SOSWiki0002v3.01-2-5(2)/18
#-END of ADD- SION0002v3.01-2-5(2)/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Fight Message # Line:1727</FONT></B> <BR>
<b>'奪',"$pnmから$itemを奪いました", </b><br>
<TEXTAREA name="textarea13" cols="100" wrap="OFF" rows="4">
'奪',"$pnmから$itemを奪いました",
#-ADD-
'失',"$pnm に $itemを奪われました",
#-END of ADD- SOSWiki0002v3.01-2-6/18
#-END of ADD- SION0002v3.01-2-6/18
</TEXTAREA>
!Parts4
<BR>
<B><FONT color="#0000FF">sos2.cgi # ---------- USER DIRECTORY Line34 </FONT></B><BR>
<b>$usrdir = 'userdata/'; # ユーザデータを格納するフォルダ </b><br>
<FONT color="#FF00FF">
<TEXTAREA name="textarea15" cols="100" wrap="OFF" rows="4">
$usrdir = 'userdata/'; # ユーザデータを格納するフォルダ
#-ADD-
$nghead = 'NPC'; # npcファイルの接頭子(***0000.dat)
#-END of ADD- SOSWiki0002v3.01-3-7/18
#-END of ADD- SION0002v3.01-3-7/18
</TEXTAREA><BR>
※ 'NPC' の部分は任意に変更して下さい。<BR>
ファイル名を変更せず、デフォルト(ID4桁のみ)を使う場合は Null('')にして下さい。</FONT>
!Parts5
<BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Find Item # Line792 </FONT></B><BR>
<b>if ($idt !~ /Gl/) { push(@items,"$inm△$idt"); &joinitem('i') } </b><Br>
<FONT color="#FF00FF">
<TEXTAREA name="textarea16" cols="100" wrap="OFF" rows="5">
#-ADD-
#-------- NPC出現 -------------------
if ($idt =~ /Ng/ || $idt =~ /Ms/) {
$ngid = substr($idt,0,4);
$Fm{'pd'} = $nghead . $ngid;
$runtf = substr($idt,4,2);
$runtv = substr($idt,6,2);
if ($sp =~ /Tf/) { $run = $runtf } else { $run = $runtv }
$runrd = int(rand(100) + 1);
if ($run >= $runrd ) {
if ($idt =~ /Ms/) {
push (@msg,"何かが近づく気配に気付いたので、うまくやり過ごしました。");
$exp += int(rand(5)); }
else {
push (@msg,"何物かが草陰から走り去って行きました。"); }
} else {
$find = 'find';
&joinitem('i'); &userout;
$getuserflag = 0;
if ($idt =~ /Ms/) {
push (@msg,"<HR>$inm が現れ、戦闘となりました。<HR>");
&fight; }
else {
push (@msg,"<HR>$inm に出会いました。");
$notfound = 0; }
return; } # 複数回探索を取り入れている場合は、last; に変更する。
return; }
#-END of ADD- SOSWiki0002v3.01-4-8/18
#-END of ADD- SION0002v3.01-4-8/18
if ($idt !~ /Gl/) { push(@items,"$inm△$idt"); &joinitem('i') }
</TEXTAREA></FONT><BR>
※ 出会いやすくしたり出会い難くするスキルを追加する場合は、<BR>
$runrd = int(rand(100) + 1); の行を改造します。<BR>
<FONT color="#FF0000">※ 複数回探索を取り入れている場合には、1つ目の return を last に書き換えて下さい。 <BR>
また、foreach のループの外にある &userout; は、if (!$find) { &userout; }として下さい。</FONT>
!Parts6
<BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Play Form # Line299</FONT></B><BR>
<b>&find_item if $Fm{'mode'} eq 'find_item'; </b><br>
<TEXTAREA name="textarea17" cols="100" wrap="OFF" rows="2">
#-DEL- &find_item if $Fm{'mode'} eq 'find_item';
#-END of DEL- SOSWiki0002v3.01-5-9/18
#-END of DEL- SION0002v3.01-5-9/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Contact Form # Line329 </FONT></B> <BR>
<b>sub contact_form { </b><Br>
<TEXTAREA name="textarea17" cols="100" wrap="OFF" rows="4">
sub contact_form {
#-ADD-
if ($Fm{'mode'} eq 'find_item') { $notfound = 1; &find_item; }
#-END of ADD- SOSWiki0002v3.01-5-10/18
#-END of ADD- SION0002v3.01-5-10/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Main Program # Line229</FONT></B><BR>
<b>if ($Fm{'mode'} eq 'find_item') { &play_form } </b><br>
<TEXTAREA name="textarea17" cols="100" wrap="OFF" rows="3">
#-EDIT-if ($Fm{'mode'} eq 'find_item') { &play_form }
elsif ($Fm{'mode'} eq 'find_item') { &contact_form }
#-END of EDIT- SOSWiki0002v3.01-5-11/18
#-END of EDIT- SION0002v3.01-5-11/18
</TEXTAREA>
!Parts7
<BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Contact Action # Line685</FONT></B><BR>
<b> if ($psp =~ /(V[a-z])/) {<BR>
$vflag = $1;<BR>
&splititem('i'); <BR>
foreach (@items) {<BR>
$right = 1 if (split(/△/))[1] =~ /$vflag/;<BR>
}<BR>
if (!$right) {<BR>
&error("$pnmに会うためにはあるアイテムが必要です"); <BR>
} <BR>
} </b><BR>
<TEXTAREA name="textarea18" cols="100" wrap="OFF" rows="5">
#-EDIT- if ($psp =~ /(V[a-z])/) {
# $vflag = $1;
# &splititem('i');
# foreach (@items) {
# $right = 1 if (split(/△/))[1] =~ /$vflag/;
# }
# if (!$right) {
# &error("$pnmに会うためにはあるアイテムが必要です");
# }
# }
if (!$post) { return; }
#-END of EDIT- SOSWiki0002v3.01-6-12/18
#-END of EDIT- SION0002v3.01-6-12/18
</TEXTAREA><BR>
<FONT color="#FF00FF">※ $method をGETに変更していると動作しなくなります。POST の設定に戻してください。<BR>
何らかの事情で GET にせざるを得ない場合は、if (!$post) { return } の行を削除すれば<BR>
動作はしますが、不正行為が行われやすくなります。</FONT> <BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Contact Action # Line685 </FONT></B> <BR>
<b>&OKbuttoninform('on');</b><br>
<TEXTAREA name="textarea18" cols="100" wrap="OFF" rows="5">
#-ADD-
if ($find || $Fm{'find'}) {
push (@editor,"NPC遭遇 Ver 3.00 <A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'>by SION & SOSWiki</A>");
&input('hidden','find','on','',''); }
#-END of ADD- SOSWiki0002v3.01-6-13/18
#-END of ADD- SION0002v3.01-6-13/18
&OKbuttoninform('on');
</TEXTAREA>
!Parts8
<BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Get Partner # Line:2164<BR>
perl/subsos.cgi # Sub Get Partner # Line:83</FONT></B> <BR>
<b>shift(@_); </b><br>
<FONT color="#FF00FF">
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="5">
#-ADD-
if ($find || $Fm{'find'}) {
if ($php < 3) { $php = 3; }
$parea = $area; }
#-END of ADD- SOSWiki0002v3.01-1-1/18
#-END of ADD- SION0002v3.01-1-1/18
shift(@_);
</TEXTAREA><BR>
※ 街移動システム/エリア移動システムが未導入の場合、特に必要ありません。<BR>
※【 NPC強化 】改造を併せてお奨めします。 </FONT>
!Parts9
<BR>
<B><FONT color="#0000FF">perl/fight.cgi # Sub Fight # Line:9</FONT></B><BR>
<b>my($afgt_chk,$afck_msg) = &fight_check;</b><Br>
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="3">
#-EDIT- my($afgt_chk,$afck_msg) = &fight_check;
if (!$find && !$Fm{'find'}) { my($afgt_chk,$afck_msg) = &fight_check; }
#-END of EDIT- SOSWiki0002v3.01-2-2/18
#-END of EDIT- SION0002v3.01-2-2/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF"> perl/fight.cgi # Sub Fight # Line:33</FONT></B><BR>
<b>$uatk = $ak + $ab + $def_ab + $uw + $uo; $patk = $pak + $pab + $pw + $po;</b><br>
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="5">
#-EDIT- $uatk = $ak + $ab + $uw + $uo; $patk = $pak + $pab + $def_ab + $pw + $po;
if ($find) { $uatk = $ak + $ab + $def_ab + $uw + $uo; $patk = $pak + $pab + $pw + $po; }
push (@editor,"NPC遭遇(モンスター遭遇) Ver 3.00 <A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'>by SION & SOSWiki</A>");
else { $uatk = $ak + $ab + $uw + $uo; $patk = $pak + $pab + $def_ab + $pw + $po; }
#-END of EDIT- SOSWiki0002v3.01-2-3/18
#-END of EDIT- SION0002v3.01-2-3/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">perl/fight.cgi # Sub Fight # Line:128</FONT></B><BR>
<B>unless ($Bidice) { </b><Br>
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="3">
#-EDIT- unless ($Bidice) {
if (!$Bidice && !$find) {
#-END of EDIT- SOSWiki0002v3.01-2-4/18
#-END of EDIT- SION0002v3.01-2-4/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">perl/fight.cgi # Sub Fight # Line:155-171</FONT></B> <BR>
<b>if ($itemchance && $pitems[$Sidice]) {<BR>
&splititem('i');<BR>
($item,$sts,$price) = split(/△/,$pitems[$Sidice]); <BR>
if ($sts !~ /Ns/) {<BR>
if ($sts =~ s/Q[swat]//g) { $pab -= substr($sts,4,2); $pdb -= substr($sts,6,2)
}<BR>
splice(@pitems,$Sidice,1); push(@items,"$item△$sts");<BR>
$psp =~ s/Qb//g if $sts =~ /Bw/;<BR>
$psp =~ s/Qk//g if $sts =~ /Kt/;<BR>
$psp =~ s/Qx//g if $sts =~ /Ax/; <BR>
$psp =~ s/Qm//g if $sts =~ /Sw/;<BR>
$psp =~ s/Of// if $sts =~ /Of/; # 釣り竿の盗み処理<BR>
#属性<BR>
foreach (@element_ak) { if($sts =~ /$_/) { $psp =~ s/$_// } }<BR>
foreach (@element_df) { if($sts =~ /$_/) { $psp =~ s/$_// } }<BR>
&joinitem('iI'); &fmsg('奪');<BR>
}<BR>
} </b><br>
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="5">
#-ADD-
if (!$find) {
#-END of ADD- SOSWiki0002v3.01-2-5(1)/18
#-END of ADD- SION0002v3.01-2-5(1)/18
if ($itemchance && $pitems[$Sidice]) {
&splititem('i');
($item,$sts,$price) = split(/△/,$pitems[$Sidice]);
if ($sts !~ /Ns/) {
if ($sts =~ s/Q[swat]//g) { $pab -= substr($sts,4,2); $pdb -= substr($sts,6,2) }
splice(@pitems,$Sidice,1); push(@items,"$item△$sts");
$psp =~ s/Qb//g if $sts =~ /Bw/;
$psp =~ s/Qk//g if $sts =~ /Kt/;
$psp =~ s/Qx//g if $sts =~ /Ax/;
$psp =~ s/Qm//g if $sts =~ /Sw/;
$psp =~ s/Of// if $sts =~ /Of/; # 釣り竿の盗み処理
#属性
foreach (@element_ak) { if($sts =~ /$_/) { $psp =~ s/$_// } }
foreach (@element_df) { if($sts =~ /$_/) { $psp =~ s/$_// } }
&joinitem('iI'); &fmsg('奪');
}
}
#-ADD-
} else {
if ($itemchance && $items[$Sidice]) {
&splititem('i');
($item,$sts,$price) = split(/△/,$items[$Sidice]);
if ($sts !~ /Ns/) {
if ($sts =~ s/Q[swat]//g) { $ab -= substr($sts,4,2); $db -= substr($sts,6,2) }
splice(@items,$Sidice,1); push(@pitems,"$item△$sts");
$sp =~ s/Qb//g if $sts =~ /Bw/;
$sp =~ s/Qk//g if $sts =~ /Kt/;
$sp =~ s/Qx//g if $sts =~ /Ax/;
$sp =~ s/Qm//g if $sts =~ /Sw/;
$sp =~ s/Of// if $sts =~ /Of/; # 釣り竿の盗み処理
#属性
foreach (@element_ak) { if($sts =~ /$_/) { $sp =~ s/$_// } }
foreach (@element_df) { if($sts =~ /$_/) { $sp =~ s/$_// } }
&joinitem('iI'); &fmsg('失');
}
}
}
#-END of ADD- SOSWiki0002v3.01-2-5(2)/18
#-END of ADD- SION0002v3.01-2-5(2)/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">perl/fight.cgi # Fight Message # Line:237</FONT></B><BR>
<b>'奪',"$pnmから$itemを奪いました", </b><br>
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="4">
'奪',"$pnmから$itemを奪いました",
#-ADD-
'失',"$pnm に $itemを奪われました",
#-END of ADD- SOSWiki0002v3.01-2-6/18
#-END of ADD- SION0002v3.01-2-6/18
</TEXTAREA>
!Parts10
<BR>
<B><FONT color="#0000FF">ini/filepath.cgi # ---------- USER DIRECTORY Line:19 </FONT></B><BR>
<b>$usrdir = 'userdata/'; # ユーザデータを格納するフォルダ </b><br>
<FONT color="#FF00FF">
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="4">
$usrdir = 'userdata/'; # ユーザデータを格納するフォルダ
#-ADD-
$nghead = 'NPC'; # npcファイルの接頭子(***0000.dat)
#-END of ADD- SOSWiki0002v3.01-3-7/18
#-END of ADD- SION0002v3.01-3-7/18
</TEXTAREA><BR>
※ 'NPC' の部分は任意に変更して下さい。<BR>
ファイル名を変更せず、デフォルト(ID4桁のみ)を使う場合は Null('')にして下さい。</FONT>
!Parts11
<BR>
<B><FONT color="#0000FF">perl/find.cgi # Sub Find Item # Line:45</FONT></B><BR>
<b>require $itemcreatorpl; ($inm,$idt) = &item_ceator($inm,$idt); </b><Br>
<FONT color="#FF00FF">
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="5">
#-ADD-
#-------- NPC出現 -------------------
if ($idt =~ /Ng/ || $idt =~ /Ms/) {
$ngid = substr($idt,0,4);
$Fm{'pd'} = $nghead . $ngid;
$runtf = substr($idt,4,2);
$runtv = substr($idt,6,2);
if ($sp =~ /Tf/) { $run = $runtf } else { $run = $runtv }
$runrd = int(rand(100) + 1);
&joinitem('i'); &userout;
if ($run >= $runrd ) {
if ($idt =~ /Ms/) { push (@msg,"何かが近づく気配に気付いたので、うまくやり過ごしました。");
$exp += int(rand(5)); }
else { push (@msg,"何物かが草陰から走り去って行きました。"); }
} else {
$find = 'find';
if ($idt =~ /Ms/) {
push (@msg,"<HR>$inm が現れ、戦闘となりました。<HR>");
require $fightpl; &fight; }
else {
push (@msg,"<HR>$inm に出会いました。");
$notfound = 0; }
last; }
return; }
#-END of ADD- SOSWiki0002v3.01-4-8/18
#-END of ADD- SION0002v3.01-4-8/18
require $itemcreatorpl; ($inm,$idt) = &item_ceator($inm,$idt);
</TEXTAREA></FONT><BR>
※ 出会いやすくしたり出会い難くするスキルを追加する場合は、<BR>
$runrd = int(rand(100) + 1); <BR>
の行を改造します。
!Parts12
<BR>
<B><FONT color="#0000FF">perl/form.cgi # Sub Play Form # Line:14-19</FONT></B><BR>
<b> if ( $Fm{'mode'} eq 'find_item' ) {<BR>
require $findpl; srand(time | $$);<BR>
foreach(0 .. ($Fm{'it'} -1)) { undef @founditems; &find_item; } <BR>
}<BR>
#鍛冶<BR>
elsif ( $Fm{'mode'} eq 'smith_after' ) { require $smithpl; &smith_after;
} </b><br>
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="5">
#-EDIT- if ( $Fm{'mode'} eq 'find_item' ) {
# require $findpl; srand(time | $$);
# foreach(0 .. ($Fm{'it'} -1)) { undef @founditems; &find_item; }
# }
##鍛冶
# elsif ( $Fm{'mode'} eq 'smith_after' ) { require $smithpl; &smith_after; }
if ( $Fm{'mode'} eq 'smith_after' ) { require $smithpl; &smith_after; }
#-END of EDIT- SOSWiki0002v3.01-5-9/18
#-END of EDIT- SION0002v3.01-5-9/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">perl/form.cgi # Sub Contact Form # Line:61 </FONT></B> <BR>
<b>if ( $Fm{'mode'} eq 'find_partner' ) { require $anypl; &contact_check } </b><br>
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="5">
#-EDIT- if ( $Fm{'mode'} eq 'find_partner' ) { require $anypl; &contact_check }
if ( $Fm{'mode'} eq 'find_item' ) {
$notfound = 1;
require $findpl; srand(time | $$);
foreach(0 .. ($Fm{'it'} -1)) { undef @founditems; &find_item; }
}
elsif ( $Fm{'mode'} eq 'find_partner' ) { require $anypl; &contact_check }
#-END of ADD- SOSWiki0002v3.01-5-10/18
#-END of ADD- SION0002v3.01-5-10/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Main Program # Line:36</FONT></B><BR>
<b>elsif ($Fm{'mode'} eq 'find_item') { require $formpl; &play_form } </b><br>
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="3">
#-EDIT-elsif ($Fm{'mode'} eq 'find_item') { require $formpl; &play_form }
elsif ($Fm{'mode'} eq 'find_item') { require $formpl; &contact_form }
#-END of EDIT- SOSWiki0002v3.01-5-11/18
#-END of EDIT- SION0002v3.01-5-11/18
</TEXTAREA>
!Parts13
<BR>
<B><FONT color="#0000FF">perl/action.cgi # Sub Contact Action # Line:69</FONT></B><BR>
<b>if ($psp =~ /(V[a-z])/ && $bg !~ /$1/) { &error("$pnmに会うためにはあるアイテムが必要です")
} </b><br>
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="2">
#-DEL- if ($psp =~ /(V[a-z])/ && $bg !~ /$1/) { &error("$pnmに会うためにはあるアイテムが必要です") }
#-END of DEL- SOSWiki0002v3.01-6-12/18
#-END of DEL- SION0002v3.01-6-12/18
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">perl/action.cgi # Sub Contact Action # Line:85</FONT></B><BR>
<b>&OKbuttoninform('on'); </b><br>
<TEXTAREA name="textarea20" cols="100" wrap="OFF" rows="5">
#-ADD-
if ($find || $Fm{'find'}) {
push (@editor,"NPC遭遇 Ver 3.01 <A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'>by SION & SOSWiki</A>");
&input('hidden','find','on','',''); }
#-END of ADD- SOSWiki0002v3.01-6-13/18
#-END of ADD- SION0002v3.01-6-13/18
&OKbuttoninform('on');
</TEXTAREA>
!Parts14
<BR>
<B><FONT color="#0000FF">ufs2.cgi # ------------ USER DIRECTORY Line39<BR>
dollEx 版は不要</FONT></B> <BR>
<b>$usrdir = 'userdata/'; # ユーザデータを格納しているフォルダ </b><br>
<TEXTAREA name="textarea19" cols="100" wrap="OFF" rows="4">
$usrdir = 'userdata/'; # ユーザデータを格納しているフォルダ
#-ADD-
$nghead = 'NPC'; # npcファイルの接頭子(***0000.dat)
#-END of ADD- SOSWiki0002v3.01-7-14/18
#-END of ADD- SION0002v3.01-7-14/18
</TEXTAREA><BR>
※ 改造ポイント03に併せて下さい。 <BR><BR><BR>
<B><FONT color="#0000FF">ufs2.cgi # Sub Make From # Line576 </FONT></B><BR>
<B><FONT color="#0000FF">ufs/make.cgi # Sub Make From # Line:6</FONT></B><BR>
<b>print qq|<tr><td>名前</td><td><input type=text name=name></td></tr>\n|; </b><Br>
<TEXTAREA name="textarea19" cols="100" wrap="OFF" rows="4">
#-ADD-
print qq|<tr><td colspan=2><input type=checkbox name=npc> NPC</td></tr>\n|;
#-END of ADD- SOSWiki0002v3.01-7-15/18
#-END of ADD- SION0002v3.01-7-15/18
print qq|<tr><td>名前</td><td><input type=text name=name></td></tr>\n|;
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">ufs2.cgi # Sub Made From # Line605</FONT></B><BR>
<B><FONT color="#0000FF">ufs/make.cgi # Sub Made From # Line:33</FONT></B><BR>
<b>while (-e "$usrdir$id\.dat") { $id++; $id = sprintf("%04d",$id) } </b><br>
<TEXTAREA name="textarea19" cols="100" wrap="OFF" rows="5">
#-EDIT- while (-e "$usrdir$id\.dat") { $id++; $id = sprintf("%04d",$id) }
if (!$Fm{'npc'}) { while (-e "$usrdir$id\.dat") { $id++; $id = sprintf("%04d",$id) }
} else {
while (-e "$usrdir$nghead$id\.dat") { $id++; $id = sprintf("%04d",$id) }
$id = $nghead . $id;
if ($jsp !~ /Ng/) { $jsp .= 'Ng'; }
}
#-END of EDIT- SOSWiki0002v3.01-7-16/18
#-END of EDIT- SION0002v3.01-7-16/18
</TEXTAREA><BR>
<FONT color="#FF00FF">※ 必要に応じ、.dat を .cgi に修正して下さい(3箇所)</FONT><BR><BR><BR>
<B><FONT color="#0000FF">ufs2.cgi # Sub Make Free # Line620</FONT></B> <BR>
<B><FONT color="#0000FF">ufs/make.cgi # Sub Make Free # Line:46</FONT></B><BR>
<b>print qq|<tr><td>名前</td><td><input type=text name=name></td></tr>\n|; </b><br>
<TEXTAREA name="textarea19" cols="100" wrap="OFF" rows="4">
#-ADD-
print qq|<tr><td colspan=2><input type=checkbox name=npc> NPC</td></tr>\n|;
#-END of ADD- SOSWiki0002v3.01-7-17/18
#-END of ADD- SION0002v3.01-7-17/18
print qq|<tr><td>名前</td><td><input type=text name=name></td></tr>\n|;
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">ufs2.cgi # Sub Made Free # Line647</FONT></B><BR>
<B><FONT color="#0000FF">ufs/make.cgi # Sub Made Free # Line:73 </FONT></B><BR>
<b>while (-e "$usrdir$id\.dat") { $id++; $id = sprintf("%04d",$id) } </b><br>
<TEXTAREA name="textarea19" cols="100" wrap="OFF" rows="5">
#-EDIT- while (-e "$usrdir$id\.dat") { $id++; $id = sprintf("%04d",$id) }
if (!$Fm{'npc'}) {
while (-e "$usrdir$id\.dat") { $id++; $id = sprintf("%04d",$id) }
} else {
while (-e "$usrdir$nghead$id\.dat") { $id++; $id = sprintf("%04d",$id) }
$id = $nghead . $id;
if ($Fm{'sp'} !~ /Ng/) { $Fm{'sp'} .= 'Ng'; }
}
#-END of EDIT- SOSWiki0002v3.01-7-18/18
#-END of EDIT- SION0002v3.01-7-18/18
</TEXTAREA><BR>
<FONT color="#FF00FF">※ 必要に応じ、.dat を .cgi に修正して下さい(3箇所)</FONT>
!Parts15
NPCとの遭遇データを設定します。<br>
<P><B><FONT color="#0000FF">itm.dat 任意の場所に追加</FONT> ( dollEx ver の場合は、dat/itm.cgi )</B></P>
<P><FONT color="#FF0000"><B>NPC名<>8桁のステータス+Ng<>出現割合<></B></FONT> として、NPCを設置するか、または<BR>
<FONT color="#FF0000"><B>NPC名<>8桁のステータス+Ms<>出現割合<></B></FONT> として、モンスタを設置します。</P>
<P><B><FONT color="#FF0000">NPC</FONT><FONT color="#FF0000">名</FONT></B><BR>
例えば「キメラ」の場合、「キメラ」と設定しても構いませんが、「鳥の様なモンスター」と設定しても面白いでしょう。 </P>
<P><FONT color="#FF0000"><B>ステータス(1〜4桁目)</B></FONT><BR>
NPCのIDの数値部分4桁を設定します。<BR>
実際のNPC-IDは、改造ポイント3で設定した $nghead+このID4桁 となります。</P>
<P><FONT color="#FF0000"><B>ステータス(5〜6桁目)</B></FONT><BR>
戦闘系キャラ(Tf)の場合の、逃げる(またはNPCに逢い損ねる)確率を設定します。 </P>
<P><B><FONT color="#FF0000">ステータス(7〜8桁目)</FONT></B><BR>
非戦闘系キャラ(Tfが無い)の場合の、逃げる(またはNPCに逢い損ねる)確率を設定します。 </P>
<P> <B><FONT color="#FF0000">Ms</FONT></B><BR>
遭遇した場合、強制的に戦闘を開始します。Ng より優先されます。</P>
<P><B><FONT color="#FF0000">Ng</FONT> </B> <BR>
Ms が設定されていない場合には、そのNPCとの遭遇画面となります。</P>
<P><B><FONT color="#FF0000">出現割合には、そのNPCに出会う確率値を入れます。</FONT></B>通常のアイテムと同様に設定して下さい。 <BR><BR></P>
<P><FONT color="#0000FF"><B>ufs2.cgi を使用して設定する事も可能です。 </B></FONT> </P>
<P>この場合、次の様に設定して下さい。</P>
<P>アイテム名 ⇒ NPC名<BR>
買取価格 ⇒ ステータス 1〜4桁目<BR>
属性 ⇒ Ms 又は Ng<BR>
攻撃値 ⇒ ステータス 5〜6桁目<BR>
防御値 ⇒ ステータス 7〜8桁目<BR>
発見確率 ⇒ 出現割合 </P>
!Parts16
NPCデータを作成します。<br>
<P><FONT color="#0000FF"><B><FONT color="#0000FF">通常の「キャラクタを作る手順」で作成して構いません。</FONT></B></FONT></P>
<P><FONT color="#0000FF"><B>ufs2.cgi を使用して作成する場合には、NPCのチェックボックスをONにして作成して下さい。</B></FONT><BR>
この場合、自動的に キャラスキルフラグに Ng が追加されます。</P>
!Parts17
<BR>
<B><FONT color="#0000FF">sos2.cgi # Sub fight # Line:1662</FONT></B><BR>
<B><FONT color="#0000FF">perl/fight.cgi # Sub fight # Line:172</FONT></B><BR>
<b>$bp = $bn = $pbp = $pbn = ''; $plf = $id; </b><br>
<TEXTAREA name="textarea" cols="100" wrap="OFF" rows="5"> $bp = $bn = $pbp = $pbn = ''; $plf = $id;
#-ADD-
if ($psp =~ /Ng/) {
if ($psp =~ /KIL(\d\d\d\d)/ && $pav =~ /dead/) { $mn += $1; push(@msg,"モンスターは $1 Gを落とした!"); }
elsif ($psp =~ /MNY(\d\d\d\d)/ && $result == 1) { $mn += $1; push(@msg,"モンスターは $1 Gを落とした!"); }
}
#-END of ADD- SION0002v3.01-10-add
</TEXTAREA><BR>
KIL0000 フラグを追加したNPCを「殺害」すると 0000 G入手出来る。<BR>
MNY0000 フラグを追加したNPCに「勝利」すると 0000 G入手出来る。<BR>
いずれも、ゲーム内の所持金流通量を増加させるため、ゲームバランスの調整が難しくお奨めではありません。<BR>
最低限、乱用はさけ、また入手できる金額も抑えましょう。<BR>