All pastes #20200 Raw Edit

Untitled

public text v1 · immutable
#20200 ·published 2005-08-16 21:36 UTC
rendered paste body
owner = GameLogic.getCurrentController().getOwner()
import time
#send request	
if owner.synctime > 30:

	if owner.syncpacket < 6:
		from libpac import *
	
		if owner.synctime >= 32 and owner.synctime < 34 and owner.syncpacket == 0:
			GameLogic.client_sock.write_raw(PAC_OVERHEAD_REQTIME,GameLogic.client_sock.ID, str(time.time()))
			owner.syncpacket = 1

		
		elif owner.synctime >= 34 and owner.synctime < 36 and owner.syncpacket == 1:
			GameLogic.client_sock.write_raw(PAC_OVERHEAD_REQTIME,GameLogic.client_sock.ID, str(time.time()))
			owner.syncpacket = 2

			
		elif owner.synctime >= 36 and owner.synctime < 38 and owner.syncpacket == 2:
			GameLogic.client_sock.write_raw(PAC_OVERHEAD_REQTIME,GameLogic.client_sock.ID, str(time.time()))
			owner.syncpacket = 3

			
		elif owner.synctime >= 38 and owner.synctime < 40 and owner.syncpacket == 3:
			GameLogic.client_sock.write_raw(PAC_OVERHEAD_REQTIME,GameLogic.client_sock.ID, str(time.time()))
			owner.syncpacket = 4
			
			
		elif owner.synctime > 40 and owner.synctime < 42 and owner.syncpacket == 4:
			GameLogic.client_sock.write_raw(PAC_OVERHEAD_REQTIME,GameLogic.client_sock.ID, str(time.time()))
			owner.syncpacket = 5
			
		elif owner.synctime > 42 and owner.syncpacket == 5:
			GameLogic.client_sock.write_raw(PAC_OVERHEAD_REQTIME,GameLogic.client_sock.ID, str(time.time()))
			owner.syncpacket = 6
			

		
	else:
		owner.syncpacket = 0
		owner.synctime = 0



if hasattr(GameLogic,"client_sock"):
	if len(GameLogic.client_sock.clockpackets) == 6:
		from math import *
		sorteddeltas = GameLogic.client_sock.clockpackets
		sorteddeltas = sorteddeltas[1:len(sorteddeltas)]
		sorteddeltas.sort()
		original = GameLogic.client_sock.clockpackets[0]
		
		n = len(sorteddeltas)
		SDev = 0
		mean = 0
		sum = 0
		gooddeltas = []
		mean_delta = 0
				
		for i in sorteddeltas: mean += i
		mean /= n
		for i in sorteddeltas: sum += (mean - i) * (mean - i)
		SDev = sqrt(sum/(n-1))
		medium = sorteddeltas[2]
		for i in sorteddeltas:
			if abs(i - medium) < SDev:
				gooddeltas.append(i)
	
		for i in gooddeltas: mean_delta += i
		if len(gooddeltas) > 0:
			mean_delta = mean_delta / len(gooddeltas)
			
	
			print "Delta aveage: " + str(mean_delta)
			it = time.time()

			GameLogic.client_sock.clockdelta = mean_delta
			GameLogic.client_sock.clockpackets = []
			GameLogic.client_sock.clockpackets.append(original)
		
			print "Local Time: " + str(time.time())
			print "Guessed Server Time: " + str(GameLogic.client_sock.getTimeStamp())