-
Notifications
You must be signed in to change notification settings - Fork 0
/
GrenadeOwnerName.lua
85 lines (70 loc) · 3.05 KB
/
GrenadeOwnerName.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
-- Lua
local string_upper = string.upper
-- Gamesense API
local client_set_event_callback, client_unset_event_callback = client.set_event_callback, client.unset_event_callback
local entity_get_all, entity_get_origin, entity_get_prop, entity_get_local_player, entity_get_player_name, entity_is_enemy = entity.get_all, entity.get_origin, entity.get_prop, entity.get_local_player, entity.get_player_name, entity.is_enemy
local renderer_text, renderer_world_to_screen = renderer.text, renderer.world_to_screen
local ui_get, ui_set_visible = ui.get, ui.set_visible
local References = {
GrenadeESP = ui.reference('Visuals', 'Other ESP', 'Grenades')
}
local GrenadeOwner = {
Enabled = ui.new_checkbox('Visuals', 'Other ESP', 'Grenade owner name'),
Grenades = ui.new_multiselect('Visuals', 'Other ESP', 'Grenades', 'Decoy', 'Smoke', 'Molotov'),
EnemyName = ui.new_checkbox('Visuals', 'Other ESP', 'Show enemy grenade name'),
}
ui_set_visible(GrenadeOwner.Grenades, false)
ui_set_visible(GrenadeOwner.EnemyName, false)
local GrenadeNetprop = {
['Decoy'] = { Netprop = 'CDecoyProjectile' },
['Smoke'] = { Netprop = 'CSmokeGrenadeProjectile' },
['Molotov'] = { Netprop = 'CInferno' }
}
GrenadeOwner.DrawName = function ()
local Grenades = ui_get(GrenadeOwner.Grenades)
if #Grenades == 0 then
return
end
for i=1, #Grenades do
local Grenade = Grenades[i]
local GrenadeEntity = entity_get_all(GrenadeNetprop[Grenade].Netprop)
for i=1, #GrenadeEntity do
local GrenadeOriginX, GrenadeOriginY, GrenadeOriginZ = entity_get_origin(GrenadeEntity[i])
local WorldX, WorldY = renderer.world_to_screen(GrenadeOriginX, GrenadeOriginY, GrenadeOriginZ)
if WorldX ~= nil then
local GrenadeOwnerEntity = entity_get_prop(GrenadeEntity[i], 'm_hOwnerEntity')
local GrenadeOwnerName = string_upper(entity_get_player_name(GrenadeOwnerEntity))
local StringToRender = nil
if GrenadeOwnerEntity == entity_get_local_player() then
StringToRender = 'YOUR'
elseif not entity_is_enemy(GrenadeOwnerEntity) then
StringToRender = 'TEAMMATE ' .. GrenadeOwnerName
elseif entity_is_enemy(GrenadeOwnerEntity) and ui_get(GrenadeOwner.EnemyName) then
StringToRender = 'ENEMY ' .. GrenadeOwnerName
end
if StringToRender ~= nil then
renderer_text(WorldX, WorldY, 255, 255, 255, 255, '-c', 0, StringToRender)
if not ui_get(References.GrenadeESP) then
local GrenadeName = string_upper(Grenade)
if Grenade == 'Molotov' then
GrenadeName = 'MOLLY'
end
renderer_text(WorldX, WorldY+12, 255, 255, 255, 255, '-c', 0, GrenadeName)
end
end
end
end
end
end
ui.set_callback(GrenadeOwner.Enabled, function (itemNumber)
local isGrenadeOwnerEnabled = ui_get(itemNumber)
-- Handle menu items visibility
ui_set_visible(GrenadeOwner.Grenades, isGrenadeOwnerEnabled)
ui_set_visible(GrenadeOwner.EnemyName, isGrenadeOwnerEnabled)
-- Handle grenade owner drawing function
if isGrenadeOwnerEnabled then
client_set_event_callback('paint', GrenadeOwner.DrawName)
else
client_unset_event_callback('paint', GrenadeOwner.DrawName)
end
end)