| GAMEMASTERさんの仰られた部分の修正により ちゃんとAttaxkイベント後の援護可能ユニットのサポートアタックを 再現することが出来ました。 多少メッセージのつなぎに間隙が入ったり、 仕様上、援護ユニットの残り援護回数が減らせなかったりはしますが 用途に依れば問題はないと思います。 最終的に使用した記述は…
Set 攻撃ユニット 対象ユニット If Info(ユニット,相手ユニットID,武器,相手ユニット使用武器) = "" Then Attack 対象ユニットID 対象ユニット使用武器 相手ユニットID 防御 Else Attack 対象ユニットID 対象ユニット使用武器 相手ユニットID 無抵抗 Endif Local 判別X 判別Y 所属判別ID 援護可能武器 援護可能ユニット 援護攻撃可能 For 判別X = -1 to 1 For 判別Y = -1 to 1 If (判別X = 0 And 判別Y = 0) Then Skip EndIf 所属判別ID = Info(マップ,X(攻撃ユニット) + 判別X,Y(攻撃ユニット) + 判別Y,"ユニットID") If Party(所属判別ID) = "味方" Then If Info(パイロット,Pilot(所属判別ID),特殊能力所有,援護) = 1 Then If Info(ユニット,unit(所属判別ID),残りサポートアタック数) > 0 Then If Area(攻撃ユニット) = Area(所属判別ID) Then For i = 1 To Info(ユニット,unit(所属判別ID),武器数) If Info(ユニット,unit(所属判別ID),武器,i,属性所有,M) = 0 Then If Info(ユニット,unit(所属判別ID),武器,i,最大射程) >= Call(距離測定,相手ユニットID,所属判別ID) Then If ((Info(ユニット,unit(所属判別ID),武器,i,弾数) > 0) Or (Info(ユニット,unit(所属判別ID),武器,i,弾数) = 0 And Info(ユニット,unit(所属判別ID),武器,i,最大弾数) = 0)) And Info(ユニット,unit(所属判別ID),武器,i,消費EN) <= EN(所属判別ID) Then 援護攻撃可能 = 1 援護可能武器 = Info(ユニット,unit(所属判別ID),武器,i) 援護可能ユニット = Pilot(所属判別ID) Endif Endif Endif Next Endif Endif EndIf EndIf Next Next If 援護攻撃可能 = 1 Then #相手の反撃の有無===================================== If Info(ユニット,相手ユニットID,武器,相手ユニット使用武器) = "" Then Attack 援護可能ユニット 援護可能武器 相手ユニットID 防御 Else Attack 援護可能ユニット 援護可能武器 相手ユニットID 無抵抗 Endif
距離測定: Local X距離 Y距離 ユニット間距離 Set 測定元ユニットX X(Args(1)) Set 測定元ユニットY Y(Args(1)) Set 測定先ユニットX X(Args(2)) Set 測定先ユニットY Y(Args(2)) Set X距離 (測定元ユニットX - 測定先ユニットX) Set Y距離 (測定元ユニットY - 測定先ユニットY) Set ユニット間距離 (Abs(X距離) + Abs(Y距離)) Return ユニット間距離
…です。的確なご指摘ありがとうございました。
|