Advertisement
tjone270

zlr's new triweapon algorithm

Apr 1st, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.21 KB | None | 0 0
  1.     @minqlx.next_frame
  2.     def handle_round_countdown(self, *args, **kwargs):
  3.        
  4.         if self.gamemode_active == True:
  5.            
  6.             # cycle through teams, red, blue, specs, free (free team is the team that players are placed into in team-less gametypes (eg. FFA))
  7.             for team in self.teams():
  8.                
  9.                 # don't want to be giving weapons to players in the spectator/free teams, will likely crash server.
  10.                 if (team != "spectator") and (team != "free"):
  11.                    
  12.                     # copy the teams dictionary so we don't try to modify the original
  13.                                         teams = self.teams()
  14.                    
  15.                     # Common variables
  16.                     teamsize = len(teams)
  17.                     close_range_counter = 1
  18.                     mid_range_counter = 1
  19.                     long_range_counter = 1                 
  20.                    
  21.                     # Weapon set distribution by team size
  22.                     if (teamsize == 2):
  23.                         close_range_cap = 1
  24.                         mid_range_cap = 1
  25.                         long_range_cap = 1
  26.                     else if (teamsize == 3):
  27.                         close_range_cap = 1
  28.                         mid_range_cap = 1
  29.                         long_range_cap = 1
  30.                     else if (teamsize == 4):
  31.                         close_range_cap = 2
  32.                         mid_range_cap = 1
  33.                         long_range_cap = 1
  34.                     else if (teamsize == 5):
  35.                         close_range_cap = 2
  36.                         mid_range_cap = 2
  37.                         long_range_cap = 1
  38.                     else if (teamsize == 6):
  39.                         close_range_cap = 2
  40.                         mid_range_cap = 2
  41.                         long_range_cap = 2
  42.                     else if (teamsize == 7):
  43.                         close_range_cap = 3
  44.                         mid_range_cap = 2
  45.                         long_range_cap = 2
  46.                     else if (teamsize == 8):
  47.                         close_range_cap = 3
  48.                         mid_range_cap = 3
  49.                         long_range_cap = 2                  
  50.                    
  51.                     # STEP 1: Randomly shuffle the players
  52.                     theTeam = teams[team]
  53.                     random.shuffle(theTeam)
  54.                    
  55.                     # STEP 2: Randomly cycle through the players and apply the weapon sets based on teamsize distribution              
  56.                     for player in theTeam:
  57.                        
  58.                         # Generate random number between 1 and 3
  59.                         random_int = random.randint(1,3)
  60.                        
  61.                         if random_int == 1:                        
  62.                             if close_range_counter <= close_range_cap:
  63.                                 player.weapons(reset=True, g=True, rl=True, gl=True, mg=True)
  64.                                 player.health = self.CLOSE_RANGE_HEALTH
  65.                                 player.armor = self.CLOSE_RANGE_ARMOUR
  66.                                 player.center_print("Weapon Assignment:\n^1SHORT-RANGE WEAPONS")
  67.                                 close_range_counter += 1
  68.                             else if mid_range_counter <= mid_range_cap:
  69.                                 player.weapons(reset=True, g=True, lg=True, sg=True, hmg=True)
  70.                                                                 player.health = self.MID_RANGE_HEALTH
  71.                                                                 player.armor = self.MID_RANGE_ARMOUR
  72.                                                                 player.center_print("Weapon Assignment:\n^3MID-RANGE WEAPONS")
  73.                                                                 mid_range_counter += 1
  74.                             else if long_range_counter <= long_range_cap:
  75.                                 player.weapons(reset=True, g=True, rg=True, sg=True, pg=True)
  76.                                                                 player.health = self.LONG_RANGE_HEALTH
  77.                                                                 player.armor = self.LONG_RANGE_ARMOUR
  78.                                                                 player.center_print("Weapon Assignment:\n^2LONG-RANGE WEAPONS")
  79.                                                                 long_range_counter += 1
  80.                         else if random_int == 2:
  81.                             if mid_range_counter <= mid_range_cap:
  82.                                 player.weapons(reset=True, g=True, lg=True, sg=True, hmg=True)
  83.                                                                 player.health = self.MID_RANGE_HEALTH
  84.                                                                 player.armor = self.MID_RANGE_ARMOUR
  85.                                                                 player.center_print("Weapon Assignment:\n^3MID-RANGE WEAPONS")
  86.                                 mid_range_counter += 1
  87.                             else if long_range_counter <= long_range_cap:
  88.                                 player.weapons(reset=True, g=True, rg=True, sg=True, pg=True)
  89.                                                                 player.health = self.LONG_RANGE_HEALTH
  90.                                                                 player.armor = self.LONG_RANGE_ARMOUR
  91.                                                                 player.center_print("Weapon Assignment:\n^2LONG-RANGE WEAPONS")
  92.                                                                 long_range_counter += 1
  93.                             else if close_range_counter <= close_range_cap:
  94.                                 player.weapons(reset=True, g=True, rl=True, gl=True, mg=True)
  95.                                 player.health = self.CLOSE_RANGE_HEALTH
  96.                                 player.armor = self.CLOSE_RANGE_ARMOUR
  97.                                 player.center_print("Weapon Assignment:\n^1SHORT-RANGE WEAPONS")
  98.                                 close_range_counter += 1
  99.                         else:
  100.                             if long_range_counter <= long_range_cap:
  101.                                 player.weapons(reset=True, g=True, rg=True, sg=True, pg=True)
  102.                                                                 player.health = self.LONG_RANGE_HEALTH
  103.                                                                 player.armor = self.LONG_RANGE_ARMOUR
  104.                                                                 player.center_print("Weapon Assignment:\n^2LONG-RANGE WEAPONS")
  105.                                                             long_range_counter += 1
  106.                             else if mid_range_counter <= mid_range_cap:
  107.                                 player.weapons(reset=True, g=True, lg=True, sg=True, hmg=True)
  108.                                                                 player.health = self.MID_RANGE_HEALTH
  109.                                                                 player.armor = self.MID_RANGE_ARMOUR
  110.                                                                 player.center_print("Weapon Assignment:\n^3MID-RANGE WEAPONS")
  111.                                                                 mid_range_counter += 1
  112.                             else if close_range_counter <= close_range_cap:
  113.                                 player.weapons(reset=True, g=True, rl=True, gl=True, mg=True)
  114.                                 player.health = self.CLOSE_RANGE_HEALTH
  115.                                 player.armor = self.CLOSE_RANGE_ARMOUR
  116.                                 player.center_print("Weapon Assignment:\n^1SHORT-RANGE WEAPONS")
  117.                                 close_range_counter += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement