-- LUA Script - precede every function and global member with lowercase name of script + '_main' local U = require "scriptbank\\utillib" local hitSprite = hitSprite or CreateSprite( LoadImage( "gamecore\\crosshairs\\crosshair14.png" )) local killSprite = killSprite or CreateSprite( LoadImage( "gamecore\\crosshairs\\crosshair15.png" )) SetSpritePosition( hitSprite, 250, 250 ) SetSpriteSize( hitSprite, -1, 10 ) SetSpriteOffset( hitSprite, -1, 5 ) SetSpritePosition( killSprite, 250, 250 ) SetSpriteSize( killSprite, -1, 10 ) SetSpriteOffset( killSprite, -1, 5 ) function hit_marker_init( e ) end local enemies = {} local function getEnemies() -- first get a list of active entities within default activation range of player local elist = U.ClosestEntities( 3000, 20 ) -- 3000 units, closest 20 entities for _, v in pairs( elist ) do -- is the entity not already a known enemy? if enemies[ v ] == nil and ai_bot_state[ v ] ~= nil then -- add it to the list of enemies to be monitored enemies[ v ] = { health = g_Entity[ v ].health } end end end local function enemyHurt() for k, v in pairs( enemies ) do local Ent = g_Entity[ k ] if Ent ~= nil and Ent.health < v.health then v.health = Ent.health if v.health > 0 then return 'hurt' else return 'dead' end end end return 'none' end local updateTimer = 0 local updateInerval = 1000 -- 1 second local hurtTimer = 0 local killTimer = 0 local showHurtImage = false local showKillImage = false local showTime = 200 -- 0.2 seconds function hit_marker_main( e ) local timeNow = g_Time if timeNow > updateTimer then getEnemies() updateTimer = updateTimer + 1000 end if g_PlayerGunFired == 1 then local tempEnemyHurt = enemyHurt() if tempEnemyHurt == 'hurt' then SetSpritePosition( hitSprite, 50, 50 ) showHurtImage = true hurtTimer = timeNow + showTime elseif tempEnemyHurt == 'dead' then SetSpritePosition( killSprite, 50, 50 ) showKillImage = true killTimer = timeNow + showTime end end if showHurtImage and timeNow > hurtTimer then SetSpritePosition( hitSprite, 250, 250 ) showHurtImage = false end if showKillImage and timeNow > killTimer then SetSpritePosition( killSprite, 250, 250 ) showKillImage = false end end