| 始めまして、ナオと言います。 battle.txt を使って、スパロボの計算式を作ろうと考えました。 しかし、実際動かしてみると、敵のCT率と命中率が高い様な気がします。 何故でしょうか?分かる方が居ましたら、教えてくれると助かります。
#####battle.txt の中身
#命中率計算
命中補正 140 + 命中 + 攻撃値 * Call(地形適正修正,攻撃側ユニットID,防御側ユニットID)
回避補正 回避 + 運動性 * Call(地形適正修正,攻撃側ユニットID,防御側ユニットID)
#攻撃力計算
攻撃補正 (攻撃値 + 気力) / 200
装甲補正 (反応 + 気力) / 200
#CT率
クリティカル攻撃補正 攻撃値 + 技量 * Call(攻撃時CT補正,攻撃側ユニットID)
クリティカル防御補正 攻撃値 + 技量 * Call(攻撃時CT補正,防御側ユニットID)
######続けて Callコマンドtxt の中身
攻撃時CT補正:
Unset 敵CT補正
If Party(Args(1)) = "敵" Then 敵CT補正 = "0.25" EndIf
Talk システム "$(敵CT補正)" End
Return 敵CT補正
地形適正修正:
#命中補正
If Info(Unit(Args(1)), 武器, 相手ユニット使用武器, 最大射程) = 1 Then If Info(Unit(Args(1)), 武器, 相手ユニット使用武器, 属性所有, 射) = 0 Then 攻撃者 = "Args(2)" Else 攻撃者 = "Args(1)" EndIf ElseIf Info(Unit(Args(1)), 武器, 相手ユニット使用武器, 属性所有, 格) = 1 Then 攻撃者 = "Args(2)" Else 攻撃者 = "Args(1)" EndIf
Switch Area(攻撃者)
Case 空中
If Mid(Info(ユニット,攻撃者,地形適応),1,1) = S Then 攻撃側補正 = "1.2" ElseIf Mid(Info(ユニット,攻撃者,地形適応),1,1) = A Then 攻撃側補正 = "1" ElseIf Mid(Info(ユニット,攻撃者,地形適応),1,1) = B Then 攻撃側補正 = "0.8" ElseIf Mid(Info(ユニット,攻撃者,地形適応),1,1) = C Then 攻撃側補正 = "0.6" EndIf
Case 地上 水上
If Mid(Info(ユニット,攻撃者,地形適応),2,1) = S Then 攻撃側補正 = "1.2" ElseIf Mid(Info(ユニット,攻撃者,地形適応),2,1) = A Then 攻撃側補正 = "1" ElseIf Mid(Info(ユニット,攻撃者,地形適応),2,1) = B Then 攻撃側補正 = "0.8" ElseIf Mid(Info(ユニット,攻撃者,地形適応),2,1) = C Then 攻撃側補正 = "0.6" EndIf
Case 水中
If Mid(Info(ユニット,攻撃者,地形適応),3,1) = S Then 攻撃側補正 = "1.2" ElseIf Mid(Info(ユニット,攻撃者,地形適応),3,1) = A Then 攻撃側補正 = "1" ElseIf Mid(Info(ユニット,攻撃者,地形適応),3,1) = B Then 攻撃側補正 = "0.8" ElseIf Mid(Info(ユニット,攻撃者,地形適応),3,1) = C Then 攻撃側補正 = "0.6" EndIf
Case 宇宙
If Mid(Info(ユニット,攻撃者,地形適応),4,1) = S Then 攻撃側補正 = "1.2" ElseIf Mid(Info(ユニット,攻撃者,地形適応),4,1) = A Then 攻撃側補正 = "1" ElseIf Mid(Info(ユニット,攻撃者,地形適応),4,1) = B Then 攻撃側補正 = "0.8" ElseIf Mid(Info(ユニット,攻撃者,地形適応),4,1) = C Then 攻撃側補正 = "0.6" EndIf
EndSw
#回避補正
Switch Area(Args(2))
Case 空中
If Mid(Info(ユニット,Args(2),地形適応),1,1) = S Then 防御側補正 = "0.75" ElseIf Mid(Info(ユニット,Args(2),地形適応),1,1) = A Then 防御側補正 = "1" ElseIf Mid(Info(ユニット,Args(2),地形適応),1,1) = B Then 防御側補正 = "1.25" ElseIf Mid(Info(ユニット,Args(2),地形適応),1,1) = C Then 防御側補正 = "1.5" EndIf
Case 地上 水上
If Mid(Info(ユニット,Args(2),地形適応),2,1) = S Then 防御側補正 = "0.75" ElseIf Mid(Info(ユニット,Args(2),地形適応),2,1) = A Then 防御側補正 = "1" ElseIf Mid(Info(ユニット,Args(2),地形適応),2,1) = B Then 防御側補正 = "1.25" ElseIf Mid(Info(ユニット,Args(2),地形適応),2,1) = C Then 防御側補正 = "1.5" EndIf
Case 水中
If Mid(Info(ユニット,Args(2),地形適応),3,1) = S Then 防御側補正 = "0.75" ElseIf Mid(Info(ユニット,Args(2),地形適応),3,1) = A Then 防御側補正 = "1" ElseIf Mid(Info(ユニット,Args(2),地形適応),3,1) = B Then 防御側補正 = "1.25" ElseIf Mid(Info(ユニット,Args(2),地形適応),3,1) = C Then 防御側補正 = "1.5" EndIf
Case 宇宙
If Mid(Info(ユニット,Args(2),地形適応),4,1) = S Then 防御側補正 = "0.75" ElseIf Mid(Info(ユニット,Args(2),地形適応),4,1) = A Then 防御側補正 = "1" ElseIf Mid(Info(ユニット,Args(2),地形適応),4,1) = B Then 防御側補正 = "1.25" ElseIf Mid(Info(ユニット,Args(2),地形適応),4,1) = C Then 防御側補正 = "1.5" EndIf
EndSw
Unset 攻撃者
Return (攻撃側補正 * 防御側補正)
以上です。何処が可笑しいのでしょうか?
|