追記
先日に言っていた、参照している配列変数を動的に変化させていく、というのを実装してみました。
参照するであろう要素の最大数はわかっているんだから、最初からその最大数回だけループするようにしておけばOKだったんですね。(今回の場合は、出撃している味方ユニットの数が最大値)
後は、ループの中で順番に要素を格納していけば、格納した値を次のループから順番に参照していってくれます。
ソースも大分すっきりしたので、だんごチェック関数はこれで完成ですかね。
ついでに、この関数を作ってるときも思ったんですが、If文内のコマンドが一つのときは、以下のような書式を使えるようにして欲しかったり。
If 条件式 command
まあ、わざわざEndIf書くのがメンドイだけなんですが。
以下ソース。
マップコマンド だんごチェック2関数起動: Call だんごチェック2 Exit だんごチェック2: Local Select_UnitID Local 出撃味方数 Local Chain_UnitNum = 0 Local チェック済 Local i j k Local Chain_Unit ForEach 味方 出撃 Select_UnitID = 対象ユニットID Incr 出撃味方数 Next Chain_Unit[Chain_UnitNum] = Select_UnitID Set チェック済[Select_UnitID] Incr Chain_UnitNum For k = 0 to 出撃味方数 If Chain_Unit[k] = "" Then Break Endif For i = 1 to 2 For j = 1 to 2 Select_UnitID = Info(マップ,(X(Chain_Unit[k]) + i - j),(Y(Chain_Unit[k]) + 3 - i - j),ユニットID) If (チェック済[Select_UnitID] = 0) And (Party(Select_UnitID) = "味方") Then Set チェック済[Select_UnitID] Chain_Unit[Chain_UnitNum] = Select_UnitID Incr Chain_UnitNum Endif Next Next Next Talk システム 全出撃ユニット$(出撃味方数)の内、$(Chain_UnitNum)機がだんご状態にあります End Return