アクセス
since 2009
Twitter
pixiv

Author:月紳士

→pixivについて

スポンサーサイト

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

質問レス

拍手&コメントへ寄せられた質問に答えています。

「パーティーメンバーの追従」
・棺桶表示でなく生存者→戦闘不能の隊列変更のみに

「アクター毎アイテム所持」
・item_can_use_index? メソッドについて
・スクリプトのコマンドで特定のアクターのアイテムシーンを呼びだす

「乗り物拡張」
・絨毯や魔笛の「室内では使えない」処理
 


「パーティーメンバーの追従」
> 棺桶使用の場合は、自動的に生存者が先頭にくるようになっていますが、
> 棺桶未使用の場合も、同じ仕様にすることは出来るのでしょうか?

見た目だけの隊列変更ということであれば
以下のように改変してください。

Game_Playerクラスの○歩行グラフィックのリフレッシュ
(def character_graphic_refresh)の

@pmf_character_name = Party_Member_Follow::COFFIN_FILE_NAME
@pmf_character_index = Party_Member_Follow::COFFIN_FILE_INDEX

の2行を

dead_members = $game_party.members - $game_party.existing_members
@pmf_character_name = dead_members[0].character_name
@pmf_character_index = dead_members[0].character_index

に差し替え。

同じようにGame_Follow_Membersクラスの○歩行グラフィックのリフレッシュ
(def character_graphic_refresh)の

@pmf_character_name = Party_Member_Follow::COFFIN_FILE_NAME
@pmf_character_index = Party_Member_Follow::COFFIN_FILE_INDEX

の2行を

dead_members = $game_party.members - $game_party.existing_members
index = @order - $game_party.existing_members.size + 1
@pmf_character_name = dead_members[index].character_name
@pmf_character_index = dead_members[index].character_index

に差し替えです。

ところで
> 戦闘不能のキャラが先頭にいて会話をする、
> というのも少し不思議だよなぁ…と思いまして…。
とのコメントだったのですが

戦闘不能という状態不良は
「戦闘は出来ないが会話などは可能」という意味で
死亡に替わって出てきたイベント主体ゲーム用のステートと言えます。
FFシリーズが起源かな?

戦闘不能のキャラクターが先頭で会話していても
個人的には不思議には思いませんよ。




「アクター毎アイテム所持」
> メソッドにitem_can_use_index?というものがありますが
> この場合のindexは何を意味するのでしょうか?

通常のシステムですと
パーティーがいくつアイテムを持っているか
というデータを、すべてのアイテムにおいて保持しています。

この方法での管理では
アイテム個数を管理しているだけなので、
同じアイテム個々に違うデータを扱っているわけではなく、
アイテム個々を別物としては扱えません。

アクター毎アイテム所持では
アクター毎にアイテムを所持させると同時に、
アイテム個々で別物として扱えるようにする目的もあって
アイテムデータの管理方法を大幅に変更しています。

アクター毎にアイテムデータを保持するように変更され、
それらはindexで管理されています。
アイテム欄や、アイテムスロットのようなものです。

ご質問の「indexとは?」の答えとしては
アクターが所持しているアイテムのindexです
という答えになろうかと思います。

同じアイテムであっても、
チャージ数の違いなどから結果の異なるメソッドには
~indexというメソッドで用意しています。



「アクター毎アイテム所持」
> スクリプトのコマンドで特定のアクターのアイテムシーンを
> 呼びだすにはどうすればよいでしょうか?

イベントコマンド・スクリプトの記入ですと

$scene = Scene_Actor_Item.new(0)

と記入して実行させれば
( ) 内のパーティーindexのアクターのアイテム画面が表示されます。

ただし、この方法で呼び出しても
キャンセルボタンでアイテム画面を抜け出した際に
メニュー画面へと戻ってしまいます。

どのような使い方をされるのか
わからないので適切な助言か微妙ですが

シーン・Scene_Actor_Item内の
● 元の画面へ戻る メソッド
(def return_scene 以下)


$scene = Scene_Menu.new

の部分を

$scene = Scene_Map.new

に改変するなどしておく必要がありそうです。




「乗り物拡張」について
> 絨毯や魔笛アイテムを使うときに「室内では使えない」と云われてしまいます。
> 使用できるマップとして認識させる方法があるのでしょうか?

サンプルプロジェクトのアイテムでは
それぞれコモンイベントを呼び出しています。
まずそちらを確認してみてください。

魔笛、絨毯どちらのコモンイベントでも
一行目に

[1].include?($game_map.map_id)

という内容の「イベントコマンド・条件分岐(スクリプト)」
があると思います。
この条件分岐が、現在のマップを、IDにて判断している部分です。

これは乗り物拡張スクリプト依存の記述ではなく
スクリプトの導入の有無に関係なく使うことができる
言ってみればテクニックの一種です。

サンプルのままですと、
マップIDが 1 の時、条件を満たします。

[1].include?($game_map.map_id)
頭の [ ] 内の部分が該当させるIDを入れる場所です。
複数書く場合は
[1,10,20].include?($game_map.map_id)
というように [ ] 内に、半角 , で区切って、半角数字で記入、
条件を満たすマップのIDを増やして使います。

不要だったり使いづらいようでしたら、
条件分岐を取り除いてしまうのも良いと思います。

条件分岐の内容をスイッチに変えて、
マップ移動の度に適切にON/OFFして
管理しても同様の効果が得られます。

 しかし、スイッチ管理だと
 そのON/OFF管理が非常に大変なので
 その手間を省く為のテクニックがこれ、というわけです。

 特に、魔笛や絨毯が使えるフィールドマップは
 サンプルプロジェクトのように
 ゲーム中に数えるほどしかないはずなので
 このテクニックの活用をお勧めします。

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

コメントの投稿

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

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