local maxplayers = MaxClients().tointeger() for(local i = 1; i<=maxplayers; i++) { local player = PlayerInstanceFromIndex(i) if(!player)continue player.TerminateScriptScope() AddThinkToEnt(player,null) } ::multitrace <- [ [-1, 1], [-0.5, 1], [0, 1], [0.5, 1], [1, 1], [-1, 0.5], [-0.5, 0.5], [0, 0.5], [0.5, 0.5], [1, 0.5], [-1, 0], [-0.5, 0], [0, 0], [0.5, 0], [1, 0], [-1, -0.5], [-0.5, -0.5], [0, -0.5], [0.5, -0.5], [1, -0.5], [-1, -1], [-0.5, -1], [0, -1], [0.5, -1], [1, -1] ] ::phase2health <- 666 ::phase3health <- 333 ::Range_Think <- function() { if(!("form" in self.GetScriptScope())) { self.GetScriptScope().form <- [-1,-1] self.GetScriptScope().saveddist <- null } local eyepos = self.EyePosition() local eyeang = self.EyeAngles() local fwd = eyeang.Forward() local lft = eyeang.Left()*0.06 local up = eyeang.Up()*0.06 local player local playerdist foreach(k in multitrace) { local trace = { start = eyepos end = (fwd+(lft*k[0])+(up*k[1]))*(1<<30) ignore = self } TraceLineEx(trace) if("enthit" in trace&&trace.enthit.GetClassname()=="player"&&trace.enthit.GetTeam()!=self.GetTeam()) { local dist = (trace.enthit.GetOrigin()-eyepos).Length() if(playerdist==null||dist