お世話になります。
--前置き、試したこと--
通過できる、かつキャラの向いている方向1マス先にあれば選択可能なイベントを作りたく試行錯誤していたところ、
現在、添付写真のように、
タイルBの看板のオブジェクトは
プライオリティが通常キャラと同じで、
すり抜け可能なオブジェクトであり、
ハロルドが剣を装備しているときにスイッチ#0002がONになり、
かまくらの画像に変更される仕様にしました。
しかし、画像のように、
通常キャラと同じプライオリティにタイルBを設定しているために、ハロルドよりも上にかまくらが表示されてしまいます。
プライオリティを通常キャラより下にしてしまえばキャラの下に画像は表示されるものの、これだと、一番最初に書きました、1マス先にあれば選択可能なイベントではなく、キャラが立っているマスにある選択可能なイベントとなってしまい、思った挙動ができません。
--本題--
そこで、前置きが長くなったのですが、1マス先に選択可能なイベントかつ、キャラの下に配置される状態にできるプラグイン、
もしくはレイヤーの並び替え順を、いじる方法をどなたかご教授願えないでしょうか...
特定の地形タグがあるタイルBだけ、レイヤーをキャラの下まで下げる、またはキャラの正面にイベントがあれば、プライオリティ関係なしに選択できるプラグインがあればできるとは思うのですが、どちらもどのようなプラグインを作ればいいのかわからず...
よろしくお願いします。
RPGツクールMVのレイヤーについて
Re: RPGツクールMVのレイヤーについて
rpg_objects.js 7614行目
Game_Player.prototype.startMapEvent
を弄ったらどうにかなりそうです。コレ↓
でプライオリティによって起動するかしないか分けてますね。
7891行目 Game_Player.prototype.checkEventTriggerThere のなかでこの startMapEvent が呼ばれています。
event.isNormalPriority() === normal この条件を消してしまえばプライオリティ関係なく起動しますが
まるっきり仕様を変えてしまうのは不都合があるかもしれないので
メモ欄とか使って指定したイベントのみを対象に処理分けする…とかがよさげな気がします。
Game_Player.prototype.startMapEvent
を弄ったらどうにかなりそうです。コレ↓
コード: 全て選択
Game_Player.prototype.startMapEvent = function(x, y, triggers, normal) {
if (!$gameMap.isEventRunning()) {
$gameMap.eventsXy(x, y).forEach(function(event) {
if (event.isTriggerIn(triggers) && event.isNormalPriority() === normal) {
event.start();
}
});
}
};
コード: 全て選択
event.isNormalPriority() === normal
でプライオリティによって起動するかしないか分けてますね。
7891行目 Game_Player.prototype.checkEventTriggerThere のなかでこの startMapEvent が呼ばれています。
event.isNormalPriority() === normal この条件を消してしまえばプライオリティ関係なく起動しますが
まるっきり仕様を変えてしまうのは不都合があるかもしれないので
メモ欄とか使って指定したイベントのみを対象に処理分けする…とかがよさげな気がします。
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
https://twitter.com/wtr_in_reverie/