From 5201d9628d66be423b9c17d184cd89fb2fba1202 Mon Sep 17 00:00:00 2001 From: UNiQ10 <sandeepsubramanian@gmail.com> Date: Fri, 16 Oct 2015 04:05:46 +0530 Subject: [PATCH] Attempt at fixing NPC ghosts --- bin/Trainer.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/bin/Trainer.py b/bin/Trainer.py index 0559e3b..8def194 100755 --- a/bin/Trainer.py +++ b/bin/Trainer.py @@ -430,7 +430,7 @@ class Trainer(object): self._numPlayers = len(x) - 4 # -4 for time, ball, goal_l, and goal_r self.send('(look)') self.registerMsgHandler(f,*partial,quiet=True) - while self._numPlayers != 2 * 11: # self._numOffense + self._numDefense: + while self._numPlayers != self._numOffense + self._numDefense: self.listenAndProcess() self.ignoreMsg(*partial,quiet=True) @@ -671,7 +671,7 @@ class Trainer(object): sorted_offense_agent_unums = sorted(self._offenseOrder[1:self._offenseAgents+1]) defense_unums = self._defenseOrder[: self._numDefense] sorted_defense_agent_unums = sorted(self._defenseOrder[:self._defenseAgents]) - unnecessary_players = [] + #unnecessary_players = [] # Launch offense agent_num = 0 @@ -685,11 +685,15 @@ class Trainer(object): agent_num += 1 else: player = self.launch_player(player_num, play_offense = True) + time.sleep(0.15) if player_num in offense_unums: self._npcPopen.append(player) necProcesses.append([player, 'offense_npc_' + str(player_num)]) else: - unnecessary_players.append(player) + player.terminate() + time.sleep(0.1) + continue + #unnecessary_players.append(player) self.waitOnPlayer(player_num, on_offense=True) self.waitOnTeam(first = False) @@ -705,11 +709,15 @@ class Trainer(object): agent_num += 1 else: player = self.launch_player(player_num, play_offense = False) + time.sleep(0.15) if player_num in defense_unums: self._npcPopen.append(player) necProcesses.append([player, 'defense_npc_' + str(player_num)]) else: - unnecessary_players.append(player) + player.terminate() + time.sleep(0.1) + continue + #unnecessary_players.append(player) self.waitOnPlayer(player_num, on_offense=False) self.waitOnTeam(first = False) self.checkIfAllPlayersConnected() @@ -722,9 +730,9 @@ class Trainer(object): self.listenAndProcess(1000) # Terminate unnecessary players - print '[Trainer] Removing unnecessary players' - for player in unnecessary_players: - player.terminate() + #print '[Trainer] Removing unnecessary players' + #for player in unnecessary_players: + # player.terminate() # Broadcast the HFO configuration offense_nums = ' '.join([str(self.convertToExtPlayer(self._offenseTeamName, i)) -- 2.24.1