SUBSIM Radio Room Forums



SUBSIM: The Web's #1 resource for all submarine & naval simulations since 1997

Go Back   SUBSIM Radio Room Forums > Modern-Era Subsims > Dangerous Waters
Forget password? Reset here

Reply
 
Thread Tools Display Modes
Old 01-23-08, 08:04 PM   #16
Kazuaki Shimazaki II
Ace of the Deep
 
Join Date: Jan 2006
Posts: 1,140
Downloads: 5
Uploads: 0
Default

Quote:
Originally Posted by LuftWolf
I'd imagine the contract versions of DW have a much more reliable way of directing AI behavior...

Cheers,
David
I'll be betting that they have a "Harpoon" or FC interface on the other side where Instructor commands every non-student unit in general (again, Harpoon-like) terms. That's the easiest way to ensure smart behavior.
Kazuaki Shimazaki II is offline   Reply With Quote
Old 01-25-08, 07:53 AM   #17
caymanlee
Medic
 
Join Date: Apr 2005
Location: Centre
Posts: 161
Downloads: 32
Uploads: 0
Default

DSRV behave totally wrong, big problem. can't reach the objective sub

@LuftWolf: may be a new doctrine for Attack Midget Sub which can attack submarine/ ship by Torpedo/Mine, release Special forces, and the midget sub can be launched and recover by a bigger sub(just like DSRV), for example: Russian project 865--known as LOSOS class

Cheers,
Cayman

caymanlee is offline   Reply With Quote
Old 01-25-08, 07:56 PM   #18
SeaQueen
Naval Royalty
 
Join Date: Jun 2005
Location: Washington, DC
Posts: 1,185
Downloads: 0
Uploads: 0
Default

Quote:
Originally Posted by LuftWolf
I'd imagine the contract versions of DW have a much more reliable way of directing AI behavior...
You know... that's an interesting question as to whether it does or not. My experience with most company's models is that they're really quite limited. They're good at doing something specific and that's it. Lots of companies market their models as all things to all people (HA! Like JWARS!) but really, that's just marketing. The best computer models are designed with a specific type of problem in mind, and while they can often be used to get insight into other problems, the further away you get from the original intent, the less applicable the model typically is.

The other problem is that the tendancy with computer models is to want to put more and more data into them for the sake of "realism" the problem with that is that the more things there are to vary in a model, the less insight it typically yields because it becomes possible for one to arrive at lots of possible outcomes making different assuptions about the various inputs. How likely are any of those? Who knows... maybe they ought to consult another computer model! HA!

I've actually calculated the results of various situations using pencil and paper and then built computer models to reproduce those results because the Navy customer demanded a computer model, even though I knew what the answer was without one. I'm not sure whether I should laugh at them or cry because of the sorry state of affairs in the Navy.

Last edited by SeaQueen; 01-26-08 at 11:42 AM.
SeaQueen is offline   Reply With Quote
Old 01-26-08, 11:43 AM   #19
SeaQueen
Naval Royalty
 
Join Date: Jun 2005
Location: Washington, DC
Posts: 1,185
Downloads: 0
Uploads: 0
Default

Quote:
Originally Posted by Kazuaki Shimazaki II
I'll be betting that they have a "Harpoon" or FC interface on the other side where Instructor commands every non-student unit in general (again, Harpoon-like) terms. That's the easiest way to ensure smart behavior.
Yeah... that's how the USMC uses TACOPS from what I understand... with a "behind the scenes" team of instructors playing the red side.
SeaQueen is offline   Reply With Quote
Old 01-26-08, 11:45 AM   #20
SeaQueen
Naval Royalty
 
Join Date: Jun 2005
Location: Washington, DC
Posts: 1,185
Downloads: 0
Uploads: 0
Default

Quote:
Originally Posted by Sea Demon
Perhaps make them fire only when solution confidence is high???
The other solution to that would be to only promote contacts that you have determined the range to.
SeaQueen is offline   Reply With Quote
Old 01-26-08, 03:37 PM   #21
Sea Demon
Ocean Warrior
 
Join Date: Mar 2004
Location: USA
Posts: 2,552
Downloads: 33
Uploads: 0
Default

Quote:
Originally Posted by SeaQueen
Quote:
Originally Posted by Sea Demon
Perhaps make them fire only when solution confidence is high???
The other solution to that would be to only promote contacts that you have determined the range to.
That's true. You make an excellent suggestion. Perhaps it could somehow be fixed where our AI helo cannot promote contacts to the link unless we allow it. When this has happened in a scenario for me, it's always been that I'm at the FFG ASTAC station in single player, and I'm controlling an AI MH-60. And some enemy surface ship is blasting my helo with his radar. At that point the MH-60 will automatically detect the emitter as hostile, and promote without my control. And the range calculation is usually always innacurate. So maybe we could somehow make it so only the parent platform (me) can promote to the link when we are confident of a good solution.
Sea Demon is offline   Reply With Quote
Old 01-26-08, 03:52 PM   #22
Blacklight
Ocean Warrior
 
Join Date: Sep 2006
Location: Connecticut
Posts: 2,507
Downloads: 145
Uploads: 0
Default

Quote:
Quote:
Originally Posted by SeaQueen
Quote:
Originally Posted by Sea Demon
Perhaps make them fire only when solution confidence is high???


The other solution to that would be to only promote contacts that you have determined the range to.
I don't know if it's feasable, but maybe assign percentages as to wether or not they fire. Maybe a 1% chance they fire at a low confidence target... a 10% chance or so for a medium confidence target and so on. This could potentially simulate an emergency snapshot.
I have no idea how the targeting and fireing doctrine works so I have no clue if this would work.

I don't like them only fireing when confidence is "High". There should be a small chance that they fire at a lower confidence target as well.

And as a reminder, "Collision Avoidence" doesn't seem to work in formations. The ships all start crashing into each other when they try to re-form together. It's like They don't see their own formation's ships. The only way I've been able to combat this so far is to make the fleet or group of ships not part of a formation, but set their speeds and directions so they look like they're in a formation but they really aren't.
__________________
Be my friend or be a mushroom cloud.
"I am coming at you. You will explode in a couple of minutes !"
Blacklight is offline   Reply With Quote
Old 01-28-08, 11:02 PM   #23
LuftWolf
Ocean Warrior
 
Join Date: May 2005
Location: Free New York
Posts: 3,167
Downloads: 2
Uploads: 0
Default

The DSRV is broken in the engine, so that can't be touched, by modders anyway.

The doctrine system is made of peaks and valleys... I wish there was a neat way to express to everyone what is and isn't capable, but frankly it would just be a list of random things, not really making much sense. And what makes it even crazier, is that the level of control varies by platform type.

I'll look at as much as I can... starting with the things that Thomas did in SCXIIc, since I've got a pretty good grasp on what can be carried over successfully.

Unfortunately, the inherent behavior of just about everything appears to have worked (from what I have heard) much better in SC than in DW, so there's so much more that needs to be fixed.

Cheers,
David
__________________
LW
LuftWolf is offline   Reply With Quote
Old 01-29-08, 06:18 AM   #24
Dr.Sid
The Old Man
 
Join Date: May 2005
Location: Czech Republic
Posts: 1,458
Downloads: 6
Uploads: 0
Default

For DSRV, I had better doctrine which could dive to target, get close (3 m) even if target was moving, stay there for a moment and then return to original coordinates, nad IIRC even dock to original platform if it still was there. There was some troubles, but I overcame all of them.
Unfortunatelly I lost the file (with many other stuff) in HD crash. Let's communicate this. I'll PM you my contact info, I wonder what are the problems you found.
Dr.Sid is offline   Reply With Quote
Old 02-01-08, 12:44 AM   #25
caymanlee
Medic
 
Join Date: Apr 2005
Location: Centre
Posts: 161
Downloads: 32
Uploads: 0
Default

Quote:
Originally Posted by LuftWolf
The DSRV is broken in the engine, so that can't be touched, by modders anyway.

The doctrine system is made of peaks and valleys... I wish there was a neat way to express to everyone what is and isn't capable, but frankly it would just be a list of random things, not really making much sense. And what makes it even crazier, is that the level of control varies by platform type.

I'll look at as much as I can... starting with the things that Thomas did in SCXIIc, since I've got a pretty good grasp on what can be carried over successfully.

Unfortunately, the inherent behavior of just about everything appears to have worked (from what I have heard) much better in SC than in DW, so there's so much more that needs to be fixed.
Good to know.
I wonder if you have an introduction regard to DW doctrine, or a list of doctrine's "command" and "value" , even half-baked version woulf be ok, if you do, could you send me a copy?---I'm good at FC docrine, but DW's much more sophisticated, any help would be appreciated
caymanlee is offline   Reply With Quote
Old 02-01-08, 07:40 PM   #26
LuftWolf
Ocean Warrior
 
Join Date: May 2005
Location: Free New York
Posts: 3,167
Downloads: 2
Uploads: 0
Default

Is answer question?

Keep in mind, this was written for Sub Command, so a few of the commands, most notably the rudder control commands are different in DW. The existing DW doctrines are all holdovers from SC, so you can actually see the commented sections remaining in the doctrines to see the differences between the two systems in action.

Quote:
AUTHOR: Sonalysts
Additions: JSteed

First a little about how doctrines work:
Every platform has a default doctrine assigned by the object database. It can also be specified per platform in the
scenario file by the DOCTRINE <filename> command. SC will evaluate this doctrine at regular intervals. Whenever a
platform detects a new contact, the platform doctrine is evaluated with "NewTrack" equal to true. Platform doctrine can
chose to assign a particular doctrine file to that contact using the SetTactic command. Thereafter, the original platform
doctrine continues to be evaluated as before, plus the assigned tactic doctrine is evaluated every time the contact is
updated. It's important to understand the distinction: the original platform doctrine is routinely evaluated without a
reference solution, except when a new contact is detected. When a new contact is detected, the platform doctrine is called
only once referring to the new solution. This is the only opportunity to set a tactic doctrine for that contact.
Following are some syntax specifications. Note that neither Sonalysts nor EA will support editing of doctrine files- Sub
Command was intended to run with the files as shipped. What you do with them after that is at your own risk.
Sub Command doctrine is very particular about whitespace. Everything must be separated by whitespace! Parentheses or
brackets not surrounded by spaces or tabs will result in unrecognized terms.
Operators:
+ Addition
- Subtraction
* Multiplication
/ Division
= Assignment x = y
+= Addition assignment (e.g. a += b is a = a + b)
-= Subtraction assignment as above
*= Multiplication assignment as above
/= Division assignment as above
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
== Equal to (numbers only)
$= Equal to (strings only, e.g. OwnName $= "Fred")
And Boolean and
Or Boolean or
Not Boolean not
& Logical AND (e.g. 255 & 128 == 128)
| Logical OR (e.g. 32 | 16 == 48)
() Expression delimiters
{} Command delimiters
Constants:
on 1
off 0
true 1
false 0
Math Funcs:
rnd <value> Returns a random floating point number between from 0 to <value>
abs <value> Returns the absolute value of <value>
sqrt <value> Returns the square root of <value>
<value1> mod <value2> Returns <value1> modulo <value2>
(e.g. 5 mod 3 = 2)
RelativeBearing <value1> <value2> Returns the relative bearing from <value1> to <value2>
XYBrg <value1> <value2> Returns true bearing from 0,0 to <value1>,<value2>
XYRng <value1> <value2> Returns range from 0,0 to <value1>,<value2>
Conditionals:
If <expression> Then <command> [Else <command>] [ElseIf <expression> Then <command>] EndIf
The basic conditional structure is:
If <expression> Then
<command>
EndIf
If <expression> evaluates to non-zero, then <command> will be executed. Note that this basic structure only expects one
expression and one command- to work with multiple expressions and commands, the expressions must be enclosed by
parentheses, and the commands must be enclosed by brackets. For example:
If ( <expression1> ) And ( <expression2> ) Then {
<command1>
<command2>
} EndIf
There is a also a conditional loop:
While <expression> <command>
As long as <expression> evaluates to non-zero, <command> will be executed over and over again. Be especially careful- an
infinite loop will halt the sim! Note that none of the original doctrines use this structure. Use it sparingly if at all.
Special Terms:
Var <variablename>
You can create as many variables as you like in a doctrine file. All variables are double precision.
func <functionname> <command>
You can define procedural functions to group commands that might be needed often in larger doctrine files, for example:
func Evade {
SteerEvasive
SetOwnSpd MaxSpeed
SetOwnAlt AltLayer
}
A single command "Evade" will perform all 3 commands. Grouping commands into a function isn't any faster (nor is it
appreciably slower), but it can make doctrines more compact and easier to read in some cases. Functions must be defined
before they are referenced, and are only available in the doctrine where they are defined.
Booleans:
Init Automatically set True the first time doctrine is accessed. Thereafter it is set False.
NewTrack Platform doctrine will be called with NewTrack true when a new target is detected
LostTrack Platform and tactic doctrines are called with LostTrack true when a target is about to be removed
Engaging Tactic doctrines are called with Engaging true when a platform is attempting to engage a target (this feature must be enabled in the .ini file)
WeaponAway Tactic doctrines are called with WeaponAway true at time of fire
Target Terms:
TgtBrg True Bearing from platform to target
TgtRng Range from platform to target (in yards)
TgtCrs Course of target
TgtSpd Speed of target (in knots)
TgtAlt Altitude/Depth of target, in feet, negative means below sea level
TgtX Target X position, in yards from bottom left of map
TgtY Target Y position, in yards from bottom left of map
TgtID ID of target. Possible values listed below. This is a string value, and must be tested using $=, e.g. IF TgtID $= "HOSTILE" THEN ...
TgtClass Class of target. Possible values listed below. This is a string value, and must be tested using $=, e.g. IF TgtClass $= "AIR" THEN ...
TgtMissileClass "<value>" Returns true or false based on whether "value" is a member of string expression TgtMissileClass listed below.
TgtAOB Target angle on the bow. This is the target's relative bearing from platform's course
TgtSILOS Target speed in line-of-sight (closing speed)
TgtSource Target sensor source. Possible values listed below. This is a string value, and must be tested using $=, e.g. IF TgtSource $= "Radar" THEN ...
TgtAge Time since last detection
TgtConf Confidence, 0-100. This level is based on detection strength, and for passive sonar, number of platform legs
AttackRng Optimal range to attack target from using best available weapon
ThreatRng Optimal range for target to attack platform from using its best available weapon
TargetName Target's name. This is a string value, and must be tested using $=, e.g. IF TargetName $= "Asheville" THEN ...
AssignedTarget True if the current target is the platform's assigned target (from the mission editor "TargetMode" feature)
OwnShip Terms:
OwnCrs Platform's course
OwnSpd Platform's speed (in knots)
OwnAlt Platform's altitude/depth, in feet, negative means below sea level
OwnX Platform's X position, in yards from bottom left of map
OwnY Platform's Y position, in yards from bottom left of map
PeriDepth Platform's periscope depth, in feet
MaxSpd Platform's max speed
LoiterSpd Platform's loiter speed
MinSpd Platform's min speed (0 except for aircraft)
MaxAlt Platform's max altitude
MinAlt Platform's min altitude
Pitch Platform's current pitch, -90 to 90
Alliance Platform's side (0-8)
OwnName Platform's name. This is a string value, and must be tested using $=, e.g. IF OwnName $= "Asheville" THEN ...
Order Platform's current order. Possible values listed below. This is a string value, and must be tested using $=, e.g. IF Order $= "Track" THEN ...
DBCMFlags Bitfield of platform's countermeasure capabilities. Bit values listed below. Use logical operators to test these bit values, e.g. IF DBCMFlags & 1 THEN ...
DBTargetFlags Bitfield of platform's target capabilities. Bit values listed below. Use logical operators to test these bit values, e.g. IF DBTargetFlags & 1 THEN ...
DBOBjectFlags Bitfield of platform's object attributes. Bit values listed below. Use logical operators to test these bit values, e.g. IF DBOBjectFlags & 1 THEN ...
DBUser1Flags Platform's user1 database value.
DBUser2Flags Platform's user2 database value.
GetEntVar "<platvar>" Returns value of variable <platvar> in platform doctrine (from target doctrine)
Misc Terms:
Time Time in seconds from start of scenario
Layer Depth of thermal layer
TerrainAlt Altitude/Depth of ground at platform or target position
TacticName Name of target tactic doctrine
Reserved Variables:
WaypointReached True when a helo has reached a random box waypoint
PreEnableCourse Weapons preset pre-enable course
PreEnableSpeed Weapons preset pre-enable speed, in knots
PreEnableDepth Weapons preset pre-enable altitude/depth, in feet
Enabled True when a weapon is enabled
RunToEnable Weapons preset run-to-enable range, in yards
Runout Weapons preset shutdown range, in yards
Floor Weapons preset floor, in feet
Ceiling Weapons preset ceiling, in feet
AcousticMode Torpedo preset - true for passive mode
These next 2 variables must be declared in Var instructions before they can be used.
DestX Missile preset target x, in yards from lower left of map
DestY Missile preset target y, in yards from lower left of map
SearchDepth Weapons preset search altitude/depth, in feet
OrderedDepth Weapons preset ordered altitude/depth, in feet
DetonateDepth Weapons preset destruct altitude/depth, in feet
CircleSearchPattern Torpedo preset search pattern - true for circle, false for snake
DoctrinePriority Target-dependent recommended priority
Commands:
SetCrs <value> Set own course to <value>
SetSpd <value> Set own speed to <value>
SetAlt <value> Set own alt/depth to <value>
SetAltLayer Set own alt/depth to opposite side of layer
SetPitch <value> Set pitch to <value>
SteerAbeam Set course to put contact abeam
SteerTo Set course toward contact
SteerOblique <value> Set course toward contact with AOB of <value>
SteerAway Set course to put contact astern
SteerEvasive Steer contact off rear quarter
SteerXY <value1> <value2> Steer to point <value1>,<value2> (yards from lower left of map)
Intercept Set intercept course
TerminalHome Set collision course
WakeFollow Set course to follow target's wake
TacticCenter Move search pattern to center on current position
Identify "<value>" Set solution classification to value. Possible values listed below, must be in quotes.
Attack "<value>" Attack target using weapon <value>, must be in quotes
AttackBest Attack contact using best available weapon
FireBest Fire best weapon at target, ignoring firing constraints
Drop Drop current target
Countermeasure "<value>" Launch specified countermeasure
Detonate Explode platform
TimedDetonateTgt <value> Explode target at time <value> (in seconds from start of scenario)
Shutdown Shut platform down, without detonating
Enable Enable all sensors
PreEnable Disable all sensors
Snake <value> Perform a snake pattern centered on course <value>
Circle Perform a circle pattern
PassiveEnable Enable all passive sensors
SensorEnable "<value1>" <on/off> Turn sensor <value> on or off
Launch "<value>" Launch aircraft of name <value>
LaunchWithLoadout "<value1>" "<value2>" <value3> Launch aircraft of name <value1> with mission <value2>. Possible mission values listed below. What value3 represents is unknown.
Land Land at parent airstrip
SetDoctrine "<value>" Set platform doctrine to <value>
SetTactic "<value>" Set target tactic doctrine to <value>
SetPriority <value> Set current command priority to <value>
SetPersist <value> Set current command persistence to <value> seconds
DebugOut <value> Output <value> to debug stream
DebugValueOut "<value>" Output <value> to debug stream, must be in quotes
SetEntVar "<value1>" <value2> Set variable <value1> in platform doctrine to <value2> (from target doctrine)

String expression values:
Mission:
ASW, SUW, AAW, Strike, Recon, Comms, MineSweep
Order:
NONE, VID, TRACK, ENGAGE, RETURNTOBASE, COVER, SCRAM, RETURNTOSTATION, MOVE, TRANSIT, RESCUE, SEARCH
TgtClass:
UNKNOWN, SUB, SURF, AIR, HELO, MOBILE_LAND, LAND, MINE, WEAP, MISSILE, PROJECTILE, DOWNED_PILOT
TgtID:
UPD, UEV, UAF, UAE, HOSTILE, FRIEND, FIGHTER, STRIKE
TgtMissileClass:
AAM, ASM, SSM, SAM
TgtSource:
Active Sonar, Active Intercept, ESM, Visual, MAD, Infrared, Passive Sonar, Radar, FCRadar, IFF, CM

Bitfield values:
DBCMFlags Types of countermeasures a platform is equipped with
1=Chaff
2=IRFlare
4=AcousticCM
8=TowedAcousticCM
16=ECMJammer
DBTargetFlags Types of targets a weapon is capable of targeting
1=Sub
2=Surf
4=Air
8=Helo
16=Land
32=Torpedo
64=Mine
128=Missile
DBOBjectFlags
1=AAM This object is an air-to-air missile
2=ASM This object is an air-to-surface missile
4=SSM This object is a surface-to-surface missile
8=SAM This object is a surface-to-air missile
16=Tanker This aircraft is a tanker capable of refueling other aircraft
32=Terrain Follow This weapon can terrain follow
64=Guided This weapon is guided by the firing platform
128=Thrown This weapon has no propulsion, but is thrown by the firing platform
256=Refuelable This aircraft can refuel in-flight
512=Feedback This weapon feeds its target info back to the firing platform
1024=Prelock This weapon must acquire before it fires
2048=Smokeless This weapon doesn't leave a smoke trail
4096=Reattack This weapon can re-attack if it misses
8192=Remote This weapon can be fired on remote targeting info
16384=Snapshot This weapon receives a snapshot of the target at time of fire
32768=Ballistic This weapon follows a ballistic trajectory
Cheers,
David
__________________
LW
LuftWolf is offline   Reply With Quote
Old 02-02-08, 03:28 AM   #27
caymanlee
Medic
 
Join Date: Apr 2005
Location: Centre
Posts: 161
Downloads: 32
Uploads: 0
Default

Quote:
Originally Posted by LuftWolf
Is answer question?

Keep in mind, this was written for Sub Command, so a few of the commands, most notably the rudder control commands are different in DW. The existing DW doctrines are all holdovers from SC, so you can actually see the commented sections remaining in the doctrines to see the differences between the two systems in action.
..........
Got it! Thank you very much!
caymanlee is offline   Reply With Quote
Old 02-06-08, 10:24 PM   #28
Molon Labe
Silent Hunter
 
Join Date: Jun 2004
Location: Along the Watchtower
Posts: 3,810
Downloads: 27
Uploads: 5
Default

Quote:
Originally Posted by OneShot
@Lw : On a related note, I don't know if you are aware of it but there is a Project Tracker now for the LwAmi Mod here : http://www.commanders-academy.com/fo...hp?projectid=2 . I'd suggest you check it out and let me know if you have any questions.

Might be helpful to start using it ...
Awesome, I wish I'd noticed this earlier. I just wrote up a bunch of 'tasks.' Let's come to a consensus on what needs to be done and move forward a bit.
__________________
Molon Labe is offline   Reply With Quote
Old 02-14-08, 12:52 PM   #29
LuftWolf
Ocean Warrior
 
Join Date: May 2005
Location: Free New York
Posts: 3,167
Downloads: 2
Uploads: 0
Default

Sorry guys, I've been having some computer problems that have knocked me offline for a bit...

The case of duct tape finally came in, so I'm catching up on all my online activies (and there are way too many...) in the next few days.

Basically, the next activity I've got is to do some doctrine tuning for the AI and also to include in the LWAMI package (or perhaps just as a patch since people are using the other mods) the corrected helo dipping doctrine that will prevent the FFG MH60 from pinging on launch and recovery.

Cheers,
David

PS Disable your system restore and disk indexing processes, if you have an older computer with a smaller HD, after time, there is a good chance the processes will completely take over your CPU and write to every possible open space on your HD... ah windows.
__________________
LW
LuftWolf is offline   Reply With Quote
Old 02-14-08, 02:59 PM   #30
GrayOwl
Soundman
 
Join Date: Sep 2004
Location: Compartment № 5 /Silos/
Posts: 149
Downloads: 0
Uploads: 0
Nise

Quote:
Originally Posted by LuftWolf
Sorry guys, I've been having some computer problems that have knocked me offline for a bit...

The case of duct tape finally came in, so I'm catching up on all my online activies (and there are way too many...) in the next few days.

Basically, the next activity I've got is to do some doctrine tuning for the AI and also to include in the LWAMI package (or perhaps just as a patch since people are using the other mods) the corrected helo dipping doctrine that will prevent the FFG MH60 from pinging on launch and recovery.

Cheers,
David

PS Disable your system restore and disk indexing processes, if you have an older computer with a smaller HD, after time, there is a good chance the processes will completely take over your CPU and write to every possible open space on your HD... ah windows.


You can it too switch on:

VAR TEMP1
VAR TEMP
VAR MSPD
VAR MODE
VAR DELAY
VAR OrdDpth
VAR DeepTgt
var ddd
var delta
var Fl
var Cei
var GotHim
var u
var u1
var k

IF INIT THEN {
k = 0.5
GotHim = 1
ddd = 0
MSPD = ( MinSpd + 10 )
IF ( DBBuoyFlags & 3 ) THEN { MSPD = MaxSpd } ENDIF
temp1 = ownspd
temp = ownalt
} ELSE {
IF ( LostTrack == 0 ) THEN {
IF ( GotHim == 1 ) THEN {
GotHim = 0
MODE = GetEntVar "AcousticMode"
Fl = GetEntVar "Floor"
Cei = GetEntVar "Ceiling"
IF ( MODE == 1 ) THEN {
MSPD = MAXSPD
DELAY = 7
} ELSE {
MSPD = MSPD
DebugValueOut MSPD
DELAY = 3
} ENDIF
} ENDIF
IF ( ( TgtClass $= "AIR" ) AND ( NOT ( TargetName $= "Towed Decoy" ) ) ) THEN {
; DebugOut "SKIP"
; Drop
; LOSTTRACK = TRUE
} ELSE {
IF ( TgtAge < DELAY ) THEN {
TEMP1 = OWNSPD
TEMP1 = ( TEMP1 + 3 )
IF ( TEMP1 > MSPD ) THEN { SETPRIORITY 255 TEMP1 = MSPD } ENDIF
} ELSE {
IF ( OWNSPD > MINSPD ) THEN {
; DEBUGOUT "No Given Signal From A Sensor Control - Reduce Speed"
TEMP1 = OWNSPD
TEMP1 = ( TEMP1 - 3 )
IF ( TEMP1 < MINSPD ) THEN { TEMP1 = MINSPD } ENDIF } ENDIF } ENDIF


IF TGTALT < Fl THEN { DeepTgt = 1 } ELSE { DeepTgt = 0 } ENDIF
IF ( TGTALT > CEI ) THEN { DeepTgt = 1 } ELSE { DeepTgt = 0 } ENDIF

DELTA = ABS ( OWNALT - TGTALT )

IF ( ( ddd == 1 ) AND ( TGTRNG < 60 ) AND ( DELTA < 60 ) AND ( TGTALT >= ( FL - 15 ) ) AND ( TGTALT <= ( CEI + 15 ) ) ) THEN {
IF ( TgtClass $= "Weap" ) AND NOT ( TargetName $= "Towed Decoy" ) THEN {
Drop
DebugOut "Drop Non Towed CM"
} ELSE {
ddd = 2
IF ( TargetName $= "Towed Decoy" ) THEN { SETPRIORITY 255 shutdown } ELSE { SETPRIORITY 255 Detonate } ENDIF
LostTrack = 1
} ENDIF } ENDIF

IF ( ( tgtrng >= 140 ) and ( DDD == 1 ) ) THEN { DDD = 0 } ENDIF
IF ( ( TgtRng < 140 ) AND ( DDD == 0 ) AND ( DELTA < 70 ) ) THEN {
ddd = 1 } ENDIF

IF ( ( TGTRNG < 600 ) AND ( DeepTgt == 0 ) ) THEN {
temp1 = mspd
IF ( DDD == 0 ) THEN {
SETPRIORITY 255
TerminalHome } ELSE {
OrdDpth = ( TGTALT )
IF TGTALT > CEI THEN { OrdDpth = CEI } ENDIF
IF TGTALT < Fl THEN { OrdDpth = ( FL + 30 ) } ENDIF
SETPRIORITY 254
SETALT OrdDpth
if tgtrng > 500 then { setcrs tgtbrg } else {

u = TGTAOB
u1 = ( k * u )
u = abs ( u )
if u < 0.2 then { SetRudder ( 0 ) } else { SetRudder u1 } endif } endif


} ENDIF
; DEBUGOUT "Final Phase Attack"
} ELSE {
; DEBUGOUT "FollowToTarget"
OrdDpth = TGTALT
OrdDpth = ( TGTALT )
IF TGTALT > CEI THEN { OrdDpth = CEI } ENDIF
IF TGTALT < Fl THEN { OrdDpth = ( FL + 30 ) } ENDIF
SETPRIORITY 254
SETALT OrdDpth
if tgtrng > 500 then { setcrs tgtbrg } else {

u = TGTAOB
u1 = ( k * u )
u = abs ( u )
if u < 0.2 then { SetRudder ( 0 ) } else { SetRudder u1 } endif } endif
} ENDIF } ENDIF
SETSPD ( TEMP1 )

IF ( TGTAGE > ( 10 ) ) THEN { DROP } ENDIF } ENDIF} ENDIF

Real "Live" Track Noise and Radiation Square Events....

We wich Reality Conditions....
__________________
-+= I the ocean hunter, and I am dangerous =+-
*** Kalashnikov - the best ***
GrayOwl is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 06:17 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 1995- 2025 Subsim®
"Subsim" is a registered trademark, all rights reserved.