JS-скрипт Skeet indicators v3

покупать за 20$ а потом ликать на югейм, жалко что плохо компильнул, а так у челика с мозгом видимо не все хорошо :3
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
покупать за 20$ а потом ликать на югейм, жалко что плохо компильнул, а так у челика с мозгом видимо не все хорошо :3
бабки есть почему бы и нет мне похуй
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
можеж скинуть на ФЕЙК ИНДИКАТОР ПЛЕЗ ЧТОБЫ ЛЦ БЫЛ РЯДОМ С ФЕЙК И ДТ
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Мне нравится
Реакции: aprl
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
var menu = {};
var menu_elements = {};
const menu_spacer = " ";

/**
* Concats two elements into an array without increasing the array length.
* Prevents the memory leak in 2.0.0 from happening
*
* @param a {array}
* @param b {any}
*/
menu.concat = function(a, b)
{
// Creates a new array.
var arr = [];

// Push all items from the array 'a' into our array.
for (var c in a)
{
arr.push(a[c]);
}

// Push the value 'b' into our array.
arr.push(b);

// Return the new array.
return arr;
}

/**
* Creates a new menu label
*
* @param label {string}
*/
menu.label = function(label)
{
// Creates the label
UI.AddLabel(label);
};

/**
* Creates a new menu element
*
* @param func {function}
* @param name {string}
* @param label {string},
* @param properties {array}
*/
menu.new = function(func, name, label, properties, initial_value)
{
// Fix values
properties = properties || [];
initial_value = initial_value || undefined;

// Get properties
const final_name = name + menu_spacer + label;
var final_props = [final_name];

const element_info_t = {
path: ["Misc", "JAVASCRIPT", "Script items", final_name],
cache: initial_value,
func: func
};

// If our properties aren't null, then pack them together.
if (properties != null)
{
for (var i = 0; i < properties.length; i++)
{
final_props.push(properties);
}
}

// Create our menu element and return properties
func.apply(null, final_props);

// Initialize our menu element if it has an initializer.
if (initial_value)
{
switch (func)
{
case UI.AddColorPicker:
UI.SetColor.apply(null, this.concat(element_info_t.path, initial_value));
break;

case UI.AddHotkey:
break;

default:
UI.SetValue.apply(this, this.concat(element_info_t.path, initial_value));
break;
}
}

menu_elements[label] = element_info_t;

return element_info_t;
};

/**
* Creates a new menu reference
*
* @param path {array}
*/
menu.reference = function(path, func)
{
return {
path: path,
func: func
};
};

/**
* Gets the value of a menu element
*
* @param elem {array}
* @ReturN {*}
*/
menu.get = function(elem)
{
// If the element doesn't exist
if (!(elem.path))
throw new Error("[Menu] This element doesn't exist!");

// Returns the element's value
switch (elem.func)
{
case UI.AddColorPicker:
return UI.GetColor.apply(null, elem.path);

case UI.AddHotkey:
return UI.IsHotkeyActive.apply(null, elem.path);

default:
return UI.GetValue.apply(null, elem.path);
}
};

/**
* Sets the value of a menu element
*
* @param elem {array}
* @param value {*}
*/
menu.set = function(elem, value)
{
// If the label doesn't exist
if (!(elem.path))
throw new Error("[Menu] This element doesn't exist!");

// Set the element's value
switch (elem.func)
{
case UI.AddColorPicker:
UI.SetColor.apply(null, this.concat(elem.path, value));
break;

case UI.AddHotkey:
if (menu.get(elem) !== value)
UI.ToggleHotkey.apply(null, elem.path);
break;

default:
UI.SetValue.apply(null, this.concat(elem.path, value));
break;
}
};

/**
* Changes the visibility of a menu elements
*
* @param elem {array}
* @param visible {boolean}
*/
menu.visibility = function(elem, visible)
{
// If the label doesn't exist
if (!(elem.path))
throw new Error("[Menu] This element doesn't exist!");

// Change the element's visibility
UI.SetEnabled.apply(null, this.concat(elem.path, visible));
};

/**
* Adds an event to a menu element which is triggered everytime this element's value is changed.
*
* @param elem {array}
* @param func {function}
*/
menu.add_event = function(elem, func)
{
if (!elem.path)
throw new Error("[Menu] This element doesn't exist!");

if (!elem.func)
throw new Errror("[Menu] This element does not have a valid type. Please, specify one.");

elem.callback = func;
}

/**
* Handles the menu elements' events. Call this inside a Draw or FSN callback.
*/
menu.handle_events = function()
{
for (var label in menu_elements)
{
const elem = menu_elements[label];

if (!elem.path || !elem.callback)
continue;

const value = menu.get(elem);

if (elem.cache === undefined)
elem.cache = value;

if (elem.cache !== value)
{
elem.callback.apply(null, [elem]);
elem.cache = value;
}
}
}

/**
* @brief Normalizes an yaw angle.
* @param angle {number}
* @returns {number}
*/
function normalize_yaw(angle)
{
var adjusted_yaw = angle;

if (adjusted_yaw < -180)
adjusted_yaw += 360;

if (adjusted_yaw > 180)
adjusted_yaw -= 360;

return adjusted_yaw;
}

Render.Arc = function(x, y, r1, r2, s, d, col)
{
for (var i = s; i < s + d; i++)
{
const rad = i * Math.PI / 180;

Render.Line(x + Math.cos(rad) * r1, y + Math.sin(rad) * r1, x + Math.cos(rad) * r2, y + Math.sin(rad) * r2, col);
}
}
//endregion

//region menu
const voffset = menu.new(UI.AddSliderInt, "| Indicators vertical offset", "", [0, 1000]);

const ref_antiaim_enabled = menu.reference(["Anti-Aim", "Fake angles", "Enabled"]);
const ref_fakelag_enabled = menu.reference(["Anti-Aim", "Fake-Lag", "Enabled"]);
const ref_doubletap = menu.reference(["Rage", "GENERAL", "Exploits", "Doubletap"]);
const ref_doubletap_hk = menu.reference(["Rage", "GENERAL", "Exploits", "Doubletap"], UI.AddHotkey);
const ref_hideshots_hk = menu.reference(["Rage", "GENERAL", "Exploits", "Hide shots"], UI.AddHotkey);
//endregion

//region locals
var last_time = 0;
var planted = false;
var bombsite = -1;
var offset = 0;

const modules = [
{
label: "DSY",
condition: function() {
return menu.get(ref_antiaim_enabled);
},
colors: {
dormant: [186, 0, 16, 225],
active: [154, 205, 50, 255]
},
logic: function() {
const self = modules[0];

const real = Local.GetRealYaw(), fake = Local.GetFakeYaw();
const delta = Math.abs(normalize_yaw(real % 360 - fake % 360)) / 2;

return delta / 60;
},
extra: function(x, y, color) {
const real = Local.GetRealYaw(), fake = Local.GetFakeYaw();
const delta = Math.abs(normalize_yaw(real % 360 - fake % 360)) / 2;

const frac = delta / 60;

Render.Arc(x+5, y, 6, 13, 0, 360, [10, 10, 10, 60]);
Render.Arc(x+5, y, 7, 11, 0, 360 * frac, color);
}
},
{
label: "LC",
condition: function() {
const me = Entity.GetLocalPlayer();
const on_ground = Entity.GetProp(me, "CBasePlayer", "m_fFlags") & 1;

return menu.get(ref_fakelag_enabled) & (!on_ground || Input.IsKeyPressed(0x20)) & !menu.get(ref_doubletap_hk) & !menu.get(ref_hideshots_hk);
},
colors: {
dormant: [186, 0, 16, 225],
active: [163, 232, 44, 255]
},
logic: function() {
const self = modules[1];

const me = Entity.GetLocalPlayer();
const vec = Entity.GetProp(me, "CBasePlayer", "m_vecVelocity[0]");
const vel = Math.sqrt(vec[0] ** 2 + vec[1] ** 2 + vec[2] ** 2);

if (vel > 370)
return 1;

return 0;
}
},
{
label: "DT",
condition: function() {
return menu.get(ref_doubletap) & menu.get(ref_doubletap_hk);
},
colors: {
dormant: [235, 235, 235, 255],
active: [235, 235, 235, 255]
},
logic: function() {
const self = modules[2];

const charge = Exploit.GetCharge();

self.colors.active = charge === 1 ? [235, 235, 235, 255] : [186, 0, 16, 225];

return 1;
}
},
{
label: "Bombsite A",
condition: function() {
return bombsite % 2 == 1;
},
colors: {
dormant: [240, 235, 60, 255],
active: [240, 235, 60, 255]
},
logic: function() {
return 1;
},
extra: function(x, y) {
const self = modules[3];

const frac = (Globals.Curtime() - last_time) / 3.125;

Render.Arc(x, y, 6, 11, 0, 360, [10, 10, 10, 25]);
Render.Arc(x, y, 7, 10, -90, 360 * frac, [232, 232, 232, 255]);
}
},
{
label: "Bombsite B",
condition: function() {
return bombsite % 2 == 0;
},
colors: {
dormant: [240, 235, 60, 255],
active: [240, 235, 60, 255]
},
logic: function() {
return 1;
},
extra: function(x, y, color) {
const self = modules[4];

const frac = (Globals.Curtime() - last_time) / 3.125;

Render.Arc(x, y, 6, 11, 0, 360, [10, 10, 10, 25]);
Render.Arc(x, y, 7, 10, -90, 360 * frac, [232, 232, 232, 255]);
}
},
{
label: "",
condition: function() {
return planted;
},
colors: {
dormant: [235, 235, 235, 255],
active: [235, 235, 235, 255]
},
logic: function() {
const self = modules[5];

var c4 = Entity.GetEntitiesByClassID(128)[0];

if (!c4)
return 0;

var timer = (Entity.GetProp(c4, "CPlantedC4", "m_flC4Blow") - Globals.Curtime());


return 1;
}
},
{
label: "",
condition: function() {
return planted;
},
colors: {
dormant: [135, 15, 15, 255],
active: [195, 255, 0, 255]
},
logic: function() {
const self = modules[6];

const me = Entity.GetLocalPlayer();

if (!me || !Entity.IsAlive(me))
return 0;

const c4 = Entity.GetEntitiesByClassID(128)[0];

if (!c4)
return 0;

const armor = Entity.GetProp(me, "CCSPlayerResource", "m_iArmor");
const health = Entity.GetProp(me, "CBasePlayer", "m_iHealth");

const origin = Entity.GetRenderOrigin(c4);
const my_origin = Entity.GetRenderOrigin(me);

const distance = Math.sqrt((origin[0] - my_origin[0]) ** 2 + (origin[1] - my_origin[1]) ** 2 + (origin[2] - my_origin[2]) ** 2);

// Ultranite
const a = 450.7;
const b = 75.68;
const c = 789.2;

const d = (distance - b) / c;

var damage = a * Math.exp(-d * d);

if (armor > 0) {
var newDmg = damage * 0.5;
var armorDmg = (damage - newDmg) * 0.5;

if (armorDmg > armor) {
armor = armor * (1 / .5);
newDmg = damage - armorDmg;
}

damage = Math.round(newDmg);
}



return Math.max(1 -damage / health, 0);
}
}
];
//endregion

//region functions

function draw_timer()
{
if (!planted)
return;

const me = Entity.GetLocalPlayer();

if (!me)
return;

if (!Entity.IsAlive(me))
{
if (Entity.GetProp(me, "CBasePlayer", "m_iObserverMode") < 4)
return;

me = Entity.GetProp(me, "CBasePlayer", "m_hObserverTarget");
}

var c4 = Entity.GetEntitiesByClassID(128)[0];

if (!c4)
return;

const y = Render.GetScreenSize()[1];
const color = [235, 235, 235, 255];

var bombsite_label = bombsite % 2 == 0 ? "" : "";

var timer = (Entity.GetProp(c4, "CPlantedC4", "m_flC4Blow") - Globals.Curtime());


Render.FilledRect(0, y - bar_length, 10, bar_length, color);
}

function draw_indicators()
{
const offset_y = menu.get(voffset);
const y = Render.GetScreenSize()[1] - offset_y;
const drawn = 0;

for (var i = 0; i < modules.length; i++)
{
const mod = modules;

if (!mod.condition()) continue;

const result = mod.logic();
const label_width = Render.TextSize(mod.label, 4)[0];
const color = [
mod.colors.dormant[0] + (mod.colors.active[0] - mod.colors.dormant[0]) * result,
mod.colors.dormant[1] + (mod.colors.active[1] - mod.colors.dormant[1]) * result,
mod.colors.dormant[2] + (mod.colors.active[2] - mod.colors.dormant[2]) * result,
255
];

Render.GradientRect(15 + offset, y - 130 - 55 * drawn, label_width + 15, 45, 1, [10, 10, 10, 50], [10, 10, 10, 0]);
Render.String(25 + offset, y - 125 - 55 * drawn, 0, mod.label, color, 4);

if (mod.extra)
mod.extra(40 + offset + label_width, y - 106 - 55 * drawn, color);

drawn++;
}
}

function on_draw() {
const me = Entity.GetLocalPlayer();

if (!me || !Entity.IsAlive(me))
return;

draw_indicators();
draw_timer();
}

function on_bomb_beginplant()
{
bombsite = Event.GetInt("site");
last_time = Globals.Curtime();
}

function on_bomb_planted()
{
planted = true;
bombsite = -1;
offset = 15;
}

function on_bomb_abortplant()
{
bombsite = -1;
}

function on_bomb_exploded()
{
planted = false;
offset = 0;
}

function on_round_prestart()
{
planted = false;
offset = 0;
bombsite = -1;
last_time = 0;
}

function on_player_connect()
{
var c4 = Entity.GetEntitiesByClassID(128)[0];

last_time = 0;

if (!c4)
{
planted = false;
offset = 0;
bombsite = -1;
return;
}

planted = true;
offset = 15;
bombsite = Entity.GetProp(c4, "CPlantedC4", "m_nBombSite");
}

Cheat.RegisterCallback("Draw", "on_draw");
Cheat.RegisterCallback("bomb_beginplant", "on_bomb_beginplant");
Cheat.RegisterCallback("bomb_planted", "on_bomb_planted");
Cheat.RegisterCallback("bomb_abortplant", "on_bomb_abortplant");
Cheat.RegisterCallback("bomb_exploded", "on_bomb_exploded");
Cheat.RegisterCallback("round_prestart", "on_round_prestart");
Cheat.RegisterCallback("player_connect_full", "on_player_connect");
//endregion
там крч уберешь бомб сайтее б и дсу и лц и сделай индикаторы фейк как в реалный ските как эти а не как у княза

var menu = {};
var menu_elements = {};
const menu_spacer = " ";

/**
* Concats two elements into an array without increasing the array length.
* Prevents the memory leak in 2.0.0 from happening
*
* @param a {array}
* @param b {any}
*/
menu.concat = function(a, b)
{
// Creates a new array.
var arr = [];

// Push all items from the array 'a' into our array.
for (var c in a)
{
arr.push(a[c]);
}

// Push the value 'b' into our array.
arr.push(b);

// Return the new array.
return arr;
}

/**
* Creates a new menu label
*
* @param label {string}
*/
menu.label = function(label)
{
// Creates the label
UI.AddLabel(label);
};

/**
* Creates a new menu element
*
* @param func {function}
* @param name {string}
* @param label {string},
* @param properties {array}
*/
menu.new = function(func, name, label, properties, initial_value)
{
// Fix values
properties = properties || [];
initial_value = initial_value || undefined;

// Get properties
const final_name = name + menu_spacer + label;
var final_props = [final_name];

const element_info_t = {
path: ["Misc", "JAVASCRIPT", "Script items", final_name],
cache: initial_value,
func: func
};

// If our properties aren't null, then pack them together.
if (properties != null)
{
for (var i = 0; i < properties.length; i++)
{
final_props.push(properties);
}
}

// Create our menu element and return properties
func.apply(null, final_props);

// Initialize our menu element if it has an initializer.
if (initial_value)
{
switch (func)
{
case UI.AddColorPicker:
UI.SetColor.apply(null, this.concat(element_info_t.path, initial_value));
break;

case UI.AddHotkey:
break;

default:
UI.SetValue.apply(this, this.concat(element_info_t.path, initial_value));
break;
}
}

menu_elements[label] = element_info_t;

return element_info_t;
};

/**
* Creates a new menu reference
*
* @param path {array}
*/
menu.reference = function(path, func)
{
return {
path: path,
func: func
};
};

/**
* Gets the value of a menu element
*
* @param elem {array}
* @ReturN {*}
*/
menu.get = function(elem)
{
// If the element doesn't exist
if (!(elem.path))
throw new Error("[Menu] This element doesn't exist!");

// Returns the element's value
switch (elem.func)
{
case UI.AddColorPicker:
return UI.GetColor.apply(null, elem.path);

case UI.AddHotkey:
return UI.IsHotkeyActive.apply(null, elem.path);

default:
return UI.GetValue.apply(null, elem.path);
}
};

/**
* Sets the value of a menu element
*
* @param elem {array}
* @param value {*}
*/
menu.set = function(elem, value)
{
// If the label doesn't exist
if (!(elem.path))
throw new Error("[Menu] This element doesn't exist!");

// Set the element's value
switch (elem.func)
{
case UI.AddColorPicker:
UI.SetColor.apply(null, this.concat(elem.path, value));
break;

case UI.AddHotkey:
if (menu.get(elem) !== value)
UI.ToggleHotkey.apply(null, elem.path);
break;

default:
UI.SetValue.apply(null, this.concat(elem.path, value));
break;
}
};

/**
* Changes the visibility of a menu elements
*
* @param elem {array}
* @param visible {boolean}
*/
menu.visibility = function(elem, visible)
{
// If the label doesn't exist
if (!(elem.path))
throw new Error("[Menu] This element doesn't exist!");

// Change the element's visibility
UI.SetEnabled.apply(null, this.concat(elem.path, visible));
};

/**
* Adds an event to a menu element which is triggered everytime this element's value is changed.
*
* @param elem {array}
* @param func {function}
*/
menu.add_event = function(elem, func)
{
if (!elem.path)
throw new Error("[Menu] This element doesn't exist!");

if (!elem.func)
throw new Errror("[Menu] This element does not have a valid type. Please, specify one.");

elem.callback = func;
}

/**
* Handles the menu elements' events. Call this inside a Draw or FSN callback.
*/
menu.handle_events = function()
{
for (var label in menu_elements)
{
const elem = menu_elements[label];

if (!elem.path || !elem.callback)
continue;

const value = menu.get(elem);

if (elem.cache === undefined)
elem.cache = value;

if (elem.cache !== value)
{
elem.callback.apply(null, [elem]);
elem.cache = value;
}
}
}

/**
* @brief Normalizes an yaw angle.
* @param angle {number}
* @returns {number}
*/
function normalize_yaw(angle)
{
var adjusted_yaw = angle;

if (adjusted_yaw < -180)
adjusted_yaw += 360;

if (adjusted_yaw > 180)
adjusted_yaw -= 360;

return adjusted_yaw;
}

Render.Arc = function(x, y, r1, r2, s, d, col)
{
for (var i = s; i < s + d; i++)
{
const rad = i * Math.PI / 180;

Render.Line(x + Math.cos(rad) * r1, y + Math.sin(rad) * r1, x + Math.cos(rad) * r2, y + Math.sin(rad) * r2, col);
}
}
//endregion

//region menu
const voffset = menu.new(UI.AddSliderInt, "| Indicators vertical offset", "", [0, 1000]);

const ref_antiaim_enabled = menu.reference(["Anti-Aim", "Fake angles", "Enabled"]);
const ref_fakelag_enabled = menu.reference(["Anti-Aim", "Fake-Lag", "Enabled"]);
const ref_doubletap = menu.reference(["Rage", "GENERAL", "Exploits", "Doubletap"]);
const ref_doubletap_hk = menu.reference(["Rage", "GENERAL", "Exploits", "Doubletap"], UI.AddHotkey);
const ref_hideshots_hk = menu.reference(["Rage", "GENERAL", "Exploits", "Hide shots"], UI.AddHotkey);
//endregion

//region locals
var last_time = 0;
var planted = false;
var bombsite = -1;
var offset = 0;

const modules = [
{
label: "DSY",
condition: function() {
return menu.get(ref_antiaim_enabled);
},
colors: {
dormant: [186, 0, 16, 225],
active: [154, 205, 50, 255]
},
logic: function() {
const self = modules[0];

const real = Local.GetRealYaw(), fake = Local.GetFakeYaw();
const delta = Math.abs(normalize_yaw(real % 360 - fake % 360)) / 2;

return delta / 60;
},
extra: function(x, y, color) {
const real = Local.GetRealYaw(), fake = Local.GetFakeYaw();
const delta = Math.abs(normalize_yaw(real % 360 - fake % 360)) / 2;

const frac = delta / 60;

Render.Arc(x+5, y, 6, 13, 0, 360, [10, 10, 10, 60]);
Render.Arc(x+5, y, 7, 11, 0, 360 * frac, color);
}
},
{
label: "LC",
condition: function() {
const me = Entity.GetLocalPlayer();
const on_ground = Entity.GetProp(me, "CBasePlayer", "m_fFlags") & 1;

return menu.get(ref_fakelag_enabled) & (!on_ground || Input.IsKeyPressed(0x20)) & !menu.get(ref_doubletap_hk) & !menu.get(ref_hideshots_hk);
},
colors: {
dormant: [186, 0, 16, 225],
active: [163, 232, 44, 255]
},
logic: function() {
const self = modules[1];

const me = Entity.GetLocalPlayer();
const vec = Entity.GetProp(me, "CBasePlayer", "m_vecVelocity[0]");
const vel = Math.sqrt(vec[0] ** 2 + vec[1] ** 2 + vec[2] ** 2);

if (vel > 370)
return 1;

return 0;
}
},
{
label: "DT",
condition: function() {
return menu.get(ref_doubletap) & menu.get(ref_doubletap_hk);
},
colors: {
dormant: [235, 235, 235, 255],
active: [235, 235, 235, 255]
},
logic: function() {
const self = modules[2];

const charge = Exploit.GetCharge();

self.colors.active = charge === 1 ? [235, 235, 235, 255] : [186, 0, 16, 225];

return 1;
}
},
{
label: "Bombsite A",
condition: function() {
return bombsite % 2 == 1;
},
colors: {
dormant: [240, 235, 60, 255],
active: [240, 235, 60, 255]
},
logic: function() {
return 1;
},
extra: function(x, y) {
const self = modules[3];

const frac = (Globals.Curtime() - last_time) / 3.125;

Render.Arc(x, y, 6, 11, 0, 360, [10, 10, 10, 25]);
Render.Arc(x, y, 7, 10, -90, 360 * frac, [232, 232, 232, 255]);
}
},
{
label: "Bombsite B",
condition: function() {
return bombsite % 2 == 0;
},
colors: {
dormant: [240, 235, 60, 255],
active: [240, 235, 60, 255]
},
logic: function() {
return 1;
},
extra: function(x, y, color) {
const self = modules[4];

const frac = (Globals.Curtime() - last_time) / 3.125;

Render.Arc(x, y, 6, 11, 0, 360, [10, 10, 10, 25]);
Render.Arc(x, y, 7, 10, -90, 360 * frac, [232, 232, 232, 255]);
}
},
{
label: "",
condition: function() {
return planted;
},
colors: {
dormant: [235, 235, 235, 255],
active: [235, 235, 235, 255]
},
logic: function() {
const self = modules[5];

var c4 = Entity.GetEntitiesByClassID(128)[0];

if (!c4)
return 0;

var timer = (Entity.GetProp(c4, "CPlantedC4", "m_flC4Blow") - Globals.Curtime());


return 1;
}
},
{
label: "",
condition: function() {
return planted;
},
colors: {
dormant: [135, 15, 15, 255],
active: [195, 255, 0, 255]
},
logic: function() {
const self = modules[6];

const me = Entity.GetLocalPlayer();

if (!me || !Entity.IsAlive(me))
return 0;

const c4 = Entity.GetEntitiesByClassID(128)[0];

if (!c4)
return 0;

const armor = Entity.GetProp(me, "CCSPlayerResource", "m_iArmor");
const health = Entity.GetProp(me, "CBasePlayer", "m_iHealth");

const origin = Entity.GetRenderOrigin(c4);
const my_origin = Entity.GetRenderOrigin(me);

const distance = Math.sqrt((origin[0] - my_origin[0]) ** 2 + (origin[1] - my_origin[1]) ** 2 + (origin[2] - my_origin[2]) ** 2);

// Ultranite
const a = 450.7;
const b = 75.68;
const c = 789.2;

const d = (distance - b) / c;

var damage = a * Math.exp(-d * d);

if (armor > 0) {
var newDmg = damage * 0.5;
var armorDmg = (damage - newDmg) * 0.5;

if (armorDmg > armor) {
armor = armor * (1 / .5);
newDmg = damage - armorDmg;
}

damage = Math.round(newDmg);
}



return Math.max(1 -damage / health, 0);
}
}
];
//endregion

//region functions

function draw_timer()
{
if (!planted)
return;

const me = Entity.GetLocalPlayer();

if (!me)
return;

if (!Entity.IsAlive(me))
{
if (Entity.GetProp(me, "CBasePlayer", "m_iObserverMode") < 4)
return;

me = Entity.GetProp(me, "CBasePlayer", "m_hObserverTarget");
}

var c4 = Entity.GetEntitiesByClassID(128)[0];

if (!c4)
return;

const y = Render.GetScreenSize()[1];
const color = [235, 235, 235, 255];

var bombsite_label = bombsite % 2 == 0 ? "" : "";

var timer = (Entity.GetProp(c4, "CPlantedC4", "m_flC4Blow") - Globals.Curtime());


Render.FilledRect(0, y - bar_length, 10, bar_length, color);
}

function draw_indicators()
{
const offset_y = menu.get(voffset);
const y = Render.GetScreenSize()[1] - offset_y;
const drawn = 0;

for (var i = 0; i < modules.length; i++)
{
const mod = modules;

if (!mod.condition()) continue;

const result = mod.logic();
const label_width = Render.TextSize(mod.label, 4)[0];
const color = [
mod.colors.dormant[0] + (mod.colors.active[0] - mod.colors.dormant[0]) * result,
mod.colors.dormant[1] + (mod.colors.active[1] - mod.colors.dormant[1]) * result,
mod.colors.dormant[2] + (mod.colors.active[2] - mod.colors.dormant[2]) * result,
255
];

Render.GradientRect(15 + offset, y - 130 - 55 * drawn, label_width + 15, 45, 1, [10, 10, 10, 50], [10, 10, 10, 0]);
Render.String(25 + offset, y - 125 - 55 * drawn, 0, mod.label, color, 4);

if (mod.extra)
mod.extra(40 + offset + label_width, y - 106 - 55 * drawn, color);

drawn++;
}
}

function on_draw() {
const me = Entity.GetLocalPlayer();

if (!me || !Entity.IsAlive(me))
return;

draw_indicators();
draw_timer();
}

function on_bomb_beginplant()
{
bombsite = Event.GetInt("site");
last_time = Globals.Curtime();
}

function on_bomb_planted()
{
planted = true;
bombsite = -1;
offset = 15;
}

function on_bomb_abortplant()
{
bombsite = -1;
}

function on_bomb_exploded()
{
planted = false;
offset = 0;
}

function on_round_prestart()
{
planted = false;
offset = 0;
bombsite = -1;
last_time = 0;
}

function on_player_connect()
{
var c4 = Entity.GetEntitiesByClassID(128)[0];

last_time = 0;

if (!c4)
{
planted = false;
offset = 0;
bombsite = -1;
return;
}

planted = true;
offset = 15;
bombsite = Entity.GetProp(c4, "CPlantedC4", "m_nBombSite");
}

Cheat.RegisterCallback("Draw", "on_draw");
Cheat.RegisterCallback("bomb_beginplant", "on_bomb_beginplant");
Cheat.RegisterCallback("bomb_planted", "on_bomb_planted");
Cheat.RegisterCallback("bomb_abortplant", "on_bomb_abortplant");
Cheat.RegisterCallback("bomb_exploded", "on_bomb_exploded");
Cheat.RegisterCallback("round_prestart", "on_round_prestart");
Cheat.RegisterCallback("player_connect_full", "on_player_connect");
//endregion

там крч уберешь бомб сайт и дсу и лц и сделай фейк инидкаторы как в реалнйм в ските а не как у княза
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
рофл в том что бомб сайты показываются на оборот хд
 
Можно было как код записать - что бы не на пол сайта код был.
JavaScript:
Expand Collapse Copy
/**

var menu = {};
var menu_elements = {};
const menu_spacer = "   

* Concats two elements into an array without increasing the array length.

* Prevents the memory leak in 2.0.0 from happening

*

* @param a {array}

* @param b {any}

*/

menu.concat = function(a, b)

{

    // Creates a new array.

    var arr = [];



    // Push all items from the array 'a' into our array.

    for (var c in a)

    {

        arr.push(a[c]);

    }



    // Push the value 'b' into our array.

    arr.push(b);



    // Return the new array.

    return arr;

}



/**

* Creates a new menu label

*

* @param label {string}

*/

menu.label = function(label)

{

    // Creates the label

    UI.AddLabel(label);

};



/**

* Creates a new menu element

*

* @param func {function}

* @param name {string}

* @param label {string},

* @param properties {array}

*/

menu.new = function(func, name, label, properties, initial_value)

{

    // Fix values

    properties = properties || [];

    initial_value = initial_value || undefined;



    // Get properties

    const final_name = name + menu_spacer + label;

    var final_props = [final_name];



    const element_info_t = {

        path: ["Misc", "JAVASCRIPT", "Script items", final_name],

        cache: initial_value,

        func: func

    };



    // If our properties aren't null, then pack them together.

    if (properties != null)

    {

        for (var i = 0; i < properties.length; i++)

        {

            final_props.push(properties);

        }

    }



    // Create our menu element and return properties

    func.apply(null, final_props);



    // Initialize our menu element if it has an initializer.

    if (initial_value)

    {

        switch (func)

        {

            case UI.AddColorPicker:

                UI.SetColor.apply(null, this.concat(element_info_t.path, initial_value));

                break;



            case UI.AddHotkey:

                break;



            default:

                UI.SetValue.apply(this, this.concat(element_info_t.path, initial_value));

                break;

        }

    }



    menu_elements[label] = element_info_t;



    return element_info_t;

};



/**

* Creates a new menu reference

*

* @param path {array}

*/

menu.reference = function(path, func)

{

    return {

        path: path,

        func: func

    };

};



/**

* Gets the value of a menu element

*

* @param elem {array}

* [USER=46448]@ReturN[/USER] {*}

*/

menu.get = function(elem)

{

    // If the element doesn't exist

    if (!(elem.path))

        throw new Error("[Menu] This element doesn't exist!");



    // Returns the element's value

    switch (elem.func)

    {

        case UI.AddColorPicker:

            return UI.GetColor.apply(null, elem.path);



        case UI.AddHotkey:

            return UI.IsHotkeyActive.apply(null, elem.path);



        default:

            return UI.GetValue.apply(null, elem.path);

    }

};



/**

* Sets the value of a menu element

*

* @param elem {array}

* @param value {*}

*/

menu.set = function(elem, value)

{

    // If the label doesn't exist

    if (!(elem.path))

        throw new Error("[Menu] This element doesn't exist!");



    // Set the element's value

    switch (elem.func)

    {

        case UI.AddColorPicker:

            UI.SetColor.apply(null, this.concat(elem.path, value));

            break;



        case UI.AddHotkey:

            if (menu.get(elem) !== value)

                UI.ToggleHotkey.apply(null, elem.path);

            break;



        default:

            UI.SetValue.apply(null, this.concat(elem.path, value));

            break;

    }

};



/**

* Changes the visibility of a menu elements

*

* @param elem {array}

* @param visible {boolean}

*/

menu.visibility = function(elem, visible)

{

    // If the label doesn't exist

    if (!(elem.path))

        throw new Error("[Menu] This element doesn't exist!");



    // Change the element's visibility

    UI.SetEnabled.apply(null, this.concat(elem.path, visible));

};



/**

* Adds an event to a menu element which is triggered everytime this element's value is changed.

*

* @param elem {array}

* @param func {function}

*/

menu.add_event = function(elem, func)

{

    if (!elem.path)

        throw new Error("[Menu] This element doesn't exist!");



    if (!elem.func)

        throw new Errror("[Menu] This element does not have a valid type. Please, specify one.");



    elem.callback = func;

}



/**

* Handles the menu elements' events. Call this inside a Draw or FSN callback.

*/

menu.handle_events = function()

{

    for (var label in menu_elements)

    {

        const elem = menu_elements[label];



        if (!elem.path || !elem.callback)

            continue;



        const value = menu.get(elem);



        if (elem.cache === undefined)

            elem.cache = value;



        if (elem.cache !== value)

        {

            elem.callback.apply(null, [elem]);

            elem.cache = value;

        }

    }

}



/**

* @brief Normalizes an yaw angle.

* @param angle {number}

* @returns {number}

*/

function normalize_yaw(angle)

{

    var adjusted_yaw = angle;



    if (adjusted_yaw < -180)

        adjusted_yaw += 360;



    if (adjusted_yaw > 180)

        adjusted_yaw -= 360;



    return adjusted_yaw;

}



Render.Arc = function(x, y, r1, r2, s, d, col)

{

    for (var i = s; i < s + d; i++)

    {

        const rad = i * Math.PI / 180;



        Render.Line(x + Math.cos(rad) * r1, y + Math.sin(rad) * r1, x + Math.cos(rad) * r2, y + Math.sin(rad) * r2, col);

    }

}

//endregion



//region menu

const voffset = menu.new(UI.AddSliderInt, "| Indicators vertical offset", "", [0, 1000]);



const ref_antiaim_enabled = menu.reference(["Anti-Aim", "Fake angles", "Enabled"]);

const ref_fakelag_enabled = menu.reference(["Anti-Aim", "Fake-Lag", "Enabled"]);

const ref_doubletap = menu.reference(["Rage", "GENERAL", "Exploits", "Doubletap"]);

const ref_doubletap_hk = menu.reference(["Rage", "GENERAL", "Exploits", "Doubletap"], UI.AddHotkey);

const ref_hideshots_hk = menu.reference(["Rage", "GENERAL", "Exploits", "Hide shots"], UI.AddHotkey);

//endregion



//region locals

var last_time = 0;

var planted = false;

var bombsite = -1;

var offset = 0;



const modules = [

    {

        label: "DSY",

        condition: function() {

            return menu.get(ref_antiaim_enabled);

        },

        colors: {

            dormant: [186, 0, 16, 225],

            active: [154, 205, 50, 255]

        },

        logic: function() {

            const self = modules[0];



            const real = Local.GetRealYaw(), fake = Local.GetFakeYaw();

            const delta = Math.abs(normalize_yaw(real % 360 - fake % 360)) / 2;



            return delta / 60;

        },

        extra: function(x, y, color) {

            const real = Local.GetRealYaw(), fake = Local.GetFakeYaw();

            const delta = Math.abs(normalize_yaw(real % 360 - fake % 360)) / 2;



            const frac = delta / 60;



            Render.Arc(x+5, y, 6, 13, 0, 360, [10, 10, 10, 60]);

            Render.Arc(x+5, y, 7, 11, 0, 360 * frac, color);

        }

    },

    {

        label: "LC",

        condition: function() {

            const me = Entity.GetLocalPlayer();

            const on_ground = Entity.GetProp(me, "CBasePlayer", "m_fFlags") & 1;



            return menu.get(ref_fakelag_enabled) & (!on_ground || Input.IsKeyPressed(0x20)) & !menu.get(ref_doubletap_hk) & !menu.get(ref_hideshots_hk);

        },

        colors: {

            dormant: [186, 0, 16, 225],

            active: [163, 232, 44, 255]

        },

        logic: function() {

            const self = modules[1];



            const me = Entity.GetLocalPlayer();

            const vec = Entity.GetProp(me, "CBasePlayer", "m_vecVelocity[0]");

            const vel = Math.sqrt(vec[0] ** 2 + vec[1] ** 2 + vec[2] ** 2);



            if (vel > 370)

                return 1;



            return 0;

        }

    },

    {

        label: "DT",

        condition: function() {

            return menu.get(ref_doubletap) & menu.get(ref_doubletap_hk);

        },

        colors: {

            dormant: [235, 235, 235, 255],

            active: [235, 235, 235, 255]

        },

        logic: function() {

            const self = modules[2];



            const charge = Exploit.GetCharge();



            self.colors.active = charge === 1 ? [235, 235, 235, 255] : [186, 0, 16, 225];



            return 1;

        }

    },

    {

        label: "Bombsite A",

        condition: function() {

            return bombsite % 2 == 1;

        },

        colors: {

            dormant: [240, 235, 60, 255],

            active: [240, 235, 60, 255]

        },

        logic: function() {

            return 1;

        },

        extra: function(x, y) {

            const self = modules[3];



            const frac = (Globals.Curtime() - last_time) / 3.125;



            Render.Arc(x, y, 6, 11, 0, 360, [10, 10, 10, 25]);

            Render.Arc(x, y, 7, 10, -90, 360 * frac, [232, 232, 232, 255]);

        }

    },

    {

        label: "Bombsite B",

        condition: function() {

            return bombsite % 2 == 0;

        },

        colors: {

            dormant: [240, 235, 60, 255],

            active: [240, 235, 60, 255]

        },

        logic: function() {

            return 1;

        },

        extra: function(x, y, color) {

            const self = modules[4];



            const frac = (Globals.Curtime() - last_time) / 3.125;



            Render.Arc(x, y, 6, 11, 0, 360, [10, 10, 10, 25]);

            Render.Arc(x, y, 7, 10, -90, 360 * frac, [232, 232, 232, 255]);

        }

    },

    {

        label: "",

        condition: function() {

            return planted;

        },

        colors: {

            dormant: [235, 235, 235, 255],

            active: [235, 235, 235, 255]

        },

        logic: function() {

            const self = modules[5];



            var c4 = Entity.GetEntitiesByClassID(128)[0];



            if (!c4)

                return 0;



            var timer = (Entity.GetProp(c4, "CPlantedC4", "m_flC4Blow") - Globals.Curtime());





            return 1;

        }

    },

    {

        label: "",

        condition: function() {

            return planted;

        },

        colors: {

            dormant: [135, 15, 15, 255],

            active: [195, 255, 0, 255]

        },

        logic: function() {

            const self = modules[6];



            const me = Entity.GetLocalPlayer();



            if (!me || !Entity.IsAlive(me))

                return 0;



            const c4 = Entity.GetEntitiesByClassID(128)[0];



            if (!c4)

                return 0;



            const armor = Entity.GetProp(me, "CCSPlayerResource", "m_iArmor");

            const health = Entity.GetProp(me, "CBasePlayer", "m_iHealth");



            const origin = Entity.GetRenderOrigin(c4);

            const my_origin = Entity.GetRenderOrigin(me);



            const distance = Math.sqrt((origin[0] - my_origin[0]) ** 2 + (origin[1] - my_origin[1]) ** 2 + (origin[2] - my_origin[2]) ** 2);



            // Ultranite

            const a = 450.7;

            const b = 75.68;

            const c = 789.2;

     

            const d = (distance - b) / c;

     

            var damage = a * Math.exp(-d * d);

     

            if (armor > 0) {

                var newDmg = damage * 0.5;

                var armorDmg = (damage - newDmg) * 0.5;

     

                if (armorDmg > armor) {

                    armor = armor * (1 / .5);

                    newDmg = damage - armorDmg;

                }



                damage = Math.round(newDmg);

            }







            return Math.max(1 -damage / health, 0);

        }

    }

];

//endregion



//region functions



function draw_timer()

{

    if (!planted)

        return;



    const me = Entity.GetLocalPlayer();



    if (!me)

        return;



    if (!Entity.IsAlive(me))

    {

        if (Entity.GetProp(me, "CBasePlayer", "m_iObserverMode") < 4)

            return;



        me = Entity.GetProp(me, "CBasePlayer", "m_hObserverTarget");

    }



    var c4 = Entity.GetEntitiesByClassID(128)[0];



    if (!c4)

        return;



    const y = Render.GetScreenSize()[1];

    const color = [235, 235, 235, 255];



    var bombsite_label = bombsite % 2 == 0 ? "" : "";



    var timer = (Entity.GetProp(c4, "CPlantedC4", "m_flC4Blow") - Globals.Curtime());





    Render.FilledRect(0, y - bar_length, 10, bar_length, color);

}



function draw_indicators()

{

    const offset_y = menu.get(voffset);

    const y = Render.GetScreenSize()[1] - offset_y;

    const drawn = 0;



    for (var i = 0; i < modules.length; i++)

    {

        const mod = modules;



        if (!mod.condition()) continue;



        const result = mod.logic();

        const label_width = Render.TextSize(mod.label, 4)[0];

        const color = [

            mod.colors.dormant[0] + (mod.colors.active[0] - mod.colors.dormant[0]) * result,

            mod.colors.dormant[1] + (mod.colors.active[1] - mod.colors.dormant[1]) * result,

            mod.colors.dormant[2] + (mod.colors.active[2] - mod.colors.dormant[2]) * result,

            255

        ];



        Render.GradientRect(15 + offset, y - 130 - 55 * drawn, label_width + 15, 45, 1, [10, 10, 10, 50], [10, 10, 10, 0]);

        Render.String(25 + offset, y - 125 - 55 * drawn, 0, mod.label, color, 4);



        if (mod.extra)

            mod.extra(40 + offset + label_width, y - 106 - 55 * drawn, color);



        drawn++;

    }

}



function on_draw() {

    const me = Entity.GetLocalPlayer();



    if (!me || !Entity.IsAlive(me))

        return;



    draw_indicators();

    draw_timer();

}



function on_bomb_beginplant()

{

    bombsite = Event.GetInt("site");

    last_time = Globals.Curtime();

}



function on_bomb_planted()

{

    planted = true;

    bombsite = -1;

    offset = 15;

}



function on_bomb_abortplant()

{

    bombsite = -1;

}



function on_bomb_exploded()

{

    planted = false;

    offset = 0;

}



function on_round_prestart()

{

    planted = false;

    offset = 0;

    bombsite = -1;

    last_time = 0;

}



function on_player_connect()

{

    var c4 = Entity.GetEntitiesByClassID(128)[0];



    last_time = 0;



    if (!c4)

    {

        planted = false;

        offset = 0;

        bombsite = -1;

        return;

    }



    planted = true;

    offset = 15;

    bombsite = Entity.GetProp(c4, "CPlantedC4", "m_nBombSite");

}



Cheat.RegisterCallback("Draw", "on_draw");

Cheat.RegisterCallback("bomb_beginplant", "on_bomb_beginplant");

Cheat.RegisterCallback("bomb_planted", "on_bomb_planted");

Cheat.RegisterCallback("bomb_abortplant", "on_bomb_abortplant");

Cheat.RegisterCallback("bomb_exploded", "on_bomb_exploded");

Cheat.RegisterCallback("round_prestart", "on_round_prestart");

Cheat.RegisterCallback("player_connect_full", "on_player_connect");

//endregion
там крч уберешь бомб сайтее б и дсу и лц и сделай индикаторы фейк как в реалный ските как эти а не как у княза
 
Последнее редактирование:
Назад
Сверху Снизу