アクセス
since 2009
Twitter
pixiv

Author:月紳士

→pixivについて

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【アクターインベントリ】装備品情報の取得、操作

ver.2.25b

アクターインベントリのスクリプトに
アクターの装備中のアイテムにアクセスしやすくする
メソッドを書きました。

サンプルプロジェクト(アップローダへ)

 どうしてもスクリプトを直接扱う感じになります。
 下手に知識不要になるように作りこむと、
 内容が独特になり、読み取りづらくなったり
 カスタマイズ性が落ちたりします。
 スクリプトを理解している人にとっては逆に不便になるので。

 知識が必要な方は独学してほしいな、と思います。
 
 
Game_Actorクラスに以下のメソッドを作りました。


equip_weapon
equip_sub_weapon
equip_shield
equip_helmet
equip_armor
equip_accessories

順に武器、サブ武器、盾、兜、鎧、装飾品です。

$game_party.members[0].equip_shield

というような形でアクセスできます。
この例だと
パーティー先頭のアクターの装備している盾、ですね。


たとえば、装備中の鎧の耐久度を知りたい場合。

イベントコマンド・変数の操作・スクリプト
のスクリプト記述欄に

$game_party.members[0].equip_armor.durability

を書くことで、耐久度を変数に取得できます。


イベントコマンド・スクリプトで直接

$game_party.members[0].equip_armor.durability += 1

というような操作も可能ですが
耐久度がゼロになった際などの処理は別途必要ですね。

耐久度操作については
便利なイベントコマンドはあってもよいかな?と
思っています。考え中。

ただ、基本的にこれらのアクセスは
冒頭でも書きましたが
スクリプト知識あってこその上級者向けにしたいと思います。

最後になりますが、
装備していない場合、オブジェクトでなく nil が返りますので
$game_party.members[0].equip_armor.durability
の時点でエラーが出ます。

イベントコマンド・条件分岐・スクリプト であらかじめ

$game_party.members[0].equip_armor

を条件として、その存在を確認してください。
装備がなければ、nilが返り「条件を満たさない」分岐となります。
装備がある場合に「条件を満たす」分岐にすすみます。

とにかく、装備がない場合に、在る前提でアクセスすると
流れのどこかでエラー停止すると思いますので注意です。

テーマ : RPGツクール
ジャンル : ゲーム

コメントの投稿

管理者にだけ表示を許可する

Re: 不具合報告

> アクターインベントリ2.25bにて不具合がありましたのでご報告です。
> サンプルプロジェクトで用意されている消費するアイテム(ハイポーション等)を使用すると
> undefined method 'durability_comsumption' for nil:NilClassが出ます。
> 消耗するにチェックを入れたアイテムを使用すると起きるようです。

本体は更新していませんが、
耐久度拡張のほうをこっそりと修正しています。そちら依存のエラーでした。

消耗品を使い切った際に、
使い切って消失したアイテムの耐久度を減らそうとしていたような挙動です。
すみませんでした。

Re: No title

> 私はこの機能を入れたらよりよく便利になると思っています。
> 私にとって、地図の中での戦闘やトラップの発見に使用されることが必要です。

トラップ(を発生させるイベント)を発見する装備、というようなことでしょうか??

Re: 不具合報告

> サンプルのテレンスに、炎のハンドアクスのような<装備品ステート>を記載した装備を装備させてもステートが付与されていません。

こちらは該当のステートが「戦闘終了で解除」のステートであるため、
装備をしても非戦闘時には付加されない仕様になっています。

戦闘中には該当のステートが反映されるはずです。終了で解除します。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。