[解決済み]スクリプトで複数のマップIDを指定する方法

andead04/総督
記事: 18
登録日時: 2018年10月09日(火) 18:42

[解決済み]スクリプトで複数のマップIDを指定する方法

投稿記事by andead04/総督 » 2020年8月21日(金) 01:45

 お世話になります。
早速ですが、現在、フェルミウム湾様の「アクションRPGの基礎」というサイトを参考にして、MVにてアクションRPGを制作しております。このサイトでは、攻撃を受けた敵MOBのセルフスイッチを切り替えることによってダメージの演出をし、倒された敵イベントはセルフスイッチで透明状態にして邪魔にならない場所に移動させています。
しかし、私は倒した敵の死体を演出するためにセルフスイッチでイベントを死体の画像に変更し、その場に残した状態にしております。その後、フェルミウム湾様のサイトではエリア移動ごとに以下のようなスクリプトを実行し、敵のセルフスイッチを元に戻すことで、敵を復活させております。
for(var eventID = 1; eventID <= 999; eventID++){
var mapID = this._mapId;
$gameSelfSwitches.setValue([mapID, eventID, "A"], false);
$gameSelfSwitches.setValue([mapID, eventID, "B"], false);
}
わたしは一切スクリプトの知識がありませんが、サイトの説明と私の勝手な知見では、このスクリプトは主人公がいるマップ(this._mapId)のイベントID1~999(eventID = 1; eventID <= 999; eventID)のセルフスイッチAとBをoffにする、というスクリプトであると理解しています。この主人公がいるマップ(this._mapId)を例えば、マップID4~16のように、複数を指定し、そこにいる敵イベントのセルフスイッチをoffにして死体から復活させる方法を教えてください。基礎的なことで恐縮ですが、どうぞよろしくお願いします。

↓参考にさせていただいたフェルミウム湾様のサイト
https://fermiumbay13.hatenablog.com/ent ... /01/193250
最後に編集したユーザー andead04/総督 on 2020年8月21日(金) 06:13 [ 編集 1 回目 ]

アバター
冷やっこ
記事: 132
登録日時: 2020年3月04日(水) 22:47

Re: スクリプトで複数のマップIDを指定する方法

投稿記事by 冷やっこ » 2020年8月21日(金) 02:31

こんばんは。

この主人公がいるマップ(this._mapId)を例えば、マップID4~16のように、複数を指定し、そこにいる敵イベントのセルフスイッチをoffにして死体から復活させる方法を教えてください。

コード: 全て選択

for(var mapID = 4; mapID <= 16; mapID++){
for(var eventID = 1; eventID <= 999; eventID++){
$gameSelfSwitches.setValue([mapID, eventID, "A"], false);
$gameSelfSwitches.setValue([mapID, eventID, "B"], false);
}
}

これで如何でしょうか?
andead04/総督
記事: 18
登録日時: 2018年10月09日(火) 18:42

Re: スクリプトで複数のマップIDを指定する方法

投稿記事by andead04/総督 » 2020年8月21日(金) 03:06

ありがとうございます!
こちらのスクリプトで想定通りの挙動をしました。ちなみになのですが、頂いたスクリプトは4~16のように連番の指定になっていますが、もしマップID4番単体で指定する場合はどのようなスクリプトになるのでしょうか?
重ねてご教授ください。
アバター
冷やっこ
記事: 132
登録日時: 2020年3月04日(水) 22:47

Re: スクリプトで複数のマップIDを指定する方法

投稿記事by 冷やっこ » 2020年8月21日(金) 03:37

ちなみになのですが、頂いたスクリプトは4~16のように連番の指定になっていますが、もしマップID4番単体で指定する場合はどのようなスクリプトになるのでしょうか?


andead04/総督さんが初めに書かれていたスクリプトの this._mapId が今主人公がいるマップIDと言う解釈で
あっていますのでこの箇所を指定するマップIDに変えてあげればOKです。
具体的にマップID4番単体でしたら

コード: 全て選択

for(var eventID = 1; eventID <= 999; eventID++){
var mapID = 4;
$gameSelfSwitches.setValue([mapID, eventID, "A"], false);
$gameSelfSwitches.setValue([mapID, eventID, "B"], false);
}

以上のようになります。
andead04/総督
記事: 18
登録日時: 2018年10月09日(火) 18:42

Re: スクリプトで複数のマップIDを指定する方法

投稿記事by andead04/総督 » 2020年8月21日(金) 06:12

重ねてありがとうございます!
これでゲーム制作を続けられそうです。こちらのスレッドは解決済みとさせていただきます。

“MV:質問” へ戻る