Загрузка данных
slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
slot_0_2_0 = {}
slot_0_3_0 = 0
slot_0_4_0 = 1
function slot_0_5_0()
local var_1_0 = gui.input:cursor()
local var_1_1 = draw.scale or 1
if var_1_1 == 0 then
var_1_1 = 1
end
return {
x = var_1_0.x / var_1_1,
y = var_1_0.y / var_1_1
}
end
function slot_0_6_0()
local var_2_0 = gui.input:cursor()
return {
x = var_2_0.x,
y = var_2_0.y
}
end
function slot_0_7_0()
local var_3_0 = gui.input:cursor()
return {
x = var_3_0.x * slot_0_4_0,
y = var_3_0.y * slot_0_4_0
}
end
wnd = gui.GetMainWindow()
tab = wnd:AddTab(
"quantum_lua",
draw.textures.gui_icon_bug,
"Quantum.lua",
gui.TabLayoutMode.SUBTABS
)
subtab_visuals = tab:AddTab(
"quantum_visuals",
"Visuals",
gui.TabLayoutMode.DEFAULT,
true
)
subtab_misc = tab:AddTab(
"quantum_misc",
"Misc",
gui.TabLayoutMode.DEFAULT,
false
)
subtab_rage = tab:AddTab(
"quantum_rage",
"Rage",
gui.TabLayoutMode.DEFAULT,
false
)
subtab_configs = tab:AddTab(
"quantum_configs",
"Configs",
gui.TabLayoutMode.DEFAULT,
false
)
visuals_group = gui.Group(
"quantum_visuals_group",
"Visuals",
250,
gui.GroupWidthMode.REDUCED
)
misc_group = gui.Group(
"quantum_misc_group",
"Misc",
250,
gui.GroupWidthMode.REDUCED
)
subtab_visuals:Add(visuals_group)
subtab_misc:Add(misc_group)
slot_0_8_0 = visuals_group
slot_0_9_0 = misc_group
slot_0_10_0 = gui.checkbox(gui.control_id("Enable Indicators"))
slot_0_11_0 = gui.combo_box(gui.control_id("indicator_controls"))
slot_0_11_0.allow_multiple = true
slot_0_12_0 = {
{
"Min Damage",
"rage>aimbot>general>min damage",
true
},
{
"Hit Chance",
"rage>aimbot>general>hitchance",
true
},
{
"Pointscale",
"rage>aimbot>general>pointscale",
true
},
{
"BAIM",
"rage>aimbot>general>force bodyaim"
},
{
"HEAD",
"rage>aimbot>general>headshot only"
},
{
"NS",
"rage>aimbot>nospread"
},
{
"HIDE",
"rage>anti-aim>angles>hide shot"
},
{
"DT",
"rage>aimbot>doubletap"
},
{
"JB",
"misc>movement>jumpbug"
},
{
"FORCE",
"rage>aimbot>general>force shoot"
},
{
"Air",
"air_custom"
},
{
"WALK",
"slowwalk_custom"
},
{
"Slow",
"slow_custom"
},
{
"Bomb",
"bomb_custom"
},
{
"Duck Peek",
"misc>movement>duck peek assist"
}
}
for iter_0_0, iter_0_1 in ipairs(slot_0_12_0) do
slot_0_11_0:add(gui.selectable(gui.control_id(iter_0_1[1] .. "_list_select"), iter_0_1[1]))
end
slot_0_13_0 = gui.checkbox(gui.control_id("Enable Watermark"))
slot_0_14_0 = gui.checkbox(gui.control_id("Enable Spectator List"))
slot_0_15_0 = gui.checkbox(gui.control_id("Enable Hitmarker"))
slot_0_16_0 = gui.checkbox(gui.control_id("Enable DT Knife Bot"))
slot_0_17_0 = gui.combo_box(gui.control_id("watermark_elements"))
slot_0_17_0.allow_multiple = true
slot_0_18_0 = {
{
"Logo",
true
},
{
"FPS",
true
},
{
"Ping",
true
},
{
"Network Lag",
true
},
{
"Clock",
true
}
}
slot_0_19_0 = 0
for iter_0_2, iter_0_3 in ipairs(slot_0_18_0) do
slot_0_25_2 = gui.selectable(gui.control_id(iter_0_3[1] .. "_watermark_select"), iter_0_3[1])
slot_0_17_0:add(slot_0_25_2)
if iter_0_3[2] then
slot_0_19_0 = slot_0_19_0 + 2^(iter_0_2 - 1)
end
end
slot_0_20_0 = {}
for iter_0_4, iter_0_5 in ipairs(slot_0_18_0) do
slot_0_20_0[iter_0_5[1]] = 2^(iter_0_4 - 1)
end
slot_0_21_0 = gui.combo_box(gui.control_id("Clock Timezone"))
slot_0_21_0.allow_multiple = false
slot_0_22_0 = {}
slot_0_23_0 = {}
slot_0_24_0 = {}
for iter_0_6 = -12, 14 do
slot_0_29_2 = iter_0_6 == 0 and "UTC+0" or iter_0_6 > 0 and "UTC+" .. iter_0_6 or "UTC" .. iter_0_6
table.insert(slot_0_22_0, slot_0_29_2)
table.insert(slot_0_23_0, iter_0_6 * 60)
end
for iter_0_7, iter_0_8 in ipairs(slot_0_22_0) do
slot_0_30_1 = gui.selectable(gui.control_id("clock_tz_" .. iter_0_8), iter_0_8)
slot_0_21_0:add(slot_0_30_1)
slot_0_24_0[iter_0_8] = 2^(iter_0_7 - 1)
end
slot_0_25_0 = slot_0_24_0["UTC+3"] or 1
slot_0_26_0 = gui.combo_box(gui.control_id("DPI Scale"))
slot_0_26_0.allow_multiple = false
slot_0_27_0 = {
"Automatic",
50,
75,
100,
125,
150,
200
}
slot_0_28_0 = {}
for iter_0_9, iter_0_10 in ipairs(slot_0_27_0) do
slot_0_34_1 = tostring(iter_0_10)
slot_0_35_1 = gui.selectable(gui.control_id("dpi_scale_" .. slot_0_34_1), slot_0_34_1)
slot_0_26_0:add(slot_0_35_1)
slot_0_28_0[iter_0_10] = 2^(iter_0_9 - 1)
end
slot_0_29_0 = slot_0_28_0.Automatic or 1
slot_0_30_0 = {}
slot_0_31_0 = {}
slot_0_32_0 = nil
slot_0_33_0 = nil
slot_0_34_0 = nil
slot_0_35_0 = nil
slot_0_36_0 = nil
slot_0_37_0 = nil
slot_0_38_0 = 270
slot_0_39_0 = 20
function slot_0_40_0()
local var_4_0 = slot_0_26_0:get_value()
local var_4_1 = var_4_0 and var_4_0:get()
if var_4_1 and var_4_1.get_raw then
var_4_1 = var_4_1:get_raw()
end
if type(var_4_1) ~= "number" then
var_4_1 = slot_0_29_0
end
local function var_4_2()
local var_5_0, var_5_1 = game.engine:get_screen_size()
local var_5_2 = math.max(var_5_0, var_5_1)
if var_5_2 >= 3840 then
return 2
elseif var_5_2 >= 2560 then
return 1.5
elseif var_5_2 >= 2048 then
return 1.25
elseif var_5_2 >= 1600 then
return 1
else
return 0.75
end
end
for iter_4_0, iter_4_1 in ipairs(slot_0_27_0) do
if bit.band(var_4_1, 2^(iter_4_0 - 1)) ~= 0 then
if type(iter_4_1) == "string" then
return var_4_2()
else
return iter_4_1 / 100
end
end
end
return 1
end
function slot_0_41_0(arg_6_0)
return arg_6_0 * slot_0_4_0
end
function slot_0_42_0()
local var_7_0 = slot_0_40_0()
if var_7_0 ~= slot_0_4_0 then
slot_0_4_0 = var_7_0
if slot_0_32_0 then
slot_0_32_0()
end
if slot_0_33_0 then
slot_0_33_0()
end
slot_0_30_0 = {}
slot_0_31_0 = {}
if slot_0_34_0 then
slot_0_34_0.thickness = slot_0_41_0(3)
end
if slot_0_35_0 then
slot_0_35_0.thickness = slot_0_34_0.thickness
end
if slot_0_36_0 then
slot_0_36_0.thickness = slot_0_34_0.thickness
end
if slot_0_37_0 then
slot_0_37_0.thickness = slot_0_34_0.thickness
end
end
end
slot_0_43_0 = gui.checkbox(gui.control_id("Enable Hitlogs"))
slot_0_44_0 = gui.color_picker(gui.control_id("Accent Color"))
slot_0_45_0 = gui.color_picker(gui.control_id("Indicator Text Color"))
slot_0_46_0 = gui.color_picker(gui.control_id("Indicator Background Color"))
slot_0_47_0 = gui.checkbox(gui.control_id("MOLLYTIME"))
slot_0_48_0 = gui.checkbox(gui.control_id("SMOKETIME"))
slot_0_49_0 = gui.checkbox(gui.control_id("HEGRENADETIME"))
slot_0_50_0 = gui.slider(gui.control_id("TIMEOPACITY"), 50, 255, 1)
slot_0_51_0 = gui.slider(gui.control_id("HITMARKERDURATION"), 1, 10)
slot_0_52_0 = 0
slot_0_47_0:set_value(true)
slot_0_48_0:set_value(true)
slot_0_49_0:set_value(true)
slot_0_14_0:set_value(true)
slot_0_15_0:set_value(true)
slot_0_50_0:get_value():set(255)
slot_0_51_0:get_value():set(1)
slot_0_44_0:get_value():set(draw.color(195, 240, 29))
slot_0_45_0:get_value():set(draw.color(255, 255, 255, 255))
slot_0_46_0:get_value():set(draw.color(25, 25, 25, 120))
slot_0_53_0 = gui.MakeControl("Molotov/Smoke/HE Time", slot_0_48_0)
slot_0_54_0 = gui.MakeControl("Timer Max. Opacity", slot_0_50_0)
slot_0_53_0:add(slot_0_47_0)
slot_0_53_0:add(slot_0_49_0)
misc_group:Add(slot_0_53_0)
misc_group:Add(slot_0_54_0)
misc_group:Add(gui.MakeControl("Spectator List", slot_0_14_0))
misc_group:Add(gui.MakeControl("Hitmarker", slot_0_15_0))
misc_group:Add(gui.MakeControl("Hitmarker Duration", slot_0_51_0))
misc_group:Add(gui.MakeControl("DT Knife Bot", slot_0_16_0))
-- misc_group:Reset()
slot_0_8_0:add(gui.MakeControl("DPI Scale", slot_0_26_0))
slot_0_8_0:add(gui.MakeControl("Override Color", slot_0_44_0))
slot_0_55_0 = gui.MakeControl("Indicator", slot_0_10_0)
cbx_clantag = gui.ComboBox("quantum_clantag")
cbx_clantag:Add(gui.Selectable("off", "Off"))
cbx_clantag:Add(gui.Selectable("pnd", "PND"))
misc_group:Add(
gui.MakeControl(
"Clantag",
cbx_clantag
)
)
slot_0_55_0:add(slot_0_11_0)
slot_0_8_0:add(slot_0_55_0)
slot_0_56_0 = gui.MakeControl("Indicator Color", slot_0_46_0)
slot_0_56_0:add(slot_0_45_0)
slot_0_8_0:add(slot_0_56_0)
slot_0_57_0 = gui.MakeControl("Watermark", slot_0_13_0)
slot_0_57_0:add(slot_0_17_0)
slot_0_8_0:add(slot_0_57_0)
slot_0_8_0:add(gui.MakeControl("Clock Timezone", slot_0_21_0))
slot_0_8_0:add(gui.MakeControl("Hitlog", slot_0_43_0))
-- visuals_group:Reset()
slot_0_58_0 = {
GENERAL = "rage>weapon>general>weapon>mindamage",
[weapon_id.deagle] = "rage>weapon>Desert Eagle>weapon>mindamage",
[weapon_id.elite] = "rage>weapon>Dual Berettas>weapon>mindamage",
[weapon_id.fiveseven] = "rage>weapon>Five-SeveN>weapon>mindamage",
[weapon_id.glock] = "rage>weapon>Glock-18>weapon>mindamage",
[weapon_id.ak47] = "rage>weapon>AK-47>weapon>mindamage",
[weapon_id.aug] = "rage>weapon>AUG>weapon>mindamage",
[weapon_id.awp] = "rage>weapon>AWP>weapon>mindamage",
[weapon_id.famas] = "rage>weapon>FAMAS>weapon>mindamage",
[weapon_id.g3sg1] = "rage>weapon>G3SG1>weapon>mindamage",
[weapon_id.galilar] = "rage>weapon>Galil AR>weapon>mindamage",
[weapon_id.m249] = "rage>weapon>M249>weapon>mindamage",
[weapon_id.m4a1] = "rage>weapon>M4A4>weapon>mindamage",
[weapon_id.mac10] = "rage>weapon>MAC-10>weapon>mindamage",
[weapon_id.p90] = "rage>weapon>P90>weapon>mindamage",
[weapon_id.mp5sd] = "rage>weapon>MP5-SD>weapon>mindamage",
[weapon_id.ump45] = "rage>weapon>UMP-45>weapon>mindamage",
[weapon_id.xm1014] = "rage>weapon>XM1014>weapon>mindamage",
[weapon_id.bizon] = "rage>weapon>PP Bizon>weapon>mindamage",
[weapon_id.mag7] = "rage>weapon>MAG-7>weapon>mindamage",
[weapon_id.negev] = "rage>weapon>Negev>weapon>mindamage",
[weapon_id.sawedoff] = "rage>weapon>Sawed Off>weapon>mindamage",
[weapon_id.tec9] = "rage>weapon>Tec-9>weapon>mindamage",
[weapon_id.hkp2000] = "rage>weapon>P2000>weapon>mindamage",
[weapon_id.mp7] = "rage>weapon>MP7>weapon>mindamage",
[weapon_id.mp9] = "rage>weapon>MP9>weapon>mindamage",
[weapon_id.nova] = "rage>weapon>Nova>weapon>mindamage",
[weapon_id.p250] = "rage>weapon>P250>weapon>mindamage",
[weapon_id.scar20] = "rage>weapon>SCAR-20>weapon>mindamage",
[weapon_id.sg556] = "rage>weapon>SG 553>weapon>mindamage",
[weapon_id.ssg08] = "rage>weapon>SSG-08>weapon>mindamage",
[weapon_id.m4a1_silencer] = "rage>weapon>M4A1-S>weapon>mindamage",
[weapon_id.usp_silencer] = "rage>weapon>USP-S>weapon>mindamage",
[weapon_id.cz75a] = "rage>weapon>CZ-75 Auto>weapon>mindamage",
[weapon_id.revolver] = "rage>weapon>R8 Revolver>weapon>mindamage",
GROUPS = {
PISTOLS = {
path = "rage>weapon>Pistols>weapon>mindamage",
weapons = {
[weapon_id.glock] = true,
[weapon_id.p250] = true,
[weapon_id.fiveseven] = true,
[weapon_id.tec9] = true,
[weapon_id.hkp2000] = true,
[weapon_id.usp_silencer] = true,
[weapon_id.cz75a] = true
}
},
HEAVY_PISTOLS = {
path = "rage>weapon>Heavy Pistols>weapon>mindamage",
weapons = {
[weapon_id.deagle] = true,
[weapon_id.revolver] = true
}
},
SMGS = {
path = "rage>weapon>SMGs>weapon>mindamage",
weapons = {
[weapon_id.mac10] = true,
[weapon_id.mp7] = true,
[weapon_id.mp9] = true,
[weapon_id.mp5sd] = true,
[weapon_id.ump45] = true,
[weapon_id.p90] = true,
[weapon_id.bizon] = true
}
},
RIFLES = {
path = "rage>weapon>Rifles>weapon>mindamage",
weapons = {
[weapon_id.ak47] = true,
[weapon_id.m4a1] = true,
[weapon_id.m4a1_silencer] = true,
[weapon_id.famas] = true,
[weapon_id.galilar] = true,
[weapon_id.aug] = true,
[weapon_id.sg556] = true
}
},
HEAVY = {
path = "rage>weapon>Heavy>weapon>mindamage",
weapons = {
[weapon_id.nova] = true,
[weapon_id.xm1014] = true,
[weapon_id.sawedoff] = true,
[weapon_id.mag7] = true,
[weapon_id.m249] = true,
[weapon_id.negev] = true
}
},
AUTO_SNIPERS = {
path = "rage>weapon>Auto Snipers>weapon>mindamage",
weapons = {
[weapon_id.g3sg1] = true,
[weapon_id.scar20] = true
}
},
BOLT_SNIPERS = {
path = "rage>weapon>Bolt Snipers>weapon>mindamage",
weapons = {
[weapon_id.awp] = true,
[weapon_id.ssg08] = true
}
}
}
}
slot_0_59_0 = {
[weapon_id.knife] = true,
[weapon_id.knife_t] = true,
[weapon_id.knife_bayonet] = true,
[weapon_id.knife_css] = true,
[weapon_id.knife_flip] = true,
[weapon_id.knife_gut] = true,
[weapon_id.knife_karambit] = true,
[weapon_id.knife_m9bayonet] = true,
[weapon_id.knife_tactical] = true,
[weapon_id.knife_falchion] = true,
[weapon_id.knife_survival_bowie] = true,
[weapon_id.knife_butterfly] = true,
[weapon_id.knife_push] = true,
[weapon_id.knife_cord] = true,
[weapon_id.knife_canis] = true,
[weapon_id.knife_ursus] = true,
[weapon_id.knife_gypsy_jackknife] = true,
[weapon_id.knife_outdoor] = true,
[weapon_id.knife_stiletto] = true,
[weapon_id.knife_widowmaker] = true,
[weapon_id.knife_skeleton] = true,
[weapon_id.knife_kukri] = true
}
slot_0_60_0 = {
[weapon_id.taser] = true,
[weapon_id.hegrenade] = true,
[weapon_id.flashbang] = true,
[weapon_id.smokegrenade] = true,
[weapon_id.molotov] = true,
[weapon_id.incgrenade] = true,
[weapon_id.decoy] = true,
[weapon_id.c4] = true
}
for iter_0_11, iter_0_12 in pairs(slot_0_59_0) do
slot_0_60_0[iter_0_11] = true
end
function slot_0_61_0(arg_8_0)
return slot_0_60_0[arg_8_0] or false
end
function slot_0_62_0(arg_9_0)
return slot_0_59_0[arg_9_0] or false
end
function slot_0_63_0(arg_10_0)
local var_10_0 = slot_0_58_0[arg_10_0]
if var_10_0 and gui.ctx:find(var_10_0) then
return var_10_0
end
for iter_10_0, iter_10_1 in pairs(slot_0_58_0.GROUPS or {}) do
if iter_10_1.weapons and iter_10_1.weapons[arg_10_0] and gui.ctx:find(iter_10_1.path) then
return iter_10_1.path
end
end
return slot_0_58_0.GENERAL
end
function slot_0_64_0(arg_11_0)
return arg_11_0:gsub("mindamage", "hitchance")
end
function slot_0_65_0(arg_12_0)
return arg_12_0:gsub("mindamage", "pointscale")
end
function slot_0_66_0(arg_13_0)
if not arg_13_0 or not arg_13_0.get_value then
return false
end
local var_13_0 = arg_13_0:get_value()
if not var_13_0 then
return false
end
if var_13_0.get_hotkey_state then
return var_13_0:get_hotkey_state()
end
if var_13_0.get then
local var_13_1 = var_13_0:get()
if type(var_13_1) == "boolean" then
return var_13_1
end
end
return false
end
slot_0_67_0 = {}
for iter_0_13, iter_0_14 in ipairs(slot_0_12_0) do
slot_0_67_0[iter_0_14[1]] = {
y_offset = 20,
alpha = 0,
time = 0,
active = false
}
end
slot_0_68_0 = {}
slot_0_69_0 = {}
slot_0_70_0 = {}
slot_0_71_0 = {}
for iter_0_15, iter_0_16 in ipairs(slot_0_12_0) do
slot_0_68_0[iter_0_16[1]] = 2^(iter_0_15 - 1)
end
for iter_0_17, iter_0_18 in ipairs(slot_0_12_0) do
slot_0_68_0[iter_0_18[1]] = 2^(iter_0_17 - 1)
slot_0_69_0[iter_0_18[1]] = iter_0_18[2]
end
function slot_0_72_0(arg_14_0)
if not arg_14_0 or arg_14_0 == "" then
return nil
end
local var_14_0 = slot_0_70_0[arg_14_0]
if var_14_0 then
return var_14_0
end
local var_14_1 = game.global_vars.real_time
local var_14_2 = slot_0_71_0[arg_14_0]
if not var_14_2 or var_14_1 - var_14_2 >= 1 then
slot_0_71_0[arg_14_0] = var_14_1
local var_14_3 = gui.ctx:find(arg_14_0)
if var_14_3 then
slot_0_70_0[arg_14_0] = var_14_3
return var_14_3
end
end
return nil
end
slot_0_34_0 = {
radius = 10,
thickness = 3,
segments = 36,
grow_duration = 0.7,
color = draw.color(255, 255, 255, 255),
start_angle = -math.pi / 2
}
slot_0_35_0 = {
completed_once = false,
last_active_state = false,
radius = slot_0_34_0.radius,
thickness = slot_0_34_0.thickness,
color = slot_0_34_0.color,
segments = slot_0_34_0.segments,
grow_duration = slot_0_34_0.grow_duration,
start_angle = slot_0_34_0.start_angle
}
slot_0_36_0 = {
completed_once = false,
last_active_state = false,
radius = slot_0_34_0.radius,
thickness = slot_0_34_0.thickness,
color = slot_0_34_0.color,
segments = slot_0_34_0.segments,
grow_duration = slot_0_34_0.grow_duration,
start_angle = slot_0_34_0.start_angle
}
slot_0_37_0 = {
completed_once = false,
last_active_state = false,
radius = slot_0_34_0.radius,
thickness = slot_0_34_0.thickness,
color = slot_0_34_0.color,
segments = slot_0_34_0.segments,
grow_duration = slot_0_34_0.grow_duration,
start_angle = slot_0_34_0.start_angle
}
function slot_0_73_0(arg_15_0, arg_15_1, arg_15_2, arg_15_3, arg_15_4, arg_15_5, arg_15_6)
local var_15_0 = arg_15_1 + arg_15_3 / 2
local var_15_1 = arg_15_2 + arg_15_3 / 2
local var_15_2 = arg_15_3 / 2 - 1
local var_15_3 = arg_15_0.color:get_r()
local var_15_4 = arg_15_0.color:get_g()
local var_15_5 = arg_15_0.color:get_b()
local var_15_6
if arg_15_6 then
var_15_6 = draw.color(var_15_3, var_15_4, var_15_5, arg_15_4 * 0.3)
else
var_15_6 = draw.color(var_15_3, var_15_4, var_15_5, arg_15_4)
end
local var_15_7 = 2 * math.pi * arg_15_5
local var_15_8 = math.floor(arg_15_0.segments * arg_15_5)
if var_15_8 > 0 then
local var_15_9 = var_15_7 / var_15_8
local var_15_10
local var_15_11
for iter_15_0 = 0, var_15_8 do
local var_15_12 = arg_15_0.start_angle + iter_15_0 * var_15_9
local var_15_13 = var_15_0 + math.cos(var_15_12) * var_15_2
local var_15_14 = var_15_1 + math.sin(var_15_12) * var_15_2
if iter_15_0 > 0 then
draw.surface:add_line(draw.vec2(var_15_10, var_15_11), draw.vec2(var_15_13, var_15_14), var_15_6, arg_15_0.thickness)
end
var_15_10 = var_15_13
var_15_11 = var_15_14
end
end
end
function slot_0_74_0(arg_16_0, arg_16_1, arg_16_2, arg_16_3)
if not slot_0_35_0.start_time then
slot_0_35_0.start_time = game.global_vars.real_time
slot_0_35_0.completed_once = false
end
local var_16_0 = game.global_vars.real_time - slot_0_35_0.start_time
local var_16_1 = math.min(var_16_0 / slot_0_35_0.grow_duration, 1)
slot_0_73_0(slot_0_35_0, arg_16_0, arg_16_1, arg_16_2, arg_16_3, 1, true)
if var_16_1 < 1 then
slot_0_73_0(slot_0_35_0, arg_16_0, arg_16_1, arg_16_2, arg_16_3, var_16_1, false)
else
slot_0_35_0.completed_once = true
slot_0_73_0(slot_0_35_0, arg_16_0, arg_16_1, arg_16_2, arg_16_3, 1, false)
end
end
function slot_0_75_0(arg_17_0, arg_17_1, arg_17_2, arg_17_3, arg_17_4)
slot_0_73_0(slot_0_36_0, arg_17_0, arg_17_1, arg_17_2, arg_17_3, 1, true)
if arg_17_4 < 1 then
slot_0_73_0(slot_0_36_0, arg_17_0, arg_17_1, arg_17_2, arg_17_3, arg_17_4, false)
else
slot_0_36_0.completed_once = true
slot_0_73_0(slot_0_36_0, arg_17_0, arg_17_1, arg_17_2, arg_17_3, 1, false)
end
end
function slot_0_76_0(arg_18_0, arg_18_1, arg_18_2, arg_18_3, arg_18_4)
slot_0_73_0(slot_0_37_0, arg_18_0, arg_18_1, arg_18_2, arg_18_3, 1, true)
if arg_18_4 < 1 then
slot_0_73_0(slot_0_37_0, arg_18_0, arg_18_1, arg_18_2, arg_18_3, arg_18_4, false)
else
slot_0_37_0.completed_once = true
slot_0_73_0(slot_0_37_0, arg_18_0, arg_18_1, arg_18_2, arg_18_3, 1, false)
end
end
slot_0_30_0 = slot_0_30_0 or {}
slot_0_77_0 = ws.get_resource_dir()
slot_0_78_0 = nil
slot_0_79_0 = nil
slot_0_80_0 = nil
slot_0_81_0 = nil
function slot_0_32_0()
print(slot_0_77_0)
slot_0_78_0 = draw.font(slot_0_77_0 .. "/Fonts/LeagueSpartan.ttf", slot_0_41_0(21), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))
slot_0_78_0:create()
local var_19_0 = slot_0_4_0 < 1 and slot_0_41_0(7) or slot_0_41_0(8)
slot_0_79_0 = draw.font(slot_0_77_0 .. "/Fonts/Verdana.ttf", var_19_0, bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))
slot_0_79_0:create()
slot_0_80_0 = draw.font(slot_0_77_0 .. "/Fonts/fonteditor.ttf", slot_0_41_0(17), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))
slot_0_80_0:create()
slot_0_81_0 = draw.font(slot_0_77_0 .. "/Fonts/fontello.ttf", slot_0_41_0(20), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))
slot_0_81_0:create()
end
slot_0_32_0()
function calculate_bomb_damage(arg_20_0, arg_20_1)
local var_20_0 = {
default = {
MAX_RADIUS = 1750,
MAX_DAMAGE = 500
},
de_ancient = {
MAX_RADIUS = 2275,
MAX_DAMAGE = 650
},
de_anubis = {
MAX_RADIUS = 1570,
MAX_DAMAGE = 450
},
de_inferno = {
MAX_RADIUS = 2170,
MAX_DAMAGE = 620
},
de_mirage = {
MAX_RADIUS = 2275,
MAX_DAMAGE = 650
},
de_nuke = {
MAX_RADIUS = 2275,
MAX_DAMAGE = 650
},
de_overpass = {
MAX_RADIUS = 2275,
MAX_DAMAGE = 650
},
de_dogtown = {
MAX_RADIUS = 2000,
MAX_DAMAGE = 1123
},
de_brewery = {
MAX_RADIUS = 2000,
MAX_DAMAGE = 230
}
}
local var_20_1 = var_20_0[arg_20_1] or var_20_0.default
local var_20_2 = var_20_1.MAX_DAMAGE
local var_20_3 = var_20_1.MAX_RADIUS
if var_20_3 < arg_20_0 then
return 0
end
local var_20_4 = var_20_3 / 3
return var_20_2 * math.exp(-arg_20_0^2 / (2 * var_20_4^2))
end
function slot_0_82_0(arg_21_0, arg_21_1)
if arg_21_1 > 0 then
local var_21_0 = 0.5
local var_21_1 = 0.5
local var_21_2 = 200
local var_21_3 = arg_21_0 * var_21_0
local var_21_4 = arg_21_0 - var_21_3
if var_21_2 < var_21_4 then
var_21_4 = var_21_2
var_21_3 = arg_21_0 - var_21_4
end
if arg_21_1 < var_21_4 then
var_21_4 = arg_21_1
var_21_3 = arg_21_0 - var_21_4
end
if var_21_3 > 1 then
var_21_3 = var_21_3 - 1
end
local var_21_5 = math.floor(var_21_3 + 0.5)
local var_21_6 = math.floor(var_21_4 + 0.5)
return var_21_5, var_21_6
else
return arg_21_0, 0
end
end
slot_0_83_0 = vector(0, 0, 0)
slot_0_84_0 = false
slot_0_85_0 = 0
slot_0_86_0 = "?"
slot_0_87_0 = 0
slot_0_88_0 = false
slot_0_89_0 = 0
slot_0_90_0 = 3
slot_0_91_0 = false
slot_0_92_0 = 0
slot_0_93_0 = 5
slot_0_94_0 = false
slot_0_95_0 = false
slot_0_96_0 = false
function slot_0_97_0(arg_22_0)
local var_22_0 = arg_22_0:get_controller("userid")
if var_22_0 then
local var_22_1 = var_22_0:get_pawn()
if var_22_1 then
slot_0_83_0 = var_22_1:get_abs_origin()
end
end
if slot_0_83_0 then
local var_22_2 = game.global_vars.map_name:lower()
if var_22_2:find("de_mirage") then
slot_0_86_0 = slot_0_83_0.x > -1300 and slot_0_83_0.y < -1000 and "A" or "B"
elseif var_22_2:find("de_vertigo") then
slot_0_86_0 = slot_0_83_0.x > -1000 and slot_0_83_0.y < 0 and "A" or "B"
elseif var_22_2:find("de_dust2") then
slot_0_86_0 = slot_0_83_0.x > 0 and "A" or "B"
elseif var_22_2:find("de_inferno") then
slot_0_86_0 = slot_0_83_0.x > 1200 and "A" or "B"
elseif var_22_2:find("de_train") then
slot_0_86_0 = slot_0_83_0.y > -500 and "A" or "B"
elseif var_22_2:find("de_anubis") then
slot_0_86_0 = slot_0_83_0.x > 0 and "A" or "B"
elseif var_22_2:find("de_ancient") then
slot_0_86_0 = slot_0_83_0.x < 0 and "A" or "B"
elseif var_22_2:find("de_overpass") then
slot_0_86_0 = slot_0_83_0.y > 0 and "A" or "B"
elseif var_22_2:find("de_nuke") then
slot_0_86_0 = slot_0_83_0.y > -1000 and "A" or "B"
elseif var_22_2:find("de_jura") then
slot_0_86_0 = slot_0_83_0.y > 0 and "A" or "B"
elseif var_22_2:find("de_grail") then
slot_0_86_0 = slot_0_83_0.x < -3000 and "A" or "B"
elseif var_22_2:find("de_dogtown") then
slot_0_86_0 = "A"
elseif var_22_2:find("de_brewery") then
slot_0_86_0 = "A"
else
slot_0_86_0 = "A"
end
else
slot_0_86_0 = "A"
end
return slot_0_86_0
end
function slot_0_98_0(arg_23_0)
local var_23_0 = arg_23_0:get_name()
if var_23_0 == "weapon_fire" then
local var_23_1 = arg_23_0:get_controller("userid")
local var_23_2 = entities.get_local_controller()
if var_23_1 and var_23_1 == var_23_2 then
slot_0_35_0.start_time = game.global_vars.real_time
slot_0_35_0.completed_once = false
end
elseif var_23_0 == "round_start" then
slot_0_84_0 = false
slot_0_88_0 = false
slot_0_91_0 = false
slot_0_95_0 = false
slot_0_96_0 = false
slot_0_36_0.completed_once = false
slot_0_36_0.start_time = nil
elseif var_23_0 == "bomb_begindefuse" then
slot_0_91_0 = true
slot_0_92_0 = game.global_vars.real_time
slot_0_94_0 = arg_23_0:get_bool("haskit")
slot_0_93_0 = slot_0_94_0 and 5 or 10
elseif var_23_0 == "bomb_abortdefuse" then
slot_0_91_0 = false
elseif var_23_0 == "bomb_beginplant" then
slot_0_88_0 = true
slot_0_89_0 = game.global_vars.real_time
slot_0_86_0 = slot_0_97_0(arg_23_0)
elseif var_23_0 == "bomb_abortplant" then
slot_0_88_0 = false
elseif var_23_0 == "bomb_planted" then
slot_0_84_0 = true
slot_0_85_0 = 40
slot_0_87_0 = game.global_vars.real_time
slot_0_88_0 = false
slot_0_86_0 = slot_0_97_0(arg_23_0)
elseif var_23_0 == "bomb_defused" then
slot_0_84_0 = false
slot_0_91_0 = false
slot_0_88_0 = false
slot_0_95_0 = true
slot_0_96_0 = true
elseif var_23_0 == "bomb_exploded" then
slot_0_84_0 = false
slot_0_91_0 = false
slot_0_88_0 = false
slot_0_96_0 = true
end
end
slot_0_99_0 = gui.ctx:find("rage>aimbot>nospread")
slot_0_100_0 = gui.ctx:find("misc>movement>duck peek assist")
slot_0_101_0 = gui.ctx:find("misc>movement>slowwalk")
function slot_0_102_0()
if not slot_0_10_0:get_value():get() then
return
end
slot_0_42_0()
slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
slot_24_0_0 = draw.surface
slot_24_0_0.font = slot_0_78_0
slot_24_1_0 = slot_24_0_0.font:get_text_size("Ay").y
slot_24_2_0 = slot_0_11_0:get_value():get():get_raw()
if type(slot_24_2_0) ~= "number" then
return
end
slot_24_3_0 = slot_0_72_0("rage>aimbot>general>aimbot")
slot_24_4_0 = false
if slot_24_3_0 then
if slot_0_66_0(slot_24_3_0) then
slot_24_4_0 = true
else
slot_24_5_1 = slot_24_3_0:get_value()
if slot_24_5_1 and slot_24_5_1.get then
slot_24_6_1 = slot_24_5_1:get()
slot_24_4_0 = type(slot_24_6_1) == "boolean" and slot_24_6_1 or false
end
end
end
slot_24_5_0 = slot_0_99_0 and slot_0_99_0:get_value():get() or false
slot_24_6_0 = slot_0_0_0
slot_24_7_0 = slot_0_1_0
slot_24_8_0 = slot_24_6_0 / 2
slot_24_9_0 = slot_24_7_0 / 2
slot_24_10_0 = bit.band(slot_24_2_0, slot_0_68_0.Bomb) ~= 0
if slot_0_84_0 then
slot_24_11_1 = game.global_vars.real_time
slot_24_12_1 = slot_24_11_1 - slot_0_87_0
slot_0_85_0 = slot_0_85_0 - slot_24_12_1
slot_0_87_0 = slot_24_11_1
if slot_0_85_0 <= 0 then
slot_0_84_0 = false
slot_0_85_0 = 0
end
end
slot_24_11_0 = {}
slot_24_12_0 = {}
slot_24_13_0 = 0.2
function slot_24_14_0(arg_25_0, arg_25_1)
arg_25_1._priority = ({
FORCE = 20,
Bomb = 200,
AIR = 9,
JB = 31,
MD = 11,
DT = 30,
HC = 10,
["Duck Peek"] = 36,
PS = 12,
NS = 1,
Slow = 33,
WALK = 32,
BAIM = 3,
DUCK = 37,
HIDE = 100,
HEAD = 2
})[arg_25_0] or 50
arg_25_1._name = arg_25_0
table.insert(slot_24_12_0, arg_25_1)
end
function slot_24_15_0()
table.sort(slot_24_12_0, function(arg_27_0, arg_27_1)
return arg_27_0._priority < arg_27_1._priority
end)
for iter_26_0, iter_26_1 in ipairs(slot_24_12_0) do
iter_26_1._priority = nil
iter_26_1._name = nil
table.insert(slot_24_11_0, iter_26_1)
end
end
if slot_24_10_0 then
if slot_0_84_0 then
slot_24_16_2 = game.global_vars.real_time
function slot_24_17_3(arg_28_0)
arg_28_0 = math.max(0, math.min(100, arg_28_0))
local var_28_0 = math.floor(255 * (1 - arg_28_0 / 100))
return draw.color(255, var_28_0, var_28_0, 255)
end
function slot_24_18_3()
local var_29_0 = 2.6
if slot_0_85_0 <= 25 then
var_29_0 = 2
end
if slot_0_85_0 <= 12 then
var_29_0 = 1.5
end
if slot_0_85_0 <= 5 then
var_29_0 = 0.7
end
if slot_0_85_0 <= 2 then
return draw.color(255, 0, 0, 255)
end
if 0.3 > slot_24_16_2 % var_29_0 then
return draw.color(255, 0, 0, 255)
else
return draw.color(255, 255, 0, 255)
end
end
slot_24_19_3 = 0
slot_24_20_3 = 0
slot_24_21_2 = ""
slot_24_22_2 = draw.color(255, 255, 255, 255)
slot_24_23_2 = entities.get_local_pawn()
if slot_24_23_2 and slot_24_23_2:is_alive() then
slot_24_24_2 = slot_24_23_2.m_iHealth
slot_24_19_2 = slot_24_24_2 and slot_24_24_2:get() or 0
slot_24_25_2 = slot_24_23_2.m_ArmorValue
slot_24_26_2 = slot_24_25_2 and slot_24_25_2:get() or 0
slot_24_27_2 = slot_24_23_2:get_abs_origin():dist(slot_0_83_0)
slot_24_28_2 = game.global_vars.map_name:lower()
slot_24_29_2 = calculate_bomb_damage(slot_24_27_2, slot_24_28_2)
slot_24_30_2, slot_24_31_2 = slot_0_82_0(slot_24_29_2, slot_24_26_2)
slot_24_20_2 = slot_24_19_2 - slot_24_30_2
if slot_24_20_2 <= 0 then
slot_24_21_2 = "\nFATAL"
slot_24_22_2 = draw.color(255, 0, 0, 255)
else
slot_24_32_1 = slot_24_19_2 - slot_24_20_2
slot_24_21_2 = string.format("\n-%d HP", slot_24_32_1)
slot_24_22_2 = slot_24_17_3(slot_24_32_1)
end
end
slot_24_14_0("Bomb", {
icon_font_name = "p",
y_offset = 2,
alpha = 1,
name = string.format("%s - %.1fs%s", slot_0_86_0, slot_0_85_0, slot_24_21_2),
color = draw.color(255, 255, 255, 255),
lines_color = slot_24_22_2,
icon_font = slot_0_80_0,
icon_tint_color = slot_24_18_3(),
no_background = true
})
elseif slot_0_95_0 and slot_0_96_0 then
slot_24_14_0("Bomb", {
y_offset = 2,
alpha = 1,
icon_font_name = "p",
name = string.format("%s - Defused", slot_0_86_0),
color = draw.color(255, 255, 255, 255),
icon_font = slot_0_80_0,
icon_tint_color = draw.color(255, 255, 255, 255),
no_background = true
})
end
end
if slot_24_10_0 and slot_0_88_0 then
slot_24_17_2 = math.min(slot_0_90_0, game.global_vars.real_time - slot_0_89_0) / slot_0_90_0
slot_24_14_0("Bomb", {
alpha = 1,
duck_peek_special = true,
y_offset = 1,
icon_font_name = "p",
name = string.format("%s - Planting", slot_0_86_0),
color = draw.color(255, 255, 255, 255),
icon_font = slot_0_80_0,
icon_tint_color = draw.color(255, 255, 0, 255),
custom_draw = function(arg_30_0, arg_30_1, arg_30_2, arg_30_3)
if not slot_0_36_0.completed_once then
local var_30_0 = slot_0_4_0 < 1 and slot_0_41_0(5) or slot_0_41_0(7.2)
slot_0_75_0(arg_30_0, arg_30_1 + var_30_0, arg_30_2 - slot_0_41_0(5), arg_30_3, slot_24_17_2)
end
end,
no_icon_padding = slot_0_36_0.completed_once,
no_background = true
})
end
if slot_24_10_0 and slot_0_91_0 then
slot_24_16_1 = math.min(slot_0_93_0, game.global_vars.real_time - slot_0_92_0)
slot_24_17_1 = slot_0_93_0 - slot_24_16_1
slot_24_18_2 = slot_24_17_1 / slot_0_93_0
slot_24_14_0("Bomb", {
alpha = 1,
duck_peek_special = true,
y_offset = 3,
icon_font_name = "V",
name = string.format("Defusing - %.1fs", slot_24_17_1),
color = draw.color(255, 255, 255, 255),
icon_font = slot_0_80_0,
icon_tint_color = draw.color(255, 255, 255, 255),
custom_draw = function(arg_31_0, arg_31_1, arg_31_2, arg_31_3)
if not slot_0_37_0.completed_once then
local var_31_0 = slot_0_4_0 < 1 and slot_0_41_0(2.5) or slot_0_41_0(4)
slot_0_76_0(arg_31_0, arg_31_1 + var_31_0, arg_31_2 - slot_0_41_0(5), arg_31_3, slot_24_18_2)
end
end,
no_icon_padding = slot_0_37_0.completed_once,
no_background = true
})
end
slot_24_16_0 = entities.get_local_pawn()
slot_24_17_0 = slot_24_16_0 and slot_24_16_0:is_alive()
if slot_24_17_0 then
slot_24_18_1 = slot_24_16_0:get_abs_velocity()
if not slot_24_18_1 or not slot_24_18_1.x then
slot_24_17_0 = false
end
end
if slot_24_17_0 then
slot_24_19_1 = slot_24_16_0:get_abs_velocity():length()
slot_24_20_1 = bit.band(slot_24_2_0, slot_0_68_0.Air) ~= 0
slot_24_21_1 = slot_0_68_0["Duck Peek"]
slot_24_22_1 = slot_24_21_1 and bit.band(slot_24_2_0, slot_24_21_1) ~= 0 or false
slot_24_23_1 = bit.band(slot_24_2_0, slot_0_68_0.WALK) ~= 0
slot_24_24_1 = slot_24_16_0.m_fFlags and slot_24_16_0.m_fFlags:get() or 0
slot_24_25_1 = bit.band(slot_24_24_1, 1) == 0
slot_24_26_1 = slot_24_20_1 and slot_24_25_1 or slot_24_5_0
slot_24_27_1 = slot_24_26_1
slot_24_28_1 = slot_24_16_0.m_bIsScoped and slot_24_16_0.m_bIsScoped:get()
slot_24_29_1 = slot_24_16_0:get_active_weapon()
if slot_24_29_1 then
slot_24_30_1 = slot_24_29_1:get_id()
slot_24_31_1 = slot_24_29_1 and (slot_24_30_1 == weapon_id.awp or slot_24_30_1 == weapon_id.ssg08 or slot_24_30_1 == weapon_id.scar20 or slot_24_30_1 == weapon_id.g3sg1)
slot_24_32_0 = slot_0_2_0[slot_24_30_1]
if not slot_24_32_0 then
slot_24_32_0 = {}
slot_0_2_0[slot_24_30_1] = slot_24_32_0
slot_24_32_0.damage_path = slot_0_63_0(slot_24_30_1)
slot_24_32_0.hitchance_path = slot_24_32_0.damage_path and slot_0_64_0(slot_24_32_0.damage_path)
slot_24_32_0.pointscale_path = slot_24_32_0.damage_path and slot_0_65_0(slot_24_32_0.damage_path)
slot_24_32_0.override_path = slot_24_32_0.damage_path and slot_24_32_0.damage_path .. ">override value"
end
if slot_24_32_0.damage_path then
slot_24_33_4 = slot_24_32_0.damage_context or slot_0_72_0(slot_24_32_0.damage_path)
if slot_24_33_4 then
slot_24_32_0.damage_context = slot_24_33_4
if slot_24_32_0.damage == nil then
slot_24_32_0.damage = slot_24_33_4:get_value():get()
end
end
end
if slot_24_32_0.hitchance_path then
slot_24_33_3 = slot_24_32_0.hitchance_context or slot_0_72_0(slot_24_32_0.hitchance_path)
if slot_24_33_3 then
slot_24_32_0.hitchance_context = slot_24_33_3
if slot_24_32_0.hitchance == nil then
slot_24_32_0.hitchance = slot_24_33_3:get_value():get()
end
end
end
if slot_24_32_0.pointscale_path then
slot_24_33_2 = slot_24_32_0.pointscale_context or slot_0_72_0(slot_24_32_0.pointscale_path)
if slot_24_33_2 then
slot_24_32_0.pointscale_context = slot_24_33_2
if slot_24_32_0.pointscale == nil then
slot_24_32_0.pointscale = slot_24_33_2:get_value():get()
end
end
end
if slot_24_32_0.override_path then
slot_24_33_1 = slot_24_32_0.override_context or slot_0_72_0(slot_24_32_0.override_path)
if slot_24_33_1 then
slot_24_32_0.override_context = slot_24_33_1
end
end
slot_24_33_0 = slot_24_28_1 and slot_24_31_1 and 75 or 0
slot_24_34_0 = game.global_vars.frame_time
slot_0_3_0 = slot_0_3_0 or 0
slot_0_3_0 = slot_0_3_0 + (slot_24_33_0 - slot_0_3_0) * slot_24_34_0 * 8
if slot_24_20_1 and slot_24_25_1 then
slot_24_14_0("AIR", {
y_offset = 0,
name = "AIR",
alpha = 1,
color = draw.color(200, 230, 200, 255),
no_background = true
})
end
if slot_24_4_0 and bit.band(slot_24_2_0, slot_0_68_0["Hit Chance"]) ~= 0 and not slot_0_61_0(slot_24_30_1) and not slot_24_26_1 then
slot_24_35_6 = slot_24_32_0 and (slot_24_32_0.hitchance_context or slot_0_72_0(slot_24_32_0.hitchance_path))
if slot_24_35_6 then
slot_24_32_0.hitchance_context = slot_24_35_6
slot_24_36_7 = slot_24_35_6:get_value():get()
slot_24_37_7 = slot_0_66_0(slot_24_35_6)
slot_24_38_5 = nil
slot_24_39_6 = draw.color(255, 255, 255, 255)
if slot_24_37_7 then
slot_24_38_5 = "HC"
elseif slot_24_36_7 == -1 then
slot_24_38_5 = "HC"
end
slot_24_41_4 = (function()
if slot_24_36_7 == -1 then
if slot_24_19_1 >= 124 then
return draw.color(255, 0, 0, 255)
elseif slot_24_19_1 >= 0 then
return draw.color(133, 170, 46, 255)
else
return draw.color(255, 255, 255, 255)
end
else
return draw.color(255, 255, 255, 255)
end
end)()
if slot_24_38_5 then
slot_24_14_0("HC", {
y_offset = 0,
icon_y_offset = -1,
alpha = 1,
icon_font_name = "X",
name = slot_24_38_5,
color = slot_24_41_4,
icon_font = slot_0_80_0,
icon_tint_color = slot_24_41_4,
no_background = true
})
end
end
end
if slot_24_4_0 and bit.band(slot_24_2_0, slot_0_68_0["Min Damage"]) ~= 0 and not slot_0_61_0(slot_24_30_1) and slot_24_32_0 and slot_24_32_0.damage_path then
slot_24_35_5 = slot_24_32_0.damage_context or slot_0_72_0(slot_24_32_0.damage_path)
if slot_24_35_5 then
slot_24_32_0.damage_context = slot_24_35_5
slot_24_36_6 = slot_24_35_5:get_value():get()
slot_24_37_6 = slot_0_66_0(slot_24_35_5)
slot_24_38_4 = slot_24_32_0.override_context or slot_0_72_0(slot_24_32_0.override_path)
if slot_24_38_4 then
slot_24_32_0.override_context = slot_24_38_4
end
slot_24_39_5 = slot_24_38_4 and slot_24_38_4:get_value():get()
slot_24_40_3 = slot_24_36_6
if slot_24_37_6 and slot_24_39_5 ~= nil then
slot_24_40_3 = slot_24_39_5
end
slot_24_41_3 = nil
slot_24_42_3 = draw.color(255, 255, 255, 255)
slot_24_43_3 = "icon_legit"
slot_24_44_1 = nil
if slot_24_40_3 == 0 then
slot_24_41_3 = "LETHAL"
slot_24_42_3 = draw.color(255, 50, 50, 255)
slot_24_43_3 = "gui_icon_bug"
slot_24_44_1 = draw.color(255, 50, 50, 255)
elseif slot_24_37_6 then
slot_24_41_3 = "MD"
end
if slot_24_41_3 then
slot_24_45_3 = {
y_offset = 0,
alpha = 1,
name = slot_24_41_3,
color = slot_24_42_3,
strikethrough = strikethrough,
no_background = true
}
if slot_24_41_3 == "LETHAL" then
slot_24_45_3.icon_name = slot_24_43_3
if slot_24_44_1 then
slot_24_45_3.icon_font = slot_0_80_0
slot_24_45_3.icon_tint_color = slot_24_44_1
slot_24_45_3.icon_font_name = "k"
end
else
slot_24_45_3.icon_font = slot_0_80_0
slot_24_45_3.icon_font_name = "\\"
end
slot_24_14_0(slot_24_41_3, slot_24_45_3)
end
end
end
if slot_24_4_0 and bit.band(slot_24_2_0, slot_0_68_0.Pointscale) ~= 0 and not slot_0_61_0(slot_24_30_1) and not slot_24_26_1 then
slot_24_35_4 = slot_24_32_0 and (slot_24_32_0.pointscale_context or slot_0_72_0(slot_24_32_0.pointscale_path))
if slot_24_35_4 then
slot_24_32_0.pointscale_context = slot_24_35_4
slot_24_36_5 = slot_24_35_4:get_value():get()
slot_24_37_5 = slot_0_66_0(slot_24_35_4)
slot_24_38_3 = nil
slot_24_39_4 = draw.color(255, 255, 255, 255)
if slot_24_37_5 then
slot_24_38_3 = "PS"
elseif slot_24_32_0.pointscale ~= nil and slot_24_36_5 ~= slot_24_32_0.pointscale then
slot_24_38_3 = "PS"
end
if slot_24_38_3 then
slot_24_14_0("PS", {
icon_name = "gui_icon_settings",
y_offset = 0,
alpha = 1,
name = slot_24_38_3,
color = slot_24_39_4,
no_background = true
})
end
end
end
if slot_24_4_0 and bit.band(slot_24_2_0, slot_0_68_0.FORCE) ~= 0 then
slot_24_35_3 = slot_0_69_0.FORCE
slot_24_36_4 = slot_0_72_0(slot_24_35_3)
if slot_24_36_4 and slot_24_36_4:get_value():get() and not slot_24_27_1 then
slot_24_14_0("FORCE", {
y_offset = 0,
name = "FORCE",
alpha = 1,
color = draw.color(255, 200, 120, 255),
no_background = true
})
end
end
for iter_24_0, iter_24_1 in ipairs(slot_0_12_0) do
slot_24_40_2 = iter_24_1[1]
slot_24_41_2 = iter_24_1[2]
slot_24_42_2 = slot_0_67_0[slot_24_40_2] or {
y_offset = 20,
alpha = 0,
time = 0,
active = false
}
slot_0_67_0[slot_24_40_2] = slot_24_42_2
if slot_24_40_2 ~= "Min Damage" and slot_24_40_2 ~= "Hit Chance" and slot_24_40_2 ~= "Pointscale" and slot_24_40_2 ~= "FORCE" and slot_24_40_2 ~= "Air" and slot_24_40_2 ~= "Duck Peek" and slot_24_40_2 ~= "HIDE" then
slot_24_43_2 = slot_24_40_2 == "NS" or slot_24_40_2 == "DT" or slot_24_40_2 == "BAIM" or slot_24_40_2 == "HEAD" or slot_24_40_2 == "FORCE"
if not slot_24_43_2 and type(slot_24_41_2) == "string" and (slot_24_41_2:match("^rage>aimbot") or slot_24_40_2 == "Duck") then
slot_24_43_2 = true
end
if bit.band(slot_24_2_0, slot_0_68_0[slot_24_40_2]) ~= 0 and (not slot_24_43_2 or slot_24_4_0) then
slot_24_45_2 = slot_0_72_0(slot_24_41_2)
slot_24_46_1 = false
if slot_24_45_2 then
if slot_0_66_0(slot_24_45_2) then
slot_24_46_1 = true
else
slot_24_47_3 = slot_24_45_2:get_value()
if slot_24_47_3 and slot_24_47_3.get then
slot_24_46_1 = slot_24_47_3:get()
end
end
end
if slot_24_46_1 then
if not slot_24_42_2.active then
slot_24_42_2.active = true
slot_24_42_2.time = game.global_vars.real_time
slot_24_42_2.y_offset = 20
end
slot_24_47_2 = game.global_vars.frame_time
slot_24_42_2.alpha = math.min(1, slot_24_42_2.alpha + slot_24_47_2 / slot_24_13_0)
slot_24_42_2.y_offset = math.max(0, slot_24_42_2.y_offset - slot_24_47_2 * 200)
if slot_24_42_2.alpha > 0 then
slot_24_49_2 = ({
NS = draw.color(136, 170, 46, 255),
DT = draw.color(255, 255, 255, 255),
FORCE = draw.color(255, 200, 120, 255)
})[slot_24_40_2] or draw.color(255, 255, 255, 255)
slot_24_50_2 = {
name = slot_24_40_2,
alpha = slot_24_42_2.alpha,
y_offset = slot_24_42_2.y_offset,
color = slot_24_49_2,
no_background = true
}
if slot_24_40_2 == "NS" then
slot_24_50_2.icon_font = slot_0_80_0
slot_24_50_2.icon_font_name = "["
slot_24_50_2.icon_tint_color = slot_24_49_2
slot_24_50_2.icon_y_offset = -2
end
slot_24_14_0(slot_24_40_2, slot_24_50_2)
end
else
slot_24_42_2.active = false
slot_24_47_1 = game.global_vars.frame_time
slot_24_42_2.alpha = math.max(0, slot_24_42_2.alpha - slot_24_47_1 / slot_24_13_0)
slot_24_42_2.y_offset = math.min(20, slot_24_42_2.y_offset + slot_24_47_1 * 100)
end
else
slot_24_42_2.active = false
if slot_24_43_2 and not slot_24_4_0 then
slot_24_42_2.alpha = 0
slot_24_42_2.y_offset = 20
else
slot_24_45_1 = game.global_vars.frame_time
slot_24_42_2.alpha = math.max(0, slot_24_42_2.alpha - slot_24_45_1 / slot_24_13_0)
slot_24_42_2.y_offset = math.min(20, slot_24_42_2.y_offset + slot_24_45_1 * 100)
end
end
end
end
if slot_24_4_0 and bit.band(slot_24_2_0, slot_0_68_0.HIDE) ~= 0 then
slot_24_35_2 = slot_0_69_0.HIDE
slot_24_36_3 = slot_0_72_0(slot_24_35_2)
slot_24_37_4 = false
if slot_24_36_3 then
if slot_0_66_0(slot_24_36_3) then
slot_24_37_4 = true
else
slot_24_38_1 = slot_24_36_3:get_value()
if slot_24_38_1 and slot_24_38_1.get then
slot_24_37_4 = slot_24_38_1:get()
end
end
end
if slot_24_37_4 then
slot_24_14_0("HIDE", {
y_offset = 0,
name = "HIDE",
alpha = 1,
color = draw.color(255, 255, 255, 255),
no_background = true
})
end
end
if slot_24_22_1 and slot_0_100_0 then
slot_24_35_1 = false
slot_24_36_2 = slot_0_100_0.get_value and slot_0_100_0:get_value()
if slot_0_100_0.get_hotkey_state then
slot_24_35_1 = slot_0_100_0:get_hotkey_state()
if not slot_24_35_1 and slot_24_36_2 and slot_24_36_2.get then
slot_24_37_3 = slot_24_36_2:get()
if type(slot_24_37_3) == "boolean" then
slot_24_35_1 = slot_24_37_3
end
end
elseif slot_24_36_2 then
if slot_24_36_2.get_hotkey_state then
slot_24_35_1 = slot_24_36_2:get_hotkey_state()
elseif slot_24_36_2.get then
slot_24_37_2 = slot_24_36_2:get()
if type(slot_24_37_2) == "boolean" then
slot_24_35_1 = slot_24_37_2
end
end
end
if slot_24_35_1 and not slot_0_35_0.last_active_state then
slot_0_35_0.start_time = game.global_vars.real_time
slot_0_35_0.completed_once = false
end
if slot_24_35_1 then
slot_24_14_0("Duck Peek", {
duck_peek_special = true,
y_offset = 0,
name = "DUCK",
alpha = 1,
color = draw.color(255, 255, 255, 255),
custom_draw = function(arg_33_0, arg_33_1, arg_33_2, arg_33_3)
if not slot_0_35_0.completed_once then
local var_33_0 = slot_0_4_0 < 1 and slot_0_41_0(3.5) or slot_0_41_0(5.2)
slot_0_74_0(arg_33_0, arg_33_1 + var_33_0, arg_33_2 - slot_0_41_0(5), arg_33_3)
end
end,
no_icon_padding = slot_0_35_0.completed_once,
no_background = true
})
end
slot_0_35_0.last_active_state = slot_24_35_1
else
slot_0_35_0.last_active_state = false
end
slot_24_36_1 = game.global_vars.cur_time - slot_0_52_0
slot_24_37_1 = 1
if slot_24_19_1 > 1 then
slot_24_37_1 = 2.5
end
if slot_24_36_1 < slot_24_37_1 and bit.band(slot_24_2_0, slot_0_68_0.Slow) ~= 0 then
slot_24_39_2 = slot_24_36_1 / slot_24_37_1
slot_24_39_1 = math.pow(slot_24_39_2, 0.3333333333333333)
slot_24_40_1 = 255
slot_24_41_1 = math.floor(255 * slot_24_39_1)
slot_24_42_1 = 0
slot_24_43_1 = draw.color(slot_24_40_1, slot_24_41_1, slot_24_42_1, 255)
slot_24_14_0("Slow", {
icon_font_name = "&",
y_offset = 0,
name = "SLOW",
alpha = 1,
color = slot_24_43_1,
icon_font = slot_0_81_0,
icon_tint_color = slot_24_43_1,
no_background = true
})
end
if slot_24_23_1 and slot_0_101_0 and slot_0_101_0:get_value():get() then
slot_24_14_0("WALK", {
y_offset = 0,
name = "WALK",
alpha = 1,
color = draw.color(200, 180, 255, 255),
no_background = true
})
end
end
end
slot_24_15_0()
slot_24_18_0 = slot_0_41_0(16)
slot_24_19_0 = slot_0_41_0(12)
slot_24_20_0 = slot_0_41_0(4)
slot_24_21_0 = slot_0_41_0(7)
slot_24_22_0 = slot_0_41_0(27)
slot_24_23_0 = slot_0_41_0(2)
slot_24_24_0 = slot_0_41_0(20)
slot_24_25_0 = slot_0_41_0(2.5)
slot_24_26_0 = slot_0_45_0:get_value():get()
slot_24_27_0 = slot_0_46_0:get_value():get()
slot_24_28_0 = slot_24_27_0:get_r()
slot_24_29_0 = slot_24_27_0:get_g()
slot_24_30_0 = slot_24_27_0:get_b()
local slot_24_31_0 = slot_24_7_0 / 2 + slot_0_41_0(70) - #slot_24_11_0 / 2 * slot_24_22_0
for iter_24_2, iter_24_3 in ipairs(slot_24_11_0) do
slot_24_37_0 = slot_0_30_0[iter_24_3.name]
if not slot_24_37_0 then
slot_24_37_0 = slot_24_0_0.font:get_text_size(iter_24_3.name).x
slot_0_30_0[iter_24_3.name] = slot_24_37_0
end
slot_24_38_0 = iter_24_3.icon_name or iter_24_3.icon_font_name
slot_24_39_0 = iter_24_3.custom_draw
slot_24_40_0 = slot_24_37_0 + slot_24_19_0 * 2
slot_24_41_0 = slot_24_24_0
if slot_24_38_0 and not iter_24_3.no_icon_padding then
slot_24_40_0 = slot_24_40_0 + slot_24_41_0 + slot_24_25_0
elseif slot_24_38_0 then
slot_24_40_0 = slot_24_40_0 + slot_24_41_0
end
if slot_24_39_0 and not iter_24_3.no_icon_padding then
slot_24_40_0 = slot_24_40_0 + slot_24_41_0 + slot_24_25_0
elseif slot_24_39_0 then
slot_24_40_0 = slot_24_40_0 + slot_24_41_0
end
slot_24_42_0 = select(2, iter_24_3.name:gsub("\n", "\n")) + 1
slot_24_43_0 = slot_0_41_0(4)
slot_24_44_0 = slot_24_42_0 * slot_24_1_0 + (slot_24_42_0 - 1) * slot_24_43_0
slot_24_45_0 = math.max(slot_24_22_0, slot_24_44_0 + slot_24_20_0 * 2)
slot_24_46_0 = slot_24_31_0 + iter_24_3.y_offset * slot_0_4_0
slot_24_47_0 = math.floor(iter_24_3.alpha * 255)
if not iter_24_3.no_background then
slot_24_48_2 = 0.2
slot_24_49_1 = slot_24_27_0:get_a()
slot_24_50_1 = math.floor(slot_24_40_0 * slot_24_48_2)
slot_24_51_1 = 32
slot_24_52_1 = math.max(1, math.floor(slot_24_50_1 / slot_24_51_1))
for iter_24_4 = 0, slot_24_50_1, slot_24_52_1 do
slot_24_57_0 = iter_24_4 / math.max(1, slot_24_50_1)
slot_24_58_1 = math.floor(slot_24_49_1 * slot_24_57_0 * (slot_24_47_0 / 255))
slot_24_0_0:add_rect_filled(draw.rect(slot_24_18_0 + iter_24_4, slot_24_46_0, slot_24_18_0 + iter_24_4 + slot_24_52_1, slot_24_46_0 + slot_24_45_0), draw.color(slot_24_28_0, slot_24_29_0, slot_24_30_0, slot_24_58_1))
end
slot_24_53_1 = slot_24_50_1 + 1
slot_24_54_1 = slot_24_40_0 - slot_24_50_1 - 1
if slot_24_53_1 <= slot_24_54_1 then
slot_24_0_0:add_rect_filled(draw.rect(slot_24_18_0 + slot_24_53_1, slot_24_46_0, slot_24_18_0 + slot_24_54_1 + 1, slot_24_46_0 + slot_24_45_0), draw.color(slot_24_28_0, slot_24_29_0, slot_24_30_0, math.floor(slot_24_49_1 * (slot_24_47_0 / 255))))
end
for iter_24_5 = slot_24_40_0 - slot_24_50_1, slot_24_40_0, slot_24_52_1 do
slot_24_60_1 = (slot_24_40_0 - iter_24_5) / math.max(1, slot_24_50_1)
slot_24_61_1 = math.floor(slot_24_49_1 * slot_24_60_1 * (slot_24_47_0 / 255))
slot_24_0_0:add_rect_filled(draw.rect(slot_24_18_0 + iter_24_5, slot_24_46_0, slot_24_18_0 + iter_24_5 + slot_24_52_1, slot_24_46_0 + slot_24_45_0), draw.color(slot_24_28_0, slot_24_29_0, slot_24_30_0, slot_24_61_1))
end
end
slot_24_48_1 = nil
slot_24_49_0 = nil
slot_24_50_0 = nil
slot_24_51_0 = nil
slot_24_48_0 = slot_24_18_0 + slot_24_19_0
if slot_24_38_0 then
slot_24_50_0 = slot_24_18_0 + slot_24_19_0
slot_24_48_0 = slot_24_50_0 + slot_24_41_0 + slot_24_25_0
end
if slot_24_39_0 then
slot_24_51_0 = slot_24_18_0 + slot_24_40_0 - slot_24_41_0 - slot_24_19_0
if not iter_24_3.no_icon_padding then
slot_24_51_0 = slot_24_51_0 - slot_24_25_0
end
end
slot_24_52_0 = slot_0_41_0(2)
slot_24_53_0 = slot_24_46_0 + (slot_24_45_0 - slot_24_41_0) / 2 - slot_24_52_0 + slot_0_41_0(1)
slot_24_54_0 = slot_24_53_0 + slot_24_41_0 / 2
slot_24_58_0 = slot_24_1_0 * (slot_0_4_0 < 0.6 and -0.05 or slot_0_4_0 < 1 and 0.18 or 0.22) + (slot_0_4_0 - 1) * slot_0_41_0(2.6)
if slot_24_42_0 > 1 then
slot_24_49_0 = slot_24_54_0 - slot_24_44_0 / 2 - slot_24_58_0
else
slot_24_49_0 = slot_24_54_0 - slot_24_1_0 / 2 - slot_24_58_0
end
slot_24_59_0 = iter_24_3.color or slot_24_26_0
if slot_24_59_0:get_r() == 255 and slot_24_59_0:get_g() == 255 and slot_24_59_0:get_b() == 255 and slot_24_59_0:get_a() == 255 then
slot_24_59_0 = slot_24_26_0
end
slot_24_60_0 = math.floor(slot_24_59_0:get_a() * (slot_24_47_0 / 255))
slot_24_61_0 = draw.color(slot_24_59_0:get_r(), slot_24_59_0:get_g(), slot_24_59_0:get_b(), slot_24_60_0)
slot_24_62_0 = draw.color(0, 0, 0, slot_24_60_0 * 0.5)
slot_24_63_0 = {}
for iter_24_6 in iter_24_3.name:gmatch("[^\n]+") do
table.insert(slot_24_63_0, iter_24_6)
end
for iter_24_7, iter_24_8 in ipairs(slot_24_63_0) do
slot_24_69_1 = slot_24_49_0 + (iter_24_7 - 1) * (slot_24_1_0 + slot_24_43_0)
slot_24_0_0:add_text(draw.vec2(slot_24_48_0 + 1, slot_24_69_1 + 1), iter_24_8, slot_24_62_0)
end
for iter_24_9, iter_24_10 in ipairs(slot_24_63_0) do
slot_24_69_0 = slot_24_49_0 + (iter_24_9 - 1) * (slot_24_1_0 + slot_24_43_0)
slot_24_70_0 = nil
if iter_24_9 == 1 then
slot_24_70_0 = slot_24_61_0
else
slot_24_70_0 = iter_24_3.lines_color or draw.color(255, 0, 0, 255)
end
slot_24_0_0:add_text(draw.vec2(slot_24_48_0, slot_24_69_0), iter_24_10, slot_24_70_0)
end
if slot_24_38_0 then
if iter_24_3.icon_font_name then
slot_24_64_1 = slot_24_0_0.font
slot_24_0_0.font = iter_24_3.icon_font
slot_24_65_1 = iter_24_3.icon_tint_color or slot_24_61_0
slot_24_66_1 = iter_24_3.icon_font == slot_0_81_0 and 3 or 7
if iter_24_3.icon_y_offset then
slot_24_66_1 = slot_24_66_1 + iter_24_3.icon_y_offset
end
slot_24_0_0:add_text(draw.vec2(slot_24_50_0, slot_24_53_0 + slot_24_66_1), iter_24_3.icon_font_name, slot_24_65_1)
slot_24_0_0.font = slot_24_64_1
elseif iter_24_3.icon_name and draw.textures[iter_24_3.icon_name] then
slot_24_64_0 = draw.textures[iter_24_3.icon_name]
slot_24_65_0 = slot_24_0_0.g.texture
slot_24_0_0.g.texture = slot_24_64_0.obj
slot_24_66_0 = iter_24_3.icon_tint_color or slot_24_61_0
slot_24_0_0:add_rect_filled(draw.rect(slot_24_50_0, slot_24_53_0, slot_24_50_0 + slot_24_41_0, slot_24_53_0 + slot_24_41_0), slot_24_66_0)
slot_24_0_0.g.texture = slot_24_65_0
end
end
if slot_24_39_0 then
iter_24_3.custom_draw(slot_24_51_0 + slot_0_41_0(6), slot_24_53_0, slot_24_41_0, slot_24_47_0)
end
slot_24_31_0 = slot_24_46_0 + slot_24_45_0 + slot_24_20_0 * 2 - slot_0_41_0(10) + slot_24_21_0
end
end
events.event:add(slot_0_98_0)
mods.events:add_listener("weapon_fire")
mods.events:add_listener("bomb_begindefuse")
mods.events:add_listener("bomb_abortdefuse")
mods.events:add_listener("bomb_beginplant")
mods.events:add_listener("bomb_abortplant")
mods.events:add_listener("bomb_planted")
mods.events:add_listener("bomb_defused")
mods.events:add_listener("bomb_exploded")
slot_0_103_0 = {}
slot_0_104_0 = {
hitbox = 0,
time = 0,
damage = 0
}
slot_0_105_0 = {
normal_hitlogs = false,
watermark = false
}
slot_0_106_0 = {
normal_hitlogs = {
y = 0,
x = 0
},
watermark = {
y = 0,
x = 0
}
}
slot_0_107_0 = {
normal_hitlogs = {
x = slot_0_41_0(10),
y = slot_0_41_0(10)
},
watermark = {
y = 10,
x = slot_0_0_0 - 200
}
}
slot_0_108_0 = true
slot_0_109_0 = true
slot_0_110_0 = true
function slot_0_111_0(arg_34_0)
local var_34_0 = {}
local var_34_1 = 1
local var_34_2 = false
for iter_34_0 = 1, #arg_34_0 do
local var_34_3 = arg_34_0:sub(iter_34_0, iter_34_0)
if var_34_3 == "\x01" then
if var_34_1 < iter_34_0 then
table.insert(var_34_0, {
text = arg_34_0:sub(var_34_1, iter_34_0 - 1),
colored = var_34_2
})
end
var_34_1 = iter_34_0 + 1
var_34_2 = true
elseif var_34_3 == "\x02" then
if var_34_1 < iter_34_0 then
table.insert(var_34_0, {
text = arg_34_0:sub(var_34_1, iter_34_0 - 1),
colored = var_34_2
})
end
var_34_1 = iter_34_0 + 1
var_34_2 = false
end
end
if var_34_1 <= #arg_34_0 then
table.insert(var_34_0, {
text = arg_34_0:sub(var_34_1),
colored = var_34_2
})
end
return var_34_0
end
function slot_0_112_0(arg_35_0)
slot_0_42_0()
local var_35_0 = draw.surface
var_35_0.font = draw.fonts.gui_debug
local var_35_1 = slot_0_4_0 < 0.6 and slot_0_41_0(54) or slot_0_41_0(34)
for iter_35_0, iter_35_1 in ipairs(arg_35_0) do
if iter_35_1.text ~= "" then
var_35_1 = var_35_1 + Get_TextWidth(iter_35_1.text, var_35_0.font)
end
end
return var_35_1, slot_0_4_0 < 1 and slot_0_41_0(17) or slot_0_41_0(20)
end
events.input:add(function(arg_36_0, arg_36_1, arg_36_2)
if arg_36_0 == 513 then
slot_36_3_0 = slot_0_7_0()
slot_36_4_0 = slot_0_6_0()
slot_36_5_0, slot_36_6_0 = game.engine:get_screen_size()
slot_0_42_0()
slot_36_7_0 = math.max(slot_0_41_0(24), slot_0_38_0)
slot_36_8_0 = math.max(slot_0_41_0(20), slot_0_39_0)
if #slot_0_103_0 == 0 then
slot_36_9_1 = "hit \x01Example\x02 in \x01head\x02 for \x0195\x02 damage (\x015\x02 health remaining)"
slot_36_10_1 = slot_0_111_0(slot_36_9_1)
slot_36_7_0, slot_36_8_0 = slot_0_112_0(slot_36_10_1)
end
slot_36_9_0 = {
x = slot_0_107_0.normal_hitlogs.x - slot_0_41_0(10),
y = slot_0_107_0.normal_hitlogs.y - slot_0_41_0(7),
width = slot_36_7_0,
height = slot_36_8_0
}
slot_36_10_0 = {
x = slot_36_9_0.x / slot_0_4_0,
y = slot_36_9_0.y / slot_0_4_0,
width = slot_36_9_0.width / slot_0_4_0,
height = slot_36_9_0.height / slot_0_4_0
}
slot_36_11_0 = slot_36_3_0.x >= slot_36_9_0.x and slot_36_3_0.x <= slot_36_9_0.x + slot_36_9_0.width and slot_36_3_0.y >= slot_36_9_0.y and slot_36_3_0.y <= slot_36_9_0.y + slot_36_9_0.height
slot_36_12_0 = slot_36_4_0.x >= slot_36_10_0.x and slot_36_4_0.x <= slot_36_10_0.x + slot_36_10_0.width and slot_36_4_0.y >= slot_36_10_0.y and slot_36_4_0.y <= slot_36_10_0.y + slot_36_10_0.height
if slot_36_11_0 or slot_36_12_0 then
slot_0_105_0.normal_hitlogs = true
slot_0_106_0.normal_hitlogs.x = slot_36_3_0.x - slot_0_107_0.normal_hitlogs.x
slot_0_106_0.normal_hitlogs.y = slot_36_3_0.y - slot_0_107_0.normal_hitlogs.y
slot_0_109_0 = false
end
slot_36_13_0 = slot_0_41_0(200)
slot_36_14_0 = slot_0_41_0(20)
if last_segments and last_font then
slot_36_15_1, slot_36_16_1 = GetWatermarkWidth(last_segments, last_font)
slot_36_13_0, slot_36_14_0 = slot_36_15_1, slot_36_16_1
end
slot_36_15_0 = {
x = slot_0_107_0.watermark.x - slot_0_41_0(10),
y = slot_0_107_0.watermark.y - slot_0_41_0(7),
width = slot_36_13_0,
height = slot_36_14_0
}
slot_36_16_0 = {
x = slot_36_15_0.x / slot_0_4_0,
y = slot_36_15_0.y / slot_0_4_0,
width = slot_36_15_0.width / slot_0_4_0,
height = slot_36_15_0.height / slot_0_4_0
}
slot_36_17_0 = slot_36_3_0.x >= slot_36_15_0.x and slot_36_3_0.x <= slot_36_15_0.x + slot_36_15_0.width and slot_36_3_0.y >= slot_36_15_0.y and slot_36_3_0.y <= slot_36_15_0.y + slot_36_15_0.height
slot_36_18_0 = slot_36_4_0.x >= slot_36_16_0.x and slot_36_4_0.x <= slot_36_16_0.x + slot_36_16_0.width and slot_36_4_0.y >= slot_36_16_0.y and slot_36_4_0.y <= slot_36_16_0.y + slot_36_16_0.height
if slot_36_17_0 or slot_36_18_0 then
slot_0_105_0.watermark = true
slot_0_108_0 = false
slot_0_106_0.watermark.x = slot_36_3_0.x - slot_0_107_0.watermark.x
slot_0_106_0.watermark.y = slot_36_3_0.y - slot_0_107_0.watermark.y
end
elseif arg_36_0 == 514 then
slot_0_105_0.normal_hitlogs = false
slot_0_105_0.watermark = false
elseif arg_36_0 == 257 and (arg_36_1 == 45 or arg_36_1 == 46) then
slot_0_110_0 = not slot_0_110_0
end
end)
function slot_0_113_0(arg_37_0)
if not slot_0_43_0:get_value():get() then
return
end
local var_37_0 = arg_37_0:get_pawn_from_id("attacker")
local var_37_1 = arg_37_0:get_pawn_from_id("userid")
local var_37_2 = entities.get_local_pawn()
if var_37_0 and var_37_2 and var_37_0 == var_37_2 then
local var_37_3 = arg_37_0:get_int("dmg_health")
local var_37_4 = arg_37_0:get_int("hitgroup")
local var_37_5 = arg_37_0:get_int("health")
local var_37_6 = game.global_vars.cur_time
local var_37_7 = var_37_1 and var_37_1:get_name() or "unknown"
if var_37_3 == slot_0_104_0.damage and var_37_4 == slot_0_104_0.hitbox and var_37_6 - slot_0_104_0.time < 0.01 then
return
end
slot_0_104_0.damage = var_37_3
slot_0_104_0.hitbox = var_37_4
slot_0_104_0.time = var_37_6
local var_37_8 = ""
local var_37_9 = var_37_4 == 1 and "head" or var_37_4 == 2 and "chest" or var_37_4 == 3 and "stomach" or var_37_4 == 4 and "left arm" or var_37_4 == 5 and "right arm" or var_37_4 == 6 and "left leg" or var_37_4 == 7 and "right leg" or "body"
local var_37_10 = string.format("Hit \x01%s\x02 in the \x01%s\x02 for \x01%d\x02 damage (%d health remaining)", var_37_7, var_37_9, var_37_3, var_37_5)
table.insert(slot_0_103_0, {
y_offset = -8,
state = "fade_in",
alpha = 255,
text = var_37_10,
segments = slot_0_111_0(var_37_10),
time = var_37_6
})
if #slot_0_103_0 > 8 then
table.remove(slot_0_103_0, 1)
end
local var_37_11 = var_37_5 <= 0 and string.format("Hit %s in the %s for %d damage (0 health remaining)", var_37_7, var_37_9, var_37_3) or string.format("Hit %s in the %s for %d damage (%d health remaining)", var_37_7, var_37_9, var_37_3, var_37_5)
print("[gamesense] " .. var_37_11)
end
end
function slot_0_114_0(arg_38_0)
local var_38_0 = arg_38_0:get_pawn_from_id("attacker")
local var_38_1 = arg_38_0:get_pawn_from_id("userid")
local var_38_2 = entities.get_local_pawn()
if var_38_1 and var_38_2 and var_38_1 == var_38_2 and var_38_0 then
slot_0_52_0 = game.global_vars.cur_time
if not slot_0_43_0:get_value():get() then
return
end
local var_38_3 = arg_38_0:get_int("dmg_health")
local var_38_4 = arg_38_0:get_int("hitgroup")
local var_38_5 = arg_38_0:get_int("health")
local var_38_6 = game.global_vars.cur_time
local var_38_7 = var_38_0 and var_38_0:get_name() or "unknown"
if var_38_3 == slot_0_104_0.damage and var_38_4 == slot_0_104_0.hitbox and var_38_6 - slot_0_104_0.time < 0.01 then
return
end
slot_0_104_0.damage = var_38_3
slot_0_104_0.hitbox = var_38_4
slot_0_104_0.time = var_38_6
local var_38_8 = ""
local var_38_9 = var_38_4 == 1 and "head" or var_38_4 == 2 and "chest" or var_38_4 == 3 and "stomach" or var_38_4 == 4 and "left arm" or var_38_4 == 5 and "right arm" or var_38_4 == 6 and "left leg" or var_38_4 == 7 and "right leg" or "body"
local var_38_10 = string.format("Got hit by \x01%s\x02 in the \x01%s\x02 for \x01%d\x02 damage (%d health remaining)", var_38_7, var_38_9, var_38_3, var_38_5)
table.insert(slot_0_103_0, {
y_offset = -8,
state = "fade_in",
alpha = 255,
text = var_38_10,
segments = slot_0_111_0(var_38_10),
time = var_38_6
})
if #slot_0_103_0 > 8 then
table.remove(slot_0_103_0, 1)
end
local var_38_11 = var_38_5 <= 0 and string.format("Got hit by %s in the %s for %d damage (0 health remaining)", var_38_7, var_38_9, var_38_3) or string.format("Got hit by %s in the %s for %d damage (%d health remaining)", var_38_7, var_38_9, var_38_3, var_38_5)
print("[gamesense] " .. var_38_11)
end
end
function slot_0_115_0(arg_39_0, arg_39_1, arg_39_2, arg_39_3, arg_39_4)
slot_0_42_0()
slot_39_5_0 = draw.surface
slot_39_5_0.skip_dpi = true
slot_39_5_0.font = draw.fonts.gui_debug
slot_39_6_1 = slot_0_4_0 < 0.6 and slot_0_41_0(54) or slot_0_41_0(34)
for iter_39_0, iter_39_1 in ipairs(arg_39_2) do
if iter_39_1.text ~= "" then
slot_39_6_1 = slot_39_6_1 + Get_TextWidth(iter_39_1.text, slot_39_5_0.font)
end
end
slot_39_7_0 = slot_0_41_0(20)
slot_39_8_0 = 0.2
slot_39_9_0 = 170
slot_39_6_0 = math.min(slot_39_6_1, math.max(slot_0_41_0(120), slot_0_0_0 - arg_39_0 - slot_0_41_0(10)))
slot_39_11_0 = math.max(0, math.floor(slot_39_6_0))
slot_39_12_0 = 64
slot_39_13_0 = math.max(1, math.floor(slot_39_11_0 / slot_39_12_0))
for iter_39_2 = 0, slot_39_11_0 - 1, slot_39_13_0 do
slot_39_18_1 = iter_39_2 / math.max(1, slot_39_6_0 * slot_39_8_0)
slot_39_19_1 = (slot_39_6_0 - iter_39_2) / math.max(1, slot_39_6_0 * slot_39_8_0)
slot_39_20_0 = math.min(1, slot_39_18_1) * math.min(1, slot_39_19_1)
slot_39_21_0 = math.floor(slot_39_9_0 * math.sqrt(slot_39_20_0) * (arg_39_3 / 255))
if slot_39_21_0 > 0 then
slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + iter_39_2, arg_39_1, arg_39_0 + math.min(iter_39_2 + slot_39_13_0, slot_39_11_0), arg_39_1 + slot_39_7_0), draw.color(20, 20, 20, slot_39_21_0))
end
end
slot_0_38_0 = slot_39_6_0
slot_0_39_0 = slot_39_7_0
slot_39_14_0 = draw.color(arg_39_4:get_r() * 0.1, arg_39_4:get_g() * 0.1, arg_39_4:get_b() * 0.1, math.floor(120 * arg_39_3 / 255))
slot_39_15_0 = slot_39_6_0 * slot_39_8_0
slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + slot_39_15_0, arg_39_1, arg_39_0 + slot_39_6_0 - slot_39_15_0, arg_39_1 + 1), slot_39_14_0)
slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + slot_39_15_0, arg_39_1 + slot_39_7_0 - 1, arg_39_0 + slot_39_6_0 - slot_39_15_0, arg_39_1 + slot_39_7_0), slot_39_14_0)
slot_39_16_0 = math.floor(slot_39_15_0)
slot_39_17_0 = 16
slot_39_18_0 = math.max(1, math.floor(slot_39_16_0 / slot_39_17_0))
for iter_39_3 = 0, slot_39_16_0, slot_39_18_0 do
slot_39_23_1 = iter_39_3 / math.max(1, slot_39_15_0)
slot_39_24_1 = slot_39_14_0:get_a() * slot_39_23_1
slot_39_25_1 = draw.color(slot_39_14_0:get_r(), slot_39_14_0:get_g(), slot_39_14_0:get_b(), slot_39_24_1)
slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + iter_39_3, arg_39_1, arg_39_0 + iter_39_3 + slot_39_18_0, arg_39_1 + 1), slot_39_25_1)
slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + slot_39_6_0 - iter_39_3 - slot_39_18_0, arg_39_1, arg_39_0 + slot_39_6_0 - iter_39_3, arg_39_1 + 1), slot_39_25_1)
slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + iter_39_3, arg_39_1 + slot_39_7_0 - 1, arg_39_0 + iter_39_3 + slot_39_18_0, arg_39_1 + slot_39_7_0), slot_39_25_1)
slot_39_5_0:add_rect_filled(draw.rect(arg_39_0 + slot_39_6_0 - iter_39_3 - slot_39_18_0, arg_39_1 + slot_39_7_0 - 1, arg_39_0 + slot_39_6_0 - iter_39_3, arg_39_1 + slot_39_7_0), slot_39_25_1)
end
slot_39_19_0 = arg_39_0 + 12
for iter_39_4, iter_39_5 in ipairs(arg_39_2) do
if iter_39_5.text ~= "" then
slot_39_25_0 = iter_39_5.colored and draw.color(arg_39_4:get_r(), arg_39_4:get_g(), arg_39_4:get_b(), math.floor(arg_39_3)) or draw.color(255, 255, 255, math.floor(arg_39_3))
slot_39_26_0 = Get_TextWidth(iter_39_5.text, slot_39_5_0.font)
slot_39_27_0 = arg_39_0 + slot_39_6_0 - slot_39_19_0 - 12
if slot_39_27_0 < slot_39_26_0 then
slot_39_28_0 = Get_TextWidth("...", slot_39_5_0.font)
slot_39_29_0 = iter_39_5.text
slot_39_30_0 = ""
for iter_39_6 = 1, #slot_39_29_0 do
slot_39_35_0 = slot_39_29_0:sub(1, iter_39_6)
if slot_39_27_0 < Get_TextWidth(slot_39_35_0, slot_39_5_0.font) + slot_39_28_0 then
slot_39_30_0 = slot_39_29_0:sub(1, iter_39_6 - 1) .. "..."
break
end
end
if slot_39_30_0 == "" then
slot_39_30_0 = slot_39_29_0
end
slot_39_5_0:add_text(draw.vec2(slot_39_19_0, arg_39_1 + slot_0_41_0(4)), slot_39_30_0, slot_39_25_0)
slot_39_19_0 = arg_39_0 + slot_39_6_0
break
else
slot_39_5_0:add_text(draw.vec2(slot_39_19_0, arg_39_1 + slot_0_41_0(4)), iter_39_5.text, slot_39_25_0)
slot_39_19_0 = slot_39_19_0 + slot_39_26_0
end
end
end
return slot_39_6_0
end
function slot_0_116_0(arg_40_0)
slot_0_42_0()
local var_40_0 = draw.surface
var_40_0.font = draw.fonts.gui_debug
local var_40_1 = slot_0_4_0 < 0.6 and slot_0_41_0(54) or slot_0_41_0(34)
for iter_40_0, iter_40_1 in ipairs(arg_40_0) do
if iter_40_1.text ~= "" then
var_40_1 = var_40_1 + Get_TextWidth(iter_40_1.text, var_40_0.font)
end
end
return var_40_1, slot_0_4_0 < 1 and slot_0_41_0(17) or slot_0_41_0(20)
end
function slot_0_117_0()
if not slot_0_43_0:get_value():get() and not slot_0_110_0 and not slot_0_105_0.normal_hitlogs then
return
end
slot_0_42_0()
slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
if slot_0_105_0.normal_hitlogs then
slot_41_0_1 = slot_0_7_0()
slot_0_107_0.normal_hitlogs.x = slot_41_0_1.x - slot_0_106_0.normal_hitlogs.x
slot_0_107_0.normal_hitlogs.y = slot_41_0_1.y - slot_0_106_0.normal_hitlogs.y
end
slot_41_0_0 = draw.surface
slot_41_0_0.skip_dpi = true
slot_41_0_0.font = draw.fonts.gui_debug
slot_41_1_0 = game.global_vars.cur_time
slot_41_2_0 = game.global_vars.frame_time
slot_41_3_0 = slot_0_44_0:get_value():get()
slot_41_4_0 = slot_0_41_0(200)
slot_41_5_0 = slot_0_41_0(20)
if slot_0_110_0 and slot_0_43_0:get_value():get() then
slot_41_6_3 = "hit \x01Example\x02 in \x01head\x02 for \x0195\x02 damage (\x015\x02 health remaining)"
slot_41_7_3 = slot_0_111_0(slot_41_6_3)
slot_41_4_0, slot_41_5_0 = slot_0_116_0(slot_41_7_3)
elseif slot_0_43_0:get_value():get() and #slot_0_103_0 > 0 then
slot_41_6_2 = slot_0_103_0[#slot_0_103_0]
slot_41_7_2 = slot_41_6_2.segments or slot_0_111_0(slot_41_6_2.text)
slot_41_4_0, slot_41_5_0 = slot_0_116_0(slot_41_7_2)
end
if slot_0_109_0 then
slot_0_107_0.normal_hitlogs.x = slot_0_41_0(10)
slot_0_107_0.normal_hitlogs.y = slot_0_41_0(10)
end
slot_0_107_0.normal_hitlogs.x = math.max(0, math.min(slot_0_107_0.normal_hitlogs.x, slot_0_0_0 - slot_41_4_0))
slot_0_107_0.normal_hitlogs.y = math.max(0, math.min(slot_0_107_0.normal_hitlogs.y, slot_0_1_0 - slot_41_5_0))
if slot_0_110_0 and slot_0_43_0:get_value():get() then
slot_41_6_1 = "hit \x01Example\x02 in \x01head\x02 for \x0195\x02 damage (\x015\x02 health remaining)"
slot_41_7_1 = slot_0_111_0(slot_41_6_1)
slot_0_115_0(slot_0_107_0.normal_hitlogs.x, slot_0_107_0.normal_hitlogs.y, slot_41_7_1, 255, slot_41_3_0)
end
if slot_0_43_0:get_value():get() then
slot_41_6_0 = slot_41_0_0.font:get_text_size("Ay").y
slot_41_7_0 = math.ceil(slot_41_6_0 * 0.4)
slot_41_8_0 = slot_0_107_0.normal_hitlogs.y
if slot_0_110_0 and slot_0_43_0:get_value():get() then
slot_41_8_0 = slot_41_8_0 + slot_41_5_0 + slot_41_7_0
end
for iter_41_0 = #slot_0_103_0, 1, -1 do
slot_41_13_1 = slot_0_103_0[iter_41_0]
slot_41_14_1 = slot_41_1_0 - slot_41_13_1.time
if slot_41_13_1.state == "fade_in" then
slot_41_13_1.alpha = 255
slot_41_13_1.y_offset = slot_41_13_1.y_offset + (0 - slot_41_13_1.y_offset) * slot_41_2_0 * 12
if math.abs(slot_41_13_1.y_offset) < 0.5 then
slot_41_13_1.state = "visible"
slot_41_13_1.y_offset = 0
end
elseif slot_41_14_1 > 2 then
slot_41_13_1.state = "fade_out"
slot_41_13_1.alpha = math.max(0, 255 * (1 - (slot_41_14_1 - 2)))
slot_41_13_1.y_offset = slot_41_13_1.y_offset - slot_41_2_0 * 50
end
if slot_41_14_1 >= 3 then
table.remove(slot_0_103_0, iter_41_0)
end
end
for iter_41_1 = 1, #slot_0_103_0 do
slot_41_13_0 = slot_0_103_0[iter_41_1]
slot_41_14_0 = slot_41_13_0.segments or slot_0_111_0(slot_41_13_0.text)
slot_41_13_0.segments = slot_41_14_0
slot_41_15_0, slot_41_16_0 = slot_0_116_0(slot_41_14_0)
slot_41_17_0 = slot_41_8_0 + slot_41_13_0.y_offset
slot_0_115_0(slot_0_107_0.normal_hitlogs.x, slot_41_17_0, slot_41_14_0, slot_41_13_0.alpha, slot_41_3_0)
slot_41_8_0 = slot_41_8_0 + slot_41_16_0 + slot_41_7_0
end
end
end
slot_0_118_0 = 0
slot_0_119_0 = 0
slot_0_120_0 = 0
slot_0_31_0 = {}
slot_0_121_0 = {}
slot_0_122_0 = 0
slot_0_123_0 = 1024
slot_0_124_0 = 256
slot_0_125_0 = 0
slot_0_126_0 = nil
slot_0_127_0 = 255
slot_0_128_0 = nil
slot_0_129_0 = nil
slot_0_130_0 = 1
slot_0_131_0 = 0
slot_0_132_0 = 0
slot_0_133_0 = false
function slot_0_134_0()
slot_0_118_0 = 0
slot_0_119_0 = 0
slot_0_120_0 = 0
slot_0_31_0 = {}
slot_0_125_0 = 0
slot_0_126_0 = nil
slot_0_127_0 = 255
slot_0_128_0 = nil
slot_0_129_0 = nil
slot_0_30_0 = {}
end
function Get_TextWidth(arg_43_0, arg_43_1)
slot_0_42_0()
local var_43_0 = arg_43_0 .. tostring(arg_43_1)
local var_43_1 = slot_0_31_0[var_43_0]
if not var_43_1 then
var_43_1 = arg_43_1:get_text_size(arg_43_0).x
slot_0_31_0[var_43_0] = var_43_1
slot_0_122_0 = slot_0_122_0 + 1
table.insert(slot_0_121_0, var_43_0)
if slot_0_122_0 > slot_0_123_0 then
local var_43_2 = math.min(slot_0_124_0, slot_0_122_0)
for iter_43_0 = 1, var_43_2 do
local var_43_3 = slot_0_121_0[iter_43_0]
slot_0_31_0[var_43_3] = nil
end
for iter_43_1 = var_43_2 + 1, #slot_0_121_0 do
slot_0_121_0[iter_43_1 - var_43_2] = slot_0_121_0[iter_43_1]
end
for iter_43_2 = #slot_0_121_0, #slot_0_121_0 - var_43_2 + 1, -1 do
slot_0_121_0[iter_43_2] = nil
end
slot_0_122_0 = slot_0_122_0 - var_43_2
end
end
return var_43_1 * slot_0_4_0
end
function slot_0_135_0()
local var_44_0 = game.global_vars.real_time
slot_0_118_0 = 0.9 * slot_0_118_0 + 0.1 * game.global_vars.frame_time
slot_0_119_0 = math.floor(1 / slot_0_118_0 + 0.5)
slot_0_120_0 = var_44_0
return slot_0_119_0
end
function slot_0_136_0()
local var_45_0 = game.engine:get_netchan()
if var_45_0 and not var_45_0:is_null() then
return math.floor(var_45_0:get_latency() * 1000 + 0.5)
end
return 0
end
function slot_0_137_0()
local var_46_0 = game.engine:get_netchan()
if not var_46_0 or var_46_0:is_null() then
return 0
end
local function var_46_1(arg_47_0, arg_47_1)
local var_47_0, var_47_1 = pcall(arg_47_0, var_46_0, arg_47_1)
if var_47_0 and type(var_47_1) == "number" then
return var_47_1
end
return nil
end
local function var_46_2(arg_48_0)
local var_48_0 = var_46_1(arg_48_0, 0)
local var_48_1 = var_46_1(arg_48_0, 1)
if var_48_0 or var_48_1 then
return math.max(var_48_0 or 0, var_48_1 or 0)
end
local var_48_2, var_48_3 = pcall(arg_48_0, var_46_0)
if var_48_2 and type(var_48_3) == "number" then
return var_48_3
end
return nil
end
if var_46_0.get_avg_loss then
local var_46_3 = var_46_2(var_46_0.get_avg_loss)
if var_46_3 then
return math.floor(var_46_3 * 100 + 0.5)
end
end
if var_46_0.get_loss then
local var_46_4 = var_46_2(var_46_0.get_loss)
if var_46_4 then
return math.floor(var_46_4 * 100 + 0.5)
end
end
return 0
end
slot_0_138_0 = 0.2
function slot_0_139_0(arg_49_0, arg_49_1, arg_49_2, arg_49_3)
local var_49_0 = arg_49_0 / arg_49_1
local var_49_1 = math.min(1, arg_49_0 / (arg_49_1 * slot_0_138_0)) * math.min(1, (arg_49_1 - arg_49_0) / (arg_49_1 * slot_0_138_0))
return math.floor(arg_49_2 * math.sqrt(var_49_1) * (arg_49_3 / 255))
end
function slot_0_140_0(arg_50_0, arg_50_1, arg_50_2, arg_50_3, arg_50_4, arg_50_5)
slot_0_42_0()
slot_50_6_0 = draw.surface
slot_50_6_0.font = arg_50_5
slot_50_7_0 = slot_0_41_0(15)
for iter_50_0, iter_50_1 in ipairs(arg_50_2) do
if iter_50_1.text ~= "" then
slot_50_13_1 = iter_50_1.down and slot_0_79_0 or arg_50_5
slot_50_7_0 = slot_50_7_0 + Get_TextWidth(tostring(iter_50_1.text), slot_50_13_1)
end
end
slot_50_8_0 = slot_0_4_0 < 1 and slot_0_41_0(17) or slot_0_41_0(20)
slot_50_9_0 = slot_0_41_0(1)
slot_50_10_0 = 170
slot_50_11_0 = 64
slot_50_12_0 = math.max(1, math.floor(slot_50_7_0 / slot_50_11_0))
for iter_50_2 = 0, slot_50_7_0, slot_50_12_0 do
slot_50_17_1 = slot_0_139_0(iter_50_2, slot_50_7_0, slot_50_10_0, arg_50_3)
if slot_50_17_1 > 0 then
slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + iter_50_2, arg_50_1, arg_50_0 + math.min(iter_50_2 + slot_50_12_0, slot_50_7_0), arg_50_1 + slot_50_8_0), draw.color(20, 20, 20, slot_50_17_1))
end
end
slot_50_13_0 = draw.color(arg_50_4:get_r() * 0.1, arg_50_4:get_g() * 0.1, arg_50_4:get_b() * 0.1, 120 * arg_50_3 / 255)
slot_50_14_0 = slot_50_7_0 * slot_0_138_0
slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + slot_50_14_0, arg_50_1, arg_50_0 + slot_50_7_0 - slot_50_14_0, arg_50_1 + slot_50_9_0), slot_50_13_0)
slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + slot_50_14_0, arg_50_1 + slot_50_8_0 - slot_50_9_0, arg_50_0 + slot_50_7_0 - slot_50_14_0, arg_50_1 + slot_50_8_0), slot_50_13_0)
slot_50_15_0 = math.floor(slot_50_14_0)
slot_50_16_0 = 16
slot_50_17_0 = math.max(1, math.floor(slot_50_15_0 / slot_50_16_0))
for iter_50_3 = 0, slot_50_15_0, slot_50_17_0 do
slot_50_22_1 = iter_50_3 / math.max(1, slot_50_14_0)
slot_50_23_1 = slot_50_13_0:get_a() * slot_50_22_1
slot_50_24_1 = draw.color(slot_50_13_0:get_r(), slot_50_13_0:get_g(), slot_50_13_0:get_b(), slot_50_23_1)
slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + iter_50_3, arg_50_1, arg_50_0 + iter_50_3 + slot_50_17_0, arg_50_1 + slot_50_9_0), slot_50_24_1)
slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + slot_50_7_0 - iter_50_3 - slot_50_17_0, arg_50_1, arg_50_0 + slot_50_7_0 - iter_50_3, arg_50_1 + slot_50_9_0), slot_50_24_1)
slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + iter_50_3, arg_50_1 + slot_50_8_0 - slot_50_9_0, arg_50_0 + iter_50_3 + slot_50_17_0, arg_50_1 + slot_50_8_0), slot_50_24_1)
slot_50_6_0:add_rect_filled(draw.rect(arg_50_0 + slot_50_7_0 - iter_50_3 - slot_50_17_0, arg_50_1 + slot_50_8_0 - slot_50_9_0, arg_50_0 + slot_50_7_0 - iter_50_3, arg_50_1 + slot_50_8_0), slot_50_24_1)
end
slot_50_18_0 = arg_50_0 + slot_0_41_0(8)
slot_50_6_0.font = arg_50_5
for iter_50_4, iter_50_5 in ipairs(arg_50_2) do
if iter_50_5.text ~= "" then
slot_50_24_0 = tostring(iter_50_5.text)
slot_50_25_0 = iter_50_5.colored and draw.color(arg_50_4:get_r(), arg_50_4:get_g(), arg_50_4:get_b(), arg_50_3) or draw.color(255, 255, 255, arg_50_3)
slot_50_26_0 = iter_50_5.down and slot_0_79_0 or arg_50_5
slot_50_6_0.font = slot_50_26_0
slot_50_27_0 = slot_0_4_0 < 1 and slot_0_41_0(7.5) or slot_0_41_0(7)
slot_50_28_0 = arg_50_1 + (iter_50_5.down and slot_50_27_0 or slot_0_41_0(4)) + (iter_50_5.dy or 0)
slot_50_6_0:add_text(draw.vec2(slot_50_18_0, slot_50_28_0), slot_50_24_0, slot_50_25_0)
slot_50_18_0 = slot_50_18_0 + Get_TextWidth(slot_50_24_0, slot_50_26_0)
end
end
return slot_50_7_0, slot_50_8_0
end
function slot_0_141_0(arg_51_0, arg_51_1)
slot_0_42_0()
local var_51_0 = slot_0_41_0(15)
for iter_51_0, iter_51_1 in ipairs(arg_51_0) do
if iter_51_1.text ~= "" then
local var_51_1 = iter_51_1.down and slot_0_79_0 or arg_51_1
var_51_0 = var_51_0 + Get_TextWidth(tostring(iter_51_1.text), var_51_1)
end
end
return var_51_0, slot_0_4_0 < 1 and slot_0_41_0(17) or slot_0_41_0(20)
end
function slot_0_142_0()
local var_52_0 = slot_0_21_0:get_value()
local var_52_1 = var_52_0 and var_52_0:get()
if var_52_1 and var_52_1.get_raw then
var_52_1 = var_52_1:get_raw()
end
if type(var_52_1) ~= "number" then
var_52_1 = slot_0_25_0
end
for iter_52_0 = 1, #slot_0_23_0 do
if bit.band(var_52_1, 2^(iter_52_0 - 1)) ~= 0 then
return slot_0_23_0[iter_52_0]
end
end
return 0
end
function slot_0_143_0()
if not utils or not utils.get_unix_time then
return ""
end
local var_53_0 = utils.get_unix_time()
if not var_53_0 then
return ""
end
local var_53_1 = ((var_53_0 + slot_0_142_0() * 60) % 86400 + 86400) % 86400
local var_53_2 = math.floor(var_53_1 / 3600)
local var_53_3 = math.floor(var_53_1 % 3600 / 60)
local var_53_4 = math.floor(var_53_1 % 60)
local function var_53_5(arg_54_0)
arg_54_0 = tonumber(arg_54_0) or 0
if arg_54_0 < 10 then
return "0" .. tostring(arg_54_0)
end
return tostring(arg_54_0)
end
return var_53_5(var_53_2) .. ":" .. var_53_5(var_53_3) .. ":" .. var_53_5(var_53_4)
end
function slot_0_144_0(arg_55_0, arg_55_1, arg_55_2)
local var_55_0 = slot_0_17_0:get_value()
local var_55_1 = var_55_0 and var_55_0:get()
if var_55_1 and var_55_1.get_raw then
var_55_1 = var_55_1:get_raw()
end
if type(var_55_1) ~= "number" then
var_55_1 = slot_0_19_0
end
local function var_55_2(arg_56_0)
local var_56_0 = slot_0_20_0[arg_56_0]
if not var_56_0 then
return false
end
return bit.band(var_55_1, var_56_0) ~= 0
end
local var_55_3 = {}
local function var_55_4()
if #var_55_3 > 0 then
table.insert(var_55_3, {
colored = false,
text = " "
})
end
end
if var_55_2("Logo") then
table.insert(var_55_3, {
colored = false,
text = "game"
})
table.insert(var_55_3, {
colored = true,
text = "sense"
})
end
if var_55_2("FPS") then
var_55_4()
table.insert(var_55_3, {
colored = true,
text = arg_55_0
})
table.insert(var_55_3, {
down = true,
text = " FPS"
})
end
if var_55_2("Ping") then
var_55_4()
table.insert(var_55_3, {
colored = true,
text = arg_55_1
})
table.insert(var_55_3, {
down = true,
text = " PING"
})
end
if var_55_2("Network Lag") and arg_55_2 > 0 then
var_55_4()
table.insert(var_55_3, {
colored = true,
text = string.format("%d%%", arg_55_2)
})
table.insert(var_55_3, {
down = true,
text = " LOSS"
})
end
if var_55_2("Clock") then
local var_55_5 = slot_0_143_0()
if var_55_5 ~= "" then
var_55_4()
table.insert(var_55_3, {
colored = false,
text = var_55_5,
dy = slot_0_41_0(1)
})
end
end
if #var_55_3 == 0 then
return nil
end
return var_55_3
end
-- ============================================
-- QUANTUM.LUA - ПОЛОСКА С ЗАКРУГЛЕНИЯМИ СПРАВА И СЛЕВА,
-- НО ПРАВЫЕ ЗАКРЫВАЕМ ДРУГОЙ ПОЛОСКОЙ
-- ============================================
-- Глобальные переменные для плавного FPS
quantum_fps_display = 0
quantum_fps_update_time = 0
function slot_0_145_0()
if not slot_0_13_0:get_value():get() then
return
end
slot_0_42_0()
slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
local surface = draw.surface
surface.skip_dpi = true
-- ===== ШРИФТ SF UI Display ДЛЯ ВОДЯНОЙ МЕТКИ =====
if not quantum_font then
quantum_font = draw.font_gdi("SF UI Display", slot_0_41_0(17), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))
quantum_font:create()
end
surface.font = quantum_font
local current_time = game.global_vars.real_time
if current_time - quantum_fps_update_time >= 1.0 then
local raw_fps = slot_0_135_0()
quantum_fps_display = raw_fps
quantum_fps_update_time = current_time
end
local ping = slot_0_136_0()
local clock = slot_0_143_0()
local accent = slot_0_44_0:get_value():get()
local accent_color = draw.color(accent:get_r(), accent:get_g(), accent:get_b(), 255)
local white = draw.color(255, 255, 255, 255)
local grey = draw.color(180, 180, 180, 200)
-- ЧАСТИ
local parts = {}
table.insert(parts, {text = "quantum", color = white})
table.insert(parts, {text = ".lua", color = accent_color})
if bit.band(slot_0_19_0, slot_0_20_0.FPS) ~= 0 then
table.insert(parts, {text = "", is_dot = true})
table.insert(parts, {text = tostring(quantum_fps_display), color = white})
table.insert(parts, {text = " fps", color = grey})
end
if bit.band(slot_0_19_0, slot_0_20_0.Ping) ~= 0 then
table.insert(parts, {text = "", is_dot = true})
table.insert(parts, {text = tostring(ping), color = white})
table.insert(parts, {text = " ms", color = grey})
end
if bit.band(slot_0_19_0, slot_0_20_0.Clock) ~= 0 and clock ~= "" then
table.insert(parts, {text = "", is_dot = true})
table.insert(parts, {text = clock, color = white})
end
-- РАЗМЕРЫ
local total_width = 0
local dot_radius = slot_0_41_0(3)
local dot_spacing = dot_radius * 2 + slot_0_41_0(9)
for i, part in ipairs(parts) do
if part.is_dot then
total_width = total_width + dot_spacing
else
total_width = total_width + surface.font:get_text_size(part.text).x
end
end
local padding = slot_0_41_0(14)
local height = slot_0_41_0(34)
local line_width = slot_0_41_0(2)
local width = total_width + padding * 2 + line_width + slot_0_41_0(4)
local round = slot_0_41_0(10)
local x = slot_0_0_0 - width - slot_0_41_0(10)
local y = slot_0_41_0(10)
local bg_color = draw.color(15, 15, 15, 200)
local line_color = draw.color(255, 255, 255, 255)
-- ===== РИСУЕМ =====
surface.g.anti_alias = true
-- 1. ФОН
surface:add_rect_filled_rounded(
draw.rect(x, y, x + width, y + height),
bg_color,
round
)
-- 2. ПОЛОСКА (закруглена со всех сторон)
surface:add_rect_filled_rounded(
draw.rect(x, y, x + line_width + round - 6, y + height),
accent_color,
round
)
-- 3. НАКЛАДЫВАЕМ ПОВЕРХ ПРАВУЮ ЧАСТЬ ПОЛОСКИ БЕЗ ЗАКРУГЛЕНИЙ
surface:add_rect_filled(
draw.rect(x + round - 6, y, x + line_width + round - 5, y + height),
accent_color
)
surface.g.anti_alias = false
-- ТЕКСТ И КРУЖОЧКИ
local current_x = x + padding + line_width + 2
local text_size = surface.font:get_text_size("Ay")
local text_y = y + (height - text_size.y) / 2 - 1
local center_y = y + height / 2
for i, part in ipairs(parts) do
if part.is_dot then
local dot_x = current_x + dot_radius
surface.g.anti_alias = true
surface:add_circle_filled(
draw.vec2(dot_x + 4, center_y),
dot_radius,
accent_color
)
surface.g.anti_alias = false
current_x = current_x + dot_spacing
else
surface:add_text(
draw.vec2(current_x, text_y + 1),
part.text,
draw.color(0, 0, 0, 150)
)
surface:add_text(
draw.vec2(current_x, text_y),
part.text,
part.color
)
current_x = current_x + surface.font:get_text_size(part.text).x
end
end
end
print("[Quantum.lua] Watermark loaded!")
slot_0_146_0 = {}
slot_0_147_0 = {}
mods.events:add_listener("molotov_detonate")
mods.events:add_listener("smokegrenade_detonate")
mods.events:add_listener("hegrenade_detonate")
mods.events:add_listener("inferno_extinguish")
slot_0_148_0 = nil
function slot_0_33_0()
slot_0_148_0 = draw.font_gdi("Verdana", slot_0_41_0(10), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))
slot_0_148_0:create()
end
slot_0_33_0()
slot_0_149_0 = 0.4
slot_0_150_0 = 0.4
slot_0_151_0 = {
[0] = draw.color(255, 255, 255, 255),
draw.color(254, 164, 0, 255),
(draw.color(255, 255, 255, 255))
}
function slot_0_152_0(arg_60_0, arg_60_1)
table.insert(slot_0_147_0, {
arg_60_0[1],
arg_60_0[2],
arg_60_0[3],
arg_60_1
})
end
function slot_0_153_0(arg_61_0, arg_61_1, arg_61_2)
local var_61_0 = arg_61_1 + arg_61_2 - slot_0_150_0
local var_61_1 = arg_61_0 - arg_61_1
local var_61_2 = slot_0_50_0:get_value():get()
if var_61_1 <= 0 then
return 0
elseif var_61_1 < slot_0_149_0 then
local var_61_3 = var_61_1 / slot_0_149_0
return math.floor(var_61_3 * var_61_2)
elseif var_61_0 <= arg_61_0 then
local var_61_4 = (arg_61_0 - var_61_0) / slot_0_150_0
return math.floor((1 - var_61_4) * var_61_2)
else
return var_61_2
end
end
function HandleNade()
slot_0_42_0()
slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
function slot_62_0_0()
slot_0_146_0 = {}
slot_0_147_0 = {}
end
if not slot_0_47_0:get_value():get() and not slot_0_48_0:get_value():get() and not slot_0_49_0:get_value():get() then
return slot_62_0_0()
end
if not game.engine:in_game() then
return slot_62_0_0()
end
slot_62_1_0 = entities.get_local_pawn()
if not slot_62_1_0 or not slot_62_1_0:is_alive() then
return slot_62_0_0()
end
slot_62_2_0 = game.global_vars.cur_time
for iter_62_0 = #slot_0_147_0, 1, -1 do
slot_62_7_1 = slot_0_147_0[iter_62_0]
slot_62_8_0 = nil
if slot_62_7_1[4] == 0 then
slot_62_8_0 = 20.5
elseif slot_62_7_1[4] == 1 then
slot_62_8_0 = 7.1
elseif slot_62_7_1[4] == 2 then
slot_62_8_0 = 1
end
table.insert(slot_0_146_0, {
slot_62_7_1,
slot_62_2_0,
slot_62_8_0,
slot_62_7_1[4]
})
table.remove(slot_0_147_0, iter_62_0)
end
slot_62_3_0 = draw.surface
slot_62_3_0.g.anti_alias = true
slot_62_4_0 = slot_0_41_0(41)
slot_62_5_0 = slot_0_41_0(5)
slot_62_6_0 = slot_0_41_0(12)
slot_62_7_0 = draw.text_params.with_h(draw.text_alignment.center)
for iter_62_1 = #slot_0_146_0, 1, -1 do
slot_62_12_0 = slot_0_146_0[iter_62_1]
slot_62_13_0 = slot_62_12_0[1]
slot_62_14_0 = slot_62_12_0[2]
slot_62_15_0 = slot_62_12_0[3]
slot_62_16_0 = slot_62_12_0[4]
slot_62_17_0 = slot_62_14_0 + slot_62_15_0
if slot_62_17_0 <= slot_62_2_0 then
table.remove(slot_0_146_0, iter_62_1)
else
slot_62_18_0 = slot_0_153_0(slot_62_2_0, slot_62_14_0, slot_62_15_0)
if slot_62_18_0 <= 0 then
-- block empty
else
slot_62_19_0 = vector(slot_62_13_0[1], slot_62_13_0[2], slot_62_13_0[3])
slot_62_20_2 = math.world_to_screen(slot_62_19_0)
slot_62_20_1 = draw.vec2(slot_62_20_2.x, slot_62_20_2.y - slot_62_6_0)
slot_62_3_0.font = slot_0_80_0
if slot_62_16_0 == 0 then
slot_62_3_0:add_text(slot_62_20_1, "&", draw.color(slot_0_151_0[0]:get_r(), slot_0_151_0[0]:get_g(), slot_0_151_0[0]:get_b(), slot_62_18_0), slot_62_7_0)
elseif slot_62_16_0 == 1 then
slot_62_3_0:add_text(slot_62_20_1, "q", draw.color(slot_0_151_0[1]:get_r(), slot_0_151_0[1]:get_g(), slot_0_151_0[1]:get_b(), slot_62_18_0), slot_62_7_0)
elseif slot_62_16_0 == 2 then
slot_62_3_0:add_text(slot_62_20_1, "i", draw.color(slot_0_151_0[2]:get_r(), slot_0_151_0[2]:get_g(), slot_0_151_0[2]:get_b(), slot_62_18_0), slot_62_7_0)
end
slot_62_3_0.font = draw.fonts.gui_bold
slot_62_20_0 = draw.vec2(slot_62_20_1.x, slot_62_20_1.y + slot_62_6_0 * 2)
if slot_62_16_0 ~= 2 then
slot_62_3_0:add_rect_filled_rounded(draw.rect(slot_62_20_0.x - slot_62_4_0 / 2, slot_62_20_0.y - slot_62_5_0 / 2, slot_62_20_0.x + slot_62_4_0 / 2, slot_62_20_0.y + slot_62_5_0 / 2), draw.color(150, 150, 150, math.floor(slot_62_18_0 * 1)), slot_0_41_0(5))
slot_62_22_1 = slot_62_4_0 * (1 - math.min(1, math.max(0, (slot_62_2_0 - slot_62_14_0) / slot_62_15_0)))
slot_62_23_1 = slot_62_20_0.x - slot_62_4_0 / 2
slot_62_24_1 = slot_62_23_1 + slot_62_22_1
slot_62_3_0:add_rect_filled_rounded(draw.rect(slot_62_23_1, slot_62_20_0.y - slot_62_5_0 / 2, slot_62_24_1, slot_62_20_0.y + slot_62_5_0 / 2), draw.color(slot_0_151_0[slot_62_16_0]:get_r(), slot_0_151_0[slot_62_16_0]:get_g(), slot_0_151_0[slot_62_16_0]:get_b(), slot_62_18_0), slot_0_41_0(5))
slot_62_20_0 = draw.vec2(slot_62_20_0.x, slot_62_20_0.y + slot_62_5_0 / 2 + slot_62_6_0 / 2)
else
slot_62_20_0 = draw.vec2(slot_62_20_0.x, slot_62_20_0.y - slot_0_41_0(4))
end
slot_62_21_0 = math.max(0, slot_62_17_0 - slot_62_2_0)
slot_62_3_0.font = slot_0_148_0
slot_62_22_0 = string.format("%.1f S", slot_62_21_0)
slot_62_23_0 = draw.color(0, 0, 0, slot_62_18_0)
slot_62_24_0 = slot_0_41_0(1)
slot_62_25_0 = {
{
-slot_62_24_0,
-slot_62_24_0
},
{
0,
-slot_62_24_0
},
{
slot_62_24_0,
-slot_62_24_0
},
{
-slot_62_24_0,
0
},
{
slot_62_24_0,
0
},
{
-slot_62_24_0,
slot_62_24_0
},
{
0,
slot_62_24_0
},
{
slot_62_24_0,
slot_62_24_0
}
}
for iter_62_2, iter_62_3 in ipairs(slot_62_25_0) do
slot_62_31_0 = iter_62_3[1]
slot_62_32_0 = iter_62_3[2]
slot_62_3_0:add_text(draw.vec2(slot_62_20_0.x + slot_62_31_0, slot_62_20_0.y + slot_62_32_0), slot_62_22_0, slot_62_23_0, slot_62_7_0)
end
slot_62_3_0:add_text(slot_62_20_0, slot_62_22_0, draw.color(slot_0_151_0[slot_62_16_0]:get_r(), slot_0_151_0[slot_62_16_0]:get_g(), slot_0_151_0[slot_62_16_0]:get_b(), slot_62_18_0), slot_62_7_0)
end
end
end
slot_62_3_0.g.anti_alias = false
end
function Event(arg_64_0)
local var_64_0 = arg_64_0:get_name()
if var_64_0 == "round_start" or var_64_0 == "game_newmap" or var_64_0 == "map_shutdown" then
slot_0_146_0 = {}
slot_0_147_0 = {}
elseif var_64_0 == "molotov_detonate" and slot_0_47_0:get_value():get() then
local var_64_1 = arg_64_0:get_float("x")
local var_64_2 = arg_64_0:get_float("y")
local var_64_3 = arg_64_0:get_float("z")
slot_0_152_0({
var_64_1,
var_64_2,
var_64_3
}, 1)
elseif var_64_0 == "smokegrenade_detonate" and slot_0_48_0:get_value():get() then
local var_64_4 = arg_64_0:get_float("x")
local var_64_5 = arg_64_0:get_float("y")
local var_64_6 = arg_64_0:get_float("z")
slot_0_152_0({
var_64_4,
var_64_5,
var_64_6
}, 0)
elseif var_64_0 == "hegrenade_detonate" and slot_0_49_0:get_value():get() then
local var_64_7 = arg_64_0:get_float("x")
local var_64_8 = arg_64_0:get_float("y")
local var_64_9 = arg_64_0:get_float("z")
slot_0_152_0({
var_64_7,
var_64_8,
var_64_9
}, 2)
elseif var_64_0 == "inferno_extinguish" and slot_0_47_0:get_value():get() then
local var_64_10 = arg_64_0:get_float("x")
local var_64_11 = arg_64_0:get_float("y")
local var_64_12 = arg_64_0:get_float("z")
for iter_64_0 = #slot_0_146_0, 1, -1 do
local var_64_13 = slot_0_146_0[iter_64_0]
local var_64_14 = var_64_13[1]
local var_64_15 = var_64_13[4]
local var_64_16 = vector(var_64_14[1], var_64_14[2], var_64_14[3])
if var_64_15 == 1 and var_64_16:dist(vector(var_64_10, var_64_11, var_64_12)) < 40 then
table.remove(slot_0_146_0, iter_64_0)
end
end
end
end
slot_0_154_0 = {}
function slot_0_155_0()
if not slot_0_14_0:get_value():get() then
return
end
slot_0_42_0()
slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
slot_0_154_0 = {}
if not entities.get_local_controller() then
return
end
entities.players:for_each(function(arg_66_0)
local var_66_0 = arg_66_0.entity:to_player_pawn()
if var_66_0 and not var_66_0:is_alive() and not var_66_0:is_enemy() then
local var_66_1 = var_66_0:get_name()
if var_66_1 then
table.insert(slot_0_154_0, var_66_1)
end
end
end)
local var_65_0 = draw.color(255, 255, 255, 255)
local var_65_1 = draw.color(0, 0, 0, 120)
draw.surface.font = draw.fonts.gui_debug
local var_65_2 = slot_0_0_0 - slot_0_41_0(20)
local var_65_3 = slot_0_41_0(5)
local var_65_4 = slot_0_41_0(1)
local var_65_5 = {
{
x = var_65_4,
y = var_65_4
},
{
x = -var_65_4,
y = var_65_4
},
{
x = var_65_4,
y = -var_65_4
},
{
x = -var_65_4,
y = -var_65_4
},
{
x = 0,
y = var_65_4
},
{
y = 0,
x = var_65_4
},
{
y = 0,
x = -var_65_4
},
{
x = 0,
y = -var_65_4
}
}
local var_65_6 = draw.text_params.with_h(draw.text_alignment.right)
local function var_65_7(arg_67_0, arg_67_1, arg_67_2)
if string.len(arg_67_0) > 25 then
arg_67_0 = string.sub(arg_67_0, 1, 17) .. "..."
end
for iter_67_0, iter_67_1 in ipairs(var_65_5) do
draw.surface:add_text(draw.vec2(arg_67_1 + iter_67_1.x, arg_67_2 + iter_67_1.y), arg_67_0, var_65_1, var_65_6)
end
draw.surface:add_text(draw.vec2(arg_67_1, arg_67_2), arg_67_0, var_65_0, var_65_6)
end
if #slot_0_154_0 > 0 then
local var_65_8 = var_65_3 + slot_0_41_0(20) + slot_0_41_0(15)
for iter_65_0, iter_65_1 in ipairs(slot_0_154_0) do
var_65_7(iter_65_1, var_65_2, var_65_8)
var_65_8 = var_65_8 + slot_0_41_0(15)
end
end
end
slot_0_156_0 = 8
slot_0_157_0 = 3
slot_0_158_0 = 2
slot_0_159_0 = draw.color(255, 255, 255, 255)
slot_0_160_0 = {}
-- ДОБАВЛЯЕМ ЧЕКБОКС ДЛЯ ВКЛЮЧЕНИЯ/ВЫКЛЮЧЕНИЯ УРОНА
slot_0_175_0 = gui.checkbox(gui.control_id("Enable Damage Numbers"))
misc_group:Add(gui.MakeControl("Damage Numbers", slot_0_175_0))
slot_0_175_0:set_value(true) -- по умолчанию включено
-- НОВАЯ ФУНКЦИЯ ДЛЯ ПОЛУЧЕНИЯ ПОЗИЦИИ ХИТБОКСА
function slot_0_164_0(arg_68_0, arg_68_1)
if entities.get_hitbox_position then
local var_68_0, var_68_1 = pcall(entities.get_hitbox_position, arg_68_0, arg_68_1)
if var_68_0 and var_68_1 then
return var_68_1
end
end
if arg_68_0.get_hitbox_position then
local var_68_2, var_68_3 = pcall(arg_68_0.get_hitbox_position, arg_68_0, arg_68_1)
if var_68_2 and var_68_3 then
return var_68_3
end
end
if arg_68_0.get_bone_position then
local var_68_4 = slot_0_163_0[arg_68_1]
if var_68_4 then
local var_68_5, var_68_6 = pcall(arg_68_0.get_bone_position, arg_68_0, var_68_4)
if var_68_5 and var_68_6 then
return var_68_6
end
end
end
local var_68_7 = arg_68_0:get_abs_origin()
return vector(var_68_7.x, var_68_7.y, var_68_7.z + (slot_0_162_0[arg_68_1] or 0))
end
-- НОВЫЙ ОБРАБОТЧИК player_hurt (сохраняет данные всегда, но отрисовка будет по чекбоксу)
events.event:add(function(arg_69_0)
if not slot_0_15_0:get_value():get() then
return
end
if arg_69_0:get_name() ~= "player_hurt" then
return
end
local var_69_0 = arg_69_0:get_controller("attacker")
local var_69_1 = arg_69_0:get_controller("userid")
local var_69_2 = arg_69_0:get_int("hitbox")
local var_69_3 = arg_69_0:get_int("dmg_health")
if not var_69_0 or not var_69_1 then
return
end
if var_69_0 ~= entities.get_local_controller() or not var_69_1:is_enemy() then
return
end
local var_69_5 = var_69_1:get_pawn()
if not var_69_5 then
return
end
local var_69_6 = slot_0_164_0(var_69_5, var_69_2)
table.insert(slot_0_160_0, {
pos = var_69_6,
time = game.global_vars.real_time,
damage = var_69_3
})
end)
local clantag_cache = ""
local pnd_animation = {
"PND",
"PND.",
"PND.l",
"PND.lu",
"PND.lua",
"PND.lua ",
"PND.lua",
"PND.lu",
"PND.l",
"PND.",
"PND"
}
local function set_clantag(name)
if clantag_cache == name then
return
end
game.engine:ClientCmd('setinfo name "' .. name .. '"')
clantag_cache = name
end
events.present_queue:add(function()
if not game.engine:is_connected() then
return
end
if not cbx_clantag then
return
end
local mode = cbx_clantag:get_value():get()
if mode ~= 2 then
return
end
local frame =
math.floor(game.global_vars.real_time * 3)
% #pnd_animation + 1
set_clantag(
pnd_animation[frame]
)
end)
-- НОВАЯ ОТРИСОВКА ХИТМАРКЕРА С АНИМАЦИЕЙ
events.present_queue:add(function()
if not slot_0_15_0:get_value():get() then
return
end
slot_0_42_0()
slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
local var_70_0 = game.global_vars.real_time
local var_70_1 = slot_0_51_0:get_value():get()
local var_70_2 = draw.surface
local var_70_3 = slot_0_41_0(slot_0_156_0)
local var_70_4 = slot_0_41_0(slot_0_157_0)
local var_70_5 = slot_0_41_0(slot_0_158_0)
-- Проверяем включен ли показ урона
local var_70_6 = slot_0_175_0:get_value():get()
-- Жирный шрифт для цифр
var_70_2.font = draw.fonts.gui_bold
-- Параметры анимации
local var_70_7 = 1.5 -- общая длительность
local var_70_8 = 50 -- на сколько пикселей улетает вверх
local var_70_9 = 0.2 -- время появления
local var_70_10 = 0.7 -- время начала исчезновения
for iter_70_0 = #slot_0_160_0, 1, -1 do
local var_70_11 = slot_0_160_0[iter_70_0]
local var_70_12 = var_70_0 - var_70_11.time
-- Удаляем если время вышло
if var_70_12 > var_70_7 then
table.remove(slot_0_160_0, iter_70_0)
else
local var_70_13 = math.world_to_screen(var_70_11.pos)
if var_70_13 then
-- Прогресс анимации
local var_70_14 = var_70_12 / var_70_7
-- Плавное появление
local var_70_15 = math.min(var_70_12 / var_70_9, 1)
local var_70_16 = var_70_15 * var_70_15 * (3 - 2 * var_70_15)
-- Улетает вверх
local var_70_17 = var_70_14 * var_70_14 * var_70_8
-- Прозрачность
local var_70_18
if var_70_14 < var_70_10 then
var_70_18 = 255
else
local var_70_19 = (var_70_14 - var_70_10) / (1 - var_70_10)
var_70_18 = 255 * (1 - var_70_19 * var_70_19)
end
var_70_18 = math.max(0, math.min(255, var_70_18))
-- Рисуем хитмаркер (всегда)
local var_70_20 = math.floor(var_70_18 * 0.8)
local var_70_21 = draw.color(255, 255, 255, var_70_20)
var_70_2:add_line(draw.vec2(var_70_13.x - var_70_3, var_70_13.y - var_70_3), draw.vec2(var_70_13.x - var_70_4, var_70_13.y - var_70_4), var_70_21, var_70_5)
var_70_2:add_line(draw.vec2(var_70_13.x + var_70_4, var_70_13.y + var_70_4), draw.vec2(var_70_13.x + var_70_3, var_70_13.y + var_70_3), var_70_21, var_70_5)
var_70_2:add_line(draw.vec2(var_70_13.x + var_70_3, var_70_13.y - var_70_3), draw.vec2(var_70_13.x + var_70_4, var_70_13.y - var_70_4), var_70_21, var_70_5)
var_70_2:add_line(draw.vec2(var_70_13.x - var_70_4, var_70_13.y + var_70_4), draw.vec2(var_70_13.x - var_70_3, var_70_13.y + var_70_3), var_70_21, var_70_5)
-- Рисуем цифры урона ТОЛЬКО если чекбокс включен
if var_70_6 then
local var_70_22 = var_70_11.damage or 0
local var_70_23 = tostring("-" .. var_70_22)
local var_70_24 = var_70_2.font:get_text_size(var_70_23).x
local var_70_25 = var_70_2.font:get_text_size(var_70_23).y
local var_70_26 = draw.vec2(
var_70_13.x - var_70_24 / 2,
var_70_13.y - var_70_3 - var_70_25 - slot_0_41_0(5) - var_70_17
)
local var_70_27 = math.floor(var_70_18)
local var_70_28
if var_70_22 >= 100 then
var_70_28 = draw.color(255, 50, 50, var_70_27)
elseif var_70_22 >= 50 then
var_70_28 = draw.color(255, 200, 50, var_70_27)
else
var_70_28 = draw.color(255, 255, 255, var_70_27)
end
var_70_2:add_text(var_70_26, var_70_23, var_70_28)
end
end
end
end
end)
-- ===== LOW HP EFFECT (постоянная яркость) =====
slot_0_700_0 = gui.checkbox(gui.control_id("Enable Low HP Effect"))
visuals_group:Add(gui.MakeControl("Low HP Effect", slot_0_700_0))
slot_0_700_0:set_value(true)
slot_0_701_0 = gui.slider(gui.control_id("Low HP Threshold"), 10, 50, 1)
visuals_group:Add(gui.MakeControl("HP Threshold", slot_0_701_0))
slot_0_701_0:get_value():set(25)
events.present_queue:add(function()
if not slot_0_700_0:get_value():get() then
return
end
local var_200_0 = entities.get_local_pawn()
if not var_200_0 or not var_200_0:is_alive() then
return
end
local var_200_1 = var_200_0.m_iHealth
if not var_200_1 then
return
end
local var_200_2 = var_200_1:get() or 100
local var_200_3 = slot_0_701_0:get_value():get() or 25
if var_200_2 > var_200_3 then
return
end
slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
local var_200_4 = draw.surface
-- ===== ПОСТОЯННАЯ ЯРКОСТЬ (НЕ ЗАВИСИТ ОТ HP) =====
local var_200_5 = 65 -- Всегда максимальная яркость
local var_200_6 = math.floor(var_200_5 * 0.5)
-- ===== 1. КРАСНАЯ ТЕНЬ ПО КРАЯМ =====
local var_200_7 = var_200_6
local var_200_8 = math.floor(slot_0_0_0 * 0.12)
-- Верх
for iter_200_0 = 0, var_200_8 do
local var_200_9 = iter_200_0 / var_200_8
local var_200_10 = math.floor(var_200_7 * (1 - var_200_9))
var_200_4:add_line(
draw.vec2(0, iter_200_0),
draw.vec2(slot_0_0_0, iter_200_0),
draw.color(255, 0, 0, var_200_10),
slot_0_41_0(1)
)
end
-- Низ
for iter_200_1 = 0, var_200_8 do
local var_200_11 = iter_200_1 / var_200_8
local var_200_12 = math.floor(var_200_7 * (1 - var_200_11))
var_200_4:add_line(
draw.vec2(0, slot_0_1_0 - iter_200_1),
draw.vec2(slot_0_0_0, slot_0_1_0 - iter_200_1),
draw.color(255, 0, 0, var_200_12),
slot_0_41_0(1)
)
end
-- Лево
for iter_200_2 = 0, var_200_8 do
local var_200_13 = iter_200_2 / var_200_8
local var_200_14 = math.floor(var_200_7 * (1 - var_200_13))
var_200_4:add_line(
draw.vec2(iter_200_2, 0),
draw.vec2(iter_200_2, slot_0_1_0),
draw.color(255, 0, 0, var_200_14),
slot_0_41_0(1)
)
end
-- Право
for iter_200_3 = 0, var_200_8 do
local var_200_15 = iter_200_3 / var_200_8
local var_200_16 = math.floor(var_200_7 * (1 - var_200_15))
var_200_4:add_line(
draw.vec2(slot_0_0_0 - iter_200_3, 0),
draw.vec2(slot_0_0_0 - iter_200_3, slot_0_1_0),
draw.color(255, 0, 0, var_200_16),
slot_0_41_0(1)
)
end
-- ===== 2. ЗАТЕМНЕНИЕ =====
var_200_4:add_rect_filled(
draw.rect(0, 0, slot_0_0_0, slot_0_1_0),
draw.color(255, 0, 0, math.floor(var_200_5 * 0.1))
)
-- ===== 3. НАДПИСЬ "WARNING, LOW HP!" НИЖЕ ПРИЦЕЛА =====
local var_200_17 = "⚠ WARNING, LOW HP! ⚠"
var_200_4.font = draw.fonts.gui_bold
local var_200_18 = var_200_4.font:get_text_size(var_200_17).x
local var_200_19 = var_200_4.font:get_text_size(var_200_17).y
local var_200_20 = game.global_vars.real_time
local var_200_21 = (math.sin(var_200_20 * 3) + 1) / 2
local var_200_22 = math.floor(180 + var_200_21 * 75)
local var_200_23 = slot_0_0_0 / 2 - var_200_18 / 2
local var_200_24 = slot_0_1_0 / 2 + slot_0_41_0(90)
-- Тень
var_200_4:add_text(
draw.vec2(var_200_23 + 2, var_200_24 + 2),
var_200_17,
draw.color(0, 0, 0, math.floor(var_200_22 * 0.5))
)
-- Основной текст
var_200_4:add_text(
draw.vec2(var_200_23, var_200_24),
var_200_17,
draw.color(255, 50, 50, var_200_22)
)
-- Красная линия под текстом
var_200_4:add_line(
draw.vec2(var_200_23, var_200_24 + var_200_19 + 5),
draw.vec2(var_200_23 + var_200_18, var_200_24 + var_200_19 + 5),
draw.color(255, 0, 0, math.floor(var_200_22 * 0.4)),
slot_0_41_0(2)
)
end)
-- ===== KILL LOG =====
slot_0_800_0 = gui.checkbox(gui.control_id("Enable Kill Log"))
visuals_group:Add(gui.MakeControl("Kill Log", slot_0_800_0))
slot_0_800_0:set_value(true)
slot_0_801_0 = gui.slider(gui.control_id("Kill Log Duration"), 1, 10, 1)
visuals_group:Add(gui.MakeControl("Duration (seconds)", slot_0_801_0))
slot_0_801_0:get_value():set(3)
slot_0_802_0 = {}
-- ===== ПОСЛЕДНИЙ ВРАГ ДЛЯ МИССОВ =====
slot_0_805_0 = nil
slot_0_806_0 = "body"
-- ===== ОБРАБОТЧИК ВЫСТРЕЛОВ =====
events.event:add(function(arg_500_0)
if not slot_0_800_0:get_value():get() then
return
end
if arg_500_0:get_name() ~= "weapon_fire" then
return
end
local var_500_0 = arg_500_0:get_controller("userid")
if var_500_0 ~= entities.get_local_controller() then
return
end
-- Сохраняем цель для мисса (если была)
-- Берем ближайшего врага
local var_500_1 = entities.get_local_pawn()
if var_500_1 then
local var_500_2 = var_500_1:get_abs_origin()
local var_500_3 = nil
local var_500_4 = 9999
entities.players:for_each(function(arg_510_0)
local var_510_0 = arg_510_0.entity:to_player_pawn()
if var_510_0 and var_510_0:is_alive() and var_510_0:is_enemy() then
local var_510_1 = var_510_0:get_abs_origin()
local var_510_2 = var_500_2:dist(var_510_1)
if var_510_2 < var_500_4 then
var_500_4 = var_510_2
var_500_3 = var_510_0
end
end
end)
if var_500_3 then
slot_0_805_0 = var_500_3:get_name() or "enemy"
-- Определяем часть тела для мисса (по умолчанию body)
slot_0_806_0 = "body"
end
end
end)
-- ===== СЧИТАЕМ ВЫСТРЕЛЫ =====
slot_0_803_0 = 0
slot_0_804_0 = 0
events.event:add(function(arg_501_0)
if not slot_0_800_0:get_value():get() then
return
end
if arg_501_0:get_name() == "weapon_fire" then
local var_501_0 = arg_501_0:get_controller("userid")
if var_501_0 == entities.get_local_controller() then
slot_0_803_0 = slot_0_803_0 + 1
end
end
end)
-- ===== СЧИТАЕМ ПОПАДАНИЯ (запоминаем часть тела) =====
events.event:add(function(arg_502_0)
if not slot_0_800_0:get_value():get() then
return
end
if arg_502_0:get_name() ~= "player_hurt" then
return
end
local var_502_0 = arg_502_0:get_controller("attacker")
if var_502_0 ~= entities.get_local_controller() then
return
end
slot_0_804_0 = slot_0_804_0 + 1
-- Запоминаем часть тела для попадания
local var_502_1 = arg_502_0:get_int("hitgroup")
if var_502_1 == 1 then
slot_0_806_0 = "head"
elseif var_502_1 == 2 then
slot_0_806_0 = "chest"
elseif var_502_1 == 3 then
slot_0_806_0 = "stomach"
elseif var_502_1 == 4 or var_502_1 == 5 then
slot_0_806_0 = "arm"
elseif var_502_1 == 6 or var_502_1 == 7 then
slot_0_806_0 = "leg"
else
slot_0_806_0 = "body"
end
end)
-- ===== ОБРАБОТЧИК УБИЙСТВ =====
events.event:add(function(arg_200_0)
if not slot_0_800_0:get_value():get() then
return
end
if arg_200_0:get_name() ~= "player_hurt" then
return
end
local var_200_0 = arg_200_0:get_controller("attacker")
local var_200_1 = arg_200_0:get_controller("userid")
local var_200_2 = arg_200_0:get_int("health")
local var_200_3 = arg_200_0:get_int("dmg_health")
local var_200_4 = arg_200_0:get_int("hitgroup")
if not var_200_0 or not var_200_1 then
return
end
if var_200_0 ~= entities.get_local_controller() then
return
end
if not var_200_1:is_enemy() then
return
end
if var_200_2 <= 0 then
local var_200_5 = var_200_1:get_name() or "Unknown"
local var_200_6 = entities.get_local_controller():get_name() or "You"
local var_200_7 = ""
if var_200_4 == 1 then
var_200_7 = "head"
elseif var_200_4 == 2 then
var_200_7 = "chest"
elseif var_200_4 == 3 then
var_200_7 = "stomach"
elseif var_200_4 == 4 or var_200_4 == 5 then
var_200_7 = "arm"
elseif var_200_4 == 6 or var_200_4 == 7 then
var_200_7 = "leg"
else
var_200_7 = "body"
end
local var_200_8 = string.format("Killed %s by %s in %s (%d)", var_200_5, var_200_6, var_200_7, var_200_3)
table.insert(slot_0_802_0, {
text = var_200_8,
time = game.global_vars.real_time,
alpha = 0,
y_offset = 60,
color = draw.color(255, 255, 255, 255)
})
if #slot_0_802_0 > 5 then
table.remove(slot_0_802_0, 1)
end
end
end)
-- ===== СБРОС СЧЁТЧИКОВ ПРИ РАУНДЕ =====
events.event:add(function(arg_503_0)
if arg_503_0:get_name() == "round_start" then
slot_0_803_0 = 0
slot_0_804_0 = 0
slot_0_805_0 = nil
end
end)
-- ===== ПРОВЕРКА МИССОВ (каждый кадр) =====
events.present_queue:add(function()
if not slot_0_800_0:get_value():get() then
return
end
if slot_0_803_0 > slot_0_804_0 then
local var_504_0 = slot_0_803_0 - slot_0_804_0
if var_504_0 > 0 then
local var_504_1 = slot_0_805_0 or "enemy"
local var_504_2 = slot_0_806_0 or "body"
local var_504_3 = string.format("Missed %s in %s", var_504_1, var_504_2)
table.insert(slot_0_802_0, {
text = var_504_3,
time = game.global_vars.real_time,
alpha = 0,
y_offset = 60,
color = draw.color(255, 0, 0, 255)
})
slot_0_804_0 = slot_0_803_0
if #slot_0_802_0 > 5 then
table.remove(slot_0_802_0, 1)
end
end
end
end)
-- ===== СОЗДАЁМ БОЛЬШОЙ ШРИФТ ДЛЯ KILL LOG =====
if not kill_log_big_font then
kill_log_big_font = draw.font_gdi("SF UI Display", slot_0_41_0(16), bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))
kill_log_big_font:create()
end
-- ===== ОТРИСОВКА =====
events.present_queue:add(function()
if not slot_0_800_0:get_value():get() then
return
end
if #slot_0_802_0 == 0 then
return
end
slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
local var_201_0 = draw.surface
local var_201_1 = game.global_vars.real_time
local var_201_2 = slot_0_801_0:get_value():get() or 3
var_201_0.font = kill_log_big_font -- ← ИСПОЛЬЗУЕМ БОЛЬШОЙ ШРИФТ
local var_201_3 = slot_0_0_0 / 2
local var_201_4 = slot_0_1_0 / 2 + slot_0_41_0(130)
local var_201_5 = slot_0_41_0(12)
local var_201_6 = slot_0_41_0(10)
local var_201_7 = slot_0_41_0(2)
-- ===== ЦВЕТ ПОЛОСКИ ИЗ OVERRIDE COLOR =====
local accent = slot_0_44_0:get_value():get()
local accent_color = draw.color(accent:get_r(), accent:get_g(), accent:get_b(), 255)
for iter_201_0 = #slot_0_802_0, 1, -1 do
local var_201_8 = slot_0_802_0[iter_201_0]
local var_201_9 = var_201_1 - var_201_8.time
if var_201_9 > var_201_2 then
table.remove(slot_0_802_0, iter_201_0)
else
if var_201_9 < 0.3 then
local var_201_10 = var_201_9 / 0.3
var_201_8.alpha = math.floor(var_201_10 * 255)
var_201_8.y_offset = math.floor(60 * (1 - var_201_10))
else
var_201_8.alpha = 255
var_201_8.y_offset = 0
end
if var_201_9 > var_201_2 - 0.3 then
local var_201_11 = (var_201_9 - (var_201_2 - 0.3)) / 0.3
var_201_8.alpha = math.floor(255 * (1 - var_201_11))
var_201_8.y_offset = math.floor(60 * var_201_11)
end
local var_201_12 = math.max(0, math.min(255, var_201_8.alpha))
local var_201_13 = var_201_8.text
local var_201_14 = var_201_0.font:get_text_size(var_201_13).x
local var_201_15 = var_201_0.font:get_text_size(var_201_13).y
local var_201_16 = var_201_14 + var_201_5 * 2 + var_201_7 + 2
local var_201_17 = var_201_15 + var_201_5 * 2
local var_201_18 = var_201_3 - var_201_16 / 2
local var_201_19 = var_201_4 - (iter_201_0 - 1) * (var_201_17 + slot_0_41_0(5)) + var_201_8.y_offset
local bg_color = draw.color(15, 15, 15, math.floor(var_201_12 * 0.8))
-- ===== ПОЛОСКА ЦВЕТОМ ИЗ OVERRIDE COLOR =====
local line_color = draw.color(accent:get_r(), accent:get_g(), accent:get_b(), math.floor(var_201_12 * 0.9))
-- ===== ФОН =====
var_201_0.g.anti_alias = true
var_201_0:add_rect_filled_rounded(
draw.rect(var_201_18, var_201_19, var_201_18 + var_201_16, var_201_19 + var_201_17),
bg_color,
var_201_6
)
-- ===== ПОЛОСКА СЛЕВА (цвет из Override Color) =====
var_201_0:add_rect_filled_rounded(
draw.rect(var_201_18, var_201_19, var_201_18 + var_201_7 + var_201_6 - 6, var_201_19 + var_201_17),
line_color,
var_201_6
)
-- ===== НАКЛАДЫВАЕМ ПОВЕРХ ПРАВУЮ ЧАСТЬ ПОЛОСКИ =====
var_201_0:add_rect_filled(
draw.rect(var_201_18 + var_201_6 - 6, var_201_19, var_201_18 + var_201_7 + var_201_6 - 5, var_201_19 + var_201_17),
line_color
)
var_201_0.g.anti_alias = false
-- ===== ЦВЕТ ТЕКСТА =====
local var_201_text_color = var_201_8.color or draw.color(255, 255, 255, 255)
-- ===== ТЕКСТ =====
local var_201_24 = var_201_18 + var_201_5 + var_201_7 + 2
local var_201_25 = var_201_19 + var_201_5
var_201_0:add_text(
draw.vec2(var_201_24 + 1, var_201_25 + 1),
var_201_13,
draw.color(0, 0, 0, math.floor(var_201_12 * 0.3))
)
var_201_0:add_text(
draw.vec2(var_201_24, var_201_25),
var_201_13,
draw.color(
var_201_text_color:get_r(),
var_201_text_color:get_g(),
var_201_text_color:get_b(),
var_201_12
)
)
end
end
end)
-- ===== HEADSHOT INDICATOR =====
slot_0_300_0 = gui.checkbox(gui.control_id("Enable Headshot Indicator"))
visuals_group:Add(gui.MakeControl("Headshot Indicator", slot_0_300_0))
slot_0_300_0:set_value(true)
slot_0_301_0 = gui.slider(gui.control_id("Headshot Effect Duration"), 1, 10, 1)
visuals_group:Add(gui.MakeControl("Effect Duration", slot_0_301_0))
slot_0_301_0:get_value():set(1)
slot_0_302_0 = 0
slot_0_303_0 = false
-- СОЗДАЕМ ШРИФТ (БЕЗ bold, просто жирный через настройки)
slot_0_304_0 = draw.font_gdi("Verdana", 60, bit.bor(draw.font_flags.anti_alias, draw.font_flags.no_dpi))
slot_0_304_0:create()
events.event:add(function(arg_90_0)
if not slot_0_300_0:get_value():get() then
return
end
if arg_90_0:get_name() ~= "player_hurt" then
return
end
local var_90_0 = arg_90_0:get_controller("attacker")
local var_90_1 = arg_90_0:get_controller("userid")
local var_90_2 = arg_90_0:get_int("hitgroup")
if not var_90_0 or not var_90_1 then
return
end
if var_90_0 ~= entities.get_local_controller() then
return
end
if not var_90_1:is_enemy() then
return
end
if var_90_2 == 1 then
slot_0_302_0 = game.global_vars.real_time
slot_0_303_0 = true
end
end)
events.present_queue:add(function()
if not slot_0_300_0:get_value():get() then
return
end
if not slot_0_303_0 then
return
end
slot_0_42_0()
slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
local var_91_0 = game.global_vars.real_time
local var_91_1 = slot_0_301_0:get_value():get() or 3
local var_91_2 = var_91_0 - slot_0_302_0
local var_91_3 = var_91_2 / var_91_1
-- ПЛАВНОСТЬ: smoothstep
local var_91_4 = var_91_3 * var_91_3 * (3 - 2 * var_91_3)
if var_91_4 > 1 then
var_91_4 = 1
end
if var_91_3 > 1 then
slot_0_303_0 = false
return
end
local var_91_5 = draw.surface
local var_91_6 = math.floor(255 * (1 - var_91_3))
-- ===== 1. КРАСНАЯ ВИНЬЕТКА =====
local var_91_7 = math.floor(var_91_6 * 0.5)
local var_91_8 = math.floor(slot_0_0_0 * 0.15)
for iter_91_0 = 0, var_91_8 do
local var_91_9 = iter_91_0 / var_91_8
local var_91_10 = math.floor(var_91_7 * (1 - var_91_9))
var_91_5:add_line(
draw.vec2(0, iter_91_0),
draw.vec2(slot_0_0_0, iter_91_0),
draw.color(255, 255, 255, var_91_10),
slot_0_41_0(1)
)
end
for iter_91_1 = 0, var_91_8 do
local var_91_11 = iter_91_1 / var_91_8
local var_91_12 = math.floor(var_91_7 * (1 - var_91_11))
var_91_5:add_line(
draw.vec2(0, slot_0_1_0 - iter_91_1),
draw.vec2(slot_0_0_0, slot_0_1_0 - iter_91_1),
draw.color(255, 255, 255, var_91_12),
slot_0_41_0(1)
)
end
for iter_91_2 = 0, var_91_8 do
local var_91_13 = iter_91_2 / var_91_8
local var_91_14 = math.floor(var_91_7 * (1 - var_91_13))
var_91_5:add_line(
draw.vec2(iter_91_2, 0),
draw.vec2(iter_91_2, slot_0_1_0),
draw.color(255, 255, 255, var_91_14),
slot_0_41_0(1)
)
end
for iter_91_3 = 0, var_91_8 do
local var_91_15 = iter_91_3 / var_91_8
local var_91_16 = math.floor(var_91_7 * (1 - var_91_15))
var_91_5:add_line(
draw.vec2(slot_0_0_0 - iter_91_3, 0),
draw.vec2(slot_0_0_0 - iter_91_3, slot_0_1_0),
draw.color(255, 0, 0, var_91_16),
slot_0_41_0(1)
)
end
-- ===== 2. ЗАТЕМНЕНИЕ =====
var_91_5:add_rect_filled(
draw.rect(0, 0, slot_0_0_0, slot_0_1_0),
draw.color(255, 0, 0, math.floor(var_91_6 * 0.15))
)
-- ===== 3. ТЕКСТ "HEADSHOT" С ПЛАВНЫМ ВЫЛЕТОМ =====
local var_91_17 = "HEADSHOT"
var_91_5.font = slot_0_304_0
local var_91_18 = var_91_5.font:get_text_size(var_91_17).x
local var_91_19 = var_91_5.font:get_text_size(var_91_17).y
-- ПРОСТОЙ ВЫЛЕТ СНИЗУ (БЫСТРЕЕ И НИЖЕ)
local var_91_21 = math.floor(255 * (1 - var_91_3 * 0.1))
-- Ускоряем анимацию (var_91_4 умножаем на 1.5, но ограничиваем 1)
local var_91_4_fast = math.min(var_91_4 * 3, 3)
-- Позиция: стартует ниже экрана и быстро вылетает
local var_91_22 = slot_0_1_0 + var_91_19 - (slot_0_1_0 + var_91_19 * 2) * var_91_4_fast
-- ===== ЖИРНЫЙ ТЕКСТ (несколько слоев) =====
-- Тень 1
var_91_5:add_text(
draw.vec2(slot_0_0_0/2 - var_91_18/2 + 6, var_91_22 + 6),
var_91_17,
draw.color(100, 0, 0, math.floor(var_91_21 * 0.6))
)
-- Тень 2
var_91_5:add_text(
draw.vec2(slot_0_0_0/2 - var_91_18/2 + 3, var_91_22 + 3),
var_91_17,
draw.color(150, 0, 0, math.floor(var_91_21 * 0.4))
)
-- Свечение (красный ореол)
var_91_5:add_text(
draw.vec2(slot_0_0_0/2 - var_91_18/2 + 5, var_91_22 + 5),
var_91_17,
draw.color(255, 0, 0, math.floor(var_91_21 * 0.2))
)
var_91_5:add_text(
draw.vec2(slot_0_0_0/2 - var_91_18/2 - 5, var_91_22 - 5),
var_91_17,
draw.color(255, 0, 0, math.floor(var_91_21 * 0.2))
)
-- Основной текст
var_91_5:add_text(
draw.vec2(slot_0_0_0/2 - var_91_18/2, var_91_22),
var_91_17,
draw.color(255, 80, 80, var_91_21)
)
-- Дополнительная жирность
var_91_5:add_text(
draw.vec2(slot_0_0_0/2 - var_91_18/2 + 1, var_91_22 + 1),
var_91_17,
draw.color(255, 60, 60, math.floor(var_91_21 * 0.7))
)
var_91_5:add_text(
draw.vec2(slot_0_0_0/2 - var_91_18/2 - 1, var_91_22 - 1),
var_91_17,
draw.color(255, 60, 60, math.floor(var_91_21 * 0.7))
)
end)
-- ===== AUTO QUICKSWITCH AFTER KILL + AUTO SCOPE (DELAY 800ms) =====
slot_0_400_0 = gui.checkbox(gui.control_id("Auto QuickSwitch After Kill"))
visuals_group:Add(gui.MakeControl("Auto QuickSwitch After Kill", slot_0_400_0))
slot_0_400_0:set_value(true)
slot_0_402_0 = 0
slot_0_403_0 = false
slot_0_404_0 = 0
events.event:add(function(arg_100_0)
if not slot_0_400_0:get_value():get() then
return
end
if arg_100_0:get_name() ~= "player_hurt" then
return
end
local var_100_0 = arg_100_0:get_controller("attacker")
local var_100_1 = arg_100_0:get_controller("userid")
local var_100_2 = arg_100_0:get_int("health")
if not var_100_0 or not var_100_1 then
return
end
if var_100_0 ~= entities.get_local_controller() then
return
end
if not var_100_1:is_enemy() then
return
end
if var_100_2 <= 0 then
slot_0_402_0 = game.global_vars.real_time
slot_0_403_0 = true
slot_0_404_0 = 0
end
end)
events.present_queue:add(function()
if not slot_0_400_0:get_value():get() then
return
end
if not slot_0_403_0 then
return
end
local var_101_0 = game.global_vars.real_time
if slot_0_404_0 == 0 then
game.engine:client_cmd("slot3")
slot_0_404_0 = 1
slot_0_402_0 = var_101_0
elseif slot_0_404_0 == 1 then
game.engine:client_cmd("slot1")
slot_0_404_0 = 2
slot_0_402_0 = var_101_0
elseif slot_0_404_0 == 2 then
-- 0.8 СЕКУНДЫ (800 мс)
if var_101_0 - slot_0_402_0 >= 1.2 then
game.engine:client_cmd("+attack2")
game.engine:client_cmd("-attack2")
slot_0_403_0 = false
slot_0_404_0 = 3
end
end
end)
-- ===== FAKE E KEY HOLD AFTER SHOOT =====
slot_0_500_0 = gui.checkbox(gui.control_id("Enable Fake E Hold"))
visuals_group:Add(gui.MakeControl("Fake E Hold After Shoot", slot_0_500_0))
slot_0_500_0:set_value(false)
slot_0_501_0 = gui.slider(gui.control_id("Hold Duration"), 100, 1000, 1)
visuals_group:Add(gui.MakeControl("Hold Duration (ms)", slot_0_501_0))
slot_0_501_0:get_value():set(100)
slot_0_502_0 = false
slot_0_503_0 = 0
-- Обработчик выстрела
events.event:add(function(arg_110_0)
if not slot_0_500_0:get_value():get() then
return
end
if arg_110_0:get_name() ~= "weapon_fire" then
return
end
local var_110_0 = arg_110_0:get_controller("userid")
local var_110_1 = entities.get_local_controller()
if not var_110_0 or not var_110_1 then
return
end
if var_110_0 ~= var_110_1 then
return
end
-- Зажимаем E
game.engine:client_cmd("+use")
slot_0_502_0 = true
slot_0_503_0 = game.global_vars.real_time
end)
-- Отпускаем E через заданное время
events.present_queue:add(function()
if not slot_0_500_0:get_value():get() then
return
end
if not slot_0_502_0 then
return
end
local var_111_0 = game.global_vars.real_time
local var_111_1 = slot_0_501_0:get_value():get() or 300
local var_111_2 = (var_111_0 - slot_0_503_0) * 1000
if var_111_2 >= var_111_1 then
game.engine:client_cmd("-use")
slot_0_502_0 = false
end
end)
slot_0_161_0 = {
RLEG = 6,
LLEG = 5,
RARM = 4,
STOMACH = 2,
LARM = 3,
CHEST = 1,
HEAD = 0
}
slot_0_162_0 = {
[slot_0_161_0.HEAD] = 70,
[slot_0_161_0.CHEST] = 50,
[slot_0_161_0.STOMACH] = 30,
[slot_0_161_0.LARM] = 50,
[slot_0_161_0.RARM] = 50,
[slot_0_161_0.LLEG] = -35,
[slot_0_161_0.RLEG] = -35
}
slot_0_163_0 = {
[slot_0_161_0.HEAD] = 6,
[slot_0_161_0.CHEST] = 4,
[slot_0_161_0.STOMACH] = 1,
[slot_0_161_0.LARM] = 13,
[slot_0_161_0.RARM] = 15,
[slot_0_161_0.LLEG] = 26,
[slot_0_161_0.RLEG] = 27
}
function slot_0_164_0(arg_68_0, arg_68_1)
if entities.get_hitbox_position then
local var_68_0, var_68_1 = pcall(entities.get_hitbox_position, arg_68_0, arg_68_1)
if var_68_0 and var_68_1 then
return var_68_1
end
end
if arg_68_0.get_hitbox_position then
local var_68_2, var_68_3 = pcall(arg_68_0.get_hitbox_position, arg_68_0, arg_68_1)
if var_68_2 and var_68_3 then
return var_68_3
end
end
if arg_68_0.get_bone_position then
local var_68_4 = slot_0_163_0[arg_68_1]
if var_68_4 then
local var_68_5, var_68_6 = pcall(arg_68_0.get_bone_position, arg_68_0, var_68_4)
if var_68_5 and var_68_6 then
return var_68_6
end
end
end
local var_68_7 = arg_68_0:get_abs_origin()
return vector(var_68_7.x, var_68_7.y, var_68_7.z + (slot_0_162_0[arg_68_1] or 0))
end
slot_0_165_0 = 67
slot_0_166_0 = 0
slot_0_167_0 = 0.1
slot_0_168_0 = 0
slot_0_169_0 = 0
slot_0_170_0 = nil
function slot_0_171_0(arg_71_0)
local var_71_0 = arg_71_0:get_active_weapon()
if not var_71_0 then
return false
end
return slot_0_62_0(var_71_0:get_id())
end
function slot_0_172_0()
slot_0_170_0 = nil
slot_0_169_0 = 0
slot_0_166_0 = 0
game.engine:client_cmd("-attack2")
end
mods.events:add_listener("round_start")
events.event:add(function(arg_73_0)
if arg_73_0:get_name() == "round_start" then
slot_0_172_0()
end
end)
mods.events:add_listener("game_newmap")
events.event:add(function(arg_74_0)
if arg_74_0:get_name() == "game_newmap" then
slot_0_172_0()
end
end)
events.present_queue:add(function()
if not slot_0_16_0:get_value():get() then
return
end
local var_75_0 = entities.get_local_pawn()
if not var_75_0 or not var_75_0:is_alive() then
if slot_0_169_0 ~= 0 then
slot_0_172_0()
end
return
end
if not slot_0_171_0(var_75_0) then
if slot_0_169_0 ~= 0 then
slot_0_172_0()
end
return
end
local var_75_1 = var_75_0:get_abs_origin()
local var_75_2 = var_75_0.m_fFlags and var_75_0.m_fFlags:get() or 0
local var_75_3 = bit.band(var_75_2, 1) == 0
local var_75_4 = var_75_3 and slot_0_165_0 - 5 or slot_0_165_0
local var_75_5
local var_75_6 = var_75_4 + 1
entities.players:for_each(function(arg_76_0)
local var_76_0 = arg_76_0.entity:to_player_pawn()
if var_76_0 and var_76_0:is_alive() and var_76_0:is_enemy() then
local var_76_1 = var_76_0:get_abs_origin()
local var_76_2 = var_75_1:dist(var_76_1)
if var_76_2 < var_75_4 and var_76_2 < var_75_6 then
var_75_6 = var_76_2
var_75_5 = var_76_0
end
end
end)
slot_0_170_0 = var_75_5
local var_75_7 = game.global_vars.real_time
if slot_0_170_0 then
local var_75_8 = var_75_0:get_eye_pos()
local var_75_9 = slot_0_170_0:get_abs_origin()
local var_75_10 = slot_0_170_0.m_vecViewOffset
local var_75_11 = var_75_9
if var_75_10 and var_75_10:get() then
var_75_11 = var_75_9 + var_75_10:get()
end
local var_75_12 = math.calc_angle(var_75_8, var_75_11)
var_75_12.x = math.angle_normalize(var_75_12.x)
var_75_12.y = math.angle_normalize(var_75_12.y)
game.input:set_view_angles(var_75_12)
local var_75_13 = var_75_3 and 0.2 or slot_0_167_0
if slot_0_169_0 == 0 then
game.engine:client_cmd("+attack2")
slot_0_166_0 = var_75_7
slot_0_169_0 = 1
elseif slot_0_169_0 == 1 then
if var_75_13 <= var_75_7 - slot_0_166_0 then
game.engine:client_cmd("-attack2")
slot_0_166_0 = var_75_7
slot_0_169_0 = 2
end
elseif slot_0_169_0 == 2 then
if var_75_7 - slot_0_166_0 >= slot_0_168_0 then
game.engine:client_cmd("+attack2")
slot_0_166_0 = var_75_7
slot_0_169_0 = 3
end
elseif slot_0_169_0 == 3 then
if var_75_13 <= var_75_7 - slot_0_166_0 then
game.engine:client_cmd("-attack2")
slot_0_166_0 = var_75_7
slot_0_169_0 = 4
end
elseif slot_0_169_0 == 4 and var_75_7 - slot_0_166_0 >= 0.1 then
slot_0_169_0 = 0
end
elseif slot_0_169_0 ~= 0 then
slot_0_172_0()
end
end)
events.event:add(function(arg_77_0)
Event(arg_77_0)
end)
events.present_queue:add(HandleNade)
events.present_queue:add(slot_0_102_0)
events.present_queue:add(slot_0_117_0)
events.present_queue:add(slot_0_155_0)
events.event:add(slot_0_113_0)
events.event:add(slot_0_114_0)
mods.events:add_listener("player_hurt")
events.present_queue:add(slot_0_145_0)
-- ============================================
-- APEX SENSE - Улучшенная водяная метка
-- Стиль: Kill Log уведомления
-- Версия: 2.0
-- ============================================
-- ===== НОВАЯ ВОДЯНАЯ МЕТКА APEX SENSE =====
function slot_0_145_0()
if not slot_0_13_0:get_value():get() and not slot_0_105_0.watermark then
return
end
slot_0_42_0()
slot_0_0_0, slot_0_1_0 = game.engine:get_screen_size()
local var_58_0 = draw.surface
var_58_0.skip_dpi = true
-- Перетаскивание
if slot_0_105_0.watermark then
local var_58_1 = slot_0_7_0()
slot_0_107_0.watermark.x = var_58_1.x - slot_0_106_0.watermark.x
slot_0_107_0.watermark.y = var_58_1.y - slot_0_106_0.watermark.y
end
-- Обновляем данные
local var_58_2 = game.global_vars.real_time
local var_58_3 = slot_0_40_0()
local var_58_4 = false
local var_58_5 = slot_0_135_0()
local var_58_6 = slot_0_136_0()
local var_58_7 = slot_0_137_0()
-- Формируем сегменты Kill Log стиля
local var_58_8 = slot_0_17_0:get_value()
local var_58_9 = var_58_8 and var_58_8:get()
if var_58_9 and var_58_9.get_raw then
var_58_9 = var_58_9:get_raw()
end
if type(var_58_9) ~= "number" then
var_58_9 = slot_0_19_0
end
local function var_58_10(arg_56_0)
local var_56_0 = slot_0_20_0[arg_56_0]
if not var_56_0 then
return false
end
return bit.band(var_58_9, var_56_0) ~= 0
end
local var_58_11 = {}
local var_58_12 = 4 -- Расстояние между элементами
-- Добавляем элементы Kill Log стиля
if var_58_10("Logo") then
table.insert(var_58_11, {text = "apex", colored = false, spacing = 0})
table.insert(var_58_11, {text = "sense", colored = true, spacing = 0})
var_58_4 = true
end
if var_58_10("FPS") then
if #var_58_11 > 0 then
table.insert(var_58_11, {text = " ", colored = false, spacing = 0})
end
table.insert(var_58_11, {text = tostring(var_58_5), colored = true, spacing = 0})
table.insert(var_58_11, {text = "fps", colored = false, spacing = 0})
var_58_4 = true
end
if var_58_10("Ping") then
if #var_58_11 > 0 then
table.insert(var_58_11, {text = " ", colored = false, spacing = 0})
end
table.insert(var_58_11, {text = tostring(var_58_6), colored = true, spacing = 0})
table.insert(var_58_11, {text = " ms", colored = false, spacing = 0})
var_58_4 = true
end
if var_58_10("Clock") then
local var_58_13 = slot_0_143_0()
if var_58_13 ~= "" then
if #var_58_11 > 0 then
table.insert(var_58_11, {text = " ", colored = false, spacing = 0})
end
table.insert(var_58_11, {text = var_58_13, colored = false, spacing = 0})
var_58_4 = true
end
end
if not var_58_4 then
return
end
-- Замеряем ширину
local var_58_14 = 0
var_58_0.font = draw.fonts.gui_debug
for iter_58_0, iter_58_1 in ipairs(var_58_11) do
if iter_58_1.text and iter_58_1.text ~= "" then
var_58_14 = var_58_14 + Get_TextWidth(iter_58_1.text, var_58_0.font)
end
-- Добавляем небольшой отступ между элементами
if iter_58_0 < #var_58_11 then
var_58_14 = var_58_14 + slot_0_41_0(1)
end
end
local var_58_15 = slot_0_41_0(16) -- Высота (по умолчанию)
local var_58_16 = var_58_14 + slot_0_41_0(20) -- Ширина с отступами
local var_58_17 = slot_0_41_0(8) -- Отступ слева/справа
-- Проверяем позицию
if slot_0_108_0 then
slot_0_107_0.watermark.x = slot_0_0_0 - var_58_16 - slot_0_41_0(10)
slot_0_107_0.watermark.y = slot_0_41_0(10)
end
slot_0_107_0.watermark.x = math.max(0, math.min(slot_0_107_0.watermark.x, slot_0_0_0 - var_58_16))
slot_0_107_0.watermark.y = math.max(0, math.min(slot_0_107_0.watermark.y, slot_0_1_0 - var_58_15))
local var_58_18 = slot_0_44_0:get_value():get()
local var_58_19 = draw.color(var_58_18:get_r(), var_58_18:get_g(), var_58_18:get_b(), 255)
-- ===== РИСУЕМ ВОДЯНУЮ МЕТКУ APEX SENSE =====
-- 1. ФОН
local var_58_20 = 25
local var_58_21 = 100
local var_58_22 = 20
var_58_0.g.anti_alias = true
var_58_0:add_rect_filled_rounded(
draw.rect(slot_0_107_0.watermark.x, slot_0_107_0.watermark.y, slot_0_107_0.watermark.x + var_58_16, slot_0_107_0.watermark.y + var_58_15),
draw.color(var_58_20, var_58_20, var_58_20, var_58_21),
var_58_22
)
-- 2. КРУЖОЧКИ И ТЕКСТ
local var_58_23 = slot_0_107_0.watermark.x + slot_0_41_0(8)
local var_58_24 = slot_0_107_0.watermark.y + slot_0_41_0(6)
local var_58_25 = slot_0_41_0(8) -- Радиус кружочка
local var_58_26 = slot_0_41_0(4) -- Отступ перед кружочком
local var_58_27 = false -- Флаг, что мы только что добавили кружочек
-- Отрисовываем каждый сегмент
for iter_58_2, iter_58_3 in ipairs(var_58_11) do
if iter_58_3.text and iter_58_3.text ~= "" then
local var_58_28 = iter_58_3.colored and var_58_19 or draw.color(255, 255, 255, 255)
local var_58_29 = var_58_0.font:get_text_size(iter_58_3.text)
-- Проверяем, нужно ли рисовать кружочек
if iter_58_3.text == " " then
-- Это разделитель - рисуем кружочек
local var_58_30 = draw.color(var_58_18:get_r(), var_58_18:get_g(), var_58_18:get_b(), 200)
local var_58_31 = slot_0_107_0.watermark.x + var_58_23 + var_58_25
local var_58_32 = slot_0_107_0.watermark.y + var_58_15/2
var_58_0.g.anti_alias = true
var_58_0:add_circle_filled(
draw.vec2(var_58_31, var_58_32),
var_58_25,
var_58_30
)
var_58_0.g.anti_alias = false
-- Смещаем позицию после кружочка
var_58_23 = var_58_23 + var_58_25*2 + slot_0_41_0(4)
-- Если следующий элемент - текст, добавляем отступ
if iter_58_2 < #var_58_11 then
local var_58_33 = var_58_0.font:get_text_size(var_58_11[iter_58_2+1].text)
var_58_23 = var_58_23 + slot_0_41_0(4)
end
else
-- Рисуем текст
local var_58_34 = draw.color(0, 0, 0, math.floor(255 * 0.3))
var_58_0:add_text(
draw.vec2(slot_0_107_0.watermark.x + var_58_23 + 1, var_58_24 + 1),
iter_58_3.text,
var_58_34
)
var_58_0:add_text(
draw.vec2(slot_0_107_0.watermark.x + var_58_23, var_58_24),
iter_58_3.text,
var_58_28
)
-- Смещаем позицию
var_58_23 = var_58_23 + var_58_29.x + slot_0_41_0(2)
end
end
end
var_58_0.g.anti_alias = false
end
-- ===== APEX SENSE: ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ =====
print("[ApexSense] Watermark loaded successfully!")
print("[ApexSense] Style: Kill Log notifications")
print("[ApexSense] Position: Top Right")
-- ===== AUTO MINDAMAGE OVERRIDE FOR FATALITY CS2 =====
slot_0_auto_md_enable = gui.checkbox(gui.control_id("Enable Auto MinDamage Override"))
visuals_group:Add(gui.MakeControl("Auto MinDamage Override", slot_0_auto_md_enable))
slot_0_auto_md_enable:set_value(true)
slot_0_auto_md_height = gui.slider(gui.control_id("Auto MD Height Diff"), 10, 100, 5)
visuals_group:Add(gui.MakeControl("Height Difference", slot_0_auto_md_height))
slot_0_auto_md_height:get_value():set(30)
slot_0_auto_md_interval = gui.slider(gui.control_id("Auto MD Check Interval"), 100, 1000, 100)
visuals_group:Add(gui.MakeControl("Check Interval (ms)", slot_0_auto_md_interval))
slot_0_auto_md_interval:get_value():set(500)
slot_0_auto_md_last_check = 0
slot_0_auto_md_active = false
slot_0_auto_md_original = nil
-- Основной цикл
events.present_queue:add(function()
if not cbx_clantag then
return
end
local mode = cbx_clantag:get_value():get()
if mode ~= 2 then
return
end
local frame =
math.floor(game.global_vars.real_time * 3)
% #pnd_animation + 1
set_clantag(
pnd_animation[frame]
)
end)
events.present_queue:add(function()
if not slot_0_auto_md_enable:get_value():get() then
if slot_0_auto_md_active then
-- Возвращаем оригинал
local var_0 = gui.ctx:Find("rage>aimbot>general>min damage")
if var_0 and slot_0_auto_md_original then
local var_1 = var_0:get_value()
if var_1 and var_1.set then
var_1:set(slot_0_auto_md_original)
end
end
slot_0_auto_md_active = false
end
return
end
local var_2 = entities.get_local_pawn()
if not var_2 or not var_2:is_alive() then
return
end
local var_3 = game.global_vars.real_time
local var_4 = slot_0_auto_md_interval:get_value():get() / 1000
if var_3 - slot_0_auto_md_last_check < var_4 then
return
end
slot_0_auto_md_last_check = var_3
local var_5 = var_2:get_abs_origin()
local var_6 = false
local var_7 = slot_0_auto_md_height:get_value():get()
entities.players:for_each(function(arg_0)
local var_8 = arg_0.entity:to_player_pawn()
if var_8 and var_8:is_alive() and var_8:is_enemy() then
local var_9 = var_8:get_abs_origin()
local var_10 = var_5:dist(var_9)
if var_9.z > var_5.z + var_7 and var_10 < 1000 then
var_6 = true
end
end
end)
local var_11 = gui.ctx:Find("rage>aimbot>general>min damage")
if var_6 and not slot_0_auto_md_active then
-- Сохраняем и ставим 101
if var_11 then
local var_12 = var_11:get_value()
if var_12 and var_12.get then
slot_0_auto_md_original = var_12:get()
if var_12.set then
var_12:set(101)
slot_0_auto_md_active = true
end
end
end
elseif not var_6 and slot_0_auto_md_active then
-- Возвращаем оригинал
if var_11 and slot_0_auto_md_original then
local var_13 = var_11:get_value()
if var_13 and var_13.set then
var_13:set(slot_0_auto_md_original)
end
end
slot_0_auto_md_active = false
end
end)
-- Сброс при новом раунде
events.event:add(function(arg_1)
if arg_1:get_name() == "round_start" then
if slot_0_auto_md_active then
local var_14 = gui.ctx:Find("rage>aimbot>general>min damage")
if var_14 and slot_0_auto_md_original then
local var_15 = var_14:get_value()
if var_15 and var_15.set then
var_15:set(slot_0_auto_md_original)
end
end
slot_0_auto_md_active = false
end
slot_0_auto_md_last_check = 0
slot_0_auto_md_original = nil
end
end)