- SRCスレッド65
188 :名無しさん@お腹いっぱい。[sage]:2009/02/26(木) 23:21:41 ID:UuY8Zc6x - >>186
書いてみようかと思ったけどかなり長くなりそうだな。 使用武器の決定を端折るとして、武器の射程内にいる味方の中からランダムに一体を選択する方法を。 ※「敵使用武器」には使用する武器の名称が入るとする。 ※最少射程が2以上の武器については考慮外 ※「Foreach 敵」コマンド中の処理とする For i = (0 - Info(ユニット, 対象ユニットID, 武器, 敵使用武器, 最大射程)) To Info(ユニット, 対象ユニットID, 武器, 敵使用武器, 最大射程) For j = (Abs(i) - Info(ユニット, 対象ユニットID, 武器, 敵使用武器, 最大射程)) To (Info(ユニット, 対象ユニットID, 武器, 敵使用武器, 最大射程) - Abs(j)) If Party(Info(マップ, (X(対象ユニットID) + i), (Y(対象ユニットID) + j), ユニットID)) = "味方" Then Set 攻撃範囲内味方座標[(Count(攻撃範囲内味方座標) + 1)] List((X(対象ユニットID) + i), (Y(対象ユニットID) + j)) Endif Next Next If Count(攻撃範囲内味方座標) = 0 Then Skip Endif Set 攻撃対象 Random(Count(攻撃範囲内味方座標)) ChangeMode 対象ユニットID Pilot(Info(マップ, Lindex(攻撃対象, 1), Lindex(攻撃対象, 2), ユニットID)) てな感じかな。動作は試してない。 対象となる味方にザコパイロットが含まれる場合はこのやり方じゃダメだと思う。 Changemodeの対象が座標だった場合、対象座標にいるユニットを優先的に攻撃する仕様ならば 最後の部分は対象を座標にすればいいんだが、ヘルプによると通常モード扱いになるらしいな。
|