![]() |
SUBSIM: The Web's #1 resource for all submarine & naval simulations since 1997 |
|
|
Thread Tools | Search this Thread | Display Modes |
![]() |
#11 | |
Medic
![]() Join Date: Apr 2005
Location: Centre
Posts: 161
Downloads: 32
Uploads: 0
|
![]() Quote:
here is my modified SubrocAttack doctrine: ; $Header: SubrocAttack.txt Thu Jul 24 17:05:51 EDT 2003 mike $ ; $Revision: 3 $ ; $Copyrt1: Copyright (c) 2003, Sonalysts, Inc. All rights reserved. $ ; ; fixed and modified by Amizaur ; random range (controlled by MissileCEP value) and bearing (+/- 2deg ) error added var firing var initx var inity var apexrng var currng var ordalt var ordalt2 var ordptch var OrdCrs var MissileCEP var rngerror var brgerror var KillSwitch IF Init THEN { firing = false initx = ownx inity = owny apexrng = ( ( xyrng ( tgtx - initx ) ( tgty - inity ) ) * 0.475 ) DebugOut "Asroc launch, rng:" DebugValueOut ( apexrng * 2 ) IF ( apexrng < 1852 ) THEN { apexrng = 1852 DebugOut "rng setting lower than minimum, correcting to 2nm" DebugOut "Rng now" DebugValueOut ( apexrng * 2 ) } ENDIF MissileCEP = ( 100 + ( apexrng / 10 ) ) DebugOut "Missile CEP" DebugValueOut MissileCEP rngerror = ( ( rnd MissileCEP ) - ( rnd MissileCEP ) ) DebugOut "range error:" debugvalueout rngerror brgerror = ( ( rnd 2 ) - ( rnd 2 ) ) DebugOut "bearing error:" debugvalueout brgerror apexrng = ( apexrng + ( rngerror / 2 ) ) KillSwitch = 0 } ELSE { currng = xyrng ( ownx - initx ) ( owny - inity ) IF OwnAlt > -300 THEN { KillSwitch = 1 } ELSEIF ( OWnAlt < -300 ) AND KillSwitch THEN { Shutdown } ENDIF IF ( currng > apexrng ) AND ( OwnAlt < 5500 ) AND ( NOT firing ) THEN { FireBest DebugOut "Asroc drop" DebugValueOut currng firing = true } ENDIF OrdCrs = GetEntVar "PreenableCourse" OrdCrs = ( OrdCrs + BrgError ) SetCrs OrdCrs SetSpd MaxSpd ordalt = ( abs ( currng - apexrng ) / apexrng ) ordalt = ( MaxAlt * ( 1 - ( ordalt * ordalt ) ) ) ordalt2 = ( abs ( currng + 1 - apexrng ) / apexrng ) ordalt2 = ( MaxAlt * ( 1 - ( ordalt2 * ordalt2 ) ) ) ordptch = xybrg ( ordalt2 - ordalt ) 1 IF ordptch > 180 THEN { ordptch = ( ordptch - 360 ) } ENDIF SetPitch ordptch ; DebugOut "Ballistic Alt" ; DebugValueOut ordalt ; DebugOut "Ballistic Ptch" ; DebugValueOut ordptch } ENDIF the red part is the modified part, test reasult is good by the way: I change the SS-N-16 asw trop launcher default loadout, base on a optional loadout in the reality, I replace the torpedo with a depth charge nuke bomb ![]() |
|
![]() |
![]() |
|
|