戦闘アニメ_WA3_二丁拳銃準備: 戦闘アニメ_WA3_二挺拳銃準備: ## 銃撃武器の準備アニメを改変して作成。主にヴァージニア用。 #引数1 上に構える武器画像 #引数2 上に構える武器サイズ #引数3 下に構える武器画像 #引数4 下に構える武器サイズ #引数5 発光 #引数6 効果音 #引数7 ユニットID Local i j Local UID = _GetName(対象ユニットID,Args(7)) _CenteringCheck UID Local U_X = WX(UID) Local U_Y = WY(UID) Local C_X C_Y C_X2 C_Y2 Local W_BMP1 = _GBMP_FA() Local W_BMP2 = _GN(_GBMP_FA(),_GBMP_FA2()) Local G_S1 G_S2 Local ANG = _GetAngle(UID) Local X_F = _GetCircumference(ANG,X) Local Y_F = _GetCircumference(ANG,Y) Local X_F2 = _GetCircumference((ANG + 90),X) Local Y_F2 = _GetCircumference((ANG + 90),Y) Local DRCT = _FlipVertical(ANG) Local T_COL = _ColorTime(_IsLight(Args(5))) Local L_N Set G_S1 _GetName(32,Args(2)) Set G_S2 _GetName(32,Args(4)) If (DRCT = "上下反転") Then Set C_X (U_X + 16 + (6 * X_F) - (6 * X_F2) - (G_S1 \ 2)) Set C_Y (U_Y + 16 + (6 * Y_F) - (6 * Y_F2) - (G_S1 \ 2)) Set C_X2 (U_X + 16 - (6 * X_F) + (6 * X_F2) - (G_S2 \ 2)) Set C_Y2 (U_Y + 16 - (6 * Y_F) + (6 * Y_F2) - (G_S2 \ 2)) Else Set C_X (U_X + 16 + (6 * X_F) + (6 * X_F2) - (G_S1 \ 2)) Set C_Y (U_Y + 16 + (6 * Y_F) + (6 * Y_F2) - (G_S1 \ 2)) Set C_X2 (U_X + 16 - (6 * X_F) - (6 * X_F2) - (G_S2 \ 2)) Set C_Y2 (U_Y + 16 - (6 * Y_F) - (6 * Y_F2) - (G_S2 \ 2)) EndIf _SelectSound "Reload.wav" _GetWavFromArgs(Args(6)) Wait Start For i = 1 To 3 Switch i Case 1 Set L_N -4 Case 2 Set L_N 2 Case 3 Set L_N 0 EndSw ClearPicture PaintPicture W_BMP1 (C_X + (X_F * L_N)) (C_Y + (Y_F * L_N)) G_S1 G_S1 透過 DRCT 右回転 ANG T_COL PaintPicture W_BMP2 (C_X2 + (X_F * L_N)) (C_Y2 + (Y_F * L_N)) G_S2 G_S2 透過 DRCT 右回転 ANG T_COL Refresh Wait Until (i * 0.6) Next Wait Until 7 Return "Keep" 戦闘アニメ_WA3_二丁拳銃攻撃: 戦闘アニメ_WA3_二挺拳銃攻撃: Call 戦闘アニメ_WA3_ダブルショット共通 単発 Args(1) Args(2) Args(3) Args(4) Args(5) Args(6) Return 戦闘アニメ_WA3_二丁拳銃命中: 戦闘アニメ_WA3_二挺拳銃命中: Call 戦闘アニメ_銃弾命中 Return 戦闘アニメ_WA3_ガトリング攻撃: Call 戦闘アニメ_WA3_ダブルショット共通 連射 Args(1) Args(2) Args(3) Args(4) Args(5) Args(6) Return 戦闘アニメ_WA3_10連ガトリング攻撃: Call 戦闘アニメ_WA3_ダブルショット共通 乱射 Args(1) Args(2) Args(3) Args(4) Args(5) Args(6) Return 戦闘アニメ_WA3_ダブルショット共通: ## 銃撃武器攻撃共通アニメをベースに改変。 #引数1 上に構える武器画像 #引数2 上に構える武器サイズ #引数3 下に構える武器画像 #引数4 下に構える武器サイズ #引数5 効果音 #引数6 ユニットID UpVar Local TYPE = Args(1) Local UID = _GetName(対象ユニットID,Args(7)) _CenteringCheck UID Local U_X = WX(UID) Local U_Y = WY(UID) Local i Local ANG = _GetAngle(UID) Local X_F = _GetCircumference(ANG,X) Local Y_F = _GetCircumference(ANG,Y) Local X_F2 = _GetCircumference((ANG + 90),X) Local Y_F2 = _GetCircumference((ANG + 90),Y) Local DRCT = _FlipVertical(ANG) Local LN Local W_BMP1 = _GBMP_FA() Local W_BMP2 = _GN(_GBMP_FA(),_GBMP_FA2()) Local G_S1 G_S2 Local F_BMP = "Attack\EFFECT_MuzzleFlashA01.bmp" Local F_S = 32 Local W_X W_Y W_X2 W_Y2 Local F_X F_Y F_X2 F_Y2 Local FL Local T_COL = _ColorTime(1) Local W_F = _GN("Gun.wav",_GetWavFromArgs(Args(6))) Local L_NUM Local S_FLG Set G_S1 _GetName(32,Args(3)) Set G_S2 _GetName(32,Args(5)) If (DRCT = "上下反転") Then Set W_X (U_X + 16 + (6 * X_F) - (6 * X_F2) - (G_S1 \ 2)) Set W_Y (U_Y + 16 + (6 * Y_F) - (6 * Y_F2) - (G_S1 \ 2)) Set W_X2 (U_X + 16 - (6 * X_F) + (6 * X_F2) - (G_S2 \ 2)) Set W_Y2 (U_Y + 16 - (6 * Y_F) + (6 * Y_F2) - (G_S2 \ 2)) Else Set W_X (U_X + 16 + (6 * X_F) + (6 * X_F2) - (G_S2 \ 2)) Set W_Y (U_Y + 16 + (6 * Y_F) + (6 * Y_F2) - (G_S2 \ 2)) Set W_X2 (U_X + 16 - (6 * X_F) - (6 * X_F2) - (G_S2 \ 2)) Set W_Y2 (U_Y + 16 - (6 * Y_F) - (6 * Y_F2) - (G_S2 \ 2)) EndIf Set F_X (W_X + (G_S1 \ 2) + (X_F * G_S1 \ 2.5) - (F_S \ 2)) Set F_Y (W_Y + (G_S1 \ 2) + (Y_F * G_S1 \ 2.5) - (F_S \ 2)) Set F_X2 (W_X2 + (G_S2 \ 2) + (X_F * G_S2 \ 2.5) - (F_S \ 2)) Set F_Y2 (W_Y2 + (G_S2 \ 2) + (Y_F * G_S2 \ 2.5) - (F_S \ 2)) Switch TYPE Case "単発" Set L_NUM 3 Case "連射" Set L_NUM 15 Case "乱射" Set L_NUM 30 EndSw Wait Start For i = 1 To L_NUM ClearPicture Switch TYPE Case "単発" Switch i Case 1 PlaySound W_F Set LN -2 Set FL 1 Set S_FLG 1 Case 2 Set LN -3 Set S_FLG 0 Case 3 Set LN 0 Set FL "" EndSw Case "連射" Switch i Case 1 4 7 10 13 PlaySound W_F Set LN -2 Set FL 1 Set S_FLG 1 Case 2 5 8 11 14 Set LN -3 Set S_FLG 0 Case 3 6 9 12 15 Set LN 0 Set FL "" EndSw Case "乱射" Switch i Case 1 4 7 10 13 16 19 22 25 28 PlaySound W_F Set LN -2 Set FL 1 Set S_FLG 1 Case 2 5 8 11 14 17 20 23 26 29 Set LN -3 Set S_FLG 0 Case 3 6 9 12 15 18 21 24 27 30 Set LN 0 Set FL "" EndSw EndSw PaintPicture W_BMP1 (W_X + (X_F * LN)) (W_Y + (Y_F * LN)) G_S1 G_S1 透過 DRCT 右回転 ANG _ColorTime(FL) PaintPicture W_BMP2 (W_X2 + (X_F * LN)) (W_Y2 + (Y_F * LN)) G_S2 G_S2 透過 DRCT 右回転 ANG _ColorTime(FL) If (S_FLG = 1) Then PaintPicture F_BMP F_X F_Y F_S F_S 透過 右回転 ANG T_COL PaintPicture F_BMP F_X2 F_Y2 F_S F_S 透過 右回転 ANG T_COL EndIf Refresh Wait Until (i * 0.6) Next Return