ページ 11

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

Posted: 2020年8月21日(金) 01:45
by andead04/総督
 お世話になります。
早速ですが、現在、フェルミウム湾様の「アクション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

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

Posted: 2020年8月21日(金) 02:31
by 冷やっこ
こんばんは。
この主人公がいるマップ(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);
}
}
これで如何でしょうか?

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

Posted: 2020年8月21日(金) 03:06
by andead04/総督
ありがとうございます!
こちらのスクリプトで想定通りの挙動をしました。ちなみになのですが、頂いたスクリプトは4~16のように連番の指定になっていますが、もしマップID4番単体で指定する場合はどのようなスクリプトになるのでしょうか?
重ねてご教授ください。

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

Posted: 2020年8月21日(金) 03:37
by 冷やっこ
ちなみになのですが、頂いたスクリプトは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);
}
以上のようになります。

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

Posted: 2020年8月21日(金) 06:12
by andead04/総督
重ねてありがとうございます!
これでゲーム制作を続けられそうです。こちらのスレッドは解決済みとさせていただきます。