Trying to fix that live players dont see names of people in spectator DM

I am trying to fix but where live players in ttt can see names of people that are in Spectaor DM and can suit zoom on them.

So here is problem:

function GM:HUDDrawTargetID()
   local client = LocalPlayer()

   local L = GetLang()


   local trace = client:GetEyeTrace(MASK_SHOT)
   local ent = trace.Entity
   if (not IsValid(ent)) or ent.NoTarget then return end

   -- some bools for caching what kind of ent we are looking at
   local target_traitor = false
   local target_detective = false
   local target_corpse = false

   local text = nil
   local color = COLOR_WHITE

   -- if a vehicle, we identify the driver instead
   if IsValid(ent:GetNWEntity("ttt_driver", nil)) then
      ent = ent:GetNWEntity("ttt_driver", nil)

      if ent == client then return end

   local cls = ent:GetClass()
   local minimal = minimalist:GetBool()
   local hint = (not minimal) and (ent.TargetIDHint or ClassHint[cls])

   if ent:IsPlayer() then
         //Here is my code
         if ent:IsGhost() then return end
         if ent:IsSpec() then return end
         if not ent:IsActive() then return end
         if ent:GetNWBool("Ghost") then return end
         if ent:GetVal("Ghost") then return end
         if ent:GetDTBool(52) then return end
         if ent:GetObserverMode( )  !=  OBS_MODE_NONE 
        // This is list of all functions that i tryed but most of then give nil or dont work 
       // For NWBool, GetVal and DTBool i set vaules in file from spec dm that spawn player in spec dm(sv_spectator_deathmatch.lua and cl_spectator_deathmatch.lua)
      if ent:GetNWBool("disguised", false) then
         client.last_id = nil

         if client:IsTraitor() or client:IsSpec() then
            text = ent:Nick() ..

Can someone tell my how to solve this?
Thanks in advance!