/* * Author: Needles * https://steamcommunity.com/profiles/76561198026257137/ */ ::Debug.Print("*** HIGHLIGHT"); ::Highlight <- {}; ::Highlight.SCOPE_KEY <- UniqueString(); /* * @TODO - Bug: function will not work if the target entity does not have a targetname. */ function Highlight::AddHighlight(entity, color = null) { if (entity == null || entity.IsValid() == false || entity.ValidateScriptScope() == false) { return; } if (color == null) { color = ::Color.GetTeamColor(entity.GetTeam()); } if (!(::Highlight.SCOPE_KEY in entity.GetScriptScope()) || entity.GetScriptScope()[::Highlight.SCOPE_KEY] == null || entity.GetScriptScope()[::Highlight.SCOPE_KEY].IsValid() == false) { entity.GetScriptScope()[::Highlight.SCOPE_KEY] <- SpawnEntityFromTable("tf_glow", { origin = entity.GetOrigin(), Target = entity.GetName(), VisibilityMode = 0, // Always visible GlowColor = color.tostring(), }); EntFireByHandle(entity.GetScriptScope()[::Highlight.SCOPE_KEY], "SetParent", "!activator", -1.0, entity, null); } else { EntFireByHandle(entity.GetScriptScope()[::Highlight.SCOPE_KEY], "SetGlowColor ", color.tostring(), -1.0, entity, null); } ::Debug.Print("*** HIGHLIGHT - Applied highlight to entity " + entity); } function Highlight::RemoveHighlight(entity) { if (entity == null || entity.IsValid() == false || entity.ValidateScriptScope() == false) { return; } if (!(::Highlight.SCOPE_KEY in entity.GetScriptScope()) || entity.GetScriptScope()[::Highlight.SCOPE_KEY] == null || entity.GetScriptScope()[::Highlight.SCOPE_KEY].IsValid() == false) { return; } entity.GetScriptScope()[::Highlight.SCOPE_KEY].Destroy(); entity.GetScriptScope()[::Highlight.SCOPE_KEY] = null; ::Debug.Print("*** HIGHLIGHT - Removed highlight from entity " + entity); }