<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>仮ぶろぐ &#187; rpg</title>
	<atom:link href="http://plusb.jp/blog/?feed=rss2&#038;tag=rpg" rel="self" type="application/rss+xml" />
	<link>http://plusb.jp/blog</link>
	<description>今更なことをそれでもつらづらと書くブログ</description>
	<lastBuildDate>Tue, 07 May 2013 09:06:48 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>dq(rpg) 2011-08-20</title>
		<link>http://plusb.jp/blog/?p=775</link>
		<comments>http://plusb.jp/blog/?p=775#comments</comments>
		<pubDate>Sat, 20 Aug 2011 14:38:57 +0000</pubDate>
		<dc:creator>M. K.</dc:creator>
				<category><![CDATA[dq]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[rpg]]></category>

		<guid isPermaLink="false">http://plusb.jp/blog/?p=775</guid>
		<description><![CDATA[ナイトリービルドを更新。 NPCのイベント処理を追加して、ローラ姫を救出出来るようにしました。 既知の不具合を修正したら、0.6のリリースしようかと。 NPCと自動戦闘可能にしました。 NPCの表示・非表示をフラグで指定 &#8230; <a href="http://plusb.jp/blog/?p=775">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ナイトリービルドを更新。<br />
NPCのイベント処理を追加して、ローラ姫を救出出来るようにしました。<br />
既知の不具合を修正したら、0.6のリリースしようかと。<br />
<span id="more-775"></span></p>
<ol>
<li>NPCと自動戦闘可能にしました。</li>
<li>NPCの表示・非表示をフラグで指定可能にしました。</li>
<li>NPCの移動APIを追加</li>
<li>戦闘時のメッセージ表示を改善</li>
<li>メッセージにスクリプト指定に対応</li>
<li>ジングルの再生遅延を改善</li>
</ol>
<p><a href="http://plusb.jp/blog/wp-content/uploads/2011/08/nantara.png"><img src="http://plusb.jp/blog/wp-content/uploads/2011/08/nantara.png" alt="" title="ローラ救出" width="245" height="215" class="alignnone size-full wp-image-776" /></a><br />
<a href="http://plusb.jp/dqfw/">ナイトリービルド</a>を更新。<br />
<a href="http://plusb.jp/dqfw/samples/rpg_learning.html">習作</a></p>
<p>補足ですが、キャッシュが効いている場合に<code>CTRL+R</code>などでページを再読み込みする必要があります。</p>
]]></content:encoded>
			<wfw:commentRss>http://plusb.jp/blog/?feed=rss2&#038;p=775</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dq(rpg) 2011-07-21</title>
		<link>http://plusb.jp/blog/?p=710</link>
		<comments>http://plusb.jp/blog/?p=710#comments</comments>
		<pubDate>Thu, 21 Jul 2011 16:37:05 +0000</pubDate>
		<dc:creator>M. K.</dc:creator>
				<category><![CDATA[dq]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ゲーム作成]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[rpg]]></category>

		<guid isPermaLink="false">http://plusb.jp/blog/?p=710</guid>
		<description><![CDATA[ナイトリービルドを更新。 ロトの鎧を実装しました。 これまでロトの鎧を実装しようとして、手が止まっていました。ロトの鎧を装備すると沼のダメージが無くなり、魔法系のダメージが半減されます。 使い捨てのコードならダメージ処理 &#8230; <a href="http://plusb.jp/blog/?p=710">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ナイトリービルドを更新。<br />
ロトの鎧を実装しました。<br />
<span id="more-710"></span><br />
これまでロトの鎧を実装しようとして、手が止まっていました。ロトの鎧を装備すると沼のダメージが無くなり、魔法系のダメージが半減されます。<br />
使い捨てのコードならダメージ処理でハードコーディングすれば良いのですが、フレームワークとして出来れば汎用的に実装したい。<br />
たぶん、ダメージ判定後に装備に対して補正を要求すれば良いのかな。</p>
<pre>
DQ.RPG.DamageType = { Unknown: 0, Pysical: 1, Magic: 2, Fire: 3, Water: 4, Erth: 5, Wind: 6, Sander: 7, Light: 8, Dark: 9, Swamp: 10, Baria:11 }
Player.prototype.gainDamage = function(damage, type) {
   for(var i = 0 ; i &lt; this._equipmentIDs.length ; i++ ) {
       var equip = world.items[this._equipmentIDs[i].uid];
       damage = equip.gainDamage(damage, type);
   }
   return damage;
}

storategys['roro'] = roro_storategy;

roro_storategy.prototype.gainDamage = function(damage, type) {
   var dm = DQ.RPG.DamageType;
   swich(type) {
       dm.Magic:
       dm.Fire:
           dm /= 2;
           break;
       dm.Swamp:
       dm.Baria:
           dm = 0;
           break;
   }
   return dm;
}
</pre>
<p>沼なら</p>
<p>・・・それから３日後</p>
<p>装備することで一時状態を追加すれば、良いのではないでしょうか。<br />
呪われた装備なら、カースを追加。カース状態中は装備を外せないが、カースを解除されると装備も外せると。</p>
<p>「浮いている」なら、スパイクや沼やバリア無効。</p>
<p>ロトを装備している「状態」なら魔法や火を半減、ダメージを受けるチップ（沼、バリア）無効。</p>
<p>装備に equipメソッドとremoveメソッドを追加します。</p>
<pre>
DQ.RPG.Item.prototype = {
  equip: functon(type, to) {
    to.temporary.push(
        new DQ.RPG.State(world.statuses.find("uid", 10009)));
  },
  remove: function() {
  }
}
</pre>
<p>特殊な装備は装備したときに状態を追加します。</p>
<p>DQ1では、呪われていると王様の台詞が変化します。呪われたらフラグを立てる方法が単純ですが、<br />
プレイヤーが呪われた状態かを調べる方法もありです。</p>
<pre>
Player.hasStatus = function(uid) {
}
</pre>
<p>チップによるイベントでは、状態によるisAvoid()判定とgainDamage()判定を実施します。<br />
スパイクでのダメージの場合、luckにより回避が発生する仕組みも実装できます。</p>
<pre>
Player.prototype.isAvoid(type) {
}
Player.prototype.gainDamage(dmg, type) {
}

Status.prototype.isAvoid(type) {
}
Status.prototype.gainDamage(dmg, type0 {
}
</pre>
<p>標準で提供されていない状態や装備は後から追加可能にします。<br />
今でも、種類毎にストラテジーを選択する仕組みが実装されていますが、いっそのことUID別の<br />
テーブルがあれば、そこからストラテジーを選択出来るようにして拡張毎のストラテジーを後から<br />
追加出来るようにすればよいのではないでしょうか。</p>
<pre>
DQ.RPG.State.Roro = function() {
}
DQ.RPG.State.table.push({uid: 10009, strategy: DQ.RPG.State.Roro});
</pre>
<p><a href="http://plusb.jp/dqfw/">ナイトリービルド</a>を更新。<br />
<a href="http://plusb.jp/dqfw/samples/rpg_learning.html">RPG 習作</a>(<a href="http://plusb.jp/dqfw/samples/rpg_learning.html?debug=true">debug</a>)<br />
<a href="http://plusb.jp/dqfw/samples/bt_test.html">戦闘テスト</a><br />
<a href="http://plusb.jp/dqfw/samples/message_editor.html">メッセージエディター</a></p>
<p>補足ですが、キャッシュが効いている場合に<code>CTRL+R</code>などでページを再読み込みする必要があります。</p>
]]></content:encoded>
			<wfw:commentRss>http://plusb.jp/blog/?feed=rss2&#038;p=710</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dq(rpg) 2011-07-10</title>
		<link>http://plusb.jp/blog/?p=659</link>
		<comments>http://plusb.jp/blog/?p=659#comments</comments>
		<pubDate>Sun, 10 Jul 2011 17:37:08 +0000</pubDate>
		<dc:creator>M. K.</dc:creator>
				<category><![CDATA[dq]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ゲーム作成]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[rpg]]></category>

		<guid isPermaLink="false">http://plusb.jp/blog/?p=659</guid>
		<description><![CDATA[ナイトリービルドを更新。 メッセージエディターを作成しました。 足下を調べられるようにしました。アイテムに「だいじなもの」を反映。 調べなければ発生しないイベントとしてsecretを追加しました。イベントの処理は宝箱とほ &#8230; <a href="http://plusb.jp/blog/?p=659">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ナイトリービルドを更新。<br />
メッセージエディターを作成しました。<br />
足下を調べられるようにしました。アイテムに「だいじなもの」を反映。<br />
<span id="more-659"></span><br />
調べなければ発生しないイベントとして<code>secret</code>を追加しました。イベントの処理は宝箱とほぼ同じで、イベントで設定されたアイテムを入手します。<br />
アイテムの分類として「だいじなもの」は、進行が行き詰まらないように捨てたり、売ったり出来ないものです。<br />
メッセージは、直接表示することをjsonからIDを元に表示する事も出来ます。jsonの場合は多言語を想定していますが、エディターで編集できるのは今のところjaのみです。</p>
<p><a href="http://plusb.jp/dqfw/">ナイトリービルド</a>を更新。<br />
<a href="http://plusb.jp/dqfw/samples/rpg_learning.html">RPG 習作</a>(<a href="http://plusb.jp/dqfw/samples/rpg_learning.html?debug=true">debug</a>)<br />
<a href="http://plusb.jp/dqfw/samples/bt_test.html">戦闘テスト</a><br />
<a href="http://plusb.jp/dqfw/samples/message_editor.html">メッセージエディター</a></p>
<p>補足ですが、キャッシュが効いている場合に<code>CTRL+R</code>などでページを再読み込みする必要があります。</p>
]]></content:encoded>
			<wfw:commentRss>http://plusb.jp/blog/?feed=rss2&#038;p=659</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dq(rpg) 2011-0704</title>
		<link>http://plusb.jp/blog/?p=656</link>
		<comments>http://plusb.jp/blog/?p=656#comments</comments>
		<pubDate>Mon, 04 Jul 2011 16:26:55 +0000</pubDate>
		<dc:creator>M. K.</dc:creator>
				<category><![CDATA[dq]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[rpg]]></category>

		<guid isPermaLink="false">http://plusb.jp/blog/?p=656</guid>
		<description><![CDATA[ナイトリービルドを更新。 xxの種とキメラの翼を実装。DQ１ではラダトームにしか戻れませんが、訪れたことのある町には戻れるようにしています。 これを実現するためにマップ一覧にフラグ番号とフィールドマップ上の位置を設定し、 &#8230; <a href="http://plusb.jp/blog/?p=656">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ナイトリービルドを更新。<br />
xxの種とキメラの翼を実装。DQ１ではラダトームにしか戻れませんが、訪れたことのある町には戻れるようにしています。<br />
<span id="more-656"></span><br />
これを実現するためにマップ一覧にフラグ番号とフィールドマップ上の位置を設定し、アイテム使用時に訪れた町をチェックするようにします。<br />
こうしておけば、フラグ番号を設定しなければ特定の町（ラダトーム）のみジャンプ出来るようになります。</p>
<p>それから、xxの種を実装するとレベルアップ時に固定の値へ変更するのではなくレベルアップ前の基準値からの差分をキャラクターに設定する必要がある事に気づいて、レベルアップAPIを修正。</p>
<p><a href="http://plusb.jp/dqfw/">ナイトリービルド</a>を更新。<br />
<a href="http://plusb.jp/dqfw/samples/rpg_learning.html">RPG 習作</a>(<a href="http://plusb.jp/dqfw/samples/rpg_learning.html?debug=true">debug</a>)<br />
<a href="http://plusb.jp/dqfw/samples/bt_test.html">戦闘テスト</a></p>
<ul>
<li>xxの種を実装</li>
<li>キメラの翼を実装</li>
<li>その他</li>
</ul>
<p>補足ですが、キャッシュが効いている場合に<code>CTRL+R</code>などでページを再読み込みする必要があります。</p>
<h3>今後の課題とか予定とか</h3>
<ul>
　　　　
<li>バグ取り</li>
<li>メニューの操作音を含めて、効果音の追加</li>
<li>イベントを追加</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://plusb.jp/blog/?feed=rss2&#038;p=656</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
