[ リストに戻る ]
No.18に関するツリー

   インクルya等の丸投げツリー - としあき - 2010/09/25(Sat) 09:52:50 [No.18]
バトコン・サイズ差補正関連だけ - としあき - 2011/10/23(Sun) 10:40:42 [No.95]
ザオリクとかレイズの再現インクル - としあき - 2011/09/01(Thu) 19:33:07 [No.91]
Re: インクルya等の丸投げツリー - としあき - 2011/09/01(Thu) 19:32:10 [No.90]
今風バトコン(2011/09/01版) - としあき - 2011/02/13(Sun) 10:04:50 [No.80]
終了メッセージ - としあき - 2010/11/05(Fri) 22:48:18 [No.63]
必中武器とかの作り方・バトコン編 - としあき - 2010/10/20(Wed) 18:12:19 [No.51]
[削除] - - 2010/10/18(Mon) 10:12:14 [No.50]
[削除] - - 2010/10/17(Sun) 22:50:09 [No.49]
[削除] - - 2010/10/17(Sun) 22:45:22 [No.48]
Re: インクルや戦闘アニメ等の丸投げツリー - としあき - 2010/09/25(Sat) 09:54:54 [No.19]
[削除] - - 2010/09/25(Sat) 10:17:08 [No.28]
[削除] - - 2010/10/17(Sun) 22:43:28 [No.47]
Re: インクルや戦闘アニメ等の丸投げツリー - としあき - 2010/09/25(Sat) 10:04:11 [No.27]
Re: インクルや戦闘アニメ等の丸投げツリー - としあき - 2010/09/25(Sat) 10:02:54 [No.26]
Re: インクルや戦闘アニメ等の丸投げツリー - としあき - 2010/09/25(Sat) 10:02:13 [No.25]
Re: インクルや戦闘アニメ等の丸投げツリー - としあき - 2010/09/25(Sat) 10:00:22 [No.24]
Re: インクルや戦闘アニメ等の丸投げツリー - としあき - 2010/09/25(Sat) 09:59:32 [No.23]
Re: インクルや戦闘アニメ等の丸投げツリー - としあき - 2010/09/25(Sat) 09:58:52 [No.22]
Re: インクルや戦闘アニメ等の丸投げツリー - としあき - 2010/09/25(Sat) 09:57:28 [No.21]
Re: インクルや戦闘アニメ等の丸投げツリー - としあき - 2010/09/25(Sat) 09:56:16 [No.20]



並べ替え: [ ツリー順に表示 | 投稿順に表示 ]
インクルya等の丸投げツリー (親記事) - としあき

SP祈りが強すぎる人のためのルーチン

祈り, いのり
祈, 60, 破壊味方, 即効, -, -, 祈り
復活 イベント=ReviveSP
破壊された味方ユニット1体を、HPが1/2の状態で復活する

### SP祈り ###----------------------------------------------------------------

# 破壊されたユニットのデータを格納
*使用 味方 祈り:
Local i

ForEach 味方 破壊
Set DES_UNIT[対象ユニットID, UNIT_EN] EN(対象ユニットID)
For i = 1 To CountPilot(対象ユニットID)
Set DES_UNIT[対象ユニットID, UNIT_SP, i] SP(PilotID(対象ユニットID, i))
Set DES_UNIT[対象ユニットID, UNIT_PLA, i] Plana(PilotID(対象ユニットID, i))
Next

For i = 1 To Info(ユニット, 対象ユニットID, 武器数)
Set DES_UNIT[対象ユニットID, W_BLT, i] Info(ユニット, 対象ユニットID, 武器, i, 弾数)
Next

For i = 1 To Info(ユニット, 対象ユニットID, アビリティ数)
Set DES_UNIT[対象ユニットID, A_STK, i] Info(ユニット, 対象ユニットID, アビリティ, i, 使用回数)
Next
Next
Exit

# 格納したデータをコピーする
ReviveSP:
Local i
HP(相手ユニットID) = HP(相手ユニットID) \ 2
EN(相手ユニットID) = DES_UNIT[相手ユニットID, UNIT_EN]
For i = 1 To CountPilot(相手ユニットID)
SP(PilotID(相手ユニットID, i)) = DES_UNIT[相手ユニットID, UNIT_SP, i]
Plana(PilotID(相手ユニットID, i)) = DES_UNIT[相手ユニットID, UNIT_PLA, i]
Next

For i = 1 To Info(ユニット, 相手ユニットID, 武器数)
SetBullet 相手ユニットID i DES_UNIT[相手ユニットID, W_BLT, i]
Next

For i = 1 To Info(ユニット, 相手ユニットID, アビリティ数)
SetStock 相手ユニットID i DES_UNIT[相手ユニットID, A_STK, i]
Next

Action(相手ユニットID) = 0
Return

# 格納データを全て消去
*使用後 味方 祈り:
UnSet DES_UNIT
Exit


[No.18] 2010/09/25(Sat) 09:52:50
Re: インクルや戦闘アニメ等の丸投げツリー (No.18への返信 / 1階層) - としあき

SP突撃のアニメが無かったので自作したもの

SPアニメ_突撃:
Local i j unit_bitmap
unit_bitmap = GetUnitBitmap(Args(1))

Center Args(1)
PlaySound Charge.wav
Wait Start
For i = 1 To 4
Wait Start
For j = 1 To 5
If i Mod 2 = 0 Then
If j Mod 2 = 0 Then
PaintPicture SpecialPowerBmp("syukufuku", 7) - 224 32 32 透過 夕焼け 明
PaintPicture unit_bitmap - - 透過 夕焼け
PaintPicture SpecialPowerBmp("asikase", 2) - (224 - 4 * j) 32 32 透過 夕焼け 明
PaintPicture SpecialPowerBmp("asikase", 2) - (244 - 4 * j) 32 32 透過 夕焼け 明
Else
PaintPicture SpecialPowerBmp("syukufuku", 7) - 224 32 32 透過 夕焼け
PaintPicture unit_bitmap - - 透過 夕焼け 暗
PaintPicture SpecialPowerBmp("asikase", 2) - (224 - 4 * j) 32 32 透過 夕焼け 左右反転
PaintPicture SpecialPowerBmp("asikase", 2) - (244 - 4 * j) 32 32 透過 夕焼け 左右反転
EndIf
Else
If j Mod 2 = 0 Then
PaintPicture SpecialPowerBmp("syukufuku", 7) - 224 32 32 透過 夕焼け
PaintPicture unit_bitmap - - 透過 夕焼け 暗
PaintPicture SpecialPowerBmp("asikase", 2) - (224 - 4 * j) 32 32 透過 夕焼け 左右反転
PaintPicture SpecialPowerBmp("asikase", 2) - (244 - 4 * j) 32 32 透過 夕焼け 左右反転
Else
PaintPicture SpecialPowerBmp("syukufuku", 7) - 224 32 32 透過 夕焼け 明
PaintPicture unit_bitmap - - 透過 夕焼け
PaintPicture SpecialPowerBmp("asikase", 2) - (224 - 4 * j) 32 32 透過 夕焼け 明
PaintPicture SpecialPowerBmp("asikase", 2) - (244 - 4 * j) 32 32 透過 夕焼け 明
EndIf
Endif
ClearPicture 0 256 480 480
Refresh
ClearPicture
Wait Until (0.5 * j)
Next
Next

Refresh
Return


[No.19] 2010/09/25(Sat) 09:54:54
Re: インクルや戦闘アニメ等の丸投げツリー (No.19への返信 / 2階層) - としあき

SP鉄壁のアニメをマイナーチェンジ

SPアニメ_鉄壁:
Local i unit_bitmap
unit_bitmap = GetUnitBitmap(Args(1))

Center Args(1)
Wait Start
PlaySound Transform.wav
For i = 1 To 5
PaintPicture SpecialPowerBmp("teppeki_1_",1) (172 + i * 4) 200 96 64 透過
PaintPicture SpecialPowerBmp("teppeki_1_",2) (212 - i * 4) 200 96 64 透過
PaintPicture unit_bitmap - - 透過
PaintPicture SpecialPowerBmp("teppeki_2_",1) (172 + i * 4) (220 - i * 4) 96 64 透過
PaintPicture SpecialPowerBmp("teppeki_2_",2) (212 - i * 4) (220 - i * 4) 96 64 透過
Refresh
Wait Until (0.5 * i)
ClearPicture
Next
Wait Start
For i = 1 To 4
PaintPicture SpecialPowerBmp("teppeki_1_",3) - 200 96 64 透過
PaintPicture unit_bitmap - - 透過
PaintPicture SpecialPowerBmp("teppeki_2_",i + 2) - 200 96 64 透過
Refresh
Wait Until (0.5 * i)
ClearPicture
Next
PaintPicture SpecialPowerBmp("teppeki_1_",3) - 200 96 64 透過
PaintPicture unit_bitmap - - 透過
PaintPicture SpecialPowerBmp("teppeki_2_",3) - 200 96 64 透過
Refresh
Wait Until 5
ClearPicture
Refresh
Return


[No.20] 2010/09/25(Sat) 09:56:16
Re: インクルや戦闘アニメ等の丸投げツリー (No.19への返信 / 2階層) - としあき

SRWっぽい感じのSP直撃アニメ
SP癒しとしても使えそうか?

SPアニメ_直撃:
Local i j

Center Args(1)
PlaySound Sharara.wav
Wait Start
For i = 1 To 12
PaintPicture SpecialPowerBmp("iyasi", 2) - (170 + i * 4) 透過
Refresh
ClearPicture
Wait Until (0.15 * i)
Next
For i = 1 To 4
Wait Start
For j = 1 To 6
PaintPicture SpecialPowerBmp("kakuran", 4) - - 透過
PaintPicture SpecialPowerBmp("iyasi", 11) - (204 + j * 4) 透過
Refresh
ClearPicture
Wait Until (0.5 * j)
Next
Next
Refresh
Return


[No.21] 2010/09/25(Sat) 09:57:28
Re: インクルや戦闘アニメ等の丸投げツリー (No.19への返信 / 2階層) - としあき

自作SPアニメ。名前は適当

SPアニメ_渾身:
Local i j unit_bitmap
unit_bitmap = GetUnitBitmap(Args(1))
Center Args(1)

PlaySound Warship.wav
For i = 1 To 4
Wait Start
For j = 1 To 4
PaintPicture SpecialPowerBmp("meisou", 1) - 192 48 64 透過 セピア
PaintPicture unit_bitmap - - 透過 セピア
PaintPicture SpecialPowerBmp("syukufuku", j + 7) 204 192 透過 上下反転 セピア 明
Refresh
ClearPicture
Wait Until (0.5 * j)
Next
Next

Refresh
Return


[No.22] 2010/09/25(Sat) 09:58:52
Re: インクルや戦闘アニメ等の丸投げツリー (No.19への返信 / 2階層) - としあき

ムゲフロのアレ

SPアニメ_切り札:
Local i

Center Args(1)
PlaySound Page.wav
Wait Start
For i = 1 To 8
PaintPicture Card\EFFECT_Card01.bmp (208 + i * 2) 208 (32 - i * 4) - 透過
PaintPicture Card\EFFECT_Card01.bmp (240 + i * 2) 208 (32 - i * 4) - 透過
PaintPicture Card\EFFECT_Card01.bmp (208 + i * 2) 240 (32 - i * 4) - 透過
PaintPicture Card\EFFECT_Card01.bmp (240 + i * 2) 240 (32 - i * 4) - 透過
Refresh
Wait Until (0.25 * i)
ClearPicture
Next
Wait Start
For i = 1 To 8
PaintPicture Card\EFFECT_Card02.bmp (224 - i * 2) 208 (0 + i * 4) - 透過
PaintPicture Card\EFFECT_Card03.bmp (256 - i * 2) 208 (0 + i * 4) - 透過
PaintPicture Card\EFFECT_Card04.bmp (224 - i * 2) 240 (0 + i * 4) - 透過
PaintPicture Card\EFFECT_Card05.bmp (256 - i * 2) 240 (0 + i * 4) - 透過
Refresh
Wait Until (0.25 * i)
ClearPicture
Next
Wait Until 8
Refresh
Return


[No.23] 2010/09/25(Sat) 09:59:32
Re: インクルや戦闘アニメ等の丸投げツリー (No.19への返信 / 2階層) - としあき

回復っぽい感じ。名前は適当

SPアニメ_期待:
Local i j unit_bitmap
unit_bitmap = GetUnitBitmap(Args(2))

Center Args(2)
PlaySound Sharara.wav
Wait Start
For i = 1 To 8
Wait Start
For j = 1 To 4
If j Mod 2 = 0 Then
PaintPicture SpecialPowerBmp("shinrai_2_", 1) - - 透過
PaintPicture unit_bitmap - - 透過 明
PaintPicture SpecialPowerBmp("gekirei", j) - (232 - i * 2) 透過 下半分 明
Else
PaintPicture SpecialPowerBmp("shinrai_2_", 1) - - 58 58 透過
PaintPicture unit_bitmap - - 透過 明
PaintPicture SpecialPowerBmp("gekirei", j) - (232 - i * 2) 透過 下半分 明
EndIf
Refresh
ClearPicture
Wait Until (0.5 * j)
Next
Next

Refresh
Return


[No.24] 2010/09/25(Sat) 10:00:22
Re: インクルや戦闘アニメ等の丸投げツリー (No.19への返信 / 2階層) - としあき

加速と神速をマイナーチェンジ

SPアニメ_加速:
Local i j UNIT_BMP
UNIT_BMP = GetUnitBitmap(Args(1))

Center Args(1)
PlaySound Whiz.wav
For i = 1 To 4
Wait Start
For j = 1 To 4
If i = 1 Then
PaintPicture SpecialPowerBmp("concentrate",1) - (232 - j * 2) 64 32 透過 上半分
PaintPicture SpecialPowerBmp("kasoku",j) - 232 64 32 透過 上半分
PaintPicture UNIT_BMP - - 透過
PaintPicture SpecialPowerBmp("concentrate",1) - (232 - j * 2) 64 32 透過 下半分
PaintPicture SpecialPowerBmp("kasoku",j) - 232 64 32 透過 下半分
ElseIf i = 2 Then
PaintPicture SpecialPowerBmp("concentrate",1) - (224 - j * 2) 64 32 透過 上半分
PaintPicture SpecialPowerBmp("kasoku",j) - 232 64 32 透過 上半分
PaintPicture UNIT_BMP - - 透過
PaintPicture SpecialPowerBmp("concentrate",1) - (224 - j * 2) 64 32 透過 下半分
PaintPicture SpecialPowerBmp("kasoku",j) - 232 64 32 透過 下半分
Else
PaintPicture SpecialPowerBmp("kasoku",j) - 232 64 32 透過 上半分
PaintPicture UNIT_BMP - - 透過
PaintPicture SpecialPowerBmp("kasoku",j) - 232 64 32 透過 下半分
EndIf
Refresh
ClearPicture
Wait Until (0.5 * j)
Next
Next
Refresh
Return


SPアニメ_迅速:
Local i j UNIT_BMP
UNIT_BMP = GetUnitBitmap(Args(1))

Center Args(1)
PlaySound Whiz.wav
For i = 1 To 8
Wait Start
For j = 1 To 2
Switch i
Case 1 3 5 7
PaintPicture SpecialPowerBmp("concentrate",2) - (232 - j * 2) 64 32 透過 上半分
PaintPicture SpecialPowerBmp("sinsoku",j) - 232 64 32 透過 上半分
PaintPicture UNIT_BMP - - 透過
PaintPicture SpecialPowerBmp("concentrate",2) - (232 - j * 2) 64 32 透過 下半分
PaintPicture SpecialPowerBmp("sinsoku",j) - 232 64 32 透過 下半分
Case 2 4 6 8
PaintPicture SpecialPowerBmp("concentrate",2) - (224 - j * 2) 64 32 透過 上半分
PaintPicture SpecialPowerBmp("sinsoku",j) - 232 64 32 透過 上半分
PaintPicture UNIT_BMP - - 透過
PaintPicture SpecialPowerBmp("concentrate",2) - (224 - j * 2) 64 32 透過 下半分
PaintPicture SpecialPowerBmp("sinsoku",j) - 232 64 32 透過 下半分
Case Else
PaintPicture SpecialPowerBmp("sinsoku",j) - 232 64 32 透過 上半分
PaintPicture UNIT_BMP - - 透過
PaintPicture SpecialPowerBmp("sinsoku",j) - 232 64 32 透過 下半分
EndSw
Refresh
ClearPicture
Wait Until (0.5 * j)
Next
Next
Return


[No.25] 2010/09/25(Sat) 10:02:13
Re: インクルや戦闘アニメ等の丸投げツリー (No.19への返信 / 2階層) - としあき

SP忍耐

SPアニメ_忍耐:
Local i

Center Args(1)
PlaySound Bazooka.wav
Wait Start
For i = 1 To 5
PaintPicture Anime\Common\EFFECT_Circle(Red)01.bmp _
- - (64 - i * 12) (64 - i * 12) 透過
Refresh
Wait Until (0.5 * i)
ClearPicture
Next
Wait Start
For i = 1 To 4
PaintPicture ((Anime\Common\EFFECT_Shine(Red)0) & (i) & (.bmp)) - - 透過
Refresh
Wait Until (0.5 * i)
ClearPicture
Next
Refresh
Return


[No.26] 2010/09/25(Sat) 10:02:54
Re: インクルや戦闘アニメ等の丸投げツリー (No.19への返信 / 2階層) - としあき

祈り・介抱・策謀

SPアニメ_祈り:
Local i j k unit_bitmap
k = 1
unit_bitmap = GetUnitBitmap(Args(1))

Center Args(1)
Wait Start
PlaySound Sharara.wav
For j = 0 To 3
For i = 1 To 5
PaintPicture SpecialPowerBmp("syukufuku",6) - - 480 480 透過
PaintPicture SpecialPowerBmp("inori",1) - 32 32 224 透過
PaintPicture unit_bitmap - - 透過 明
If i <> 1 Then
PaintPicture SpecialPowerBmp("inori", 7 - i) - (32 + 64 * j) 32 32 透過
Refresh
Wait Until (0.5 * k)
k = k + 1
ClearPicture
EndIf
Next
Next
Wait Start
PlaySound Inori.wav
For i = 1 To 7
PaintPicture SpecialPowerBmp("syukufuku",6) - - 480 480 透過
PaintPicture SpecialPowerBmp("inori",1) - 32 32 224 透過
PaintPicture unit_bitmap - - 透過 明
PaintPicture ("Anime\Light\EFFECT_CrossLight(Yellow)0" & i & ".bmp") - - 透過
Refresh
ClearPicture
Wait Until (0.5 * i)
Next
Refresh
Return


SPアニメ_介抱:
Local i j

Center Args(2)
PlaySound Sharara.wav
For i = 1 To 3
Wait Start
For j = 1 To 4
PaintPicture SpecialPowerBmp("syukufuku", j) 228 (198 - 2 * j) 透過
Refresh
Wait Until (1 * j)
ClearPicture
Next
Next
Refresh
Wait Start
For i = 1 To 8
PaintPicture SpecialPowerBmp("konjou_4_",Random(4)) - - 64 64 透過 水中 明
Refresh
Wait Until (1 * i)
ClearPicture
Next
Refresh
Return


SPアニメ_策謀:
Local i j

Center Args(1)
PlaySound EvilEye.wav
Wait Start
For i = 1 To 8
PaintPicture SpecialPowerBmp("hirameki",i) - - 36 36 透過 暗 暗
Refresh
Wait Until (0.5 * i)
ClearPicture
Next
Refresh

Center Args(2)
Wait Start
PlaySound Reload.wav
For i = 1 To 16
If ((i mod 4) = 1) Then
_SelectSound "Reload.wav" _GetWavFromArgs()
EndIf

Switch i
Case 1
PaintPicture "CT\EFFECT_Bind01.bmp" - - 透過 右回転 0
Case 5
PaintPicture "CT\EFFECT_Bind01.bmp" - - 透過 右回転 135
Case 9
PaintPicture "CT\EFFECT_Bind01.bmp" - - 透過 右回転 45
Case 13
PaintPicture "CT\EFFECT_Bind01.bmp" - - 透過 右回転 90
EndSw

Refresh
Wait Until (i * 0.6)
Next
Wait 2
ClearPicture
Refresh
Return


[No.27] 2010/09/25(Sat) 10:04:11
[削除] (No.19への返信 / 2階層) -

この記事は投稿者により削除されました

[No.28] 2010/09/25(Sat) 10:17:08
[削除] (No.28への返信 / 3階層) -

この記事は投稿者により削除されました

[No.47] 2010/10/17(Sun) 22:43:28
[削除] (No.18への返信 / 1階層) -

この記事は投稿者により削除されました

[No.48] 2010/10/17(Sun) 22:45:22
[削除] (No.18への返信 / 1階層) -

この記事は投稿者により削除されました

[No.49] 2010/10/17(Sun) 22:50:09
[削除] (No.18への返信 / 1階層) -

この記事は投稿者により削除されました

[No.50] 2010/10/18(Mon) 10:12:14
必中武器とかの作り方・バトコン編 (No.18への返信 / 1階層) - としあき

# バトコン使って特殊な効果の武器を作ってみようの巻

//―――――――――――――――――――――――――――――――――――――――
// 関数名:SPECIALPOWER_ROUTINE
// 説 明:一部の能力や武装用のルーチン
// 戻り値:0
// 引 数: Args(1):攻撃側(防御側)ユニットID
// Args(2):武器番号
//―――――――――――――――――――――――――――――――――――――――
SPECIALPOWER_ROUTINE:
# 自爆系武器にバリア無視と必中を付ける
ClearSpecialPower Args(1) 自属性武器用SP
If Info(ユニット, Args(1), 武器, Args(2), 属性所有, "自") = 1 Then
SpecialPower Args(1) 自属性武器用SP
EndIf
# 必中武器再現
ClearSpecialPower Args(1) 必属性武器用SP
If Info(ユニット, Args(1), 武器, Args(2), 属性所有, "必") = 1 Then
SpecialPower Args(1) 必属性武器用SP
EndIf
Return 0


[No.51] 2010/10/20(Wed) 18:12:19
終了メッセージ (No.18への返信 / 1階層) - としあき

(知ってる範囲で)アイコンがありそうな二次裏キャラで作ってみた

クリスタルボーイ
クリボー, CBR_CrystalBoy.bmp

StartBGM Cobra.mid
talk クリボー
何ぃ、SRCを終了するだとっ!?
知るかバカ!;そんなことよりオ○ニーだ!
end

魔王ベール=ゼファー
ベル, NW_BealZephyr.bmp

StartBGM NightWizard.mid
talk 魔王ベール=ゼファー
あら、ここで止めるのね?
そうね、それがいいわ。;PCばっかりしてちゃ駄目よ、「」ィザード
ねぇ、それより私ともっと楽しいことし
ねぇ、それより私ともっと楽しいことし・ま
ねぇ、それより私ともっと楽しいことし・ま・しょ?
キャッ!言っちゃった♪
end

ドラミちゃん
ドラミ, DORA_Dorami.bmp

アムロ=レイ(0079私服)
レイ, G0079_AmuroRay(P).bmp

StartBGM Doraemon.mid
Talk ドラミちゃん
朝はもちろん
Suspend
PlaySound Thunder.wav
Talk システム
<B><Size=20>サンダーLOVE!</B></Size>
Talk ドラミちゃん
ランランランと
Suspend
PlaySound Thunder.wav
Talk システム
<B><Size=20>サンダーLOVE!</B></Size>
Talk ドラミちゃん
お昼に花壇の
Suspend
PlaySound Thunder.wav
Talk システム
<B><Size=20>サンダーLOVE!</B></Size>
Suspend
PlaySound Glass.wav
AutoTalk ドラミちゃん
AutoTalk
3; 
Talk アムロ=レイ(0079私服)
く……っ!!;また、今夜も
Suspend
PlaySound Thunder.wav
Talk システム
<B><Size=20>サンダーLOVE!</B></Size>
end

マリナ=イスマイール
マリナ, GOO_MarinaIsmail.bmp

ライチュウ(ポケモン)
ライチュウ, PKMN_026_Raichu.bmp

StartBGM GundamOO.mid
Talk マリナ=イスマイール
大変よ、ライチュウ;SRCが終了されてしまったわ
Talk ライチュウ(ポケモン)
ライラーイ;(それがどうかしたんですか姫様)
Talk マリナ=イスマイール
このまま出番がなかったら私へのギャラが…
今月の食費どうしましょう…
Talk ライチュウ(ポケモン)
ライラーイ!;(元気出してください姫様!僕も頑張って発電しますから!)
Talk マリナ=イスマイール
……あら、そういえばライチュウ、;あなたってマルっとしてて何だかこう……
Talk ライチュウ(ポケモン)
ら、ライラーイ…!;(ちょ…それはシャレにならないですよ姫様!)
end

海東純一
ニーサン, RBD_MaskedRiderGlaiveU.bmp

StartBGM MaskedRiderBlade.mid
Talk 海東純一
終了…:ですか、あいつらしい
だが後悔するぞ大樹!;:このまま次のステージもクリアしなかった事を!
end


[No.63] 2010/11/05(Fri) 22:48:18
今風バトコン(2011/09/01版) (No.18への返信 / 1階層) - としあき

# 昨今のスパロボ風バトコン+α
# 最終更新日:2011/09/01
# ・各能力追加
# ・一部ルーチンを修正
# <注意事項>
# 「指揮官」技能はユニット数が多いと処理がべらぼうに重くなる危険性があるため
# シナリオに応じて外したほうが無難です


################################################################################
### alias.txt ##################################################################
################################################################################

################################################################################
### パイロット能力 #############################################################

### パラメータ上昇系 ###--------------------------------------------------------

###### Lv制能力

NT
特殊能力ニュータイプ=NT
NT=解説 "命中率・回避率に +$((Skill(PilotID(), 特殊能力ニュータイプ) _
- (1 + (Max(Skill(PilotID(), 特殊能力ニュータイプ) - 5, 0) \ 2))) * 5)% の修正を与え、;_
マップ兵器以外の「サ」属性武器の射程を +$(Max(Skill(PilotID(), 特殊能力ニュータイプ) - 5, 0) \ 2) する。"

強化人間
特殊能力強化人間=強化人間
強化人間=解説 "命中率・回避率に +$((Skill(PilotID(), 特殊能力強化人間) _
- (1 + (Max(Skill(PilotID(), 特殊能力強化人間) - 5, 0) \ 2))) * 4)% の修正を与え、;_
マップ兵器以外の「サ」属性武器の射程を +$(Max(Skill(PilotID(), 特殊能力強化人間) - 5, 0) \ 2) する。"

PSI
特殊能力PSI=PSI
PSI=解説 "命中率・回避率に +$(Skill(PilotID(), 特殊能力PSI) * 2)% の修正を与える。"

螺旋力
特殊能力螺旋力=螺旋力
螺旋力=解説 "命中率に +$(Skill(PilotID(), 特殊能力螺旋力) * 2)% の修正を与え、;_
戦闘中に受けるダメージを $(99 - Skill(PilotID(), 特殊能力螺旋力))% に軽減する。"

勇者
特殊能力勇者=勇者
勇者=解説 "命中率・回避率に +$((Skill(PilotID(), 特殊能力勇者) - 1) * 2)% の修正を与え、;_
$(Term("装甲"))値・$(Term("CT率"))に +$(Max((Skill(PilotID(), 特殊能力勇者) - 1) * 2 - 1, 0))% の修正を与える。"

新底力
特殊能力新底力=底力
底力=解説 "命中率・回避率に +$(Call("SKILL_REALPOWER", UnitID()) * 5)% の修正を与え、;_
$(Term("装甲"))値・$(Term("CT率"))に +$(Call("SKILL_REALPOWER", UnitID()) * 10)% の修正を与える。;_
(技能レベルと残り$(Term("HP"))に応じて上昇値は変動する)"

指揮官
特殊能力指揮官=指揮官
指揮官=解説 "半径$(Skill(PilotID(), 特殊能力指揮官) + 1)マス以内の全ての味方ユニットの;_
命中率と回避率に +5% の修正を与える。;(対象が技能所持者に1マス近づく度に+5%ずつ増加);_
なお、この技能の補正が重複する場合は、;最も高い補正値のみ適応する。"

###### 非Lv制能力

天才
特殊能力天才=天才
天才=解説 "命中率・回避率・$(Term("CT率"))に +20% の修正を与える。"

見切り
特殊能力見切り=見切り
見切り=解説 "気力130以上で発動。;最終命中率・最終回避率・$(Term("CT率"))に +10% の修正を与える。"


特殊能力極=極
極=解説 "気力130以上で発動。;最終命中率・最終回避率・$(Term("CT率"))に +30% の修正を与える。"

SEED
特殊能力SEED=SEED
SEED=解説 "気力130以上で発動。;_
最終命中率・最終回避率・$(Term("CT率"))に +20% の修正を与え、;戦闘での与ダメージが1.1倍になる。"

予知
特殊能力予知=予知
予知=解説 "気力130以上で発動。;反撃時、最終回避率に +30% の修正を与える。"

### 攻撃系 ###------------------------------------------------------------------

アタッカー
特殊能力アタッカー=アタッカー
アタッカー=解説 "気力130以上で発動。;戦闘での与ダメージが1.1倍になる。"

リベンジ
特殊能力リベンジ=リベンジ
リベンジ=解説 "反撃時の与ダメージが1.1倍になる。"

サイズ差補正無視
特殊能力サイズ差補正無視=サイズ差補正無視
サイズ差補正無視=解説 "サイズ差によって攻撃のダメージと命中率が低下しない。"

精密攻撃
特殊能力精密攻撃=精密攻撃
精密攻撃=解説 "クリティカル発生時、ダメージが1.5倍になる。"

### 防御系 ###------------------------------------------------------------------

ガード
特殊能力ガード=ガード
ガード=解説 "気力130以上で発動。;戦闘での被ダメージが0.8倍になる。"

ブロッキング
特殊能力ブロッキング=ブロッキング
ブロッキング=解説 "「切り払い」「シールド防御」を発動させるために必要。;_
発動確率は相手との技量差で決まる。"

### 援護系 ###------------------------------------------------------------------

連携攻撃
統率Lv4=非表示
特殊能力連携攻撃=連携攻撃
連携攻撃=解説 "援護攻撃が敵の反撃前に発動する。;_
また、援護攻撃が必ずクリティカルになる。"

### 気力系 ###------------------------------------------------------------------

気力+(回避)
特殊能力気力回避=気力+(回避)
気力+(回避)=解説 "敵の攻撃を回避した時、;本来の気力の増減に加えて気力を +1 する。"

気力+(撃破)
特殊能力気力破壊=気力+(撃破)
気力+(撃破)=解説 "味方の誰かが敵ユニットを破壊した時、;本来の気力の増減に加えて気力を +1 する。"

気力+(ダメージ)
特殊能力気力被弾=気力+(ダメージ)
気力+(ダメージ)=解説 "敵からダメージを受けた時、;本来の気力の増減に加えて気力を +2 する。"

気力+(命中)
特殊能力気力命中=気力+(命中)
気力+(命中)=解説 "敵に攻撃が命中した時、;本来の気力の増減に加えて気力を +1 する。"

戦意高揚
特殊能力戦意高揚=戦意高揚
戦意高揚=解説 "2ターン目以降から発動。;毎ターン気力を +3 する。"

戦闘後気力低下
特殊能力気力低下=戦闘後気力低下
戦闘後気力低下=解説 "戦闘後に相手の気力を -3 する。;_
ただし使用武器がマップ兵器の場合、相手の性格が「機械」の場合は無効。"

### その他 ###------------------------------------------------------------------

Bセーブ
特殊能力Bセーブ=Bセーブ
Bセーブ=解説 "全武器の弾数が1.5倍になる"

Eセーブ
特殊能力Eセーブ=Eセーブ
Eセーブ=解説 "武器とアビリティの$(Term("EN"))消費が20%減少する"

ダッシュ
特殊能力ダッシュ=ダッシュ
ダッシュ=解説 "ユニットの$(Term("移動力"))に +1 の修正を与える。;_
また、気力130以上で更に +1 の修正を与える。"

ダブルアタック
特殊能力DA=ダブルアタック
ダブルアタック=解説 "自身の$(Term("技量"))が相手より20以上高い場合、;_
攻撃直後に同じ武器で再攻撃を行う。"

パーツ供給
特殊能力パーツ供給=パーツ供給
パーツ供給=解説 "隣接するユニットに消費系強化パーツを使用する事ができる。"

ヒット&アウェイ
特殊能力HA=ヒット&アウェイ
ヒット&アウェイ=解説 "移動せずに攻撃した場合、再行動できる。;_
ただし、再行動中は攻撃不能状態になる。"

連続行動
特殊能力連続行動=連続行動
連続行動=解説 "気力120以上で敵を破壊した場合、再行動できる。;_
この権利は1フェイズ中に一度だけであり、;メインパイロットが変わっても権利は復活しない。"

################################################################################
### ユニット能力 ###############################################################

### パラメータ上昇系 ###--------------------------------------------------------

ODEシステム
特殊能力ODEシステム=ODEシステム
ODEシステム=解説 "自軍フェイズ開始時に発動。;_
最終命中率・最終回避率に +$(SKL_FRAG[ODE, Party(PilotID())])% の修正を与える。;_
(ターン数と能力所持ユニット数に応じて補正値は変動する)"

### 防御系 ###------------------------------------------------------------------

# 剣装備
# 特殊能力剣装備=剣装備
# 剣装備=解説 "「ブロッキング」能力を所持している場合のみ、一定確率で発動。_
# 戦闘時、相手の「武突実」属性攻撃を切り払い、無効化する。"

盾装備
大型シールド=盾装備
特殊能力盾装備=盾装備
盾装備=解説 "戦闘時、防御を選択した場合にシールド防御が発動する。;_
ただし「ブロッキング」を所持している場合は、;防御を選択しなくても一定確率で発動する。"

### その他 ###------------------------------------------------------------------

螺旋力発動
HP回復Lv1 (気力Lv3)
特殊能力螺旋力発動=螺旋力発動 <気力Lv3>
螺旋力発動=解説 "気力130以上で発動。;「HP回復Lv1」が付加され、_
気力と螺旋力レベルに応じて攻撃のダメージが増加する。"

空中EN消費無効
特殊能力空中EN消費無効=空中EN消費無効
空中EN消費無効=解説 "空中での毎ターンの$(Term("EN"))消費が無くなる。"

################################################################################
### システム用 #################################################################

照準値強化
特殊能力照準値強化=非表示

ユニット共通エリアス
パイロット能力強化="命中時気力増加Lv1=非表示" (気力+(命中))
パイロット能力強化="回避時気力増加Lv1=非表示" (気力+(回避))
パイロット能力強化="損傷時気力増加Lv2=非表示" (気力+(ダメージ))
最大弾数増加Lv1 (Bセーブ)
EN消費減少Lv2 (Eセーブ)
移動力強化Lv1=非表示 (ダッシュ !気力Lv3)
移動力強化Lv2=非表示 (ダッシュ 気力Lv3)
攻撃属性=非表示 改L15 !改 !M !R
攻撃属性=非表示 痛L-1 !痛 (!精密攻撃)
装甲強化Lv-0.5=非表示 (ランクLv1 !ランクLv2)
装甲強化Lv-1=非表示 (ランクLv2 !ランクLv3)
装甲強化Lv-1.5=非表示 (ランクLv3 !ランクLv4)
装甲強化Lv-2=非表示 (ランクLv4 !ランクLv5)
装甲強化Lv-2.5=非表示 (ランクLv5 !ランクLv6)
装甲強化Lv-3=非表示 (ランクLv6)

サイコミュ用エリアス
サ=解説 思念誘導攻撃 "パイロットのNT、または強化人間の技能Lvが_
$(Info(UnitID(), 武器, 対象ユニット使用武器番号, 属性レベル, サ))_
以上で;なければ使用する事ができない。;また、この攻撃はECMによる影響を受けない。"
射程延長Lv1=サ (特殊能力ニュータイプLv7 or 特殊能力強化人間Lv7 !特殊能力ニュータイプLv9 !特殊能力強化人間Lv9)
射程延長Lv2=サ (特殊能力ニュータイプLv9 or 特殊能力強化人間Lv9)

性格弱気
命中時気力増加Lv1=非表示
回避時気力増加Lv3=非表示

性格普通
命中時気力増加Lv1=非表示

性格強気
命中時気力増加Lv1=非表示
失敗時気力増加Lv1=非表示
損傷時気力増加Lv1=非表示

性格超強気
命中時気力増加Lv1=非表示
失敗時気力増加Lv2=非表示
損傷時気力増加Lv2=非表示

成長格闘型回避
格闘成長Lv-0.2=非表示
射撃成長Lv-0.35=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.025=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.35=非表示

成長格闘型防御
格闘成長Lv-0.2=非表示
射撃成長Lv-0.35=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.175=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.05=非表示

成長格闘型晩成
格闘成長Lv-0.15=非表示
射撃成長Lv-0.35=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.175=非表示
技量成長Lv-0.35=非表示

成長射撃型回避
格闘成長Lv-0.35=非表示
射撃成長Lv-0.2=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.025=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.35=非表示

成長射撃型防御
格闘成長Lv-0.35=非表示
射撃成長Lv-0.2=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.175=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.05=非表示

成長射撃型晩成
格闘成長Lv-0.35=非表示
射撃成長Lv-0.15=非表示
命中成長Lv-0.025=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.35=非表示

成長万能型回避
格闘成長Lv-0.2=非表示
射撃成長Lv-0.2=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.025=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.35=非表示

成長万能型防御
格闘成長Lv-0.2=非表示
射撃成長Lv-0.2=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.175=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.05=非表示

成長万能型晩成
格闘成長Lv-0.15=非表示
射撃成長Lv-0.15=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.075=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.1=非表示

成長SP重視型回避
SP高成長=非表示
格闘成長Lv-0.35=非表示
射撃成長Lv-0.35=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.075=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.35=非表示

成長SP重視型防御
SP高成長=非表示
格闘成長Lv-0.35=非表示
射撃成長Lv-0.35=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.175=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.1=非表示



###### 以下、敵専用

成長格闘型標準
格闘成長Lv-0.2=非表示
射撃成長Lv-0.35=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.175=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.35=非表示

成長射撃型標準
格闘成長Lv-0.35=非表示
射撃成長Lv-0.2=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.175=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.35=非表示

成長万能型標準
格闘成長Lv-0.25=非表示
射撃成長Lv-0.25=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.075=非表示
技量成長Lv-0.35=非表示
反応成長Lv-0.35=非表示

成長次元獣型
SP遅成長=非表示
格闘成長Lv-0.2=非表示
射撃成長Lv-0.2=非表示
命中成長Lv-0.025=非表示
回避成長Lv-0.175=非表示
技量成長Lv-0.02=非表示
反応成長Lv-0.51=非表示

################################################################################
### battle.txt #################################################################
################################################################################

最終命中率
Max(最終値, 0) + Call("SKILL_FINALHIT", 攻撃側ユニットID) _
- Call("SKILL_FINALAVOID", 防御側ユニットID)

命中率
(攻撃側補正 - 防御側補正) _
* Call("ADJUST_UNITSIZE", 防御側ユニットID, 攻撃側ユニットID, 武器番号) _
+ Call("ADJUST_DISTANCE", 攻撃側ユニットID, 防御側ユニットID, 武器番号) _
- Call("ADJUST_AREA_AVOID", 防御側ユニットID) _
+ CON_TARGET[防御側ユニットID]

命中補正
RoundUp((命中 / 2 + Call("UNITRANK_HIT", 攻撃側ユニットID)) _
* Call("ADJUST_AREA_UNIT", 攻撃側ユニットID, 防御側ユニットID, 武器番号), 0) + 攻撃値 _
+ Call("SKILL_HIT", 攻撃側ユニットID) + Call("SKILL_REALPOWER", 攻撃側ユニットID) * 5 _
+ Call("SKILL_COMMANDER", 攻撃側ユニットID)

回避補正
RoundUp((回避 / 2 + 運動性) * Call("ADJUST_AREA_UNIT", 防御側ユニットID), 0) _
+ Call("SKILL_AVOID", 防御側ユニットID) + Call("SKILL_REALPOWER", 防御側ユニットID) * 5 _
+ Call("SKILL_COMMANDER", 防御側ユニットID)

最終ダメージ
最終値 + Call("SPECIALPOWER_ROUTINE", 攻撃側ユニットID, 防御側ユニットID, 武器番号)

ダメージ
(攻撃側補正 - 防御側補正) _
* Call("ADJUST_SIZEDAMAGE", 攻撃側ユニットID, 防御側ユニットID, 武器番号) _
* Call("ADJUST_AREA_DAMAGE", 防御側ユニットID) _
* (1 + Call("ADJUST_PRESSMENT", 防御側ユニットID, 攻撃側ユニットID) / 100) _
* Call("SKILL_DAMAGE", 攻撃側ユニットID, 防御側ユニットID)

攻撃地形補正
攻撃値 * Call("ADJUST_AREA_WEAPON", 攻撃側ユニットID, 防御側ユニットID, 武器番号)

攻撃補正
武器威力 * (攻撃値 + 気力) / 200

防御補正
装甲値 * (反応 + 気力) / 200 * Call("SKILL_GUARD", 防御側ユニットID) _
* (1 + Call("SKILL_REALPOWER", 防御側ユニットID) / 10)

最終クリティカル発生率
最終値 \ Call("CRITICAL_PARTYCHECK", 攻撃側ユニットID, 防御側ユニットID)

クリティカル攻撃補正
技量 + 攻撃値 + Call("SKILL_CRITICAL", 攻撃側ユニットID) _
+ Call("SKILL_REALPOWER", 攻撃側ユニットID) * 10

# 特殊効果攻撃補正
# 技量 \ 2 + 攻撃値

# 特殊効果防御補正
# 技量 \ 2 - Call("CRITICAL_PARTYCHECK2", ザコ補正, 攻撃側ユニットID, 防御側ユニットID)

################################################################################
### sp.txt #####################################################################
################################################################################

必属性武器用SP
非表示, 0, 自分, 攻撃, -, -, -
絶対命中
-

散属性武器用SP
非表示, 0, 自分, 攻撃, -, -, -
回避能力無効化
-

DA用SP
非表示, 0, 自分, 攻撃, -, -, -
再攻撃
-

################################################################################
### include.eve ################################################################
################################################################################

//―――――――――――――――――――――――――――――――――――――――
// 関数名:SKILL_FINALHIT
// 説 明:攻撃(防御)側の特殊スキルによる最終命中率補正を算出する
// 引 数: Args(1):攻撃側ユニットID
//―――――――――――――――――――――――――――――――――――――――
SKILL_FINALHIT:
Local i = 0

# ODEシステム
If IsAvailable(Args(1), 特殊能力ODEシステム) <> 0 Then
i= i + SKL_FRAG[ODE, Party(Args(1))]
EndIf

# 見切り
If Skill(PilotID(Args(1)), 特殊能力見切り) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
Incr i 10
EndIf

# SEED
If Skill(PilotID(Args(1)), 特殊能力SEED) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
Incr i 20
EndIf

# 極
If Skill(PilotID(Args(1)), 特殊能力極) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
Incr i 30
EndIf
Return i

//―――――――――――――――――――――――――――――――――――――――
// 関数名:SKILL_FINALAVOID
// 説 明:攻撃(防御)側の特殊スキルによる最終回避率補正を算出する
// 引 数: Args(1):防御側ユニットID
//―――――――――――――――――――――――――――――――――――――――
SKILL_FINALAVOID:
Local i = 0

# ODEシステム
If IsAvailable(Args(1), 特殊能力ODEシステム) <> 0 Then
i= i + SKL_FRAG[ODE, Party(Args(1))]
EndIf

# 見切り
If Skill(PilotID(Args(1)), 特殊能力見切り) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
Incr i 10
EndIf

# SEED
If Skill(PilotID(Args(1)), 特殊能力SEED) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
Incr i 20
EndIf

# 極
If Skill(PilotID(Args(1)), 特殊能力極) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
Incr i 30
EndIf

# 予知
If Skill(PilotID(Args(1)), 特殊能力予知) <> 0 _
And Morale(PilotID(Args(1))) >= 130 _
And Party(Args(1)) <> フェイズ Then
Incr i 30
EndIf
Return i

//―――――――――――――――――――――――――――――――――――――――
// 関数名:ADJUST_UNITSIZE
// 説 明:ユニットサイズによる回避率補正を算出する
// 戻り値: 攻撃側サイズ - 防御側サイズ(1.5〜0.5)
// 引 数: Args(1):防御側ユニットID
// Args(2):攻撃側ユニットID
//―――――――――――――――――――――――――――――――――――――――
ADJUST_UNITSIZE:
Local i
i[XL] = 6
i[LL] = 5
i[L] = 4
i[M] = 3
i[S] = 2
i[SS] = 1

i[Avoid] = 1 + (i[Info(ユニット, Args(1), サイズ)] _
- i[Info(ユニット, Args(2), サイズ)]) / 10

# サイズ差補正無視スキル所持、武器が「大」属性、SP「直撃」がかかっている場合は
# 命中率が低下しない
If i[Avoid] < 1 Then
If Skill(PilotID(Args(2)), 特殊能力サイズ差補正無視) <> 0 Then
Return 1
ElseIf Info(ユニット, Args(2), 武器, Args(3), 属性所有, "大") = 1 Then
Return 1
ElseIf SpecialPower(PilotID(Args(2)), 直撃) = 1 Then
Return 1
EndIf
EndIf
Return i[Avoid]

//―――――――――――――――――――――――――――――――――――――――
// 関数名:ADJUST_DISTANCE
// 説 明:攻撃側と防御側双方間の距離命中率補正を算出する
// 戻り値: (3 - 距離) * 5
// 引 数: Args(1):攻撃側ユニットID
// Args(2):防御側ユニットID
// Args(3):武器番号
//―――――――――――――――――――――――――――――――――――――――
ADJUST_DISTANCE:
# 拡散武器、MAP兵器の場合は計算しない
If Info(ユニット, Args(1), 武器, Args(3), 属性所有, "散") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "M") = 1 Then
Return 0
EndIf

Local i

# 互いの距離を算出
i = Abs(X(Args(1)) - X(Args(2))) + Abs(Y(Args(1)) - Y(Args(2)))

# 補正計算
i = (3 - i) * 5

# 近接武器、誘導系武器の場合は減算しない
If Info(ユニット, Args(1), 武器, Args(3), 属性所有, "武") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "突") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "接") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "サ") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "H") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "追") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "有") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "誘") = 1 Then
Return (Max(i, 0))
EndIf
Return i

//―――――――――――――――――――――――――――――――――――――――
// 関数名:ADJUST_AREA_AVOID
// 説 明:防御側の存在する地形の回避率補正を算出する
// 引 数: Args(1):防御側ユニットID
//―――――――――――――――――――――――――――――――――――――――
ADJUST_AREA_AVOID:
If Area(Args(1)) = "空中" Or Area(Args(1)) = "水上" Then
Return 0
EndIf
Return (Info(マップ, X(Args(1)), Y(Args(1)), 回避修正))

//―――――――――――――――――――――――――――――――――――――――
// 関数名:UNITRANK_HIT
// 説 明:攻撃側のユニットランクによって擬似的に照準値を再現
// 引 数: Args(1):攻撃側ユニットID
//―――――――――――――――――――――――――――――――――――――――
UNITRANK_HIT:
Local i
i[Hit] = 140

i[Hit] = i[Hit] + Rank(Args(1)) * 5

For i[Num] = 1 To Info(ユニット, Args(1), 特殊能力数)
If Info(ユニット, Args(1), 特殊能力, i[Num]) = "特殊能力照準値強化" Then
i[Hit] = i[Hit] + Info(ユニット, Args(1), 特殊能力レベル, i[Num]) * 5
EndIf
Next
Return i[Hit]

//―――――――――――――――――――――――――――――――――――――――
// 関数名:ADJUST_AREA_UNIT
// 説 明:攻撃(防御)側のユニットの地形適応命中(回避)補正を算出する
// 戻り値: S:1.1 A:1 B:0.9 C:0.8 D:0.4 -:0
// 引 数: Args(1):攻撃側ユニットID
// Args(2):防御側ユニットID
// Args(3):武器番号
//―――――――――――――――――――――――――――――――――――――――
ADJUST_AREA_UNIT:
Local i

# 接近戦攻撃の場合は防御側地形、それ以外は攻撃側地形が適応される
If Info(ユニット, Args(1), 武器, Args(3), 属性所有, "武") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "突") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "接") = 1 Then
i[Unit] = Args(2)
Else
i[Unit] = Args(1)
EndIf

# 攻撃側(防御側)の地形適応を抽出する
Switch Area(i[Unit])
Case "空中" "水上"
i[Area] = Mid(Info(ユニット, Args(1), "地形適応"), 1, 1)
Case "水中"
i[Area] = Mid(Info(ユニット, Args(1), "地形適応"), 3, 1)
Case "宇宙"
i[Area] = Mid(Info(ユニット, Args(1), "地形適応"), 4, 1)
Case Else
i[Area] = Mid(Info(ユニット, Args(1), "地形適応"), 2, 1)
EndSw

# 抽出した地形に応じて値を代入する
Switch i[Area]
Case "S"
i[Area] = 5
Case "A"
i[Area] = 4
Case "B"
i[Area] = 3
Case "C"
i[Area] = 2
Case "D"
i[Area] = 1
Case Else
i[Area] = 0
EndSw

If i[Unit] = Args(2) And Area(Args(2)) = "空中" Then
# ジャンプ攻撃の場合は、属性レベル分だけ値を加算
If Info(ユニット, Args(1), 武器, Args(3), 属性所有, "J") = 1 Then
i[Area] = i[Area] + Info(ユニット, Args(1), 武器, Args(3), 属性レベル, "J")
EndIf
EndIf

# 値に応じて地形適応倍率を算出する
Switch i[Area]
Case "4"
Return 1
Case "3"
Return 0.9
Case "2"
Return 0.8
Case "1"
Return 0.4
Case "0"
Return 0
EndSw
Return 1.1

//―――――――――――――――――――――――――――――――――――――――
// 関数名:SKILL_HIT
// 説 明:攻撃側の特殊スキルによる命中率補正を算出する
// 引 数: Args(1):攻撃側ユニットID
//―――――――――――――――――――――――――――――――――――――――
SKILL_HIT:
Local i = 0

# ニュータイプ
If Skill(PilotID(Args(1)), 特殊能力ニュータイプ) <> 0 Then
i = i + (Skill(PilotID(Args(1)), 特殊能力ニュータイプ) _
- (1 + (Max(Skill(PilotID(Args(1)), 特殊能力ニュータイプ) - 5, 0) \ 2))) * 5
EndIf

# 強化人間
If Skill(PilotID(Args(1)), 特殊能力強化人間) <> 0 Then
i = i + (Skill(PilotID(Args(1)), 特殊能力強化人間) _
- (1 + (Max(Skill(PilotID(Args(1)), 特殊能力強化人間) - 5, 0) \ 2))) * 4
EndIf

# PSI
If Skill(PilotID(Args(1)), 特殊能力PSI) <> 0 Then
i = i + Skill(PilotID(Args(1)), 特殊能力PSI) * 2
EndIf

# 勇者
If Skill(PilotID(Args(1)), 特殊能力勇者) <> 0 Then
i = i + (Skill(PilotID(Args(1)), 特殊能力勇者) - 1) * 2
EndIf

# 螺旋力
If Skill(PilotID(Args(1)), 特殊能力螺旋力) <> 0 Then
i = i + Skill(PilotID(Args(1)), 特殊能力螺旋力) * 2
EndIf

# 天才
If Skill(PilotID(Args(1)), 特殊能力天才) <> 0 Then
Incr i 20
EndIf

# 底力補正相殺
If Skill(PilotID(Args(1)), 特殊能力新底力) <> 0 _
And Damage(Args(1)) >= 75 Then
Incr i -30
EndIf
# 運動性変動系特殊効果修正
If Condition(Args(1), "運動性UP") <> 0 _
And SpecialPower(PilotID(Args(1)), 集中) <> 1 Then
Incr i -15
EndIf
If Condition(Args(1), "運動性DOWN") <> 0 Then
Incr i 15
EndIf
Return HIT

//―――――――――――――――――――――――――――――――――――――――
// 関数名:SKILL_AVOID
// 説 明:防御側の特殊スキルによる回避率補正を算出する
// 引 数: Args(1):防御側ユニットID
//―――――――――――――――――――――――――――――――――――――――
SKILL_AVOID:
Local i = 0

# ニュータイプ
If Skill(PilotID(Args(1)), 特殊能力ニュータイプ) <> 0 Then
i = i + (Skill(PilotID(Args(1)), 特殊能力ニュータイプ) _
- (1 + (Max(Skill(PilotID(Args(1)), 特殊能力ニュータイプ) - 5, 0) \ 2))) * 5
EndIf

# 強化人間
If Skill(PilotID(Args(1)), 特殊能力強化人間) <> 0 Then
i = i + (Skill(PilotID(Args(1)), 特殊能力強化人間) _
- (1 + (Max(Skill(PilotID(Args(1)), 特殊能力強化人間) - 5, 0) \ 2))) * 4
EndIf

# PSI
If Skill(PilotID(Args(1)), 特殊能力PSI) <> 0 Then
i = i + Skill(PilotID(Args(1)), 特殊能力PSI) * 2
EndIf

# 勇者
If Skill(PilotID(Args(1)), 特殊能力勇者) <> 0 Then
i = i + (Skill(PilotID(Args(1)), 特殊能力勇者) - 1) * 2
EndIf

# 天才
If Skill(PilotID(Args(1)), 特殊能力天才) <> 0 Then
Incr i 20
EndIf

# 底力補正相殺
If Skill(PilotID(Args(1)), 特殊能力新底力) <> 0 _
And Damage(Args(1)) >= 75 Then
Incr i -30
EndIf
# 運動性変動系特殊効果修正
If Condition(Args(1), "運動性UP") <> 0 _
And SpecialPower(PilotID(Args(1)), 集中) <> 1 Then
Incr i 15
EndIf
If Condition(Args(1), "運動性DOWN") <> 0 Then
Incr i -15
EndIf
Return AVD

//―――――――――――――――――――――――――――――――――――――――
// 関数名:SKILL_REALPOWER
// 説 明:底力スキルによる補正値を算出する
// 戻り値: 0〜9(小数点以下切り捨て)
// 引 数: Args(1):攻撃(防御)側ユニットID
//―――――――――――――――――――――――――――――――――――――――
SKILL_REALPOWER:
Local i = 0

If Skill(PilotID(Args(1)), 特殊能力新底力) <> 0 Then
i = Damage(Args(1)) \ 10 _
- (9 - Info(パイロット, PilotID(Args(1)), 特殊能力レベル, "新底力"))
EndIf
Return (Max(i, 0))

//―――――――――――――――――――――――――――――――――――――――
// 関数名:SKILL_COMMANDER
// 説 明:指揮官スキルによる補正値を算出する
// 戻り値: 0〜(5の倍数のみ)
// 引 数: Args(1):攻撃(防御)側ユニットID
//―――――――――――――――――――――――――――――――――――――――
SKILL_COMMANDER:
Local i
i[Hit] = 0
i[Log] = 0

# 戦闘アニメのバグ防止用
Set i[Unit1] 対象ユニットID
Set i[Unit2] 相手ユニットID

# 出撃している攻撃側ユニット陣営で
# 指揮官スキルを所持しているパイロットを検索
ForEach Party(Args(1)) 出撃
If i[Unit1] = 対象ユニットID Then
Skip
EndIf
If Skill(PilotID(対象ユニットID), 特殊能力指揮官) > 0 Then
i[Hit] = (Skill(PilotID(対象ユニットID), 特殊能力指揮官) + 2) * 5 _
- (Abs(X(Args(1)) - X(対象ユニットID)) + Abs(Y(Args(1)) - Y(対象ユニットID))) * 5
If i[Log] <= i[Hit] Then
i[Log] = i[Hit]
EndIf
EndIf
Next

# 対象・相手ユニットを復元(存在しない場合はスルー)
If Not i[Unit1] = "" Then
Select i[Unit1]
EndIf
If Not i[Unit2] = "" Then
SelectTarget i[Unit2]
EndIf
Return i[Log]

//―――――――――――――――――――――――――――――――――――――――
// 関数名:ADJUST_SIZEDAMAGE
// 説 明:ユニットサイズによるダメージ補正を算出する
// 戻り値: 0.5〜1.5
// 引 数: Args(1):攻撃側ユニットID
// Args(2):防御側ユニットID
// Args(3):武器番号
//―――――――――――――――――――――――――――――――――――――――
ADJUST_SIZEDAMAGE:
Local i
i[XL] = 6
i[LL] = 5
i[L] = 4
i[M] = 3
i[S] = 2
i[SS] = 1

# 1 + (攻撃側サイズ - 防御側サイズ) / 10
i[Damage] = 1 + (i[Info(ユニット, Args(1), サイズ)] _
- i[Info(ユニット, Args(2), サイズ)]) / 10

# サイズ差補正無視スキル所持、武器が「大」属性、SP「直撃」がかかっている場合は
# サイズ差ダメージ補正を算出しない(ただし、ダメージが低下する場合のみ)
If i[Damage] < 1 Then
If Skill(PilotID(Args(1)), 特殊能力サイズ差補正無視) <> 0 Then
Return 1
ElseIf Info(ユニット, Args(1), 武器, Args(3), 属性所有, "大") = 1 Then
Return 1
ElseIf SpecialPower(PilotID(Args(1)), 直撃) = 1 Then
Return 1
EndIf
EndIf
Return i[Damage]

//―――――――――――――――――――――――――――――――――――――――
// 関数名:ADJUST_AREA_DAMAGE
// 説 明:防御側の存在する地形の防御補正を算出する
// 引 数: Args(1):防御側ユニットID
//―――――――――――――――――――――――――――――――――――――――
ADJUST_AREA_DAMAGE:
If Area(Args(1)) = "空中" Or Area(Args(1)) = "水上" Then
Return 1
EndIf
Return ((100 - Info(マップ, X(Args(1)), Y(Args(1)), ダメージ修正)) / 100)

//―――――――――――――――――――――――――――――――――――――――
// 関数名:ADJUST_PRESSENT
// 説 明:プレースメント補正を算出する
// 戻り値:敵の周囲を取り囲む同陣営ユニット数によって変動(1、1.05、1.1)
// 引 数: Args(1):防御側ユニットID
// Args(2):攻撃側ユニットID
//―――――――――――――――――――――――――――――――――――――――
ADJUST_PRESSMENT:
Local i j
i[Pressment] = 0

# 北側判定
i[Unit1] = Info(マップ, X(Args(1)), Y(Args(1)) - 1, ユニットID)
# 南側判定
i[Unit2] = Info(マップ, X(Args(1)), Y(Args(1)) + 1, ユニットID)
# 東側判定
i[Unit3] = Info(マップ, X(Args(1)) + 1, Y(Args(1)), ユニットID)
# 西側判定
i[Unit4] = Info(マップ, X(Args(1)) - 1, Y(Args(1)), ユニットID)

If Party(i[Unit1]) = Party(Args(2)) And i[Unit1] <> Args(2) Then
Incr i[Pressment] 1
EndIf
If Party(i[Unit2]) = Party(Args(2)) And i[Unit2] <> Args(2) Then
Incr i[Pressment] 1
EndIf
If Party(i[Unit3]) = Party(Args(2)) And i[Unit3] <> Args(2) Then
Incr i[Pressment] 1
EndIf
If Party(i[Unit4]) = Party(Args(2)) And i[Unit4] <> Args(2) Then
Incr i[Pressment] 1
EndIf

If i[Pressment] > 0 Then
If i[Pressment] = 4 Then
Return 10
Else
Return 5
EndIf
EndIf
Return 0

//―――――――――――――――――――――――――――――――――――――――
// 関数名:SKILL_DAMAGE
// 説 明:攻撃(防御)側の特殊スキルによるダメージ倍率補正を算出する
// 引 数: Args(1):攻撃側ユニットID
// Args(2):防御側ユニットID
//―――――――――――――――――――――――――――――――――――――――
SKILL_DAMAGE:
Local i = 1

# SEED
If Skill(PilotID(Args(1)), 特殊能力SEED) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
i = i * 1.1
EndIf

# アタッカー
If Skill(PilotID(Args(1)), 特殊能力アタッカー) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
i = i * 1.1
EndIf

# リベンジ
If Skill(PilotID(Args(1)), 特殊能力リベンジ) <> 0 _
And Party(Args(1)) <> フェイズ Then
i = i * 1.1
EndIf

# ガード
If Skill(PilotID(Args(2)), 特殊能力ガード) <> 0 _
And Morale(PilotID(Args(2))) >= 130 Then
i = i * 0.8
EndIf

# 螺旋力
If Skill(PilotID(Args(2)), 特殊能力螺旋力) <> 0 Then
i = i * ((99 - Skill(PilotID(Args(2)), 特殊能力螺旋力)) / 100)
EndIf

# 螺旋力発動
If IsAvailable(Args(1), 特殊能力螺旋力発動) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
i = i * Min(1 + RoundDown(Morale(PilotID(Args(1))) - 110, -1) / 200, _
1 + Skill(PilotID(Args(1)), 特殊能力螺旋力) * 0.05)
EndIf
Return i

//―――――――――――――――――――――――――――――――――――――――
// 関数名:ADJUST_AREA_WEAPON
// 説 明:攻撃側のユニットの地形適応ダメージ倍率補正を算出する
// 戻り値: S:1.1 A:1 B:0.8 C:0.6 D:0.4 -:0
// 引 数: Args(1):攻撃側ユニットID
// Args(2):防御側ユニットID
// Args(3):武器番号
//―――――――――――――――――――――――――――――――――――――――
ADJUST_AREA_WEAPON:
Local i

# 接近戦攻撃の場合は防御側地形、それ以外は攻撃側地形が適応される
If Info(ユニット, Args(1), 武器, Args(3), 属性所有, "武") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "突") = 1 _
Or Info(ユニット, Args(1), 武器, Args(3), 属性所有, "接") = 1 Then
i[Unit] = Args(2)
Else
i[Unit] = Args(1)
EndIf

# 攻撃側の武器地形適応を抽出する
Switch Area(i[Unit])
Case "空中"
i[Area] = Mid(Info(ユニット, Args(1), 武器, Args(3), "地形適応"), 1, 1)
Case "水中"
i[Area] = Mid(Info(ユニット, Args(1), 武器, Args(3), "地形適応"), 3, 1)
Case "宇宙"
i[Area] = Mid(Info(ユニット, Args(1), 武器, Args(3), "地形適応"), 4, 1)
Case Else
i[Area] = Mid(Info(ユニット, Args(1), 武器, Args(3), "地形適応"), 2, 1)
EndSw

# 抽出した地形に応じて値を代入し
# 値に応じて地形適応倍率を算出する
Switch i[Area]
Case "S"
Return 1.1
Case "A"
Return 1
Case "B"
Return 0.8
Case "C"
Return 0.6
Case "D"
Return 0.4
EndSw
Return 0

//―――――――――――――――――――――――――――――――――――――――
// 関数名:SKILL_GUARD
// 説 明:防御側の特殊スキルによる装甲補正を算出する
// 引 数: Args(1):防御側ユニットID
//―――――――――――――――――――――――――――――――――――――――
SKILL_GUARD:
Local i = 100

# 勇者
If Skill(PilotID(Args(1)), 特殊能力勇者) > 1 Then
i = i + (Skill(PilotID(Args(1)), 特殊能力勇者) - 1) * 2 - 1
EndIf
Return (i / 100)

//―――――――――――――――――――――――――――――――――――――――
// 関数名:CRITICAL_PARTYCHECK
// 説 明:敵陣営ユニットが味方陣営ユニットに攻撃する場合
// 最終CT率が1/4に抑えられる
// 戻り値: 攻撃側が敵の場合:4
// 攻撃側が中立、防御側が味方、またはNPCの場合:4
// それ以外:1
// 引 数: Args(1):攻撃側ユニットID
// Args(2):防御側ユニットID
//―――――――――――――――――――――――――――――――――――――――
CRITICAL_PARTYCHECK:
If Party(Args(1)) = Party(Args(2)) Then
Return 4
ElseIf Party(Args(1)) = "敵" Then
Return 4
ElseIf Party(Args(1)) = "中立" Then
Switch Party(Args(2))
Case "味方" "NPC"
Return 4
EndSw
EndIf
Return 1

//―――――――――――――――――――――――――――――――――――――――
// 関数名:SKILL_CRITICAL
// 説 明:攻撃側の特殊スキルによるクリティカル率補正を算出する
// 引 数: Args(1):攻撃側ユニットID
//―――――――――――――――――――――――――――――――――――――――
SKILL_CRITICAL:
Local i = 0

# 勇者
If Skill(PilotID(Args(1)), 特殊能力勇者) > 1 Then
i = i + (Skill(PilotID(Args(1)), 特殊能力勇者) - 1) * 2 - 1
EndIf

# 天才
If Skill(PilotID(Args(1)), 特殊能力天才) <> 0 Then
Incr i 20
EndIf

# 見切り
If Skill(PilotID(Args(1)), 特殊能力見切り) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
Incr i 10
EndIf

# SEED
If Skill(PilotID(Args(1)), 特殊能力SEED) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
Incr i 20
EndIf

# 極
If Skill(PilotID(Args(1)), 特殊能力極) <> 0 _
And Morale(PilotID(Args(1))) >= 130 Then
Incr i 30
EndIf

# 底力補正相殺
If Skill(PilotID(Args(1)), 特殊能力新底力) <> 0 _
And Damage(Args(1)) >= 75 Then
i = i - 50
EndIf
Return i

//―――――――――――――――――――――――――――――――――――――――
// 関数名:CRITICAL_PARTYCHECK2
// 説 明:敵特殊効果発動率補正
// 戻り値: 攻撃側が敵の場合:+30
// 攻撃側が中立、防御側が味方、またはNPCの場合:+30
// それ以外:0
// 引 数: Args(1):ザコ補正
// Args(2):攻撃側ユニットID
// Args(3):防御側ユニットID
//―――――――――――――――――――――――――――――――――――――――
CRITICAL_PARTYCHECK2:
Local i
i = Args(1)

If Party(Args(2)) = Party(Args(3)) Then
Return i
ElseIf Party(Args(2)) = "敵" Then
i = i + 30
ElseIf Party(Args(2)) = "中立" Then
Switch Party(Args(3))
Case "味方" "NPC"
i = i + 30
EndSw
EndIf
Return i

//―――――――――――――――――――――――――――――――――――――――
// 関数名:SPECIALPOWER_ROUTINE
// 説 明:一部の能力や武装用のルーチン
// 戻り値:0
// 引 数: Args(1):攻撃側ユニットID
// Args(2):防御側ユニットID
// Args(3):武器番号
//―――――――――――――――――――――――――――――――――――――――
SPECIALPOWER_ROUTINE:
Local i = 0

# ブロッキング
ClearSkill PilotID(Args(2)) 切り払い
ClearSkill PilotID(Args(2)) S防御
If IsAvailable(Args(2), 特殊能力盾装備) <> 0 _
And 相手ユニット使用武器 = "防御" Then
SetSkill PilotID(Args(2)) S防御 32 非表示
ElseIf Skill(PilotID(Args(2)), 特殊能力ブロッキング) <> 0 Then
i = Max((Info(パイロット, PilotID(Args(2)), "技量") + 10) _
- Info(パイロット, PilotID(Args(1)), "技量"), 10)
If Party(Args(2)) = Party(Args(1)) Then
i = i \ 2
ElseIf Party(Args(2)) = "敵" Then
i = i \ 2
ElseIf Party(Args(2)) = "中立" Then
Switch Party(Args(1))
Case "味方" "NPC"
i = i \ 2
EndSw
EndIf
If i >= Random(100) Then
# If IsAvailable(Args(2), 特殊能力剣装備) <> 0 Then
SetSkill PilotID(Args(2)) 切り払い 32 非表示
# EndIf
EndIf
If IsAvailable(Args(2), 特殊能力盾装備) <> 0 Then
If i >= Random(100) Then
If 1 = Random(2) Then
ClearSkill PilotID(Args(2)) 切り払い
EndIf
SetSkill PilotID(Args(2)) S防御 32 非表示
EndIf
EndIf
EndIf

# 必中武器再現
ClearSpecialPower Args(1) 必属性武器用SP
If Info(ユニット, Args(1), 武器, Args(3), 属性所有, "必") = 1 Then
SpecialPower Args(1) 必属性武器用SP
EndIf

# 拡散攻撃を分身無効にする
ClearSpecialPower Args(1) 散属性武器用SP
If Info(ユニット, Args(1), 武器, Args(3), 属性所有, "散") = 1 Then
SpecialPower Args(1) 散属性武器用SP
EndIf
Return 0

################################################################################
### 特殊システムルーチン #######################################################

*ターン 全 全:
# 連続行動技能のフラグを消す
UnSet SKL_FRAG[RENGEKI]

# 連続ターゲット補正リストを消去する
ForEach フェイズ 全て
UnSet CON_TARGET[対象ユニットID]
Next
ForEach フェイズ 出撃
If ターン数 > 1 Then
# 戦意高揚
If Skill(対象パイロット, 特殊能力戦意高揚) <> 0 Then
IncreaseMorale 3
EndIf
If IsAvailable(対象ユニットID, 特殊能力空中EN消費無効) <> 1 Then
# 空中か水上にいるユニットはENが10減る
Switch Area(対象ユニットID)
Case "空中" "水上"
EN(対象ユニットID) = EN(対象ユニットID) - 10
EndSw
EndIf
EndIf
If Skill(対象パイロット, 特殊能力HA) <> 0 Then
UnSet SKL_FRAG[HA]
SKL_FRAG[HA, 対象ユニットID, CX] = X(対象ユニットID)
SKL_FRAG[HA, 対象ユニットID, CY] = Y(対象ユニットID)
EndIf
If IsAvailable(対象ユニットID, 特殊能力ODEシステム) <> 0 Then
Incr SKL_FRAG[ODE, Party(対象ユニットID)] 2
EndIf
Next
Exit

*攻撃 全 全:
# ダブルアタック
ClearSpecialPower 対象ユニットID DA用SP
If Skill(対象パイロット, 特殊能力DA) <> 0 Then
If Info(パイロット, 対象パイロット, 技量) >= _
(Info(パイロット, 相手パイロット, 技量) + 20) Then
SpecialPower 対象ユニットID DA用SP
EndIf
EndIf

# ヒット&アウェイ
If Skill(対象パイロット, 特殊能力HA) <> 0 Then
If (SKL_FRAG[HA, 対象ユニットID, CX] = X(対象ユニットID)) _
And (SKL_FRAG[HA, 対象ユニットID, CY] = Y(対象ユニットID)) Then
SKL_FRAG[HA, 対象ユニットID, FRAG] = 1
EndIf
EndIf
Exit

*攻撃後 全 全:
# 交戦した相手の連続ターゲット補正を10%増加させる
Incr CON_TARGET[相手ユニットID] 10

If Info(ユニット, 対象ユニットID, 武器, 対象ユニット使用武器, 属性所有, "M") = 1 Exit

# 相手が反撃していればこちらの補正も増加
If 相手ユニット使用武器 <> "" _
And 相手ユニット使用武器 <> "防御" _
And 相手ユニット使用武器 <> "回避" Then
Incr CON_TARGET[対象ユニットID] 10
EndIf

If Skill(対象パイロット, 特殊能力気力低下) <> 0 _
And Info(パイロット, 相手パイロット, 性格) <> "機械" Then
IncreaseMorale 相手ユニットID -3
EndIf
Exit

*破壊 全:
# 破壊されたユニットの連続ターゲット補正を消去する
UnSet CON_TARGET[対象ユニットID]

If IsAvailable(対象ユニットID, 特殊能力ODEシステム) <> 0 Then
Incr SKL_FRAG[ODE, Party(対象ユニットID)] -2
EndIf

# 連続行動技能
If Skill(相手ユニットID, 特殊能力連続行動) <> 0 Then
If Morale(PilotID(相手ユニットID)) >= 120 _
And SKL_FRAG[RENGEKI, PilotID(相手ユニットID)] = 0 Then
Action(相手ユニットID) = Action(相手ユニットID) + 1
For i = 1 To CountPilot(相手ユニットID)
Set SKL_FRAG[RENGEKI, PilotID(相手ユニットID, i)] 1
Next
EndIf
EndIf

If Info(ユニット, 相手ユニットID, 武器, 相手ユニット使用武器, 属性所有, "M") = 1 Then
If Info(パイロット, 相手パイロット, 性格) <> "機械" Then
IncreaseMorale 相手ユニットID 1
EndIf
ForEach Party(相手ユニットID)
If Info(パイロット, 対象パイロット, 性格) <> "機械" Then
IncreaseMorale 1
EndIf
If Skill(対象ユニットID, 特殊能力気力破壊) <> 0 Then
IncreaseMorale 1
EndIf
Next
Else
ForEach Party(相手ユニットID)
If Skill(対象ユニットID, 特殊能力気力破壊) <> 0 Then
IncreaseMorale 1
EndIf
Next
EndIf
Exit

*行動終了 全:
If Skill(対象パイロット, 特殊能力HA) <> 0 Then
If SKL_FRAG[HA, 対象ユニットID, FRAG] = 1 Then
Action(対象ユニットID) = Action(対象ユニットID) + 1
SKL_FRAG[HA, 対象ユニットID, FRAG] = 2
SetStatus 対象ユニットID 攻撃不能 -1
ElseIf SKL_FRAG[HA, 対象ユニットID, FRAG] = 2 Then
ClearStatus 対象ユニットID 攻撃不能
UnSet SKL_FRAG[HA]
SKL_FRAG[HA, 対象ユニットID, CX] = X(対象ユニットID)
SKL_FRAG[HA, 対象ユニットID, CY] = Y(対象ユニットID)
EndIf
EndIf
Exit

ユニットコマンド 待機 全 (SKL_FRAG[HA, 対象ユニットID, FRAG] = 2):
ClearStatus 対象ユニットID 攻撃不能
UnSet SKL_FRAG[HA]
SKL_FRAG[HA, 対象ユニットID, CX] = X(対象ユニットID)
SKL_FRAG[HA, 対象ユニットID, CY] = Y(対象ユニットID)
Finish
Exit

-*ユニットコマンド 照準値表示 全 Call(HitView):
Exit

HitView:
Line 400 0 479 32 #000032 BF
Line 400 0 479 32 B #7878ff
Line 401 1 478 31 B #5050ff
Font 10pt #ffffaa 明朝 Regular
PaintString 405 10 "照準値$(RSet(Call("UNITRANK_HIT", UnitID()), 4))"
Font
Refresh
ClearPicture
Return


[No.80] 2011/02/13(Sun) 10:04:50
Re: インクルya等の丸投げツリー (No.18への返信 / 1階層) - としあき


### 蘇生系アビリティ用ルーチン ###----------------------------------------------

# これに各版権の蘇生系アビリティを追加してください
*使用 味方 蘇生:
Local UNIT_ID
UNIT_ID[Unit] = UnitID()
UNIT_ID[Ability] = 対象ユニット使用アビリティ
If GetDestroyUnit() = 0 Then
AutoTalk システム
破壊されたユニットが存在しないため、._
$(対象ユニット使用アビリティ)は使用できません
End
Action(対象ユニットID) = Action(対象ユニットID) + 1
Cancel
Exit
EndIf

Switch UNIT_ID[Ability]
Case "完全蘇生"
Call ReviveAbility UNIT_ID[Unit] HP全回復
Case Else
Call ReviveAbility UNIT_ID[Unit]
EndSw
Exit

GetDestroyUnit:
Local DES_UNIT = 0
ForEach 味方 破壊
If Not IsHanyoPilot() Then
DES_UNIT = DES_UNIT + 1
EndIf
Next
Return DES_UNIT

ReviveAbility:
Local i GDU DES_UNIT2 UNIT_BMP
GDU = GetDestroyUnit()
UNIT_BMP = GetUnitBitmap(Args(1))

If GDU = 0 Then
Return
EndIf

For i = 1 To GDU
If Not IsHanyoPilot() Then
DES_UNIT2[i] = Unit()
EndIf
Next

Ask DES_UNIT2 復活させるユニットを選択してください キャンセル可
If 選択 = 0 Then
Action(Args(1)) = Action(Args(1)) + 1
Cancel
Return
EndIf

Center Args(1)
PlaySound Sharara.wav
Wait Start
For i = 1 To 25
PaintPicture SpecialPowerBmp("syukufuku",6) - - 透過
PaintPicture SpecialPowerBmp("syukufuku", 7) - 75 透過 セピア 明
PaintPicture UNIT_BMP - - 透過
PaintPicture Anime\Creature\EFFECT_Angel01.bmp - (96 + i * 5) 透過
Refresh
ClearPicture
Wait Until (0.5 * i)
Next
PlaySound Evileye.wav
Wait Start
For i = 1 To 7
PaintPicture SpecialPowerBmp("syukufuku",6) - - 透過
PaintPicture SpecialPowerBmp("syukufuku", 7) - 75 透過 セピア 明
PaintPicture UNIT_BMP - - 透過
PaintPicture ("Anime\Light\EFFECT_CrossLight(Yellow)0" & i & ".bmp") - - 透過
Refresh
ClearPicture
Wait Until (0.3 * i)
Next
PaintPicture SpecialPowerBmp("syukufuku",6) - - 透過
PaintPicture SpecialPowerBmp("syukufuku", 7) - 75 透過 セピア 明
PaintPicture UNIT_BMP - - 透過
Refresh
ClearPicture
Wait Until 5
Refresh

Escape PilotID(DES_UNIT2[選択])
Launch PilotID(DES_UNIT2[選択]) X(Args(1)) Y(Args(1))
IncreaseMorale PilotID(DES_UNIT2[選択]) -200
IncreaseMorale PilotID(DES_UNIT2[選択]) 50
If Args(2) = HP全回復 Then
RecoverHP PilotID(DES_UNIT2[選択]) 100
Else
RecoverHP PilotID(DES_UNIT2[選択]) 100
RecoverHP PilotID(DES_UNIT2[選択]) -50
EndIf
Action(DES_UNIT2[選択]) = 0

AutoTalk システム
$(DES_UNIT2[選択])は復活した。
Suspend
Return


[No.90] 2011/09/01(Thu) 19:32:10
ザオリクとかレイズの再現インクル (No.18への返信 / 1階層) - としあき


### 蘇生系アビリティ用ルーチン ###----------------------------------------------

# これに各版権の蘇生系アビリティを追加してください
*使用 味方 蘇生:
Local UNIT_ID
UNIT_ID[Unit] = UnitID()
UNIT_ID[Ability] = 対象ユニット使用アビリティ
If GetDestroyUnit() = 0 Then
AutoTalk システム
破壊されたユニットが存在しないため、._
$(対象ユニット使用アビリティ)は使用できません
End
Action(対象ユニットID) = Action(対象ユニットID) + 1
Cancel
Exit
EndIf

Switch UNIT_ID[Ability]
Case "完全蘇生"
Call ReviveAbility UNIT_ID[Unit] HP全回復
Case Else
Call ReviveAbility UNIT_ID[Unit]
EndSw
Exit

GetDestroyUnit:
Local DES_UNIT = 0
ForEach 味方 破壊
If Not IsHanyoPilot() Then
DES_UNIT = DES_UNIT + 1
EndIf
Next
Return DES_UNIT

ReviveAbility:
Local i GDU DES_UNIT2 UNIT_BMP
GDU = GetDestroyUnit()
UNIT_BMP = GetUnitBitmap(Args(1))

If GDU = 0 Then
Return
EndIf

For i = 1 To GDU
If Not IsHanyoPilot() Then
DES_UNIT2[i] = Unit()
EndIf
Next

Ask DES_UNIT2 復活させるユニットを選択してください キャンセル可
If 選択 = 0 Then
Action(Args(1)) = Action(Args(1)) + 1
Cancel
Return
EndIf

Center Args(1)
PlaySound Sharara.wav
Wait Start
For i = 1 To 25
PaintPicture SpecialPowerBmp("syukufuku",6) - - 透過
PaintPicture SpecialPowerBmp("syukufuku", 7) - 75 透過 セピア 明
PaintPicture UNIT_BMP - - 透過
PaintPicture Anime\Creature\EFFECT_Angel01.bmp - (96 + i * 5) 透過
Refresh
ClearPicture
Wait Until (0.5 * i)
Next
PlaySound Evileye.wav
Wait Start
For i = 1 To 7
PaintPicture SpecialPowerBmp("syukufuku",6) - - 透過
PaintPicture SpecialPowerBmp("syukufuku", 7) - 75 透過 セピア 明
PaintPicture UNIT_BMP - - 透過
PaintPicture ("Anime\Light\EFFECT_CrossLight(Yellow)0" & i & ".bmp") - - 透過
Refresh
ClearPicture
Wait Until (0.3 * i)
Next
PaintPicture SpecialPowerBmp("syukufuku",6) - - 透過
PaintPicture SpecialPowerBmp("syukufuku", 7) - 75 透過 セピア 明
PaintPicture UNIT_BMP - - 透過
Refresh
ClearPicture
Wait Until 5
Refresh

Escape PilotID(DES_UNIT2[選択])
Launch PilotID(DES_UNIT2[選択]) X(Args(1)) Y(Args(1))
IncreaseMorale PilotID(DES_UNIT2[選択]) -200
IncreaseMorale PilotID(DES_UNIT2[選択]) 50
If Args(2) = HP全回復 Then
RecoverHP PilotID(DES_UNIT2[選択]) 100
Else
RecoverHP PilotID(DES_UNIT2[選択]) 100
RecoverHP PilotID(DES_UNIT2[選択]) -50
EndIf
Action(DES_UNIT2[選択]) = 0

AutoTalk システム
$(DES_UNIT2[選択])は復活した。
Suspend
Return


[No.91] 2011/09/01(Thu) 19:33:07
バトコン・サイズ差補正関連だけ (No.18への返信 / 1階層) - としあき

昨日のスレで「余計な物要らんからサイズ差補正有る奴だけ欲しい」という意見貰ったから作っておく

直撃, ちょくげき
直, 25, 自分, 攻撃, -, -, 直撃
防御能力無効化 回避能力無効化 シールド防御無効化 サポートガード無効化
一度だけ、敵の特殊防御・回避能力とサイズ差補正を無視する

大=解説 サイズ差補正無視 "サイズ差補正による与ダメージと命中率の低下を無効にする。"

################################################################################
### Alias ######################################################################

サイズ差補正無視
特殊能力サイズ差補正無視=サイズ差補正無視
サイズ差補正無視=解説 "サイズ差補正による与ダメージと命中率の低下を無効にする。"

################################################################################
### Battle #####################################################################

最終ダメージ
最終値 * Call("ADJUST_SIZEDAMAGE", 攻撃側ユニットID, 防御側ユニットID, 武器番号)

命中率
(攻撃側補正 - 防御側補正) * 地形適応 _
* Call("ADJUST_UNITSIZE", 防御側ユニットID, 攻撃側ユニットID, 武器番号)

################################################################################
### Include ####################################################################

//―――――――――――――――――――――――――――――――――――――――
// 関数名:ADJUST_UNITSIZE
// 説 明:ユニットサイズによる回避率補正を算出する
// 戻り値: 攻撃側サイズ - 防御側サイズ(1.5〜0.5)
// 引 数: Args(1):防御側ユニットID
// Args(2):攻撃側ユニットID
//―――――――――――――――――――――――――――――――――――――――
ADJUST_UNITSIZE:
Local i
i[XL] = 6
i[LL] = 5
i[L] = 4
i[M] = 3
i[S] = 2
i[SS] = 1

i[Avoid] = 1 + (i[Info(ユニット, Args(1), サイズ)] _
- i[Info(ユニット, Args(2), サイズ)]) / 10

# サイズ差補正無視スキル所持、武器が「大」属性、SP「直撃」がかかっている場合は
# 命中率が低下しない
If i[Avoid] < 1 Then
If Skill(PilotID(Args(2)), 特殊能力サイズ差補正無視) <> 0 Then
Return 1
ElseIf Info(ユニット, Args(2), 武器, Args(3), 属性所有, "大") = 1 Then
Return 1
ElseIf SpecialPower(PilotID(Args(2)), 直撃) = 1 Then
Return 1
EndIf
EndIf
Return i[Avoid]

//―――――――――――――――――――――――――――――――――――――――
// 関数名:ADJUST_SIZEDAMAGE
// 説 明:ユニットサイズによるダメージ補正を算出する
// 戻り値: 0.5〜1.5
// 引 数: Args(1):攻撃側ユニットID
// Args(2):防御側ユニットID
// Args(3):武器番号
//―――――――――――――――――――――――――――――――――――――――
ADJUST_SIZEDAMAGE:
Local i
i[XL] = 6
i[LL] = 5
i[L] = 4
i[M] = 3
i[S] = 2
i[SS] = 1

# 1 + (攻撃側サイズ - 防御側サイズ) / 10
i[Damage] = 1 + (i[Info(ユニット, Args(1), サイズ)] _
- i[Info(ユニット, Args(2), サイズ)]) / 10

# サイズ差補正無視スキル所持、武器が「大」属性、SP「直撃」がかかっている場合は
# サイズ差ダメージ補正を算出しない(ただし、ダメージが低下する場合のみ)
If i[Damage] < 1 Then
If Skill(PilotID(Args(1)), 特殊能力サイズ差補正無視) <> 0 Then
Return 1
ElseIf Info(ユニット, Args(1), 武器, Args(3), 属性所有, "大") = 1 Then
Return 1
ElseIf SpecialPower(PilotID(Args(1)), 直撃) = 1 Then
Return 1
EndIf
EndIf
Return i[Damage]


[No.95] 2011/10/23(Sun) 10:40:42
以下のフォームから投稿済みの記事の編集・削除が行えます


- HOME - お知らせ(3/8) - 新着記事 - 記事検索 - 携帯用URL - フィード - ヘルプ - 環境設定 -

Rocket Board Type-T (Free) Rocket BBS