トップ 一覧 検索 ヘルプ RSS ログイン

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 &gt; 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 &lt; 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,&quot;$pnmとは暫く戦えません&quot;); return }
	if ($plf eq $id &amp;&amp; !$find) { push (@msg,&quot;$pnmとは暫く戦えません&quot;); 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,&quot;NPC遭遇(モンスター遭遇) Ver 3.00 &lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&gt;by SION & SOSWiki&lt;/A&gt;&quot;); }
	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 &amp;&amp; !$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 &amp;&amp; $pitems[$Sidice]) {
			&amp;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,&quot;$item△$sts&quot;);
				$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/;
				&amp;joinitem('iI'); &amp;fmsg('奪');
			}
		}
#-ADD-
	} else {
		if ($itemchance &amp;&amp; $items[$Sidice]) {
			&amp;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,&quot;$item△$sts&quot;);
				$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/;
				&amp;joinitem('iI'); &amp;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">
			  '奪',&quot;$pnmから$itemを奪いました&quot;,
#-ADD-
			  '失',&quot;$pnm に $itemを奪われました&quot;,
#-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 &gt;= $runrd ) {
			if ($idt =~ /Ms/) {
				push (@msg,&quot;何かが近づく気配に気付いたので、うまくやり過ごしました。&quot;);
				$exp += int(rand(5));	}
			else {
				push (@msg,&quot;何物かが草陰から走り去って行きました。&quot;); }
		} else {
			$find = 'find';
			&amp;joinitem('i'); &amp;userout;
			$getuserflag = 0;
			if ($idt =~ /Ms/) {
				push (@msg,&quot;&lt;HR&gt;$inm が現れ、戦闘となりました。&lt;HR&gt;&quot;);
				&amp;fight; }
			else {
				push (@msg,&quot;&lt;HR&gt;$inm に出会いました。&quot;);
				$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,&quot;$inm△$idt&quot;); &amp;joinitem('i') }
</TEXTAREA></FONT><BR>
※ 出会いやすくしたり出会い難くするスキルを追加する場合は、<BR>
$runrd = int(rand(100) + 1); の行を改造します。<BR>
<FONT color="#FF0000">※ 複数回探索を取り入れている場合には、1つ目の return を last に書き換えて下さい。 <BR>
また、foreach のループの外にある &amp;userout; は、if (!$find) { &amp;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-	&amp;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; &amp;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')	{ &amp;play_form	}
elsif ($Fm{'mode'} eq 'find_item')	{ &amp;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;
#        &amp;splititem('i');
#        foreach (@items) {
#            $right = 1 if (split(/△/))[1] =~ /$vflag/;
#        }
#        if (!$right) {
#            &amp;error(&quot;$pnmに会うためにはあるアイテムが必要です&quot;);
#        }
#    }
	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,&quot;NPC遭遇 Ver 3.00 &lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&gt;by SION & SOSWiki&lt;/A&gt;&quot;);
		&amp;input('hidden','find','on','',''); }
#-END of ADD- SION0002v3.01-6-13/18
	&amp;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 &lt; 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) = &amp;fight_check;
	if (!$find &amp;&amp; !$Fm{'find'}) { my($afgt_chk,$afck_msg) = &amp;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,&quot;NPC遭遇(モンスター遭遇) Ver 3.00 &lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&gt;by SION & SOSWiki&lt;/A&gt;&quot;);
	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 &amp;&amp; !$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 &amp;&amp; $pitems[$Sidice]) {
			&amp;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,&quot;$item△$sts&quot;);
				$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/$_// } }
				&amp;joinitem('iI'); &amp;fmsg('奪');
			}
		}
#-ADD-
	} else {
		if ($itemchance &amp;&amp; $items[$Sidice]) {
			&amp;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,&quot;$item△$sts&quot;);
				$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/$_// } }
				&amp;joinitem('iI'); &amp;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">
			  '奪',&quot;$pnmから$itemを奪いました&quot;,
#-ADD-
			  '失',&quot;$pnm に $itemを奪われました&quot;,
#-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);
		&amp;joinitem('i'); &amp;userout;
		if ($run &gt;= $runrd ) {
			if ($idt =~ /Ms/) { push (@msg,&quot;何かが近づく気配に気付いたので、うまくやり過ごしました。&quot;);
				$exp += int(rand(5)); }
			else              { push (@msg,&quot;何物かが草陰から走り去って行きました。&quot;); }
		} else {
			$find = 'find';
			if ($idt =~ /Ms/) {
				push (@msg,&quot;&lt;HR&gt;$inm が現れ、戦闘となりました。&lt;HR&gt;&quot;);
				require $fightpl; &amp;fight; }
			else {
				push (@msg,&quot;&lt;HR&gt;$inm に出会いました。&quot;);
				$notfound = 0; }
			last; }
		return; }
#-END of ADD- SION0002v3.01-4-8/18
	require $itemcreatorpl; ($inm,$idt) = &amp;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; &amp;find_item; }
#	}
##鍛冶
#	elsif ( $Fm{'mode'} eq 'smith_after' ) { require $smithpl; &amp;smith_after; }
	if ( $Fm{'mode'} eq 'smith_after' ) { require $smithpl; &amp;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; &amp;contact_check }
	if ( $Fm{'mode'} eq 'find_item' ) {
		$notfound = 1; 
		require $findpl; srand(time | $$);
		foreach(0 .. ($Fm{'it'} -1)) { undef @founditems; &amp;find_item; }
	}
	elsif ( $Fm{'mode'} eq 'find_partner' ) { require $anypl; &amp;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; &amp;play_form }
elsif ($Fm{'mode'} eq 'find_item') { require $formpl; &amp;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])/ &amp;&amp; $bg !~ /$1/) { &amp;error(&quot;$pnmに会うためにはあるアイテムが必要です&quot;) }
#-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,&quot;NPC遭遇 Ver 3.01 &lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&gt;by SION & SOSWiki&lt;/A&gt;&quot;);
		&amp;input('hidden','find','on','',''); }
#-END of ADD- SION0002v3.01-6-13/18
	&amp;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|&lt;tr>&lt;td>名前&lt;/td>&lt;td>&lt;input type=text name=name>&lt;/td>&lt;/tr>\n|; </b><Br>
<TEXTAREA name="textarea19" cols="100" wrap="OFF" rows="4">
#-ADD-
	print qq|&lt;tr&gt;&lt;td colspan=2&gt;&lt;input type=checkbox name=npc&gt; NPC&lt;/td&gt;&lt;/tr&gt;\n|;
#-END of ADD- SION0002v3.01-7-15/18
	print qq|&lt;tr&gt;&lt;td&gt;名前&lt;/td&gt;&lt;td&gt;&lt;input type=text name=name&gt;&lt;/td&gt;&lt;/tr&gt;\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 &quot;$usrdir$id\.dat&quot;) { $id++; $id = sprintf(&quot;%04d&quot;,$id) }
	if (!$Fm{'npc'}) { while (-e &quot;$usrdir$id\.dat&quot;) { $id++; $id = sprintf(&quot;%04d&quot;,$id) }
	} else {
		while (-e &quot;$usrdir$nghead$id\.dat&quot;) { $id++; $id = sprintf(&quot;%04d&quot;,$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|&lt;tr>&lt;td>名前&lt;/td>&lt;td>&lt;input type=text name=name>&lt;/td>&lt;/tr>\n|; </b><br>
<TEXTAREA name="textarea19" cols="100" wrap="OFF" rows="4">
#-ADD-
	print qq|&lt;tr&gt;&lt;td colspan=2&gt;&lt;input type=checkbox name=npc&gt; NPC&lt;/td&gt;&lt;/tr&gt;\n|;
#-END of ADD- SION0002v3.01-7-17/18
	print qq|&lt;tr&gt;&lt;td&gt;名前&lt;/td&gt;&lt;td&gt;&lt;input type=text name=name&gt;&lt;/td&gt;&lt;/tr&gt;\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 &quot;$usrdir$id\.dat&quot;) { $id++; $id = sprintf(&quot;%04d&quot;,$id) }
	if (!$Fm{'npc'}) {
		while (-e &quot;$usrdir$id\.dat&quot;) { $id++; $id = sprintf(&quot;%04d&quot;,$id) }
	} else {
		while (-e &quot;$usrdir$nghead$id\.dat&quot;) { $id++; $id = sprintf(&quot;%04d&quot;,$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)/ &amp;&amp; $pav =~ /dead/) { $mn += $1; push(@msg,&quot;モンスターは $1 Gを落とした!&quot;); }
		elsif ($psp =~ /MNY(\d\d\d\d)/ &amp;&amp; $result == 1) { $mn += $1; push(@msg,&quot;モンスターは $1 Gを落とした!&quot;); }
	}
#-END of ADD- SION0002v3.01-10-add
</TEXTAREA><BR>
KIL0000 フラグを追加したNPCを「殺害」すると 0000 G入手出来る。<BR>
MNY0000 フラグを追加したNPCに「勝利」すると 0000 G入手出来る。<BR>
 いずれも、ゲーム内の所持金流通量を増加させるため、ゲームバランスの調整が難しくお奨めではありません。<BR>
最低限、乱用はさけ、また入手できる金額も抑えましょう。<BR>