Can someone please post constants.py - Will Help TotalBF2

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • DogGunn
    TotalBF2 Supporter
    • Oct 2005
    • 231

    #1

    Can someone please post constants.py - Will Help TotalBF2

    Hi there,
    If someone could please post x:\Program Files\EA Games\Battlefield 2\Python_Xpack\bf2\stats\medal_data.py and x:\Program Files\EA Games\Battlefield 2\Python_Xpack\bf2\stats\constants.py for me to look at, would be a great help to upgrade the TotalBF2 stats site!
    Thanks,
    DogGunn
  • rnu

    #2
    Re: Can someone please post constants.py - Will Help TotalBF2

    i cant i just reformatted so i gotta reinstall EVERYthing :P

    Comment

    • DogGunn
      TotalBF2 Supporter
      • Oct 2005
      • 231

      #3
      Re: Can someone please post constants.py - Will Help TotalBF2

      Originally posted by rnu
      i cant i just reformatted so i gotta reinstall EVERYthing :P
      LOL, thanks for the useless post!:p

      Comment

      • SaladFork

        #4
        Re: Can someone please post constants.py - Will Help TotalBF2

        medal_data.py:
        Code:
        from bf2.stats.constants import *
        
        globalKeysNeeded = {}
        
        
        # criteria functions
        
        def player_score (player_attr, value=None):
        	if value == None:
        		def _player_score (player):
        			return getattr (player.score, player_attr)
        	else:
        		def _player_score (player):
        			return getattr (player.score, player_attr) >= value
        	return _player_score
        
        
        def player_stat (player_attr, value):
        	def _player_stat (player):
        		return getattr (player.stats, player_attr) >= value
        	return _player_stat
        
        def object_stat (object_type, item_attr, item_type, value=None):
        	if value == None:
        		def _object_stat (player):
        			return getattr (getattr (player.stats, object_type)[item_type], item_attr)
        	else:
        		def _object_stat (player):
        			return getattr (getattr (player.stats, object_type)[item_type], item_attr) >= value
        	return _object_stat
        
        def has_medal (id, level=1):
        	def _has_medal (player):
        #		if not (id in player.medals.roundMedals and player.medals.roundMedals[id] >= level):
        #			print "Didnt have medal: ", id, " in ", player.medals.roundMedals
        		return id in player.medals.roundMedals and player.medals.roundMedals[id] >= level
        	return _has_medal
        
        def times_awarded(id, player):
        	if id in player.medals.roundMedals:
        		#print "Found medal %s with level %d" % (id, player.medals.roundMedals[id])
        		return player.medals.roundMedals[id] # TIMES awarded, not level
        	else:
        		return 0
        
        def global_stat_multiple_times (stat_key, value, id):
        	globalKeysNeeded[stat_key] = 1
        	def _global_stat_multiple_times (player):
        		new_time_value = (value * (times_awarded(id, player)+1))
        		return stat_key in player.medals.globalKeys and player.medals.globalKeys[stat_key] >= new_time_value
        	return _global_stat_multiple_times
        
        def global_stat (stat_key, value=None):
        	globalKeysNeeded[stat_key] = 1
        	if value == None:
        		def _global_stat (player):
        			if stat_key in player.medals.globalKeys: return player.medals.globalKeys[stat_key]
        			else: return 0
        	else:
        		def _global_stat (player):
        			return stat_key in player.medals.globalKeys and player.medals.globalKeys[stat_key] >= value
        	return _global_stat
        
        
        def has_rank (rank):
        	def _has_rank (player):
        		#print "Testing player for rank ", rank
        		return player.score.rank == rank
        	return _has_rank
        			
        # logical functions
        
        def f_and (*arg_list):
        	def _f_and (player):
        		res = True
        		for f in arg_list:
        			res = res and f(player)
        		#	print f(player)
        		return res
        	return _f_and
        
        def f_or (*arg_list):
        	def _f_or (player):
        		res = True
        		for f in arg_list:
        			res = res or f(player)
        		return res
        	return _f_or
        
        def f_not (f):
        	def _f_not (player):
        		return not f(player)
        	return _f_not
        
        def f_plus(a, b, value=None):
        	if value == None:
        		def _f_plus (player):
        			return a(player) + b(player)
        	else:
        		def _f_plus (player):
        			return a(player) + b(player) >= value
        	return _f_plus
        
        def f_div(a, b, value=None):
        	if value == None:
        		def _f_div (player):
        			denominator = b(player)
        			if denominator == 0: return a(player)+1
        			else: return a(player) / denominator
        	else:
        		def _f_div (player):
        			denominator = b(player)
        			
        			if denominator == 0: 
        				return a(player)+1
        			else: 
        				return a(player) / denominator >= value
        
        	return _f_div
        
        
        
        # medal definitions
        
        medal_data = (
        
        
        	#Badges - Infantry
        
        		#Knife Combat Badge
        
        			#Basic
        			('1031406_1',	'kcb',	1, object_stat ('weapons', 'kills', WEAPON_TYPE_KNIFE, 7)),
        
        			#Veteran
        			('1031406_2',	'kcb',	1, f_and( 	has_medal ('1031406_1'),
        												global_stat ('wkl-9', 50),
        												object_stat ('weapons', 'kills', WEAPON_TYPE_KNIFE, 7))),
        
        			#Expert	
        			('1031406_3',	'kcb',	1, f_and( 	has_medal ('1031406_2'),
        												global_stat ('wkl-9', 100),
        												object_stat ('weapons', 'kills', WEAPON_TYPE_KNIFE, 18))),
        
        
        		#Pistol Combat Badge
        
        			#Basic
        			('1031619_1', 'pcb',	1, object_stat ('weapons', 'kills', WEAPON_TYPE_PISTOL, 5)),
        
        			#Veteran
        			('1031619_2', 'pcb',	1, f_and( 	has_medal ('1031619_1'),
        												global_stat ('wkl-5', 50),
        												object_stat ('weapons', 'kills', WEAPON_TYPE_PISTOL, 7))),
        
        			#Expert
        			('1031619_3', 'pcb',	1, f_and( 	has_medal ('1031619_2'),
        												global_stat ('wkl-5', 500),
        												object_stat ('weapons', 'kills', WEAPON_TYPE_PISTOL, 18))),
        
        
        		#Assault Combat Badge
        
        			#Basic
        			('1031119_1', 'Acb',	1, object_stat ('kits', 'kills', KIT_TYPE_ASSAULT, 5)),
        
        			#Veteran
        			('1031119_2', 'Acb',	1, f_and( 	has_medal ('1031119_1'),
        												global_stat ('ktm-1', 54000),
        												object_stat ('kits', 'kills', KIT_TYPE_ASSAULT, 20))),
        
        			#Expert
        			('1031119_3', 'Acb',	1, f_and( 	has_medal ('1031119_2'),
        												global_stat ('ktm-1', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_ASSAULT, 40))),
        
        
        		#Anti-Tank Combat Badge
        
        			#Basic
        			('1031120_1', 'Atcb',	1, object_stat ('kits', 'kills', KIT_TYPE_AT, 10)),
        
        			#Veteran
        			('1031120_2', 'Atcb',	1, f_and( 	has_medal ('1031120_1'),
        												global_stat ('ktm-0', 54000),
        												object_stat ('kits', 'kills', KIT_TYPE_AT, 20))),
        
        			#Expert
        			('1031120_3', 'Atcb',	1, f_and( 	has_medal ('1031120_2'),
        												global_stat ('ktm-0', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_AT, 40))),
        
        
        		#Sniper Combat Badge
        
        			#Basic
        			('1031109_1', 'Sncb',	1, object_stat ('kits', 'kills', KIT_TYPE_SNIPER, 10)),
        
        			#Veteran
        			('1031109_2', 'Sncb',	1, f_and( 	has_medal ('1031109_1'),
        												global_stat ('ktm-6', 54000),
        												object_stat ('kits', 'kills', KIT_TYPE_SNIPER, 15))),
        
        			#Expert
        			('1031109_3', 'Sncb',	1, f_and( 	has_medal ('1031109_2'),
        												global_stat ('ktm-6', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_SNIPER, 35))),
        
        	
        		#Spec Ops Combat Badge
        
        			#Basic
        			('1031115_1', 'Socb',	1, object_stat ('kits', 'kills', KIT_TYPE_SPECOPS, 5)),
        
        			#Veteran
        			('1031115_2', 'Socb',	1, f_and( 	has_medal ('1031115_1'),
        												global_stat ('ktm-4', 54000),
        												object_stat ('kits', 'kills', KIT_TYPE_SPECOPS, 20))),
        
        			#Expert
        			('1031115_3', 'Socb',	1, f_and( 	has_medal ('1031115_2'),
        												global_stat ('ktm-4', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_SPECOPS, 40))),
        
        
        		#Support Combat Badge
        
        			#Basic
        			('1031121_1', 'Sucb',	1, object_stat ('kits', 'kills', KIT_TYPE_SUPPORT, 10)),
        
        			#Veteran
        			('1031121_2', 'Sucb',	1, f_and( 	has_medal ('1031121_1'),
        												global_stat ('ktm-5', 54000),
        												object_stat ('kits', 'kills', KIT_TYPE_SUPPORT, 20))),
        
        			#Expert
        			('1031121_3', 'Sucb',	1, f_and( 	has_medal ('1031121_2'),
        												global_stat ('ktm-5', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_SUPPORT, 40))),
        
        
        		#Engineer Combat Badge
        
        			#Basic
        			('1031105_1', 'Ecb',	1, object_stat ('kits', 'kills', KIT_TYPE_ENGINEER, 10)),
        
        			#Veteran
        			('1031105_2', 'Ecb',	1, f_and( 	has_medal ('1031105_1'),
        												global_stat ('ktm-2', 54000),
        												object_stat ('kits', 'kills', KIT_TYPE_ENGINEER, 20))),
        
        			#Expert
        			('1031105_3', 'Ecb',	1, f_and( 	has_medal ('1031105_2'),
        												global_stat ('ktm-2', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_ENGINEER, 40))),
        
        
        		#Medic Combat Badge
        
        			#Basic
        			('1031113_1', 'Mcb',	1, object_stat ('kits', 'kills', KIT_TYPE_MEDIC, 10)),
        
        			#Veteran
        			('1031113_2', 'Mcb',	1, f_and( 	has_medal ('1031113_1'),
        												global_stat ('ktm-3', 54000),
        												object_stat ('kits', 'kills', KIT_TYPE_MEDIC, 20))),
        
        			#Expert
        			('1031113_3', 'Mcb',	1, f_and( 	has_medal ('1031113_2'),
        												global_stat ('ktm-3', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_MEDIC, 40))),
        
        		#Explosive Ordinance Badge
        
        			#Basic
        			('1032415_1', 'Eob',	1,	f_plus(	object_stat ('weapons', 'kills', WEAPON_TYPE_C4),
        												f_plus(		object_stat ('weapons', 'kills', WEAPON_TYPE_ATMINE),
        															object_stat ('weapons', 'kills', WEAPON_TYPE_CLAYMORE)), 13)),
        												
        
        			#Veteran
        			('1032415_2', 'Eob',	1, f_and( 	has_medal ('1032415_1'),								
        												global_stat ('wkl-11', 50),
        												f_plus(	object_stat ('weapons', 'kills', WEAPON_TYPE_C4),
        														f_plus(	object_stat ('weapons', 'kills', WEAPON_TYPE_ATMINE),
        																object_stat ('weapons', 'kills', WEAPON_TYPE_CLAYMORE)), 23))),
        
        			#Expert
        			('1032415_3', 'Eob',	1, f_and( 	has_medal ('1032415_2'),
        												global_stat ('wkl-11', 300),
        												f_plus(	object_stat ('weapons', 'kills', WEAPON_TYPE_C4),
        														f_plus(	object_stat ('weapons', 'kills', WEAPON_TYPE_ATMINE),
        																object_stat ('weapons', 'kills', WEAPON_TYPE_CLAYMORE)), 37))),
        
        		#First Aid Badge
        
        			#Basic
        			('1190601_1', 'Fab',	1, player_score ('heals', 5)),
        
        			#Veteran
        			('1190601_2', 'Fab',	1, f_and( 	has_medal ('1190601_1'),
        												global_stat ('ktm-3', 54000),
        												player_score ('heals', 10))),
        
        			#Expert
        			('1190601_3', 'Fab',	1, f_and( 	has_medal ('1190601_2'),
        												global_stat ('heal', 750),
        												global_stat ('ktm-3', 54000),
        												player_score ('heals', 25))),
        
        
        		#Engineer Badge
        
        			#Basic
        			('1190507_1', 'Eb',	1, player_score ('repairs', 5)),
        
        			#Veteran
        			('1190507_2', 'Eb',	1, f_and( 	has_medal ('1190507_1'),
        											global_stat ('ktm-2', 54000),
        											player_score ('repairs', 10))),
        
        			#Expert
        			('1190507_3', 'Eb',	0, f_and( 	has_medal ('1190507_2'),
        											global_stat ('rpar', 250),
        											global_stat ('ktm-2', 360000),
        											player_score ('repairs', 25))),
        
        
        		#Resupply Badge
        
        			#Basic
        			('1191819_1', 'Rb',	1, player_score ('ammos', 5)),
        
        			#Veteran
        			('1191819_2', 'Rb',	1, f_and( 	has_medal ('1191819_1'),
        											global_stat ('ktm-5', 54000),
        											player_score ('ammos', 10))),
        
        			#Expert
        			('1191819_3', 'Rb',	1, f_and( 	has_medal ('1191819_2'),
        											global_stat ('rsup', 500),
        											global_stat ('ktm-5', 360000),
        											player_score ('ammos', 25))),
        
        
        		#Command Badge
        
        			#Basic
        			('1190304_1', 'Cb',	1, player_score ('cmdScore', 40)),
        
        			#Veteran
        			('1190304_2', 'Cb',	1, f_and( 	has_medal ('1190304_1'),
        											global_stat ('cdsc', 1000),
        											player_stat ('timeAsCmd', 1500))),
        
        			#Expert
        			('1190304_3', 'Cb',	1, f_and( 	has_medal ('1190304_2'),
        											global_stat ('cdsc', 10000),
        											player_stat ('timeAsCmd', 1800))),
        
        
        
        	#Badges - Vehicles
        
        		#Armour Badge
        
        			#Basic
        			('1220118_1', 'Ab',	1, object_stat ('vehicles', 'rtime', VEHICLE_TYPE_ARMOR, 600)),
        
        			#Veteran
        			('1220118_2', 'Ab',	1, f_and( 	has_medal ('1220118_1'),
        											global_stat ('vtm-0', 360000),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_ARMOR, 12))),
        
        			#Expert
        			('1220118_3', 'Ab',	1, f_and( 	has_medal ('1220118_2'),
        											global_stat ('vtm-0', 1440000),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_ARMOR, 24))),
        
        
        		#Transport Badge
        
        			#Basic
        			('1222016_1', 'Tb',	1, object_stat ('vehicles', 'rtime', VEHICLE_TYPE_TRANSPORT, 600)),
        
        			#Veteran
        			('1222016_2', 'Tb',	1, f_and( 	has_medal ('1222016_1'),
        											global_stat ('vtm-4', 180000),
        											global_stat ('dsab', 200),
        											object_stat ('vehicles', 'roadKills', VEHICLE_TYPE_TRANSPORT, 5))),
        
        			#Expert
        			('1222016_3', 'Tb',	1, f_and( 	has_medal ('1222016_2'),
        											global_stat ('vtm-4', 540000),
        											global_stat ('dsab', 2000),
        											object_stat ('vehicles', 'roadKills', VEHICLE_TYPE_TRANSPORT, 11))),
        
        
        		#Helicopter Badge
        
        			#Basic
        			('1220803_1', 'Hb',	1, object_stat ('vehicles', 'rtime', VEHICLE_TYPE_HELICOPTER, 900)),
        
        			#Veteran
        			('1220803_2', 'Hb',	1, f_and( 	has_medal ('1220803_1'),
        								global_stat ('vtm-3', 360000),
        								object_stat ('vehicles', 'kills', VEHICLE_TYPE_HELICOPTER, 12))),
        
        			#Expert
        			('1220803_3', 'Hb',	1, f_and( 	has_medal ('1220803_2'),
        								global_stat ('vtm-3', 1440000),
        								object_stat ('vehicles', 'kills', VEHICLE_TYPE_HELICOPTER, 24))),
        
        
        		#Aviator Badge
        
        			#Basic
        			('1220122_1', 'Avb',	1, object_stat ('vehicles', 'rtime', VEHICLE_TYPE_AVIATOR, 600)),
        
        			#Veteran
        			('1220122_2', 'Avb',	1, f_and( 	has_medal ('1220122_1'),
        												global_stat ('vtm-1', 360000),
        												object_stat ('vehicles', 'kills', VEHICLE_TYPE_AVIATOR, 12))),
        
        			#Expert
        			('1220122_3', 'Avb',	1, f_and( 	has_medal ('1220122_2'),
        												global_stat ('vtm-1', 1080000),
        												object_stat ('vehicles', 'kills', VEHICLE_TYPE_AVIATOR, 24))),
        
        
        		#Air Defence Badge
        
        			#Basic
        			('1220104_1', 'adb',	1, object_stat ('vehicles', 'rtime', VEHICLE_TYPE_AIRDEFENSE, 600)),
        
        			#Veteran
        			('1220104_2', 'adb',	1, f_and( 	has_medal ('1220104_1'),
        												global_stat ('vtm-2', 108000),
        												object_stat ('vehicles', 'kills', VEHICLE_TYPE_AIRDEFENSE, 12))),
        
        			#Expert
        			('1220104_3', 'adb',	1, f_and( 	has_medal ('1220104_2'),
        												global_stat ('vtm-2', 360000),
        												object_stat ('vehicles', 'kills', VEHICLE_TYPE_AIRDEFENSE, 24))),
        
        
        		#Ground Defence Badge
        
        			#Basic
        			('1031923_1', 'Swb',	1, object_stat ('vehicles', 'rtime', VEHICLE_TYPE_GRNDDEFENSE, 300)),
        
        			#Veteran
        			('1031923_2', 'Swb',	1, f_and( 	has_medal ('1031923_1'),
        												global_stat ('vtm-6', 54000),
        												object_stat ('vehicles', 'kills', VEHICLE_TYPE_GRNDDEFENSE, 12))),
        
        			#Expert
        			('1031923_3', 'Swb',	1, f_and( 	has_medal ('1031923_2'),
        												global_stat ('vtm-6', 216000),
        												object_stat ('vehicles', 'kills', VEHICLE_TYPE_GRNDDEFENSE, 24))),
        
        
        
        		#Ribbons
        
        		#####Mid-East Service  BACKEND ONLY
        		#	(3191305,	'Msr',	0, f_and(
        
        
        		#####Mid-East Service  BACKEND ONLY
        		#	(3190605,	'Fsr',	0, f_and(
        
        
        			#Combat Action Ribbon
        			('3240301',	'Car',	1, f_and(	global_stat ('bksk', 10),
        											player_score ('kills', 18))),
        
        
        			#Meritorious Unit Ribbon
        			('3211305',	'Mur',	1, f_and(	player_stat ('timeInSquad', 1560),
        											player_score ('rplScore', 40))),
        
        
        			#Infantry Officer Ribbon
        			('3150914',	'Ior',	1, f_and(	global_stat ('twsc', 250),
        											player_stat ('timeAsSql', 1500))),
        
        
        			#Staff Officer Ribbon
        			('3151920',	'Sor',	1, f_and(	player_stat ('timeAsCmd', 1680),
        											player_score ('cmdScore', 50))),
        
        
        			#Distinguished Service Ribbon
        			('3190409',	'Dsr',	1, f_and(	global_stat ('tsqm', 36000),
        											global_stat ('tsql', 36000),
        											global_stat ('tcdr', 36000),
        											player_score ('rplScore', 15))),
        
        
        			#War College Ribbon
        			('3242303',	'Wcr',	1, f_and(	global_stat ('tcdr', 180000),
        											f_div (global_stat ('wins'), global_stat('loss'), 3),
        											player_score ('cmdScore', 45))), 
        
        
        			#Valorous Unit Ribbon
        			('3212201',	'Vur',	1, f_and(	global_stat ('tsqm', 90000),
        											global_stat ('tsql', 90000),
        											player_score ('rplScore', 45))),
        
        
        			#Legion of Merit Ribbon
        			('3241213',	'Lmr',	1, f_and(	global_stat ('time', 720000),
        											global_stat ('bksk', 10),
        											global_stat ('wdsk', 8),
        											player_score ('rplScore', 50))),
        
        
        		#####Crew Service Ribbon
        			('3190318',	'Csr',	1, f_and(	f_plus(
        												player_score ('driverSpecials'), 
        												player_score ('driverAssists'), 13),
        											player_score ('kills', 5))),
        
        
        			#Armoured Service Ribbon
        			('3190118',	'Arr',	1, f_and(	object_stat ('vehicles', 'rtime', VEHICLE_TYPE_ARMOR, 1200),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_ARMOR, 19))),
        
        
        			#Aerial Service Ribbon
        			('3190105',	'Aer',	1, f_and(	object_stat ('vehicles', 'rtime', VEHICLE_TYPE_AVIATOR, 900),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_AVIATOR, 19))),
        
        
        			#Helicopter Service Ribbon
        			('3190803',	'Hsr',	1, f_and(	object_stat ('vehicles', 'rtime', VEHICLE_TYPE_HELICOPTER, 900),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_HELICOPTER, 19))),
        
        
        			#Air-Defence Ribbon
        			('3040109',	'Adr',	1, f_and(	object_stat ('vehicles', 'rtime', VEHICLE_TYPE_AIRDEFENSE, 180),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_AIRDEFENSE, 11))),
        
        
        			#Ground Defence Ribbon
        			('3040718',	'Gdr',	1, f_and(	object_stat ('vehicles', 'rtime', VEHICLE_TYPE_GRNDDEFENSE, 180),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_GRNDDEFENSE, 5))),
        
        
        			#Airborne Ribbon
        			('3240102',	'Ar',	1, f_and(	object_stat ('vehicles', 'rtime', VEHICLE_TYPE_PARACHUTE, 30))),
        
        
        			#Good Conduct Ribbon 
        			('3240703',	'gcr',	1, f_and(	global_stat ('time', 180000),
        											player_score ('kills', 14),
        											f_not (		f_plus(	player_score ('TKs'),
        														f_plus(player_score ('teamDamages'), player_score ('teamVehicleDamages')),
        										1)
        								))),
        
        		#Medals
        
        			#Purple Heart
        			('2191608',	'ph',	0, f_and(	player_score ('kills', 5),
        											player_score ('dkRatio', 4))),
        
        			#Gold Star
        			#(2051907,
        
        
        			#Silver Star
        			#
        
        
        			#Bronze Star
        			#
        
        			#Meritorious Service Medal
        			('2191319',	'Msm',	2, f_and(	global_stat_multiple_times ('time', 900000, '2191319'),
        											global_stat_multiple_times ('heal', 1000, '2191319'),
        											global_stat_multiple_times ('rpar', 1000, '2191319'),
        											global_stat_multiple_times ('rsup', 1000, '2191319'))),
        		
        
        			#Combat Action Medal
        			('2190303',	'Cam',	2, f_and(	global_stat_multiple_times ('time', 900000, '2190303'),
        											global_stat_multiple_times ('kill', 25000, '2190303'),
        											global_stat ('bksk', 25),
        											player_stat ('timePlayed', 1980))),
        								
        
        			#Air Combat Medal
        			('2190309',	'Acm',	2, f_and(	global_stat_multiple_times ('vtm-1', 720000, '2190309'),
        											global_stat_multiple_times ('vkl-1', 10000, '2190309'),
        											#global_stat_multiple_times ('vac-1', 0.25, '2190309'),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_AVIATOR, 25))),
        
        
        			#Armour Combat Medal
        			('2190318',	'Arm',	2, f_and(	global_stat_multiple_times ('vtm-0', 900000, '2190318'),
        											global_stat_multiple_times ('vkl-0', 10000, '2190318'),
        											#global_stat_multiple_times ('vac-0', 0.25, '2190318'),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_ARMOR, 25))),
        
        
        			#Helicopter Combat Medal
        			('2190308',	'Hcm',	2, f_and(	global_stat_multiple_times ('vtm-3', 900000, '2190308'),
        											global_stat_multiple_times ('vkl-3', 20000, '2190308'),
        											#global_stat_multiple_times ('vac-3', 0.25, '2190308'),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_HELICOPTER, 30))),
        
        			#Good Conduct MEDAL 
        			('2190703',	'gcm',	2, f_and(	global_stat_multiple_times ('time', 900000, '2190703'),
        								player_score ('kills', 27),
        								f_not (		f_plus(	player_score ('TKs'),
        										f_plus(player_score ('teamDamages'), player_score ('teamVehicleDamages')),
        										1))
        								)),
        			#Combat Infantry Medal
        			('2020903',	'Cim',	1, f_and(	global_stat ('time', 1800000),
        											has_medal ('1031406_1'),
        											has_medal ('1031619_1'),
        											has_medal ('1031119_1'),
        											has_medal ('1031120_1'),
        											has_medal ('1031109_1'),
        											has_medal ('1031115_1'),
        											has_medal ('1031121_1'),
        											has_medal ('1031105_1'),
        											has_medal ('1031113_1'),
        											player_stat ('timePlayed', 2040))),
        
        
        			#Marksman Infantry Medal
        			('2020913',	'Mim',	1, f_and(	has_medal ('2020903'),
        											has_medal ('1031406_2'),
        											has_medal ('1031619_2'),
        											has_medal ('1031119_2'),
        											has_medal ('1031120_2'),
        											has_medal ('1031109_2'),
        											has_medal ('1031115_2'),
        											has_medal ('1031121_2'),
        											has_medal ('1031105_2'),
        											has_medal ('1031113_2'),
        											player_stat ('timePlayed', 2040))),
        
        
        			#Sharpshooter Infantry Medal
        			('2020919',	'Sim',	1, f_and(	has_medal ('2020913'),
        											has_medal ('1031406_3'),
        											has_medal ('1031619_3'),
        											has_medal ('1031119_3'),
        											has_medal ('1031120_3'),
        											has_medal ('1031109_3'),
        											has_medal ('1031115_3'),
        											has_medal ('1031121_3'),
        											has_medal ('1031105_3'),
        											has_medal ('1031113_3'),
        											player_stat ('timePlayed', 2040))),
        
        
        			#Medal of Valour
        			('2021322',	'Mvm',	2, f_and(	global_stat_multiple_times ('time', 900000, '2021322'),
        											global_stat_multiple_times ('dsab', 5000, '2021322'),
        											global_stat_multiple_times ('dfcp', 1000,  '2021322'),
        											global_stat_multiple_times ('twsc', 30000, '2021322'))),
        
        
        			#Distinguished Service Medal
        			('2020419',	'Dsm',	2, f_and(	global_stat_multiple_times ('tcdr', 360000, '2020419'),
        											global_stat_multiple_times ('tsql', 360000, '2020419'),
        											global_stat_multiple_times ('tsqm', 360000, '2020419'),
        											player_score ('rplScore', 45))),
        
        
        			# These are backend olny:
        			#Navy Cross
        			#('2021403',	'Ncm',	2, f_and(	global_stat_multiple_times ('atm-0', 16200000, '2021403'),
        			#								global_stat_multiple_times ('abr-0', 100, '2021403'),
        			#								global_stat_multiple_times ('awn-0', 500, '2021403'))),
        
        			#Golden Scimitar
        			#('2020719',	'Gsm',	2, f_and(	global_stat_multiple_times ('atm-1', 16200000, '2020719'),
        			#								global_stat_multiple_times ('abr-1', 100, '2020719'),
        			#								global_stat_multiple_times ('awn-1', 500, '2020719'))),
        
        
        			#People's Medallion
        			#('2021613',	'pmm',	2, f_and(	global_stat_multiple_times ('atm-2', 16200000, '2021613'),
        			#								global_stat_multiple_times ('abr-2', 100, '2021613'),
        			#								global_stat_multiple_times ('awn-2', 500, '2021613'))),
        
        
        			 
        #****************************************************************************************
        #****************************************************************************************
        #****************************************************************************************
        #   X P A C K 1      stuff       Ribbons = 3, Medals = 2, Badges = 1
        #****************************************************************************************
        #****************************************************************************************
        #****************************************************************************************
        		#Badges
        			#Assault Combat Badge
        			#Basic
        			('1261119_1', 'X1Acb',	1, object_stat ('kits', 'kills', KIT_TYPE_ASSAULT, 6)),
        
        			#Veteran
        			('1261119_2', 'X1Acb',	1, f_and( 	has_medal ('1261119_1'),
        												global_stat ('ktm-1', 57600),
        												object_stat ('kits', 'kills', KIT_TYPE_ASSAULT, 22))),
        
        			#Expert
        			('1261119_3', 'X1Acb',	1, f_and( 	has_medal ('1261119_2'),
        												global_stat ('ktm-1', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_ASSAULT, 44))),
        
        
        			#Anti-Tank Combat Badge
        			#Basic
        			('1261120_1', 'X1Atcb',	1, object_stat ('kits', 'kills', KIT_TYPE_AT, 11)),
        
        			#Veteran
        			('1261120_2', 'X1Atcb',	1, f_and( 	has_medal ('1261120_1'),
        												global_stat ('ktm-0', 57600),
        												object_stat ('kits', 'kills', KIT_TYPE_AT, 22))),
        
        			#Expert
        			('1261120_3', 'X1Atcb',	1, f_and( 	has_medal ('1261120_2'),
        												global_stat ('ktm-0', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_AT, 44))),
        
        
        			#Sniper Combat Badge
        			#Basic
        			('1261109_1', 'X1Sncb',	1, object_stat ('kits', 'kills', KIT_TYPE_SNIPER, 11)),
        
        			#Veteran
        			('1261109_2', 'X1Sncb',	1, f_and( 	has_medal ('1261109_1'),
        												global_stat ('ktm-6', 57600),
        												object_stat ('kits', 'kills', KIT_TYPE_SNIPER, 17))),
        
        			#Expert
        			('1261109_3', 'X1Sncb',	1, f_and( 	has_medal ('1261109_2'),
        												global_stat ('ktm-6', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_SNIPER, 38))),
        
        	
        			#Spec Ops Combat Badge
        			#Basic
        			('1261115_1', 'X1Socb',	1, object_stat ('kits', 'kills', KIT_TYPE_SPECOPS, 6)),
        
        			#Veteran
        			('1261115_2', 'X1Socb',	1, f_and( 	has_medal ('1261115_1'),
        												global_stat ('ktm-4', 57600),
        												object_stat ('kits', 'kills', KIT_TYPE_SPECOPS, 22))),
        
        			#Expert
        			('1261115_3', 'X1Socb',	1, f_and( 	has_medal ('1261115_2'),
        												global_stat ('ktm-4', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_SPECOPS, 44))),
        
        
        			#Support Combat Badge
        			#Basic
        			('1261121_1', 'X1Sucb',	1, object_stat ('kits', 'kills', KIT_TYPE_SUPPORT, 11)),
        
        			#Veteran
        			('1261121_2', 'X1Sucb',	1, f_and( 	has_medal ('1261121_1'),
        												global_stat ('ktm-5', 57600),
        												object_stat ('kits', 'kills', KIT_TYPE_SUPPORT, 22))),
        
        			#Expert
        			('1261121_3', 'X1Sucb',	1, f_and( 	has_medal ('1261121_2'),
        												global_stat ('ktm-5', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_SUPPORT, 44))),
        
        
        			#Engineer Combat Badge
        			#Basic
        			('1261105_1', 'X1Ecb',	1, object_stat ('kits', 'kills', KIT_TYPE_ENGINEER, 11)),
        
        			#Veteran
        			('1261105_2', 'X1Ecb',	1, f_and( 	has_medal ('1261105_1'),
        												global_stat ('ktm-2', 57600),
        												object_stat ('kits', 'kills', KIT_TYPE_ENGINEER, 22))),
        
        			#Expert
        			('1261105_3', 'X1Ecb',	1, f_and( 	has_medal ('1261105_2'),
        												global_stat ('ktm-2', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_ENGINEER, 44))),
        
        
        			#Medic Combat Badge
        			#Basic
        			('1261113_1', 'X1Mcb',	1, object_stat ('kits', 'kills', KIT_TYPE_MEDIC, 11)),
        
        			#Veteran
        			('1261113_2', 'X1Mcb',	1, f_and( 	has_medal ('1261113_1'),
        												global_stat ('ktm-3', 57600),
        												object_stat ('kits', 'kills', KIT_TYPE_MEDIC, 22))),
        
        			#Expert
        			('1261113_3', 'X1Mcb',	1, f_and( 	has_medal ('1261113_2'),
        												global_stat ('ktm-3', 360000),
        												object_stat ('kits', 'kills', KIT_TYPE_MEDIC, 44))),
        		
        			#Tactical Support Combat Badge
        			#Basic
        			('1260602_1',	'X1fbb',	1, object_stat ('weapons', 'deployed', WEAPON_TYPE_TACTICAL, 10)),
        
        			#Veteran
        			('1260602_2',	'X1fbb',	1, f_and( 	has_medal ('1260602_1'),
        												object_stat ('weapons', 'deployed', WEAPON_TYPE_TACTICAL, 1000))),
        
        			#Expert	
        			('1260602_3',	'X1fbb',	1, f_and( 	has_medal ('1260602_2'),
        												object_stat ('weapons', 'deployed', WEAPON_TYPE_TACTICAL, 3000))),
        	
        			#Night Vision Usage Badge
        			#Basic
        			#('1261422_1', 'X1nvb',	1, object_stat ('vehicles', 'rtime', VEHICLE_TYPE_NIGHTVISION, 900)),
        
        			#Veteran
        			#('1261422_2', 'X1nvb',	1, f_and( 	has_medal ('1261422_1'),
        			#					global_stat ('tvn', 57600))),
        
        			#Expert
        			#('1261422_3', 'X1nvb',	1, f_and( 	has_medal ('1261422_2'),
        			#					global_stat ('tvn', 360000))),
        
        			#Grappling Hook Usage
        			#Basic
        			('1260708_1',	'X1ghb',	1, object_stat ('weapons', 'deployed', WEAPON_TYPE_GRAPPLINGHOOK, 10)),
        
        			#Veteran
        			('1260708_2',	'X1ghb',	1, f_and( 	has_medal ('1260708_1'),
        												object_stat ('weapons', 'deployed', WEAPON_TYPE_GRAPPLINGHOOK, 3000))),
        
        			#Expert	
        			('1260708_3',	'X1ghb',	1, f_and( 	has_medal ('1260708_2'),
        												object_stat ('weapons', 'deployed', WEAPON_TYPE_GRAPPLINGHOOK, 6500))),
        	
        			#Zip Line Usage
        			#Basic
        			('1262612_1',	'X1zlb',	1, object_stat ('weapons', 'deployed', WEAPON_TYPE_ZIPLINE, 10)),
        
        			#Veteran
        			('1262612_2',	'X1zlb',	1, f_and( 	has_medal ('1262612_1'),
        												object_stat ('weapons', 'deployed', WEAPON_TYPE_ZIPLINE, 3000))),
        
        			#Expert	
        			('1262612_3',	'X1zlb',	1, f_and( 	has_medal ('1262612_2'),
        												object_stat ('weapons', 'deployed', WEAPON_TYPE_ZIPLINE, 6500))),
        	
        		#Medals
        			# Navy Seal Special Service Medal
        			#('2261913',	'X1Nsm',	2, f_and(	global_stat_multiple_times ('atm-3', 16200000, '2261913'),
        			#								)),
        
        			# SAS Special Service Medal
        			#('2261919',	'X1Ssm',	2, f_and(	global_stat_multiple_times ('atm-4', 16200000, '2261919'),
        			#								)),
        
        			# SPETZ Special Service Medal
        			#('2261613',	'X1Spm',	2, f_and(	global_stat_multiple_times ('atm-5', 16200000, '2261613'),
        			#								)),
        		
        			# MECSF Special Service Medal
        			#('2261303',	'X1Mcm',	2, f_and(	global_stat_multiple_times ('atm-6', 16200000, '2261303'),
        			#								)),
        											
        			# Rebel Special Service Medal
        			#('2261802',	'X1Rbm',	2, f_and(	global_stat_multiple_times ('atm-7', 16200000, '2261802'),
        			#								)),
        
        			# Insurgent Special Service Medal
        			#('2260914',	'X1Inm',	2, f_and(	global_stat_multiple_times ('atm-8', 16200000, '2260914'),
        			#								)),
        		#Ribbons 
        		
        			# Navy Seal Service Ribbon
        			#('3261919',	'X1Nss',	1, f_and(	global_stat_multiple_times ('atm-3', 18000, '3261919'),
        			#								)),
        
        			# SAS Service Ribbon
        			#('3261901',	'X1Sas',	1, f_and(	global_stat_multiple_times ('atm-4', 18000, '3261901'),
        			#								)),
        
        			# SPETZNAS Service Ribbon
        			#('3261819',	'X1Rsz',	1, f_and(	global_stat_multiple_times ('atm-5', 18000, '3261819'),
        			#								)),
        
        			# MECSF Service Ribbon
        			#('3261319',	'X1Msf',	1, f_and(	global_stat_multiple_times ('atm-6', 18000, '3261319'),
        			#								)),
        
        			# Rebel Service Ribbon
        			#('3261805',	'X1Reb',	1, f_and(	global_stat_multiple_times ('atm-7', 18000, '3261805'),
        			#								)),
        
        			# Insurgent Service Ribbon
        			#('3260914',	'X1Ins',	1, f_and(	global_stat_multiple_times ('atm-8', 18000, '3260914'),
        			#								)),
        
        			#Crew Service Ribbon
        			('3260318',	'X1Csr',	1, f_and(	f_plus(
        												player_score ('driverSpecials'), 
        												player_score ('driverAssists'), 20),
        											player_score ('kills', 10))),
        
        			#Armoured Service Ribbon
        			('3260118',	'X1Arr',	1, f_and(	object_stat ('vehicles', 'rtime', VEHICLE_TYPE_ARMOR, 1200),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_ARMOR, 22))),
        
        			#Aerial Service Ribbon
        			('3260105',	'X1Aer',	1, f_and(	object_stat ('vehicles', 'rtime', VEHICLE_TYPE_AVIATOR, 900),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_AVIATOR, 22))),
        
        			#Helicopter Service Ribbon
        			('3260803',	'X1Hsr',	1, f_and(	object_stat ('vehicles', 'rtime', VEHICLE_TYPE_HELICOPTER, 900),
        											object_stat ('vehicles', 'kills', VEHICLE_TYPE_HELICOPTER, 22))),
        
        #****************************************************************************************
        #****************************************************************************************
        #****************************************************************************************
        #****************************************************************************************
        #****************************************************************************************
        #****************************************************************************************
        
        			#end of medals_data
        			 )
        
        
        
        rank_data = (
        
        # Level 1:
        	(1,	'rank',		f_plus (global_stat ('scor'), player_score ('score'), 150)),
        # Level 2:
        	(2,	'rank',		f_and(
        						has_rank(1),	
        						f_plus (global_stat ('scor'), player_score ('score'), 500))),
        # Level 3:
        	(3,	'rank',		f_and(
        						has_rank(2),
        						f_plus (global_stat ('scor'), player_score ('score'), 800))),
        # Level 4:
        	(4,	'rank',		f_and(
        						has_rank(3),
        						f_plus (global_stat ('scor'), player_score ('score'), 2500))),
        # Level 5:
        	(5,	'rank',		f_and(
        						has_rank(4),
        						f_plus (global_stat ('scor'), player_score ('score'), 5000))),
        # Level 6:
        	(6,	'rank',		f_and(
        						has_rank(5),
        						f_plus (global_stat ('scor'), player_score ('score'), 8000))),
        # Level 7:
        	(7,	'rank',		f_and(
        						has_rank(6),
        						f_plus (global_stat ('scor'), player_score ('score'), 20000))),
        
        	(8,	'rank',		f_and(
        						has_rank(6),
        						f_plus (global_stat ('scor'), player_score ('score'), 20000),
        						has_medal('1031406_1'), #knife
        						has_medal('1031619_1'), #pistol
        						has_medal('1031119_1'), #assault
        						has_medal('1031120_1'), #AT
        						has_medal('1031109_1'), #Sniper
        						has_medal('1031115_1'), #spec op
        						has_medal('1031121_1'), #Support
        						has_medal('1031105_1'), #Eng
        						has_medal('1031113_1')  #medic
        				)),
        
        # Level 8:
        	(9,	'rank',		f_and(
        						f_or(has_rank(7), has_rank(8)),
        						f_plus (global_stat ('scor'), player_score ('score'), 50000))),
        				
        	(10,'rank',		f_and(
        						f_or(has_rank(7), has_rank(8)),
        						f_plus (global_stat ('scor'), player_score ('score'), 50000),
        						has_medal('1220118_1'), # armour
        						has_medal('1222016_1'), # transport
        						has_medal('1220803_1'), # helicopter
        						has_medal('1220122_1'), # aviator
        						has_medal('1220104_1'), # Air defence
        						has_medal('1031923_1')  # Ground Defence
        				)),
        						
        
        # Level 10:
        	(11,	'rank',		f_and(
        					f_plus (global_stat ('scor'), player_score ('score'), 250000),
        					has_medal('6666666'))), # highest rank this month, never awarded from here
        
        
        	(12,	'rank',		f_and(
        						f_or(f_or(has_rank(9), has_rank(10)), has_rank(11)),
        						f_plus (global_stat ('scor'), player_score ('score'), 200000))),
        
        	)
        constants.py:
        Code:
        # stats keys
        
        import host
        import string
        from bf2 import g_debug
        
        
        
        VEHICLE_TYPE_ARMOR 	= 0
        VEHICLE_TYPE_AVIATOR	= 1
        VEHICLE_TYPE_AIRDEFENSE	= 2
        VEHICLE_TYPE_HELICOPTER	= 3
        VEHICLE_TYPE_TRANSPORT	= 4
        VEHICLE_TYPE_ARTILLERY	= 5
        VEHICLE_TYPE_GRNDDEFENSE= 6
        
        VEHICLE_TYPE_PARACHUTE	= 7
        VEHICLE_TYPE_SOLDIER	= 8
        
        VEHICLE_TYPE_NIGHTVISION= 9
        VEHICLE_TYPE_GASMASK	= 10
        
        NUM_VEHICLE_TYPES 	= 11
        VEHICLE_TYPE_UNKNOWN 	= NUM_VEHICLE_TYPES
        
        
        WEAPON_TYPE_ASSAULT 	= 0
        WEAPON_TYPE_ASSAULTGRN	= 1
        WEAPON_TYPE_CARBINE	= 2
        WEAPON_TYPE_LMG		= 3
        WEAPON_TYPE_SNIPER	= 4
        WEAPON_TYPE_PISTOL	= 5
        WEAPON_TYPE_ATAA	= 6
        WEAPON_TYPE_SMG		= 7
        WEAPON_TYPE_SHOTGUN	= 8
        
        WEAPON_TYPE_KNIFE	= 10
        WEAPON_TYPE_C4		= 11
        WEAPON_TYPE_CLAYMORE	= 12
        WEAPON_TYPE_HANDGRENADE = 13
        WEAPON_TYPE_SHOCKPAD	= 14
        WEAPON_TYPE_ATMINE	= 15
        WEAPON_TYPE_TARGETING	= 16
        
        WEAPON_TYPE_GRAPPLINGHOOK=17
        WEAPON_TYPE_ZIPLINE	=18
        
        WEAPON_TYPE_TACTICAL	=19
        
        NUM_WEAPON_TYPES 	= 20
        WEAPON_TYPE_UNKNOWN	= NUM_WEAPON_TYPES
        
        
        KIT_TYPE_AT		= 0
        KIT_TYPE_ASSAULT	= 1
        KIT_TYPE_ENGINEER	= 2
        KIT_TYPE_MEDIC		= 3
        KIT_TYPE_SPECOPS	= 4
        KIT_TYPE_SUPPORT 	= 5
        KIT_TYPE_SNIPER 	= 6
        
        NUM_KIT_TYPES		= 7
        KIT_TYPE_UNKNOWN	= NUM_KIT_TYPES
        
        
        ARMY_USA		= 0
        ARMY_MEC		= 1
        ARMY_CHINESE		= 2
        ARMY_SEALS		= 3
        ARMY_SAS		= 4
        ARMY_SPETZNAS		= 5
        ARMY_MECSF		= 6
        ARMY_REBELS		= 7
        ARMY_INSURGENTS		= 8
        
        NUM_ARMIES		= 9
        ARMY_UNKNOWN		= NUM_ARMIES
        
        
        vehicleTypeMap = {
        	"usapc_lav25"		: VEHICLE_TYPE_ARMOR,
        	"apc_btr90"		: VEHICLE_TYPE_ARMOR,
        	"apc_wz551"		: VEHICLE_TYPE_ARMOR,
        	"ustnk_m1a2"		: VEHICLE_TYPE_ARMOR,
        	"rutnk_t90"		: VEHICLE_TYPE_ARMOR,
        	"tnk_type98"		: VEHICLE_TYPE_ARMOR,
        	"usair_f18"		: VEHICLE_TYPE_AVIATOR,
        	"ruair_mig29"		: VEHICLE_TYPE_AVIATOR,
        	"air_j10"		: VEHICLE_TYPE_AVIATOR,
        	"usair_f15"		: VEHICLE_TYPE_AVIATOR,
        	"ruair_su34"		: VEHICLE_TYPE_AVIATOR,
        	"air_su30mkk"		: VEHICLE_TYPE_AVIATOR,
        	"air_f35b"		: VEHICLE_TYPE_AVIATOR,
        	"usaav_m6"		: VEHICLE_TYPE_AIRDEFENSE,
        	"aav_tunguska"		: VEHICLE_TYPE_AIRDEFENSE,
        	"aav_type95"		: VEHICLE_TYPE_AIRDEFENSE,
        	"usaas_stinger"		: VEHICLE_TYPE_AIRDEFENSE,
        	"igla_djigit"		: VEHICLE_TYPE_AIRDEFENSE,
        	"wasp_defence_front"	: VEHICLE_TYPE_AIRDEFENSE,
        	"wasp_defence_back"	: VEHICLE_TYPE_AIRDEFENSE,
        	"usthe_uh60"		: VEHICLE_TYPE_HELICOPTER,
        	"the_mi17"		: VEHICLE_TYPE_HELICOPTER,
        	"chthe_z8"		: VEHICLE_TYPE_HELICOPTER,
        	"ahe_ah1z"		: VEHICLE_TYPE_HELICOPTER,
        	"ahe_havoc"		: VEHICLE_TYPE_HELICOPTER,
        	"ahe_z10"		: VEHICLE_TYPE_HELICOPTER,
        	"jeep_faav"		: VEHICLE_TYPE_TRANSPORT,
        	"usjep_hmmwv"		: VEHICLE_TYPE_TRANSPORT,
        	"jep_paratrooper"	: VEHICLE_TYPE_TRANSPORT,
        	"jep_mec_paratrooper"	: VEHICLE_TYPE_TRANSPORT,
        	"jep_vodnik"		: VEHICLE_TYPE_TRANSPORT,
        	"jep_nanjing"		: VEHICLE_TYPE_TRANSPORT,
        	"uslcr_lcac"		: VEHICLE_TYPE_TRANSPORT,
        	"boat_rib"		: VEHICLE_TYPE_TRANSPORT,
        	"usart_lw155"		: VEHICLE_TYPE_ARTILLERY,
        	"ars_d30"		: VEHICLE_TYPE_ARTILLERY,
        	"ats_tow"		: VEHICLE_TYPE_GRNDDEFENSE,
        	"ats_hj8"		: VEHICLE_TYPE_GRNDDEFENSE,
        	"hmg_m2hb"		: VEHICLE_TYPE_GRNDDEFENSE,
        	"chhmg_kord"		: VEHICLE_TYPE_GRNDDEFENSE,
        	"mec_bipod"		: VEHICLE_TYPE_GRNDDEFENSE,
        	"us_bipod"		: VEHICLE_TYPE_GRNDDEFENSE,
        	"ch_bipod"		: VEHICLE_TYPE_GRNDDEFENSE,
        	"parachute"		: VEHICLE_TYPE_PARACHUTE,
        	"us_soldier"		: VEHICLE_TYPE_SOLDIER,
        	"us_heavy_soldier"	: VEHICLE_TYPE_SOLDIER,
        	"us_light_soldier"	: VEHICLE_TYPE_SOLDIER,
        	"mec_soldier"		: VEHICLE_TYPE_SOLDIER,
        	"mec_light_soldier"	: VEHICLE_TYPE_SOLDIER,
        	"mec_heavy_soldier"	: VEHICLE_TYPE_SOLDIER,
        	"ch_soldier"		: VEHICLE_TYPE_SOLDIER,
        	"ch_light_soldier"	: VEHICLE_TYPE_SOLDIER,
        	"ch_heavy_soldier"	: VEHICLE_TYPE_SOLDIER,
        #xpack1 stuff	
        	"seal_soldier"		: VEHICLE_TYPE_SOLDIER,
        	"seal_heavy_soldier"	: VEHICLE_TYPE_SOLDIER,
        	"sas_soldier"		: VEHICLE_TYPE_SOLDIER,
        	"sas_heavy_soldier"	: VEHICLE_TYPE_SOLDIER,
        	"spetz_soldier"		: VEHICLE_TYPE_SOLDIER,
        	"spetz_heavy_soldier"	: VEHICLE_TYPE_SOLDIER,
        	"mecsf_soldier"		: VEHICLE_TYPE_SOLDIER,
        	"mecsf_heavy_soldier"	: VEHICLE_TYPE_SOLDIER,
        	"chinsurgent_soldier"		: VEHICLE_TYPE_SOLDIER,
        	"chinsurgent_heavy_soldier"	: VEHICLE_TYPE_SOLDIER,
        	"meinsurgent_soldier"		: VEHICLE_TYPE_SOLDIER,
        	"meinsurgent_heavy_soldier"	: VEHICLE_TYPE_SOLDIER,
        
        	"xpak_bmp3"		: VEHICLE_TYPE_ARMOR,
        	"xpak_forklift"		: VEHICLE_TYPE_TRANSPORT,
        	"xpak_atv"		: VEHICLE_TYPE_TRANSPORT,
        	"xpak_civ1"		: VEHICLE_TYPE_TRANSPORT,
        	"xpak_civ2"		: VEHICLE_TYPE_TRANSPORT,
        	"xpak_jetski"		: VEHICLE_TYPE_TRANSPORT,
        	"xpak_ailraider"	: VEHICLE_TYPE_TRANSPORT,
        	"xpak_apache"		: VEHICLE_TYPE_HELICOPTER,
        	"xpak_hind"		: VEHICLE_TYPE_HELICOPTER,
        	"xpak_hummertow"	: VEHICLE_TYPE_TRANSPORT,
        }
        
        weaponTypeMap = {
        	"usrif_m16a2"		: WEAPON_TYPE_ASSAULT,
        	"rurif_ak101"		: WEAPON_TYPE_ASSAULT,
        	"rurif_ak47"		: WEAPON_TYPE_ASSAULT,
        	"usrif_sa80"		: WEAPON_TYPE_ASSAULT,
        	"usrif_g3a3"		: WEAPON_TYPE_ASSAULT,
        	"usrif_m203"		: WEAPON_TYPE_ASSAULT,
        	"rurif_gp30"		: WEAPON_TYPE_ASSAULT,
        	"rurif_gp25"		: WEAPON_TYPE_ASSAULT,
        	"usrgl_m203"		: WEAPON_TYPE_ASSAULTGRN,
        	"rurgl_gp30"		: WEAPON_TYPE_ASSAULTGRN,
        	"rurgl_gp25"		: WEAPON_TYPE_ASSAULTGRN,
        	"rurrif_ak74u"		: WEAPON_TYPE_CARBINE,
        	"usrif_m4"		: WEAPON_TYPE_CARBINE,
        	"rurif_ak74u"		: WEAPON_TYPE_CARBINE,
        	"chrif_type95"		: WEAPON_TYPE_CARBINE,
        	"usrif_g36c"		: WEAPON_TYPE_CARBINE,
        	"uslmg_m249saw"		: WEAPON_TYPE_LMG,
        	"rulmg_rpk74"		: WEAPON_TYPE_LMG,
        	"chlmg_type95"		: WEAPON_TYPE_LMG,
        	"rulmg_pkm"		: WEAPON_TYPE_LMG,
        	"usrif_m24"		: WEAPON_TYPE_SNIPER,
        	"rurif_dragunov"	: WEAPON_TYPE_SNIPER,
        	"chsni_type88"		: WEAPON_TYPE_SNIPER,
        	"ussni_m82a1"		: WEAPON_TYPE_SNIPER,
        	"ussni_m95_barret"	: WEAPON_TYPE_SNIPER,
        	"uspis_92fs"		: WEAPON_TYPE_PISTOL,
        	"uspis_92fs_silencer"	: WEAPON_TYPE_PISTOL,
        	"rupis_baghira"		: WEAPON_TYPE_PISTOL,
        	"rupis_baghira_silencer": WEAPON_TYPE_PISTOL,
        	"chpis_qsz92"		: WEAPON_TYPE_PISTOL,
        	"chpis_qsz92_silencer"	: WEAPON_TYPE_PISTOL,
        	"usatp_predator"	: WEAPON_TYPE_ATAA,
        	"chat_eryx"		: WEAPON_TYPE_ATAA,
        	"usrif_mp5_a3"		: WEAPON_TYPE_SMG,
        	"rurif_bizon"		: WEAPON_TYPE_SMG,
        	"chrif_type85"		: WEAPON_TYPE_SMG,
        	"usrif_remington11-87"	: WEAPON_TYPE_SHOTGUN,
        	"rusht_saiga12"		: WEAPON_TYPE_SHOTGUN,
        	"chsht_norinco982"	: WEAPON_TYPE_SHOTGUN,
        	"chsht_protecta"	: WEAPON_TYPE_SHOTGUN,
        	"ussht_jackhammer"	: WEAPON_TYPE_SHOTGUN,
        	"kni_knife"		: WEAPON_TYPE_KNIFE,
        	"c4_explosives"		: WEAPON_TYPE_C4,
        	"ushgr_m67"		: WEAPON_TYPE_HANDGRENADE,
        	"usmin_claymore"	: WEAPON_TYPE_CLAYMORE,
        	"defibrillator"		: WEAPON_TYPE_SHOCKPAD,
        	"at_mine"		: WEAPON_TYPE_ATMINE,
        	"simrad"		: WEAPON_TYPE_TARGETING,
        	
        # xpack1 stuff
        	"nshgr_flashbang"	: WEAPON_TYPE_TACTICAL,
        	"sasrif_teargas"	: WEAPON_TYPE_TACTICAL,
        	"insgr_rpg"		: WEAPON_TYPE_ATAA,
        	"nsrif_crossbow"	: WEAPON_TYPE_ZIPLINE,
        	"rurif_oc14"		: WEAPON_TYPE_ASSAULT,
        	"sasrif_fn2000"		: WEAPON_TYPE_ASSAULT,
        	"sasgr_fn2000"		: WEAPON_TYPE_ASSAULTGRN,
        	"sasrif_g36e"		: WEAPON_TYPE_ASSAULT,
        	"sasrif_g36k"		: WEAPON_TYPE_ASSAULT,
        	"sasrif_mg36"		: WEAPON_TYPE_LMG,
        	"sasrif_mp7"		: WEAPON_TYPE_SMG,
        	"spzrif_aps"		: WEAPON_TYPE_ASSAULT,
        	"usrif_fnscarh"		: WEAPON_TYPE_ASSAULT,
        	"usrif_fnscarl"		: WEAPON_TYPE_CARBINE,
        }
        
        
        kitTypeMap = {
        	"us_at"		: KIT_TYPE_AT,
        	"us_assault"	: KIT_TYPE_ASSAULT,
        	"us_engineer"	: KIT_TYPE_ENGINEER,
        	"us_medic"	: KIT_TYPE_MEDIC,
        	"us_specops"	: KIT_TYPE_SPECOPS,
        	"us_support"	: KIT_TYPE_SUPPORT,
        	"us_sniper"	: KIT_TYPE_SNIPER,
        	"mec_at" 	: KIT_TYPE_AT,
        	"mec_assault"	: KIT_TYPE_ASSAULT,
        	"mec_engineer"	: KIT_TYPE_ENGINEER,
        	"mec_medic"	: KIT_TYPE_MEDIC,
        	"mec_specops"	: KIT_TYPE_SPECOPS,
        	"mec_support"	: KIT_TYPE_SUPPORT,
        	"mec_sniper"	: KIT_TYPE_SNIPER,
        	"ch_at" 	: KIT_TYPE_AT,
        	"ch_assault"	: KIT_TYPE_ASSAULT,
        	"ch_engineer"	: KIT_TYPE_ENGINEER,
        	"ch_medic"	: KIT_TYPE_MEDIC,
        	"ch_specops"	: KIT_TYPE_SPECOPS,
        	"ch_support"	: KIT_TYPE_SUPPORT,
        	"ch_sniper"	: KIT_TYPE_SNIPER,
        	"seal_at" 	: KIT_TYPE_AT,
        	"seal_assault"	: KIT_TYPE_ASSAULT,
        	"seal_engineer": KIT_TYPE_ENGINEER,
        	"seal_medic"	: KIT_TYPE_MEDIC,
        	"seal_specops"	: KIT_TYPE_SPECOPS,
        	"seal_support"	: KIT_TYPE_SUPPORT,
        	"seal_sniper"	: KIT_TYPE_SNIPER,
        	"sas_at" 	: KIT_TYPE_AT,
        	"sas_assault"	: KIT_TYPE_ASSAULT,
        	"sas_engineer"	: KIT_TYPE_ENGINEER,
        	"sas_medic"	: KIT_TYPE_MEDIC,
        	"sas_specops"	: KIT_TYPE_SPECOPS,
        	"sas_support"	: KIT_TYPE_SUPPORT,
        	"sas_sniper"	: KIT_TYPE_SNIPER,
        	"spetsnaz_at" 	: KIT_TYPE_AT,
        	"spetsnaz_assault"	: KIT_TYPE_ASSAULT,
        	"spetsnaz_engineer": KIT_TYPE_ENGINEER,
        	"spetsnaz_medic"	: KIT_TYPE_MEDIC,
        	"spetsnaz_specops"	: KIT_TYPE_SPECOPS,
        	"spetsnaz_support"	: KIT_TYPE_SUPPORT,
        	"spetsnaz_sniper"	: KIT_TYPE_SNIPER,
        	"mecsf_at" 	: KIT_TYPE_AT,
        	"mecsf_assault"	: KIT_TYPE_ASSAULT,
        	"mecsf_engineer": KIT_TYPE_ENGINEER,
        	"mecsf_medic"	: KIT_TYPE_MEDIC,
        	"mecsf_specops"	: KIT_TYPE_SPECOPS,
        	"mecsf_support"	: KIT_TYPE_SUPPORT,
        	"mecsf_sniper"	: KIT_TYPE_SNIPER,
        	"chinsurgent_at" 	: KIT_TYPE_AT,
        	"chinsurgent_assault"	: KIT_TYPE_ASSAULT,
        	"chinsurgent_engineer"	: KIT_TYPE_ENGINEER,
        	"chinsurgent_medic"	: KIT_TYPE_MEDIC,
        	"chinsurgent_specops"	: KIT_TYPE_SPECOPS,
        	"chinsurgent_support"	: KIT_TYPE_SUPPORT,
        	"chinsurgent_sniper"	: KIT_TYPE_SNIPER,
        	"meinsurgent_at" 	: KIT_TYPE_AT,
        	"meinsurgent_assault"	: KIT_TYPE_ASSAULT,
        	"meinsurgent_engineer"	: KIT_TYPE_ENGINEER,
        	"meinsurgent_medic"	: KIT_TYPE_MEDIC,
        	"meinsurgent_specops"	: KIT_TYPE_SPECOPS,
        	"meinsurgent_support"	: KIT_TYPE_SUPPORT,
        	"meinsurgent_sniper"	: KIT_TYPE_SNIPER,
        	"mecsf_at_special" 	: KIT_TYPE_AT,
        	"mecsf_assault_special"	: KIT_TYPE_ASSAULT,
        	"mecsf_specops_special"	: KIT_TYPE_SPECOPS,
        	"mecsf_sniper_special"	: KIT_TYPE_SNIPER,
        	"sas_at_special" 	: KIT_TYPE_AT,
        	"sas_assault_special"	: KIT_TYPE_ASSAULT,
        	"sas_specops_special"	: KIT_TYPE_SPECOPS,
        	"sas_sniper_special"	: KIT_TYPE_SNIPER,
        }
        
        armyMap = {
        	"us"		: ARMY_USA,
        	"mec"		: ARMY_MEC,
        	"ch"		: ARMY_CHINESE,
        	"seal"		: ARMY_SEALS,
        	"sas"		: ARMY_SAS,
        	"spetz"		: ARMY_SPETZNAS,
        	"mecsf"		: ARMY_MECSF,
        	"chinsurgent"	: ARMY_REBELS,
        	"meinsurgent"   : ARMY_INSURGENTS,
        }
        
        mapMap = {
        	"kubra_dam"		: "0",
        	"mashtuur_city"		: "1",
        	"operation_clean_sweep" : "2",
        	"zatar_wetlands"	: "3",
        	"strike_at_karkand"	: "4",
        	"sharqi_peninsula"	: "5",
        	"gulf_of_oman"		: "6",
        	"daqing_oilfields"	: "100",
        	"dalian_plant"		: "101",
        	"dragon_valley"		: "102",
        	"fushe_pass"		: "103",
        	"hingan_hills"		: "104",
        	"songhua_stalemate"	: "105",
        	"devils_perch"		: "300",
        	"iron_gator"		: "301",
        	"night_flight"		: "302",
        	"warlord"		: "303",
        	"leviathan"		: "304",
        	"mass_destruction"	: "305",
        	"surge"			: "306",
        	"ghost_town"		: "307",
        	"wake_island_2007"	: "601",
        }
        UNKNOWN_MAP = 99
        
        gameModeMap = {
        	"gpm_cq"		: 0,
        	"gpm_sl"		: 1,
        }
        UNKNOWN_GAMEMODE = 99
        
        
        
        def getVehicleType(templateName):
        	try:
        		vehicleType = vehicleTypeMap[string.lower(templateName)]
        	except KeyError:
        		return VEHICLE_TYPE_UNKNOWN
        	
        	return vehicleType
        
        
        	
        def getWeaponType(templateName):
        	try:
        		weaponType = weaponTypeMap[string.lower(templateName)]
        	except KeyError:
        		return WEAPON_TYPE_UNKNOWN
        	
        	return weaponType	
        	
        	
        	
        def getKitType(templateName):	
        	try:
        		kitType = kitTypeMap[string.lower(templateName)]
        	except KeyError:
        		return KIT_TYPE_UNKNOWN
        	
        	return kitType	
        	
        	
        	
        def getArmy(templateName):
        	try:
        		army = armyMap[string.lower(templateName)]
        	except KeyError:
        		return ARMY_UNKNOWN
        	
        	return army
        
        
        
        def getMapId(mapName):
        	try:
        		mapId = mapMap[string.lower(mapName)]
        	except KeyError:
        		return UNKNOWN_MAP
        	
        	return mapId
        
        
        
        def getGameModeId(gameMode):
        	try:
        		gameModeId = gameModeMap[string.lower(gameMode)]
        	except KeyError:
        		return UNKNOWN_GAMEMODE
        	
        	return gameModeId
        
        
        
        def getRootParent(obj):
        	parent = obj.getParent()
        	
        	if parent == None:
        		return obj
        		
        	return getRootParent(parent)
        
        
        
        if g_debug: print "Stat constants loaded"
        ~Salad

        Comment

        • DogGunn
          TotalBF2 Supporter
          • Oct 2005
          • 231

          #5
          Re: Can someone please post constants.py - Will Help TotalBF2

          Thank you very much!

          Comment

          • -(PK)-DarkIllusion

            #6
            Re: Can someone please post constants.py - Will Help TotalBF2

            wuts this gonna do?

            Comment

            • DogGunn
              TotalBF2 Supporter
              • Oct 2005
              • 231

              #7
              Re: Can someone please post constants.py - Will Help TotalBF2

              Originally posted by -(PK)-DarkIllusion
              wuts this gonna do?
              It's people like you really get on my nerves.
              Read my original post!

              Comment

              • Slapidus

                #8
                Re: Can someone please post constants.py - Will Help TotalBF2

                Originally posted by DogGunn
                It's people like you really get on my nerves.
                Read my original post!
                maybe he doesn't understand the whole concept behind this,instead of being a a$$ try explaining it to him,you'll get more respect out of people if you do it the nice way

                Comment

                • r0uJe

                  #9
                  Re: Can someone please post constants.py - Will Help TotalBF2

                  it's for the stats page here on totalbf2. see the sergeant major symbol below my nick on the left side...

                  Comment

                  • -(PK)-DarkIllusion

                    #10
                    Re: Can someone please post constants.py - Will Help TotalBF2

                    Originally posted by DogGunn
                    It's people like you really get on my nerves.
                    Read my original post!
                    sory man.. i know that it will upgrade the totalbf2 stats thing. but i wanted to know what kind of features.. popup info... new look, animations, bf2 content...etc. i guess i didn't explain myself thoroughly

                    Comment

                    • DogGunn
                      TotalBF2 Supporter
                      • Oct 2005
                      • 231

                      #11
                      Re: Can someone please post constants.py - Will Help TotalBF2

                      Oh, kk.
                      I'm planning to upgrade it with a new look. This will also place the new maps and medals and things that came with SF.

                      I needed those files because it gives me all the map numbers, team numbers and weapon numbers.

                      Comment

                      • r0uJe

                        #12
                        Re: Can someone please post constants.py - Will Help TotalBF2

                        nice! can't wait...

                        Comment

                        • DogGunn
                          TotalBF2 Supporter
                          • Oct 2005
                          • 231

                          #13
                          Re: Can someone please post constants.py - Will Help TotalBF2

                          Does any one know how to take the images out of the game, the easy way?
                          (Without screenshots)

                          Comment

                          Working...