头部点阵 ESP

如果启用此脚本,则会在敌人的头上绘制小点。如果头部不可见,则点为白色,如果可见则为红色

头部ESP

-- 本地化经常使用的API变量以提高性能。 通常不这样做是可以的,但是lua每次都必须将它们作为全局变量来查找。 
local client_eye_position, client_trace_line, entity_get_local_player, entity_get_players, entity_hitbox_position, renderer_circle, renderer_world_to_screen = client.eye_position, client.trace_line, entity.get_local_player, entity.get_players, entity.hitbox_position, renderer.circle, renderer.world_to_screen

local function on_paint()
	local local_player = entity_get_local_player()
	local eye_x, eye_y, eye_z = client_eye_position()

	-- 获得所有活着的,非休眠的敌人玩家
	local enemies = entity_get_players(true)

	for i=1, #enemies do
		local entindex = enemies[i]

		-- 得到敌人头部骨骼点的世界坐标  
		local head_x, head_y, head_z = entity_hitbox_position(entindex, 0)

		-- 将世界坐标(D3D)转换为屏幕坐标(2D)
		local wx, wy = renderer_world_to_screen(head_x, head_y, head_z)

		-- 确保始终检查屏幕坐标是否有效。 只检查wx就足够了  
		if wx ~= nil then
			local r, g, b, a = 255, 255, 255, 100

			-- 追踪从你的眼睛位置到敌人的头部,忽略本地玩家,以确定它是否可见  
			local fraction, entindex_hit = client_trace_line(local_player, eye_x, eye_y, eye_z, head_x, head_y, head_z)

			if entindex_hit == entindex or fraction == 1 then
				-- 要么击中敌人要么什么都没击中,这意味着头部是可见的,所以我们改变了颜色  
				r, g, b, a = 255, 16, 16, 255
			end

			-- 画一个半径为4的圆,让x和y偏移-2  
			renderer_circle(wx-2, wy-2, r, g, b, a, 4, 0, 1)
		end
	end
end
client.set_event_callback("paint", on_paint)