| こんばんは、烈です。 バトルコンフィグで上手くいかないのですが…。
######battle.txt#######################
命中補正 命中 * call(地形適応修正,攻撃側ユニットID) + 攻撃値 + 130
回避補正 (運動性 + 回避) * call(地形適応修正,防御側ユニットID)
命中率 ((攻撃側補正 - 防御側補正) + 地形適応) * サイズ補正
攻撃補正 武器威力 * (攻撃値 + 気力) \ 200
防御補正 装甲値 * (反応 + 気力) \ 200 * call(地形適応修正,防御側ユニットID)
##################################################
地形適応修正:
Switch Area(Args(1))
Case 空中 If Mid(Info(ユニット,Args(1),地形適応),1,1) = S Then set 修正値 1.1 ElseIf Mid(Info(ユニット,Args(1),地形適応),1,1) = A Then set 修正値 1.0 ElseIf Mid(Info(ユニット,Args(1),地形適応),1,1) = B Then set 修正値 0.9 ElseIf Mid(Info(ユニット,Args(1),地形適応),1,1) = C Then set 修正値 0.8 ElseIf Mid(Info(ユニット,Args(1),地形適応),1,1) = D Then set 修正値 0.7 Else set 修正値 0 EndIf
Case 地上 水上 If Mid(Info(ユニット,Args(1),地形適応),2,1) = S Then set 修正値 1.1 ElseIf Mid(Info(ユニット,Args(1),地形適応),2,1) = A Then set 修正値 1.0 ElseIf Mid(Info(ユニット,Args(1),地形適応),2,1) = B Then set 修正値 0.9 ElseIf Mid(Info(ユニット,Args(1),地形適応),2,1) = C Then set 修正値 0.8 ElseIf Mid(Info(ユニット,Args(1),地形適応),2,1) = D Then set 修正値 0.7 Else set 修正値 0 EndIf
Case 水中 If Mid(Info(ユニット,Args(1),地形適応),3,1) = S Then set 修正値 1.1 ElseIf Mid(Info(ユニット,Args(1),地形適応),3,1) = A Then set 修正値 1.0 ElseIf Mid(Info(ユニット,Args(1),地形適応),3,1) = B Then set 修正値 0.9 ElseIf Mid(Info(ユニット,Args(1),地形適応),3,1) = C Then set 修正値 0.8 ElseIf Mid(Info(ユニット,Args(1),地形適応),3,1) = D Then set 修正値 0.7 Else set 修正値 0 EndIf
Case 宇宙 If Mid(Info(ユニット,Args(1),地形適応),4,1) = S Then set 修正値 1.1 ElseIf Mid(Info(ユニット,Args(1),地形適応),4,1) = A Then set 修正値 1.0 ElseIf Mid(Info(ユニット,Args(1),地形適応),4,1) = B Then set 修正値 0.9 ElseIf Mid(Info(ユニット,Args(1),地形適応),4,1) = C Then set 修正値 0.8 ElseIf Mid(Info(ユニット,Args(1),地形適応),4,1) = D Then set 修正値 0.7 Else set 修正値 0 EndIf EndSw
Return 修正値
とやると命中率がどのユニットもほぼ100%になってしまいました。 また、ダメージがどのユニットに対しても同じ数値になってしまいました。 おそらくサブルーチンのところがおかしいのだと思うのですが…。 どうすれば上手く行くでしょうか?わかる方がいらっしゃったら教えてください。 よろしくお願いします。
|