ページ 11

各MAPに入るたびに1度だけ発生するイベントを作りたい

Posted: 2025年7月13日(日) 23:15
by teisuto
特定のスイッチがONになっていた場合、各MAPに入るごとにイベントを1度だけ実行したいです。
(具体的にはピクチャの表示などを行いたい)

トリガーを自動実行にして、
・「やりたい作業」
・イベントの一時消去
で、出来るかと思ったのですが、どのマップでもやろうとおもうと全MAPにおなじイベントを用意しなくてはいけません。
かといってコモンイベントにいれると「イベントの一時消去」が発動してくれず、無限に自動実行を続けてしまいます。

上手いことコモンイベントで対応したいのですが良いやり方ございませんでしょうか。

Re: 各MAPに入るたびに1度だけ発生するイベントを作りたい

Posted: 2025年7月14日(月) 14:25
by DoujinRuis
こんにちは
今回の件をYoutubeで解説してみました。
もしよければ見てください
https://www.youtube.com/watch?v=GWs7pmn_6YA

スクリプトの参考コード
初期化
$gameVariables.setValue(2, {
2: "Actor1_1",
3: "Actor1_2",
4: "Actor1_3"
});

$gameVariables.setValue(3, []);

コモンイベント
const mapPicMap = $gameVariables.value(2); // { 2: "picA", 3: "picB" ... }
const currentMap = $gameMap.mapId();

if (mapPicMap.hasOwnProperty(currentMap)) {
const switchId = 100 + currentMap;
if (!$gameSwitches.value(switchId)) {
const pictureName = mapPicMap[currentMap];
$gameScreen.showPicture(1, pictureName, 1, 100, 100, 100, 100, 255, 0);
$gameSwitches.setValue(switchId, true);

// ★ オブジェクトから削除して除外リスト化!
delete mapPicMap[currentMap];
$gameVariables.setValue(2, mapPicMap); // 念のため再セット
}
}

初心者の悩みの9割は秒で解決するDiscord↓
discord.com/invite/dzUAC3CSMH

Re: 各MAPに入るたびに1度だけ発生するイベントを作りたい

Posted: 2025年7月14日(月) 21:00
by teisuto
ありがとうございます、早速動画見てきたいと思います。
参考にさせていただきます!