「ネット航海時代の改造」の編集履歴(バックアップ)一覧はこちら
ネット航海時代の改造 - (2010/09/11 (土) 09:38:55) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
<h3 id="id_c0c59542"><span style="color:rgb(255,0,0);">自分で考えたい人のために例は白文字にしています。</span></h3>
<div>一応コピペじゃ動作しないようにしてるから自力で頑張ってね。簡単に動くけど。<br />
挿入場所も自力で考えてね。</div>
<p> </p>
<div>
なお付け焼刃の知識&昔遊んだ改造から掘り起こしているプログラムのため間違いや、もっとスマートな方法、文法があるかもしれないのであしからず。</div>
<p> </p>
<h2 id="id_9961a0c4">Lvがあがった場合に表示する</h2>
<div>簡単な方法としてsys.cgiの個人データに変数を追加し、Lvを記録させる。<br />
記録したLvと現在のLvを比較し上がったなら文字列を表示させる。<br />
これで出来ます。</div>
<p> </p>
<div>例<br /><span style="color:rgb(255,255,255);">if($現在冒険Lv >
$記録した冒険Lv){&msg$記録した冒険Lv=$冒険Lv}</span></div>
<p> </p>
<h2 id="id_977e517e">履歴に時間と分を追加する</h2>
<div>日付取得のsubの日付に時間と分を追加する。</div>
<p> </p>
<div>例<br /><span style="color:rgb(255,255,255);">$日付 = sprintf("%04d\/%02d\/%02d\
%02d\:%02d",$year,$month,$day,$時間,$分)</span></div>
<p> </p>
<h2 id="id_f9fcf888">クリア済の冒険を終了表示にする</h2>
<div>終了済みクエストと該当クエストを比較し含んでいれば終了表示にする。<br />
例<br /><span style="color:rgb(255,255,255);">if($終了済みクエスト【比較演算子】/$file/){print
qq|<input type=radio name=goods value="$_"$checked>終了済み $price
G<br>|}else{print qq|<input type=radio name=goods
value="$_"$checked>$price G<br>|}</span><br />
これを弄れば終了済みは表示しない、選択出来ないようにする等も出来ます。</div>
<p> </p>
<h2 id="id_4b80c17e">港一覧に現在地を表示する</h2>
<div>港リストから飛ばす処理をしている場所を弄ります。</div>
<p> </p>
<div>例<br /><span style="color:rgb(255,255,255);">if ($港 == $現在港) {print qq|<input
type=否選択ラジオボタン>$港(現在地)<br>\n|next;}</span><br />
同様に沖も処理。</div>
<p> </p>
<h2 id="id_2df49a9a">CPUを作ってみる</h2>
<div>CPUはユーザーをCPUとして処理することで作成できます。<br />
場合によってはプログラムのみでも可(船にダメージを与える処理など)。<br />
CPUデータの読み込みと書き込みを忘れないように気をつけてください。</div>
<p> </p>
<div>CPUをストーカーさせてみる。これは簡単。ターゲット対象の処理は自分で考えてね<br />
港の数値を弄れば沖のみ移動になります。<br /><span style="color:rgb(255,255,255);">$uarea=$area $uport=$port</span></div>
<p> </p>
<div>沖移動のみで待機させてみる。<br /><span style="color:rgb(255,255,255);">$ulast=$last if($ulast>$umoved){$uarea=$area<br />
$uport=""<br />
$umoved=$moved+待機時間}<br />
&set_u<br /></span></div>
<p> </p>
<div>
<p>移動、待機、戦闘を選択させてみる。<br />
ここでは沖移動なので沖に居ない場合は攻撃しないように処理を加える。<br /><span style="color:rgb(255,255,255);">$ulast=$last:if($ulast>$umoved){$アクション=int(rand(2))<br />
if($アクション==0){$uarea=$area;$uport="":$umoved=$moved+600<br />
}elsif($アクション==1 && $area == $uarea &&
!港にいない){&NPCとの戦闘処理<br />
}else{$umoved=time+60;}}</span></p>
<p> </p>
<p>戦闘処理</p>
<p><font color="#FFFFFF">sub 戦闘処理{<br />
&船データの読み込み;<br />
&msg("NPC襲撃告知<br>")<br />
for($攻撃回数=0;$攻撃回数<最大攻撃回数;$攻撃回数++){<br />
my $CPUの攻撃力 = 1+int(rand(1));<br />
$攻撃対象 = int(rand(@ship));<br />
$攻撃対象のHP = $ship[$攻撃対象][2] - $攻撃力<br />
if ($攻撃対象のHP <= 0) {&msg("<font
color=\"#FF0000\">$ship[$攻撃対象][4]を撃沈されました!</font>");<br />
&add_record("CPUに撃沈された告知 撃沈された船の告知:$ship[$攻撃対象][4]")<br />
&i_lost;<br />
undef @ship_ind;<br />
return if @ship < 0;<br />
foreach (0 .. $#ship) {<br />
next if !$ship[$_][0];<br />
push(@ship_ind ,
"$ship[$_][0],$ship[$_][1],$ship[$_][2],$ship[$_][3],$ship[$_][4]");}<br />
return if $#ship < 0;<br />
} else {<br />
splice(@ship_ind, $攻撃対象 , 1 ,
"$ship[$攻撃対象][0],$ship[$攻撃対象][1],$攻撃対象のHP,$ship[$攻撃対象][3],$ship[$攻撃対象][4]");<br />
&msg("<font color=\"#FF0000\">$ship[$攻撃対象][4]を攻撃されました! $攻撃力
ptのダメージを受けました!</font>");<br />
}}}</font></p>
<p> <br /><br />
最終更新 2010/09/11 9:37 眠いから寝る(´・ω・`)</p>
</div>
<h3 id="id_c0c59542"><span style="color:rgb(255,0,0);">自分で考えたい人のために例は白文字にしています。</span></h3>
<div>一応コピペじゃ動作しないようにしてるから自力で頑張ってね。簡単に動くけど。<br />
挿入場所も自力で考えてね。</div>
<p> </p>
<div>
なお付け焼刃の知識&昔遊んだ改造から掘り起こしているプログラムのため間違いや、もっとスマートな方法、文法があるかもしれないのであしからず。</div>
<p> </p>
<h2 id="id_9961a0c4">Lvがあがった場合に表示する</h2>
<div>簡単な方法としてsys.cgiの個人データに変数を追加し、Lvを記録させる。<br />
記録したLvと現在のLvを比較し上がったなら文字列を表示させる。<br />
これで出来ます。</div>
<p> </p>
<div>例<br /><span style="color:rgb(255,255,255);">if($現在冒険Lv >
$記録した冒険Lv){&msg$記録した冒険Lv=$冒険Lv}</span></div>
<p> </p>
<h2 id="id_977e517e">履歴に時間と分を追加する</h2>
<div>日付取得のsubの日付に時間と分を追加する。</div>
<p> </p>
<div>例<br /><span style="color:rgb(255,255,255);">$日付 = sprintf("%04d\/%02d\/%02d\
%02d\:%02d",$year,$month,$day,$時間,$分)</span></div>
<p> </p>
<h2 id="id_f9fcf888">クリア済の冒険を終了表示にする</h2>
<div>終了済みクエストと該当クエストを比較し含んでいれば終了表示にする。<br />
例<br /><span style="color:rgb(255,255,255);">if($終了済みクエスト【比較演算子】/$file/){print
qq|<input type=radio name=goods value="$_"$checked>終了済み $price
G<br>|}else{print qq|<input type=radio name=goods
value="$_"$checked>$price G<br>|}</span><br />
これを弄れば終了済みは表示しない、選択出来ないようにする等も出来ます。</div>
<p> </p>
<h2 id="id_4b80c17e">港一覧に現在地を表示する</h2>
<div>港リストから飛ばす処理をしている場所を弄ります。</div>
<p> </p>
<div>例<br /><span style="color:rgb(255,255,255);">if ($港 == $現在港) {print qq|<input
type=否選択ラジオボタン>$港(現在地)<br>\n|next;}</span><br />
同様に沖も処理。</div>
<p> </p>
<h2 id="id_2df49a9a">CPUを作ってみる</h2>
<div>CPUはユーザーをCPUとして処理することで作成できます。<br />
場合によってはプログラムのみでも可(船にダメージを与える処理など)。<br />
CPUデータの読み込みと書き込みを忘れないように気をつけてください。</div>
<p> </p>
<div>CPUをストーカーさせてみる。これは簡単。ターゲット対象の処理は自分で考えてね<br />
港の数値を弄れば沖のみ移動になります。<br /><span style="color:rgb(255,255,255);">$uarea=$area $uport=$port</span></div>
<p> </p>
<div>沖移動のみで待機させてみる。<br /><span style="color:rgb(255,255,255);">$ulast=$last if($ulast>$umoved){$uarea=$area<br />
$uport=""<br />
$umoved=$moved+待機時間}<br />
&set_u<br /></span></div>
<p> </p>
<div>
<p>移動、待機、戦闘を選択させてみる。<br />
ここでは沖移動なので沖に居ない場合は攻撃しないように処理を加える。<br /><span style="color:rgb(255,255,255);">$ulast=$last:if($ulast>$umoved){$アクション=int(rand(2))<br />
if($アクション==0){$uarea=$area;$uport="":$umoved=$moved+600<br />
}elsif($アクション==1 && $area == $uarea &&
!港にいない){&NPCとの戦闘処理<br />
}else{$umoved=time+60;}}</span></p>
<p> </p>
<p>戦闘処理(攻撃対象のみダメージ)</p>
<p><font color="#FFFFFF">sub 戦闘処理{<br />
&船データの読み込み;<br />
&msg("NPC襲撃告知<br>")<br />
for($攻撃回数=0;$攻撃回数<最大攻撃回数;$攻撃回数++){<br />
my $CPUの攻撃力 = 1+int(rand(1));<br />
$攻撃対象 = int(rand(@ship));<br />
$攻撃対象のHP = $ship[$攻撃対象][2] - $攻撃力<br />
if ($攻撃対象のHP <= 0) {&msg("<font
color=\"#FF0000\">$ship[$攻撃対象][4]を撃沈されました!</font>");<br />
&add_record("CPUに撃沈された告知 撃沈された船の告知:$ship[$攻撃対象][4]")<br />
&i_lost;<br />
undef @ship_ind;<br />
return if @ship < 0;<br />
foreach (0 .. $#ship) {<br />
next if !$ship[$_][0];<br />
push(@ship_ind ,
"$ship[$_][0],$ship[$_][1],$ship[$_][2],$ship[$_][3],$ship[$_][4]");}<br />
return if $#ship < 0;<br />
} else {<br />
splice(@ship_ind, $攻撃対象 , 1 ,
"$ship[$攻撃対象][0],$ship[$攻撃対象][1],$攻撃対象のHP,$ship[$攻撃対象][3],$ship[$攻撃対象][4]");<br />
&msg("<font color=\"#FF0000\">$ship[$攻撃対象][4]を攻撃されました! $攻撃力
ptのダメージを受けました!</font>");<br />
}}}</font></p>
<p> <br /><br />
最終更新 2010/09/11 9:37 眠いから寝る(´・ω・`)</p>
</div>