def avatarFinished(self, avId): if not avId in self.avatars: self.air.writeServerEvent('suspicious', avId, 'Toon tried to finish in a race they\'re not in!') return if avId in self.finishedAvatars: self.air.writeServerEvent('suspicious', avId, 'Toon tried to finish in a race twice!') return self.finishedAvatars.append(avId) av = self.air.doId2do.get(avId) place = len(self.finishedAvatars) entryFee = RaceGlobals.getEntryFee(self.trackId, self.raceType) bonus = 0 totalTime = globalClockDelta.networkToLocalTime(globalClockDelta.getRealNetworkTime()) - self.startTime qualify = False if totalTime < RaceGlobals.getQualifyingTime(self.trackId): qualify = True self.air.leaderboardMgr.submitRace(self.trackId, av.getName(), totalTime) if self.raceType == RaceGlobals.Practice: winnings = RaceGlobals.PracticeWinnings trophies = [] elif qualify: offset = 4 - len(self.avatarProgress) # self.avatarProgress contains the amount of STARTING players. winnings = entryFee * RaceGlobals.Winnings[(place+offset)-1] trophies = self.calculateTrophies(avId, place == 1, qualify, totalTime) else: winnings = 0 trophies = [] av.b_setTickets(av.getTickets() + winnings) if av.getTickets() > RaceGlobals.MaxTickets: av.b_setTickets(RaceGlobals.MaxTickets) self.sendUpdate('setPlace', [avId, totalTime, place, entryFee, qualify, max((winnings-entryFee), 0), bonus, trophies, [], 0])
def avatarFinished(self, avId): if not avId in self.avatars: self.air.writeServerEvent( 'suspicious', avId, 'Toon tried to finish in a race they\'re not in!') return if avId in self.finishedAvatars: self.air.writeServerEvent('suspicious', avId, 'Toon tried to finish in a race twice!') return self.finishedAvatars.append(avId) av = self.air.doId2do.get(avId) place = len(self.finishedAvatars) entryFee = RaceGlobals.getEntryFee(self.trackId, self.raceType) bonus = 0 totalTime = globalClockDelta.networkToLocalTime( globalClockDelta.getRealNetworkTime()) - self.startTime qualify = False if totalTime < RaceGlobals.getQualifyingTime(self.trackId): qualify = True self.air.leaderboardMgr.submitRace(self.trackId, av.getName(), totalTime) if self.raceType == RaceGlobals.Practice: winnings = RaceGlobals.PracticeWinnings trophies = [] elif qualify: offset = 4 - len( self.avatarProgress ) # self.avatarProgress contains the amount of STARTING players. winnings = entryFee * RaceGlobals.Winnings[(place + offset) - 1] trophies = self.calculateTrophies(avId, place == 1, qualify, totalTime) else: winnings = 0 trophies = [] av.b_setTickets(av.getTickets() + winnings) if av.getTickets() > RaceGlobals.MaxTickets: av.b_setTickets(RaceGlobals.MaxTickets) self.sendUpdate('setPlace', [ avId, totalTime, place, entryFee, qualify, max((winnings - entryFee), 0), bonus, trophies, [], 0 ])