This member has provided no bio about themself...

Report RSS A New Feature Addition to MW Mod Heavy SAMs

Posted by on

A simple boolean filter for SAM fire control radars to enhance tracking of human players. Air players in World in Conflict are used to "air-to-air" tactical aid strikes. Because of a2a strikes, they tend to be dynamic and unpredictable at times, making it difficult for MW Mod radars to track in order to establish a reliable intercept vector.

To counter their moves, radars now use a simple boolean filter to classify whether the target is cooperating or not cooperating. Non-cooperative means, the target is being evasive and unpredictable, making him difficult to kill. Cooperative means, the target is being predictable and making our job easier to kill him.

def NCTR_TrackInitiate( self, anECLTrack, aRadarAlt ):
	"""
	NCTR_TrackInitiate( self, anECLTrack, aRadarAlt )
	Non-Cooperative Target Recognition (NCTR)
	
	Computerized process of blahdy's air-to-air strikes against non-cooperative air players.
		
	
	Track initiation process for detecting non-cooperative targets (NCTs) to help in tracking unpredictable air players. This is to prevent needless wasting of SAM rounds b/c of trying to engage air players that do not have favorable intercept vectors.
	
	A simple track initiation scheme is used and minimum of +10 HITs must be recorded in order to declare a track "PRESENT."  Each time air player is visible in LOS and is validated by radar's MTI vector, we increment the HIT. Each time the target is not visible, we decrement the counter with a MISS. A simple boolean filter requires minimum of 10 hits within 3 second time span.
		
	See "Understanding Radar Systems" by Simon Kingsley, ISBN 1-891121-05-7
		
	This track initiation scheme should only be used to track TACAIR targets, as we simply do not have enough reaction time to tinker around with track declarations against fast-moving missile targets (CM/TBM/PGM) fired against us in a small WiC map. Moreover, enemy missiles tend to be cooperative targets, thus NCTR detection is not necessary on such tracks.
			
	"""
	global ecl
	global nctr_tracks
	global drop_messaging_time
		
	qid = ecl[anECLTrack].ReturnUID()
	
	if ecl[anECLTrack].TrackInit_Return_Time() is not 0:
		if ( wic.common.GetCurrentTime() - ecl[anECLTrack].TrackInit_Return_Time() ) > 3:
			ecl[anECLTrack].TrackInit_Clear()
		
	checktrack = PATRIOT.TWS_InterceptVector_Correlate( ecl[anECLTrack].ReturnCurrentPos() )
	
	if qid in checktrack:
		ecl[anECLTrack].TrackInit_Set_HIT()
	else:
		ecl[anECLTrack].TrackInit_Set_MISS()
		
	ecl[anECLTrack].TrackInit_Set_Time( wic.common.GetCurrentTime() )
	
	Notify_Player = 0
	if ecl[anECLTrack].TrackInit_Rtn_Counter() < 10 and ecl[anECLTrack].TrackInit_Rtn_Declare() is 1:
		Notify_Player = 1
		# Declare Non-cooperative Target.
		ecl[anECLTrack].TrackInit_Set_Declare(0)
		ecl[anECLTrack].SetPPNS(3)
			
	elif ecl[anECLTrack].TrackInit_Rtn_Counter() >= 10 and ecl[anECLTrack].TrackInit_Rtn_Declare() is 0:
		# Target is now cooperating.
		ecl[anECLTrack].TrackInit_Set_Declare(1)
		self.Evaluate_TACAIR( anECLTrack, aRadarAlt )
		
	if Notify_Player is 1:
		if anECLTrack not in nctr_tracks:
			nctr_tracks.append(anECLTrack)
		if drop_messaging_time is 0 or (wic.common.GetCurrentTime() - drop_messaging_time) > 2:
			if len(nctr_tracks) > 1:
				pdFCS.com.exp.teamchat_2("Patriot TWS <#f60>NCTR</> <#ffc>Non-Cooperative Target on Track </><#ff0>%s.</> Compensating.." % nctr_tracks, 1 )
			nctr_tracks = []
			drop_messaging_time = wic.common.GetCurrentTime()
	
	return True
Post comment Comments
blahdy
blahdy

lol, evil

Reply Good karma Bad karma+1 vote
ikalugin
ikalugin

Lol i like it :) still how about s300?

Reply Good karma Bad karma+1 vote
blahdy
blahdy

The code is on both S-300 and Patriot.

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: