現在のマップ内にあるイベント全てから情報を取得する方法
Posted: 2018年8月01日(水) 06:06
知識無く手探りで自作システムを作っている者ですが、行き詰まってしまいましたので、是非お力をお貸し願いたく質問させていただきます。
現在、シンボルエンカウントで「プレイヤーと同マップ上に存在する(残っている)敵の種類をリストアップする」という機能を作っています。
そのマップに出現する敵、という訳ではなく、その時点で存在する敵をリストアップする為、その種族を倒し尽くせば表示から消えるという仕様です。
その方法として、同マップ上の全イベントのメモ欄を読み込み、そこに書かれた敵IDにより判断する、という物を考えました。
元々、まっつUP様制作の「EventEnemies」というプラグインを使用させて頂いており、
敵イベントのメモ欄には<EEid:(敵ID)>という記載がありますので、それを再利用しています。
その敵を倒した際はセルフスイッチをONにし、リストアップする際はそれを判定し除外する、という形を想定しています。
ただ、このシステムを作る中で気付いた欠陥として、「存在しないマップイベントのメモ欄を読み込もうとするとエラーになる」という事です。
当初は、マップイベントの数はマップにより異なるので、すべて対応できる様に多めにループして、イベントIDを1から順番に読み込めば良いと思っていたのですが、存在する数を超えてしまうとエラーになると分かりました。
また、1から順番に読み込んでいく方法ですと、途中で作っていたイベントを削除して、存在するイベントIDに空きがある場合、エラーになってしまう事も分かりました。
ですので、この方法を成立させるには、「現在いるマップに存在するイベントIDを正しく取得する」という事が必要だと感じましたので、ご教授頂きたいです。
また、根本的な効率の悪さなど気になる点ありましたら、ご指摘頂ければ幸いです。
それでは、宜しくお願い致します。
現在、シンボルエンカウントで「プレイヤーと同マップ上に存在する(残っている)敵の種類をリストアップする」という機能を作っています。
そのマップに出現する敵、という訳ではなく、その時点で存在する敵をリストアップする為、その種族を倒し尽くせば表示から消えるという仕様です。
その方法として、同マップ上の全イベントのメモ欄を読み込み、そこに書かれた敵IDにより判断する、という物を考えました。
元々、まっつUP様制作の「EventEnemies」というプラグインを使用させて頂いており、
敵イベントのメモ欄には<EEid:(敵ID)>という記載がありますので、それを再利用しています。
その敵を倒した際はセルフスイッチをONにし、リストアップする際はそれを判定し除外する、という形を想定しています。
ただ、このシステムを作る中で気付いた欠陥として、「存在しないマップイベントのメモ欄を読み込もうとするとエラーになる」という事です。
当初は、マップイベントの数はマップにより異なるので、すべて対応できる様に多めにループして、イベントIDを1から順番に読み込めば良いと思っていたのですが、存在する数を超えてしまうとエラーになると分かりました。
また、1から順番に読み込んでいく方法ですと、途中で作っていたイベントを削除して、存在するイベントIDに空きがある場合、エラーになってしまう事も分かりました。
ですので、この方法を成立させるには、「現在いるマップに存在するイベントIDを正しく取得する」という事が必要だと感じましたので、ご教授頂きたいです。
また、根本的な効率の悪さなど気になる点ありましたら、ご指摘頂ければ幸いです。
それでは、宜しくお願い致します。