SION0002
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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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- 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>