В Нортвуде варнинга нет,это прочая джска,которая лежит на юг.Хочу купить нортвуд с скит индикаторами и там скит гранейд варнинг. Так вот где?
const p = {
exploits: ["Rage", "Exploits", "General"],
rage: ["Rage", "General", "General"],
rage_keys: ["Rage", "General", "General", "Key assignment"],
antiaim: ["Rage", "Anti Aim", "Directions"],
antiaim_fake: ["Rage", "Anti Aim", "Fake"],
antiaim_keys: ["Rage", "Anti Aim", "General", "Key assignment"],
visuals: ["Visuals", "ESP", "Enemy"],
radar: ["Visuals", "Extra", "Radar"],
cheat: ["Config", "Cheat", "General"],
script_ui: ["Misc.", "Helpers", "General"],
indicators: ["Misc.", "Helpers", "Client"],
general: ["Config", "Scripts", "Scripts"]
}
var GUI = {
GetPath: function(path, name) {
if (path.length == 3)
return [path[0], path[1], path[2], name];
else
return [path[0], path[1], path[2], path[3], name];
},
GetValue: function(path, name) {
return UI.GetValue(GUI.GetPath(path, name));
},
GetColor: function(path, name) {
return UI.GetColor(GUI.GetPath(path, name));
},
GetString: function(path, name) {
return UI.GetString(GUI.GetPath(path, name));
},
SetValue: function(path, name, value) {
UI.SetValue(GUI.GetPath(path, name), value);
},
SetEnabled: function(path, name, value) {
UI.SetEnabled(GUI.GetPath(path, name), value);
},
RegisterCallback: function(path, name, func) {
UI.RegisterCallback(GUI.GetPath(path, name), func);
},
}
UI.AddDropdown(p.script_ui, "[NW] UI style", ["Flat", "Fade", "Dynamic fade"], 0);
UI.AddColorPicker(p.script_ui, "[NW] UI color");
if (GUI.GetColor(p.script_ui, "[NW] UI color") == [255, 255, 255, 255]);
UI.SetColor(GUI.GetPath(p.script_ui, "[NW] UI color"), [89, 119, 239, 125]);
UI.AddSliderFloat(p.script_ui, "[NW] Fade offset", 0, 3.99)
UI.AddSliderFloat(p.script_ui, "[NW] Fade animation speed", 0.01, 10)
UI.AddSliderFloat(p.script_ui, "[NW] Fade split ratio", 0, 1)
UI.AddSliderFloat(p.script_ui, "[NW] Background split ratio", 0, 1)
// First, checks if it isn't implemented yet.
if (!String.format) {
String.format = function(format) {
var args = Array.prototype.slice.call(arguments, 1);
return format.replace(/{(\d+)}/g, function(match, number) {
return typeof args[number] != 'undefined'
? args[number]
: match
;
});
};
}
var Northwood = {
LatestLoad: 0,
I_Offset: 0,
Utils: {
StatusColor: function(num, max, decl) {
var Colors = [[255, 0, 0], [237, 27, 3], [235, 63, 6], [229, 104, 8],
[228, 126, 10], [220, 169, 16], [213, 201, 19], [176, 205, 10], [124, 195, 13]];
var int = (num > max ? max : num);
var tmp = max / int;
var declspec = Colors.length - 1;
var i = declspec / tmp;
if (decl)
i += decl;
i = (i >= 0 ? Math.floor(i + 0.5) : 0)
i = Math.min(i, declspec);
//Cheat.Print(String.format("i: {0}\n", i))
return Colors[i];
}
},
Get: function(dbname) {
return DataFile.GetKey("northwood", dbname)
},
Write: function(dbname, dbvalue) {
DataFile.SetKey("northwood", dbname, dbvalue)
DataFile.Save("northwood")
DataFile.Load("northwood")
},
Erase: function(dbname) {
DataFile.EraseKey("northwood", dbname)
DataFile.Save("northwood")
DataFile.Load("northwood")
},
OnLoad: function() {
DataFile.Load("northwood")
Northwood.LatestLoad = DataFile.GetKey("northwood", "latest_load")
var today = new Date()
DataFile.SetKey("northwood", "latest_load", today.toString().substring(0, 16))
DataFile.Save("northwood")
DataFile.Load("northwood")
},
OnUnload: function() {
DataFile.Save("northwood")
},
OnDraw: function() {
Northwood.I_Offset = 0;
if (GUI.GetValue(p.script_ui, "[NW] UI style") == 2)
GUI.SetEnabled(p.script_ui, "[NW] Fade animation speed", 1)
else
GUI.SetEnabled(p.script_ui, "[NW] Fade animation speed", 0)
},
IsBeta: function() {
return true;
},
GetColor: function() {
return GUI.GetColor(p.script_ui, "[NW] UI color")
},
GetStyle: function() {
switch (GUI.GetValue(p.script_ui, "[NW] UI style")) {
case 0:
return 0;
case 1:
case 2:
return 1;
}
},
GetFade: function() {
if (GUI.GetValue(p.script_ui, "[NW] UI style") == 2)
var value = (Globals.Curtime() * GUI.GetValue(p.script_ui, "[NW] Fade animation speed")) % 4
else
var value = GUI.GetValue(p.script_ui, "[NW] Fade offset")
var alpha = GUI.GetValue(p.script_ui, "[NW] Fade split ratio")
var maxv = 255 * (value % 1)
var midv = 200 * (value % 1)
var minv = 180 * (value % 1)
var mminv = 55 * (value % 1)
var mmminv = 75 * (value % 1)
var r, g, b;
if (value < 1) {
r = [0 + maxv, 0, 255 - mmminv, 255 * alpha];
g = [255 - mmminv, 0 + maxv, 0, 255 * alpha];
b = [0, 255 - mmminv, 0 + maxv, 255 * alpha];
}
else if (value < 2) {
r = [255 - mminv, 0 + maxv, 180 - minv, 255 * alpha];
g = [180 - minv, 255, 0 + midv, 255 * alpha];
b = [0 + maxv, 180 - minv, 255 - mminv, 255 * alpha];
}
else if (value < 3) {
r = [200 - midv, 255, 0 + maxv, 255 * alpha];
g = [0 + maxv, 255 - maxv, 200 + mminv, 255 * alpha];
b = [255, 0 + maxv, 200 - midv, 255 * alpha];
}
else {
r = [0, 255 - maxv, 255, 255 * alpha];
g = [255, 0, 255 - maxv, 255 * alpha];
b = [255 - maxv, 255, 0, 255 * alpha];
}
return [r, g, b]
},
GetBackground: function() {
var value = GUI.GetValue(p.script_ui, "[NW] Background split ratio")
var first = [17, 17, 17, Northwood.GetColor()[3] * value]
var second = [17, 17, 17, Northwood.GetColor()[3]]
return [first, second]
}
}
Northwood.OnLoad();
Cheat.RegisterCallback("Unload", "Northwood.OnUnload")
Cheat.RegisterCallback("Draw", "Northwood.OnDraw")
var size = Render.GetScreenSize();
size = [size[0], size[1] - 60];
var nlogs = new Array();
var speed = 0;
function draw_arc1(a,n,o,r,t,h,M,c){M=360/M;for(var e=t;e<t+h;e+=M){var s=e*Math.PI/180,P=(e+M)*Math.PI/180,d=Math.cos(s),i=Math.sin(s),f=Math.cos(P),g=Math.sin(P),l=a+d*r,v=n+i*r,y=a+d*o,I=n+i*o,R=a+f*r,u=n+g*r,w=a+f*o,_=n+g*o;Render.Polygon([[y,I],[w,_],[l,v]],c),Render.Polygon([[l,v],[w,_],[R,u]],c)}};
function notify(e, i, r) {
var n = Render.GetFont("Verdana.ttf", 11, true);
d = Render.TextSize(e, n)[0],
s = Math.floor(size[0] / 2) - 4 - Math.floor(d / 2);
draw_arc1(s-1, size[1] - 60 - i, 15, 0, 90, 180, 60, [56, 56, 57, 150 * r])
draw_arc1(s+d, size[1] - 60 - i, 15, 0, 270, 180, 60, [56, 56, 57, 150 * r])
Render.FilledRect(s, size[1] - 60 - i - 15, d, 31, [56, 56, 57, 150 * r]);
Render.FilledRect(s-1, size[1] - 60 - i - 15, 1, 31, [56, 56, 57, 100 * r]);
Render.FilledRect(s+d, size[1] - 60 - i - 15, 1, 31, [56, 56, 57, 100 * r]);
Render.String(s, size[1] - 60 - i - 8, 0, e, [255, 255, 255, 255 * r], n)
};
//GUI.SetEnabled(P.exploits, "Double tap", 0);
//GUI.RegisterCallback(P.exploits, "Double tap", "TestLog");
/*
Section: Tickbase
*/
UI.AddMultiDropdown(p.exploits, "Double tap options", ["Decrease recharge delay", "WIP: Tickbase correction"]);
var Tickbase = {
LastShot: 0,
MaxShift: function() {
return Convar.GetInt("sv_maxusrcmdprocessticks");
},
CanShift: function(Ticks) {
var me = Entity.GetLocalPlayer();
var wpn = Entity.GetWeapon(me);
if (me == null || wpn == null)
return false;
var tickbase = Entity.GetProp(me, "CCSPlayer", "m_nTickBase");
//var tickbase = Globals.Tickcount();
var curtime = Globals.TickInterval() * (tickbase-Ticks)
if (curtime < Entity.GetProp(me, "CCSPlayer", "m_flNextAttack"))
return false;
if (curtime < Entity.GetProp(wpn, "CBaseCombatWeapon", "m_flNextPrimaryAttack"))
return false;
/*if ((Globals.Tickcount() - Ticks - (Globals.Latency() * Globals.TickInterval())) > Tickbase.LastShot)
return true;*/
return true;
},
CreateMove: function() {
var Options = GUI.GetValue(p.exploits, "Double tap options");
var Charge = Exploit.GetCharge();
//Exploit.OverrideTolerance(0);
//Exploit.OverrideShift(Tickbase.MaxShift())
if (Options & 1 << 0) {
Exploit[(Charge != 1 ? "Enable" : "Disable") + "Recharge"]()
if (Tickbase.CanShift(1) && Charge != 1) {
Exploit.DisableRecharge();
if (Ragebot.GetTargets().length == 0)
Exploit.Recharge();
}
}
else {
Exploit.EnableRecharge()
}
if (Options & 1 << 1) {
if (Charge == 1) {
Exploit.OverrideMaxProcessTicks(Tickbase.MaxShift() + 1);
Exploit.OverrideShift(Tickbase.MaxShift());
GUI.SetValue(p.exploits, "Options", GUI.GetValue(p.exploits, "Options") & ~(1 << 5));
}
else {
Exploit.OverrideMaxProcessTicks(Tickbase.MaxShift());
}
}
}
}
Cheat.RegisterCallback("CreateMove", "Tickbase.CreateMove");
/*
Section: Anti-aim
*/
var aa_active = UI.AddCheckbox(p.antiaim, "Extended anti-aimbot angles");
UI.AddDropdown(p.antiaim, "Anti-aimbot mode", ["Standing", "Walking", "Moving"], 0);
//STANDING
UI.AddDropdown(p.antiaim, "[S] Yaw base", ["Local view", "At targets"], 0);
UI.AddDropdown(p.antiaim, "[S] Yaw", ["180"], 0);
UI.AddSliderInt(p.antiaim, "[S] Yaw offset", -180, 180);
UI.AddDropdown(p.antiaim, "[S] Yaw jitter", ["Offset", "Center", "Random"], 0);
UI.AddSliderInt(p.antiaim, "[S] Yaw jitter offset", -180, 180);
UI.AddCheckbox(p.antiaim, "[S] Edge yaw")
UI.AddDropdown(p.antiaim_fake, "[S] Fake yaw", ["Opposite", "Jitter", "Static"], 0);
UI.AddSliderInt(p.antiaim_fake, "[S] Fake yaw offset", -60, 60);
UI.AddSliderInt(p.antiaim_fake, "[S] Fake yaw limit", 0, 60);
UI.AddCheckbox(p.antiaim_fake, "[S] Freestand fake yaw");
UI.AddDropdown(p.antiaim_fake, "[S] Bullet evasion", ["Off", "Swap", "Reverse"], 0)
//WALKING
UI.AddDropdown(p.antiaim, "[W] Yaw base", ["Local view", "At targets"], 0);
UI.AddDropdown(p.antiaim, "[W] Yaw", ["180"], 0);
UI.AddSliderInt(p.antiaim, "[W] Yaw offset", -180, 180);
UI.AddDropdown(p.antiaim, "[W] Yaw jitter", ["Offset", "Center", "Random"], 0);
UI.AddSliderInt(p.antiaim, "[W] Yaw jitter offset", -180, 180);
UI.AddCheckbox(p.antiaim, "[W] Edge yaw")
UI.AddDropdown(p.antiaim_fake, "[W] Fake yaw", ["Opposite", "Jitter", "Static"], 0);
UI.AddSliderInt(p.antiaim_fake, "[W] Fake yaw offset", -60, 60);
UI.AddSliderInt(p.antiaim_fake, "[W] Fake yaw limit", 0, 60);
UI.AddCheckbox(p.antiaim_fake, "[W] Freestand fake yaw");
UI.AddDropdown(p.antiaim_fake, "[W] Bullet evasion", ["Off", "Swap", "Reverse"], 0)
//MOVING
UI.AddDropdown(p.antiaim, "[M] Yaw base", ["Local view", "At targets"], 0);
UI.AddDropdown(p.antiaim, "[M] Yaw", ["180"], 0);
UI.AddSliderInt(p.antiaim, "[M] Yaw offset", -180, 180);
UI.AddDropdown(p.antiaim, "[M] Yaw jitter", ["Offset", "Center", "Random"], 0);
UI.AddSliderInt(p.antiaim, "[M] Yaw jitter offset", -180, 180);
UI.AddCheckbox(p.antiaim, "[M] Edge yaw")
UI.AddDropdown(p.antiaim_fake, "[M] Fake yaw", ["Opposite", "Jitter", "Static"], 0);
UI.AddSliderInt(p.antiaim_fake, "[M] Fake yaw offset", -60, 60);
UI.AddSliderInt(p.antiaim_fake, "[M] Fake yaw limit", 0, 60);
UI.AddCheckbox(p.antiaim_fake, "[M] Freestand fake yaw");
UI.AddDropdown(p.antiaim_fake, "[M] Bullet evasion", ["Off", "Swap", "Reverse"], 0)
//UTILS
UI.AddCheckbox(["Rage", "Anti Aim", "General"], "Manual direction")
UI.AddColorPicker(["Rage", "Anti Aim", "General"], "Direction color")
UI.AddHotkey(p.antiaim_keys, "Freestanding", "Freestanding")
UI.AddDropdown(p.antiaim_fake, "Lower body yaw", ["Opposite", "Eye yaw"], 0);
function RandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
function Clamp(num, min, max) {
return num <= min ? min : num >= max ? max : num;
}
function deg2rad( degress ) {
return degress * Math.PI / 180.0;
}
function angle_to_vec( pitch, yaw ) {
var p = deg2rad( pitch );
var y = deg2rad( yaw )
var sin_p = Math.sin( p );
var cos_p = Math.cos( p );
var sin_y = Math.sin( y );
var cos_y = Math.cos( y );
return [ cos_p * cos_y, cos_p * sin_y, -sin_p ];
}
function trace( entity_id, entity_angles ) {
var entity_vec = angle_to_vec( entity_angles[0], entity_angles[1] );
var entity_pos = Entity.GetRenderOrigin( entity_id );
entity_pos[2] += 50;
var stop = [ entity_pos[ 0 ] + entity_vec[0] * 8192, entity_pos[1] + entity_vec[1] * 8192, ( entity_pos[2] ) + entity_vec[2] * 8192 ];
var traceResult = Trace.Line( entity_id, entity_pos, stop );
if( traceResult[1] == 1.0 )
return;
stop = [ entity_pos[ 0 ] + entity_vec[0] * traceResult[1] * 8192, entity_pos[1] + entity_vec[1] * traceResult[1] * 8192, entity_pos[2] + entity_vec[2] * traceResult[1] * 8192 ];
var distance = Math.sqrt( ( entity_pos[0] - stop[0] ) * ( entity_pos[0] - stop[0] ) + ( entity_pos[1] - stop[1] ) * ( entity_pos[1] - stop[1] ) + ( entity_pos[2] - stop[2] ) * ( entity_pos[2] - stop[2] ) );
entity_pos = Render.WorldToScreen( entity_pos );
stop = Render.WorldToScreen( stop );
if( stop[2] != 1 || entity_pos[2] != 1 )
return;
return distance;
}
var lastHitTime = 0.0;
var lastImpactTimes =
[
0.0
];
var lastImpacts =
[
[0.0, 0.0, 0.0]
];
function radian(degree)
{
return degree * Math.PI / 180.0;
}
function ExtendVector(vector, angle, extension)
{
var radianAngle = radian(angle);
return [extension * Math.cos(radianAngle) + vector[0], extension * Math.sin(radianAngle) + vector[1], vector[2]];
}
function VectorAdd(a, b)
{
return [a[0] + b[0], a[1] + b[1], a[2] + b[2]];
}
function VectorSubtract(a, b)
{
return [a[0] - b[0], a[1] - b[1], a[2] - b[2]];
}
function VectorMultiply(a, b)
{
return [a[0] * b[0], a[1] * b[1], a[2] * b[2]];
}
function VectorLength(x, y, z)
{
return Math.sqrt(x * x + y * y + z * z);
}
function VectorNormalize(vec)
{
var length = VectorLength(vec[0], vec[1], vec[2]);
return [vec[0] / length, vec[1] / length, vec[2] / length];
}
function VectorDot(a, b)
{
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
}
function VectorDistance(a, b)
{
return VectorLength(a[0] - b[0], a[1] - b[1], a[2] - b[2]);
}
function ClosestPointOnRay(target, rayStart, rayEnd)
{
var to = VectorSubtract(target, rayStart);
var dir = VectorSubtract(rayEnd, rayStart);
var length = VectorLength(dir[0], dir[1], dir[2]);
dir = VectorNormalize(dir);
var rangeAlong = VectorDot(dir, to);
if (rangeAlong < 0.0)
{
return rayStart;
}
if (rangeAlong > length)
{
return rayEnd;
}
return VectorAdd(rayStart, VectorMultiply(dir, [rangeAlong, rangeAlong, rangeAlong]));
}
var latest_impact = 0;
var Antiaim = {
Counter: 0,
Real: 0,
Fake: 0,
Lby: 0,
Inverse: false,
Enabled: false,
ManualKey: "none",
ManualLeft: false,
ManualRight: false,
ManualBack: false,
GetMode: function() {
var velocity = Entity.GetProp(Entity.GetLocalPlayer(), "CBasePlayer", "m_vecVelocity[0]");
var speed = Math.sqrt(velocity[0] * velocity[0] + velocity[1] * velocity[1]);
var mode = 0;
if (GUI.GetValue(p.antiaim_keys, "Slow walk"))
mode = 1;
else if (speed > 30)
mode = 2;
return mode;
},
HideGroups: function(standing, walking, moving) {
//STANDING
GUI.SetEnabled(p.antiaim, "[S] Yaw base", standing);
GUI.SetEnabled(p.antiaim, "[S] Yaw", standing);
GUI.SetEnabled(p.antiaim, "[S] Yaw offset", standing);
GUI.SetEnabled(p.antiaim, "[S] Yaw jitter", standing);
GUI.SetEnabled(p.antiaim, "[S] Yaw jitter offset", standing);
GUI.SetEnabled(p.antiaim, "[S] Edge yaw", standing);
GUI.SetEnabled(p.antiaim_fake, "[S] Fake yaw", standing);
GUI.SetEnabled(p.antiaim_fake, "[S] Fake yaw offset", standing);
GUI.SetEnabled(p.antiaim_fake, "[S] Fake yaw limit", standing);
GUI.SetEnabled(p.antiaim_fake, "[S] Freestand fake yaw", standing);
GUI.SetEnabled(p.antiaim_fake, "[S] Bullet evasion", standing);
//WALKING
GUI.SetEnabled(p.antiaim, "[W] Yaw base", walking);
GUI.SetEnabled(p.antiaim, "[W] Yaw", walking);
GUI.SetEnabled(p.antiaim, "[W] Yaw offset", walking);
GUI.SetEnabled(p.antiaim, "[W] Yaw jitter", walking);
GUI.SetEnabled(p.antiaim, "[W] Yaw jitter offset", walking);
GUI.SetEnabled(p.antiaim, "[W] Edge yaw", walking);
GUI.SetEnabled(p.antiaim_fake, "[W] Fake yaw", walking);
GUI.SetEnabled(p.antiaim_fake, "[W] Fake yaw offset", walking);
GUI.SetEnabled(p.antiaim_fake, "[W] Fake yaw limit", walking);
GUI.SetEnabled(p.antiaim_fake, "[W] Freestand fake yaw", walking);
GUI.SetEnabled(p.antiaim_fake, "[W] Bullet evasion", walking);
//MOVING
GUI.SetEnabled(p.antiaim, "[M] Yaw base", moving);
GUI.SetEnabled(p.antiaim, "[M] Yaw", moving);
GUI.SetEnabled(p.antiaim, "[M] Yaw offset", moving);
GUI.SetEnabled(p.antiaim, "[M] Yaw jitter", moving);
GUI.SetEnabled(p.antiaim, "[M] Yaw jitter offset", moving);
GUI.SetEnabled(p.antiaim, "[M] Edge yaw", moving);
GUI.SetEnabled(p.antiaim_fake, "[M] Fake yaw", moving);
GUI.SetEnabled(p.antiaim_fake, "[M] Fake yaw offset", moving);
GUI.SetEnabled(p.antiaim_fake, "[M] Fake yaw limit", moving);
GUI.SetEnabled(p.antiaim_fake, "[M] Freestand fake yaw", moving);
GUI.SetEnabled(p.antiaim_fake, "[M] Bullet evasion", moving);
},
HideElements: function(bool) {
if (bool) {
GUI.SetEnabled(p.antiaim, "At targets", 0);
GUI.SetEnabled(p.antiaim, "Yaw offset", 0);
GUI.SetEnabled(p.antiaim, "Jitter offset", 0);
GUI.SetEnabled(p.antiaim, "Auto direction", 0);
GUI.SetEnabled(p.antiaim, "Manual direction", 0);
GUI.SetEnabled(p.antiaim, "Mouse direction", 0);
GUI.SetEnabled(p.antiaim, "In air mode", 0);
GUI.SetEnabled(p.antiaim_fake, "Fake angles", 0);
GUI.SetEnabled(p.antiaim_fake, "Jitter move", 0);
GUI.SetEnabled(p.antiaim_fake, "On-shot desync", 0);
GUI.SetEnabled(p.antiaim_fake, "Hide real angle", 0);
GUI.SetEnabled(p.antiaim_fake, "Avoid overlap", 0);
GUI.SetEnabled(p.antiaim_fake, "Fake desync", 0);
GUI.SetEnabled(p.antiaim_fake, "Lower body yaw mode", 0);
GUI.SetEnabled(p.antiaim_fake, "Inverter flip conditions", 0);
}
else {
GUI.SetEnabled(p.antiaim, "At targets", 1);
GUI.SetEnabled(p.antiaim, "Yaw offset", 1);
GUI.SetEnabled(p.antiaim, "Jitter offset", 1);
GUI.SetEnabled(p.antiaim, "Auto direction", 1);
GUI.SetEnabled(p.antiaim, "Manual direction", 1);
GUI.SetEnabled(p.antiaim, "Mouse direction", 1);
GUI.SetEnabled(p.antiaim, "In air mode", 1);
GUI.SetEnabled(p.antiaim_fake, "Fake angles", 1);
GUI.SetEnabled(p.antiaim_fake, "Jitter move", 1);
GUI.SetEnabled(p.antiaim_fake, "On-shot desync", 1);
GUI.SetEnabled(p.antiaim_fake, "Hide real angle", 1);
GUI.SetEnabled(p.antiaim_fake, "Avoid overlap", 1);
GUI.SetEnabled(p.antiaim_fake, "Fake desync", 1);
GUI.SetEnabled(p.antiaim_fake, "Lower body yaw mode", 1);
GUI.SetEnabled(p.antiaim_fake, "Inverter flip conditions", 1);
}
},
Callback: function() {
if (GUI.GetValue(p.antiaim, "Extended anti-aimbot angles")) {
Antiaim.HideElements(true);
AntiAim.SetOverride(1);
}
else {
Antiaim.HideElements(false);
AntiAim.SetOverride(0);
Antiaim.HideGroups(0, 0, 0)
}
},
Unload: function() {
Antiaim.HideElements(false);
AntiAim.SetOverride(0);
},
CreateMove: function() {
if (UI.GetValue(aa_active)) {
AntiAim.SetOverride(1);
}
else {
AntiAim.SetOverride(0);
return
}
GUI.SetValue(p.antiaim, "Manual direction", 0)
UI.SetHotkeyState(p.antiaim_keys.concat("Left direction"), "Hold")
UI.SetHotkeyState(p.antiaim_keys.concat("Back direction"), "Hold")
UI.SetHotkeyState(p.antiaim_keys.concat("Right direction"), "Hold")
if (GUI.GetValue(["Rage", "Anti Aim", "General"], "Manual direction")) {
if (GUI.GetValue(p.antiaim_keys, "Left direction")) {
if (!Antiaim.ManualLeft) {
Antiaim.ManualLeft = true;
if (Antiaim.ManualKey == "left")
Antiaim.ManualKey = "none"
else
Antiaim.ManualKey = "left"
}
}
else
Antiaim.ManualLeft = false
if (GUI.GetValue(p.antiaim_keys, "Back direction")) {
if (!Antiaim.ManualBack) {
Antiaim.ManualBack = true;
if (Antiaim.ManualKey == "back")
Antiaim.ManualKey = "none"
else
Antiaim.ManualKey = "back"
}
}
else
Antiaim.ManualBack = false
if (GUI.GetValue(p.antiaim_keys, "Right direction")) {
if (!Antiaim.ManualRight) {
Antiaim.ManualRight = true;
if (Antiaim.ManualKey == "right")
Antiaim.ManualKey = "none"
else
Antiaim.ManualKey = "right"
}
}
else
Antiaim.ManualRight = false
}
if (Globals.ChokedCommands() > 0)
return;
Antiaim.Counter++;
var local = Entity.GetLocalPlayer();
/*
* Anti-aimbot: Real yaw
*/
GUI.SetValue(p.antiaim, "Auto direction", GUI.GetValue(p.antiaim_keys, "Freestanding"))
switch (Antiaim.GetMode()) {
case 0:
GUI.SetValue(p.antiaim, "At targets", GUI.GetValue(p.antiaim, "[S] Yaw base"))
Antiaim.Real = GUI.GetValue(p.antiaim, "[S] Yaw offset");
switch (GUI.GetValue(p.antiaim, "[S] Yaw jitter")) {
case 0:
Antiaim.Real += (Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim, "[S] Yaw jitter offset") : 0)
break;
case 1:
Antiaim.Real += (Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim, "[S] Yaw jitter offset") / 2 : GUI.GetValue(p.antiaim, "[S] Yaw jitter offset") / -2)
break;
case 2:
Antiaim.Real += RandomInt(-GUI.GetValue(p.antiaim, "[S] Yaw jitter offset"), GUI.GetValue(p.antiaim, "[S] Yaw jitter offset"));
break;
}
if (GUI.GetValue(p.antiaim, "[S] Edge yaw")) {
var eye_angles = Local.GetViewAngles();
var forward_distance = trace(local, [0, eye_angles[1]]);
/*var left_distance = trace(local, [0, eye_angles[1] - 90]);
var right_distance = trace(local, [0, eye_angles[1] + 90]);
var back_distance = trace(local, [0, eye_angles[1] + 180]);*/
if (forward_distance < 30)
Antiaim.Real = 90;
}
break;
case 1:
GUI.SetValue(p.antiaim, "At targets", GUI.GetValue(p.antiaim, "[W] Yaw base"))
Antiaim.Real = GUI.GetValue(p.antiaim, "[W] Yaw offset");
switch (GUI.GetValue(p.antiaim, "[W] Yaw jitter")) {
case 0:
Antiaim.Real += (Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim, "[W] Yaw jitter offset") : 0)
break;
case 1:
Antiaim.Real += (Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim, "[W] Yaw jitter offset") / 2 : GUI.GetValue(p.antiaim, "[W] Yaw jitter offset") / -2)
break;
case 2:
Antiaim.Real += RandomInt(-GUI.GetValue(p.antiaim, "[W] Yaw jitter offset"), GUI.GetValue(p.antiaim, "[W] Yaw jitter offset"));
break;
}
break;
case 2:
GUI.SetValue(p.antiaim, "At targets", GUI.GetValue(p.antiaim, "[M] Yaw base"))
Antiaim.Real = GUI.GetValue(p.antiaim, "[M] Yaw offset");
switch (GUI.GetValue(p.antiaim, "[M] Yaw jitter")) {
case 0:
Antiaim.Real += (Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim, "[M] Yaw jitter offset") : 0)
break;
case 1:
Antiaim.Real += (Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim, "[M] Yaw jitter offset") / 2 : GUI.GetValue(p.antiaim, "[M] Yaw jitter offset") / -2)
break;
case 2:
Antiaim.Real += RandomInt(-GUI.GetValue(p.antiaim, "[M] Yaw jitter offset"), GUI.GetValue(p.antiaim, "[M] Yaw jitter offset"));
break;
}
break;
}
/*
* Anti-aimbot: Fake yaw
*/
switch (Antiaim.GetMode()) {
case 0:
switch (GUI.GetValue(p.antiaim_fake, "[S] Fake yaw")) {
case 0:
Antiaim.Fake = 60;
if (Math.abs(normalize_yaw(Local.GetRealYaw() - Local.GetFakeYaw())) < 1) {
Antiaim.Real *= -1;
}
break;
case 1:
if (GUI.GetValue(p.antiaim_fake, "[S] Fake yaw offset") == 0) {
Antiaim.Fake = Antiaim.Counter % 2 ? 60 : -29
}
else if (GUI.GetValue(p.antiaim_fake, "[S] Fake yaw offset") % 3 == 0) {
Antiaim.Fake = Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim_fake, "[S] Fake yaw offset") : 0
}
else if (GUI.GetValue(p.antiaim_fake, "[S] Fake yaw offset") % 3 == 1) {
Antiaim.Fake = Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim_fake, "[S] Fake yaw offset") : -GUI.GetValue(p.antiaim_fake, "[S] Fake yaw offset")
}
else {
Antiaim.Fake = Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim_fake, "[S] Fake yaw offset") / 2 : -GUI.GetValue(p.antiaim_fake, "[S] Fake yaw offset");
}
break;
case 2:
Antiaim.Fake = GUI.GetValue(p.antiaim_fake, "[S] Fake yaw offset");
break;
}
Antiaim.Fake = Clamp(Antiaim.Fake, -GUI.GetValue(p.antiaim_fake, "[S] Fake yaw limit"), GUI.GetValue(p.antiaim_fake, "[S] Fake yaw limit"));
if (GUI.GetValue(p.antiaim_fake, "[S] Freestand fake yaw")) {
var eye_angles = Local.GetViewAngles();
var left_distance = trace( local, [ 0, eye_angles[1] - 28] );
var right_distance = trace( local, [ 0, eye_angles[1] + 28] );
if ((left_distance < 600 || right_distance < 600) && left_distance > right_distance) {
Antiaim.Fake *= -1;
}
}
else {
Antiaim.Fake *= -1;
}
break;
case 1:
switch (GUI.GetValue(p.antiaim_fake, "[W] Fake yaw")) {
case 0:
Antiaim.Fake = 60;
if (Math.abs(Math.abs(Local.GetRealYaw()) - Math.abs(Local.GetFakeYaw()) < 1)) {
Antiaim.Real *= -1;
}
break;
case 1:
if (GUI.GetValue(p.antiaim_fake, "[W] Fake yaw offset") == 0) {
Antiaim.Fake = Antiaim.Counter % 2 ? 60 : -29
}
else if (GUI.GetValue(p.antiaim_fake, "[W] Fake yaw offset") % 3 == 0) {
Antiaim.Fake = Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim_fake, "[W] Fake yaw offset") : 0
}
else if (GUI.GetValue(p.antiaim_fake, "[W] Fake yaw offset") % 3 == 1) {
Antiaim.Fake = Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim_fake, "[W] Fake yaw offset") : -GUI.GetValue(p.antiaim_fake, "[W] Fake yaw offset")
}
else {
Antiaim.Fake = Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim_fake, "[W] Fake yaw offset") / 2 : -GUI.GetValue(p.antiaim_fake, "[W] Fake yaw offset");
}
break;
case 2:
Antiaim.Fake = GUI.GetValue(p.antiaim_fake, "[W] Fake yaw offset");
break;
}
Antiaim.Fake = Clamp(Antiaim.Fake, -GUI.GetValue(p.antiaim_fake, "[W] Fake yaw limit"), GUI.GetValue(p.antiaim_fake, "[W] Fake yaw limit"));
if (GUI.GetValue(p.antiaim_fake, "[W] Freestand fake yaw")) {
var eye_angles = Local.GetViewAngles();
var left_distance = trace( local, [ 0, eye_angles[1] - 28] );
var right_distance = trace( local, [ 0, eye_angles[1] + 28] );
if ((left_distance < 600 || right_distance < 600) && left_distance > right_distance) {
Antiaim.Fake *= -1;
}
}
else {
Antiaim.Fake *= -1;
}
break;
case 2:
switch (GUI.GetValue(p.antiaim_fake, "[M] Fake yaw")) {
case 0:
Antiaim.Fake = 60;
if (Math.abs(Math.abs(Local.GetRealYaw()) - Math.abs(Local.GetFakeYaw()) < 1)) {
Antiaim.Real *= -1;
}
break;
case 1:
if (GUI.GetValue(p.antiaim_fake, "[M] Fake yaw offset") == 0) {
Antiaim.Fake = Antiaim.Counter % 2 ? 60 : -29
}
else if (GUI.GetValue(p.antiaim_fake, "[M] Fake yaw offset") % 3 == 0) {
Antiaim.Fake = Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim_fake, "[M] Fake yaw offset") : 0
}
else if (GUI.GetValue(p.antiaim_fake, "[M] Fake yaw offset") % 3 == 1) {
Antiaim.Fake = Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim_fake, "[M] Fake yaw offset") : -GUI.GetValue(p.antiaim_fake, "[M] Fake yaw offset")
}
else {
Antiaim.Fake = Antiaim.Counter % 2 ? GUI.GetValue(p.antiaim_fake, "[M] Fake yaw offset") / 2 : -GUI.GetValue(p.antiaim_fake, "[M] Fake yaw offset");
}
break;
case 2:
Antiaim.Fake = GUI.GetValue(p.antiaim_fake, "[M] Fake yaw offset");
break;
}
Antiaim.Fake = Clamp(Antiaim.Fake, -GUI.GetValue(p.antiaim_fake, "[M] Fake yaw limit"), GUI.GetValue(p.antiaim_fake, "[M] Fake yaw limit"));
if (GUI.GetValue(p.antiaim_fake, "[M] Freestand fake yaw")) {
var eye_angles = Local.GetViewAngles();
var left_distance = trace( local, [ 0, eye_angles[1] - 28] );
var right_distance = trace( local, [ 0, eye_angles[1] + 28] );
if ((left_distance < 600 || right_distance < 600) && left_distance > right_distance) {
Antiaim.Fake *= -1;
}
}
else {
Antiaim.Fake *= -1;
}
break;
}
/*
* Anti-aimbot: Setting values
*/
if (Antiaim.Inverse) {
switch (Antiaim.GetMode()) {
case 0:
switch (GUI.GetValue(p.antiaim_fake, "[S] Bullet evasion")) {
case 1:
Antiaim.Fake *= -1;
break;
case 2:
Antiaim.Fake *= -1;
Antiaim.Real *= -1;
break;
}
break;
case 1:
switch (GUI.GetValue(p.antiaim_fake, "[W] Bullet evasion")) {
case 1:
Antiaim.Fake *= -1;
break;
case 2:
Antiaim.Fake *= -1;
Antiaim.Real *= -1;
break;
}
break;
case 2:
switch (GUI.GetValue(p.antiaim_fake, "[M] Bullet evasion")) {
case 1:
Antiaim.Fake *= -1;
break;
case 2:
Antiaim.Fake *= -1;
Antiaim.Real *= -1;
break;
}
break;
}
}
if (GUI.GetValue(p.antiaim_keys, "AA direction inverter"))
Antiaim.Fake *= -1;
if (Antiaim.ManualKey == "left") {
GUI.SetValue(p.antiaim, "At targets", 0)
Antiaim.Real = -45;
}
else if (Antiaim.ManualKey == "right") {
GUI.SetValue(p.antiaim, "At targets", 0)
Antiaim.Real = 45;
}
switch (GUI.GetValue(p.antiaim_fake, "Lower body yaw")) {
case 0:
GUI.SetValue(p.antiaim, "Yaw offset", Antiaim.Real);
AntiAim.SetFakeOffset(Antiaim.Real)
AntiAim.SetRealOffset(Antiaim.Fake != 0 ? Antiaim.Fake * 2 + (Antiaim.Fake > 0 ? -60 : 60) : 60)
AntiAim.SetLBYOffset(Antiaim.Fake > 0 ? -120 : 120);
break;
case 1:
GUI.SetValue(p.antiaim, "Yaw offset", Antiaim.Real - Antiaim.Fake / 4);
AntiAim.SetFakeOffset(Antiaim.Real)
AntiAim.SetRealOffset(Antiaim.Real + Antiaim.Fake)
AntiAim.SetLBYOffset(0);
break;
}
},
ArrowsAlpha: 0,
ArrowsText: "",
AlphaShouldSwitch: false,
MenuUpdate: Globals.Curtime(),
Draw: function() {
if (Antiaim.MenuUpdate + 0.16 < Globals.Curtime()) {
Antiaim.MenuUpdate = Globals.Curtime()
switch (GUI.GetValue(p.antiaim, "Anti-aimbot mode")) {
case 0:
Antiaim.HideGroups(1, 0, 0);
break;
case 1:
Antiaim.HideGroups(0, 1, 0);
break;
case 2:
Antiaim.HideGroups(0, 0, 1);
break;
}
Antiaim.Callback()
}
// Arrows
if (World.GetServerString() && Entity.IsAlive(Entity.GetLocalPlayer())) {
var t = Globals.Frametime() * 1.5 * 255;
if (GUI.GetValue(["Rage", "Anti Aim", "General"], "Manual direction")) {
var color = GUI.GetColor(["Rage", "Anti Aim", "General"], "Direction color")
color[3] = Antiaim.ArrowsAlpha
var y = center_screen[1]
if (Antiaim.ManualKey == "left") {
Antiaim.ArrowsText = "left"
if (Antiaim.ArrowsAlpha == 255) AlphaShouldSwitch = true;
else if (Antiaim.ArrowsAlpha == 0) AlphaShouldSwitch = false;
Antiaim.ArrowsAlpha += (AlphaShouldSwitch ? -t : t);
}
else if (Antiaim.ManualKey == "right") {
Antiaim.ArrowsText = "right"
if (Antiaim.ArrowsAlpha == 255) AlphaShouldSwitch = true;
else if (Antiaim.ArrowsAlpha == 0) AlphaShouldSwitch = false;
Antiaim.ArrowsAlpha += (AlphaShouldSwitch ? -t : t);
}
else {
Antiaim.ArrowsAlpha -= t * 2;
}
Antiaim.ArrowsAlpha = Clamp(Antiaim.ArrowsAlpha, 0, 255)
if (Antiaim.ArrowsText == "left") {
var x = center_screen[0] - 50
Render.Polygon( [[x, y], [x+15, y-8], [x+12, y]], color);
Render.Polygon( [[x+12, y], [x+15, y+8], [x, y]], color);
Render.Polygon( [[x, y], [x+15, y-8], [x+12, y]], [255, 255, 255, 25 * (Antiaim.ArrowsAlpha / 255)]);
Render.Polygon( [[x+12, y], [x+15, y+8], [x, y]], [0, 0, 0, 50 * (Antiaim.ArrowsAlpha / 255)]);
}
else if (Antiaim.ArrowsText == "right") {
var x = center_screen[0] + 50
Render.Polygon( [[x-12, y], [x-15, y-8], [x, y]], color);
Render.Polygon( [[x-15, y+8], [x-12, y], [x, y]], color);
Render.Polygon( [[x-12, y], [x-15, y-8], [x, y]], [255, 255, 255, 25 * (Antiaim.ArrowsAlpha / 255)]);
Render.Polygon( [[x-15, y+8], [x-12, y], [x, y]], [0, 0, 0, 50 * (Antiaim.ArrowsAlpha / 255)]);
}
//Visuals.Text(center_screen[0] + (Antiaim.ArrowsText == "<" ? -50 : 50), center_screen[1] - 10, "+", Antiaim.ArrowsText, color)
}
}
},
BulletImpact: function() {
var curtime = Global.Curtime();
if (Entity.GetEntityFromUserID(Event.GetInt("userid")) == Entity.GetLocalPlayer())
latest_impact = Globals.Tickcount();
if (Math.abs(lastHitTime - curtime) < 0.5) return;
var entity = Entity.GetEntityFromUserID(Event.GetInt("userid"));
var impact = [Event.GetFloat("x"), Event.GetFloat("y"), Event.GetFloat("z"), curtime];
var source;
if (Entity.IsValid(entity) && Entity.IsEnemy(entity))
{
if (!Entity.IsDormant(entity))
{
source = Entity.GetEyePosition(entity);
}
else if (Math.abs(lastImpactTimes[entity] - curtime) < 0.1)
{
source = lastImpacts[entity];
}
else
{
lastImpacts[entity] = impact;
lastImpactTimes[entity] = curtime;
return;
}
var local = Entity.GetLocalPlayer();
var localEye = Entity.GetEyePosition(local);
var localOrigin = Entity.GetProp(local, "CBaseEntity", "m_vecOrigin");
var localBody = VectorMultiply(VectorAdd(localEye, localOrigin), [0.5, 0.5, 0.5]);
var bodyVec = ClosestPointOnRay(localBody, source, impact);
var bodyDist = VectorDistance(localBody, bodyVec);
if (bodyDist < 150) //he clearly shot at us!
{
var realAngle = Local.GetRealYaw();
var fakeAngle = Local.GetFakeYaw();
var headVec = ClosestPointOnRay(localEye, source, impact);
var headDist = VectorDistance(localEye, headVec);
var feetVec = ClosestPointOnRay(localOrigin, source, impact);
var feetDist = VectorDistance(localOrigin, feetVec);
var closestRayPoint;
var realPos;
var fakePos;
if (bodyDist < headDist && bodyDist < feetDist) //that's a pelvis
{ //pelvis direction = goalfeetyaw + 180
closestRayPoint = bodyVec;
realPos = ExtendVector(bodyVec, realAngle + 180.0, 10.0);
fakePos = ExtendVector(bodyVec, fakeAngle + 180.0, 10.0);
}
else if (feetDist < headDist) //ow my toe
{ //toe direction = goalfeetyaw -30 +- 90
closestRayPoint = feetVec;
var realPos1 = ExtendVector(bodyVec, realAngle - 30.0 + 60.0, 10.0);
var realPos2 = ExtendVector(bodyVec, realAngle - 30.0 - 60.0, 10.0);
var fakePos1 = ExtendVector(bodyVec, fakeAngle - 30.0 + 60.0, 10.0);
var fakePos2 = ExtendVector(bodyVec, fakeAngle - 30.0 - 60.0, 10.0);
if (VectorDistance(feetVec, realPos1) < VectorDistance(feetVec, realPos2))
{
realPos = realPos1;
}
else
{
realPos = realPos2;
}
if (VectorDistance(feetVec, fakePos1) < VectorDistance(feetVec, fakePos2))
{
fakePos = fakePos1;
}
else
{
fakePos = fakePos2;
}
}
else //ow my head i feel like i slept for 2 days
{
closestRayPoint = headVec;
realPos = ExtendVector(bodyVec, realAngle, 10.0);
fakePos = ExtendVector(bodyVec, fakeAngle, 10.0);
}
if (VectorDistance(closestRayPoint, fakePos) < VectorDistance(closestRayPoint, realPos)) //they shot at our fake. they will probably not gonna shoot it again.
{
lastHitTime = curtime;
Antiaim.Inverse = !Antiaim.Inverse
}
}
lastImpacts[entity] = impact;
lastImpactTimes[entity] = curtime;
}
},
}
Antiaim.HideElements(GUI.GetValue(p.antiaim, "Extended anti-aimbot angles"));
Antiaim.HideGroups(0, 0, 0);
Antiaim.Callback();
GUI.RegisterCallback(p.antiaim, "Extended anti-aimbot angles", "Antiaim.Callback");
Cheat.RegisterCallback("CreateMove", "Antiaim.CreateMove");
Cheat.RegisterCallback("bullet_impact", "Antiaim.BulletImpact")
Cheat.RegisterCallback("Unload", "Antiaim.Unload");
Cheat.RegisterCallback("Draw", "Antiaim.Draw");
/*
* Section: Materials
*/
var mats = []
var subtab = ["Visuals", "Chams", "Global"]
var editor_array = []
function makemat(name) {
Material.Create(name)
editor_array.push(name)
mats.push({
mat_name: name,
ui_color: subtab.concat(name + " color"),
update: true,
update_color: true,
first: true
})
}
function lerp(a, b, c) {
return (b - a) * c + a
}
function HSVtoRGB(h, s, v) {
var r, g, b, i, f, p, q, t;
if (arguments.length === 1) {
s = h.s, v = h.v, h = h.h;
}
i = Math.floor(h * 6);
f = h * 6 - i;
p = v * (1 - s);
q = v * (1 - f * s);
t = v * (1 - (1 - f) * s);
switch (i % 6) {
case 0: r = v, g = t, b = p; break;
case 1: r = q, g = v, b = p; break;
case 2: r = p, g = v, b = t; break;
case 3: r = p, g = q, b = v; break;
case 4: r = t, g = p, b = v; break;
case 5: r = v, g = p, b = q; break;
}
return [
Math.round(r * 255),
Math.round(g * 255),
Math.round(b * 255),
255
]
}
function Glow_Material() {
for (i in mats) {
var mat = Material.Get(mats[i].mat_name)
var refresh = false
if (mats[i].first) {
mats[i].first = false
Material.SetKeyValue(mat, "$basetexture", "vgui/white")
Material.SetKeyValue(mat, "$envmap", "models/effects/cube_white")
Material.SetKeyValue(mat, "$envmapfresnel", "1")
refresh = true
}
if (mats[i].update) {
mats[i].update = false
refresh = true
}
if (mats[i].update_color) {
mats[i].update_color = false
var uicol = UI.GetColor(mats[i].ui_color)
Material.SetKeyValue(mat, "$envmaptint", "[" + uicol[0] / 255 + " " + uicol[1] / 255 + " " + uicol[2] / 255 + "]")
var alpha_fraction = uicol[3] / 255
if (alpha_fraction > 1)
alpha_fraction = 1
var first = lerp(12, 1, alpha_fraction)
var second = lerp(24, 2, alpha_fraction)
Material.SetKeyValue(mat, "$envmapfresnelminmaxexp", "[0 " + first + " " + second + "]")
refresh = true
}
if (refresh)
Material.Refresh(mat)
}
}
function Glow_Unload() {
for (i in mats)
Material.Destroy(mats[i].mat_name)
}
var lasttime = 0
var last_ui_values = {}
var last_ui_colors = {}
var last_editor_value = -1
var last_current_mat_settings = []
function Glow_Draw() {
// update every 16.6666667 ms to save some fps :)
var time = Globals.Realtime()
if (time - lasttime > (16.6666667) / 1000) {
for (i in mats) {
var ui_col = UI.GetColor(mats[i].ui_color)
if (last_ui_colors[mats[i].mat_name] == null)
last_ui_colors[mats[i].mat_name] = ui_col
if (last_ui_colors[mats[i].mat_name][0] != ui_col[0] ||
last_ui_colors[mats[i].mat_name][1] != ui_col[1] ||
last_ui_colors[mats[i].mat_name][2] != ui_col[2] ||
last_ui_colors[mats[i].mat_name][3] != ui_col[3]) {
last_ui_colors = ui_col
mats[i].update_color = true
}
}
var editor_value = UI.GetValue(subtab.concat("Editor"))
if (editor_value != last_editor_value) {
last_editor_value = editor_value
var mat = mats[editor_value]
UI.SetEnabled(subtab.concat(mat.mat_name + " color"), 1)
for (i in mats) {
if (mats[i].mat_name == mat.mat_name)
continue
UI.SetEnabled(subtab.concat(mats[i].mat_name + " color"), 0)
}
}
}
}
makemat("Glow (1)")
makemat("Glow (2)")
makemat("Glow (3)")
UI.AddDropdown(subtab, "Editor", editor_array, 0)
for (i in mats) {
var name = mats[i].mat_name
UI.AddColorPicker(subtab, name + " color")
}
for (i in mats) {
mats[i].first = true
}
Cheat.RegisterCallback("Draw", "Glow_Draw")
Cheat.RegisterCallback("Unload", "Glow_Unload")
Cheat.RegisterCallback("Material", "Glow_Material")
/*
* Section: Visuals
*/
UI.AddCheckbox(p.visuals, "[NW] HP Bar")
UI.AddCheckbox(p.visuals, "[NW] Weapon name")
UI.AddCheckbox(p.visuals, "[NW] Zeus warning")
UI.AddCheckbox(p.visuals, "[NW] Ping warning")
UI.AddCheckbox(p.visuals, "Show difference between delays");
UI.AddCheckbox(p.radar, "[NW] Hostages")
UI.AddCheckbox(p.radar, "[NW] Bomb")
UI.AddCheckbox(p.radar, "[NW] FOV Arrows")
UI.AddCheckbox(p.radar, "[NW] Dormant arrows")
var screen_size = Render.GetScreenSize();
var center_screen = [screen_size[0]/2, screen_size[1]/2 ]
var lp = Entity.GetLocalPlayer;
function rad( deg )
{
return deg * Math.PI / 180
}
function normalize_yaw(angle) {
angle = (angle % 360 + 360) % 360;
return angle > 180 ? angle - 360 : angle;
}
function calculate_yaw(src, to) {
var delta = [src[0] - to[0], src[1] - to[1]]
var yaw = Math.atan(delta[1]/delta[0])
yaw = normalize_yaw(yaw * 180 / Math.PI)
if (delta[0] >= 0)
yaw = normalize_yaw(yaw + 180)
return yaw
}
function rotate_angle(cx, cy, deg, distance)
{
var viewAngles = Local.GetViewAngles()
deg = rad( deg - viewAngles[1] )
var x = Math.sin( deg ) * distance
var y = Math.cos( deg ) * distance
x = cx - x
y = cy - y
return [ x, y ]
}
function calculate_angles(x, y) {
var _0x1a38f0 = [y[0x0] - x[0x0], y[0x1] - x[0x1], y[0x2] - x[0x2]];
var _0x53da66 = -radian_to_degree(Math.atan2(_0x1a38f0[0x2], Math.hypot(_0x1a38f0[0x0], _0x1a38f0[0x1])));
var _0x136715 = radian_to_degree(Math.atan2(_0x1a38f0[0x1], _0x1a38f0[0x0]));
return [_0x53da66, _0x136715, 0x0];
}
/*function drawArrow(angle) {
const pulse = Clamp(Math.floor(Math.sin(Globals.Realtime() * 4) * 127 + 128), 0, 255)
var distance = GUI.GetValue(p.radar, "Arrow distance")
var size = Math.pow(GUI.GetValue(p.radar, "Arrow size"), 5)
var color = GUI.GetColor(p.radar, "FOV arrows")
/*
var radius = 50 + ((screen_size[0] / 4) * distance)
var pos = [center_screen[0] + radius * Math.cos(angle), center_screen[1] + radius * Math.sin(angle)]
var line = [pos[0] - center_screen[0], pos[1] - center_screen[1]]
var arrowBase = [pos[0] - line[0] * (size / (2 * (Math.tan(rad(45)) / 2) * Math.sqrt(line[0] * line[0] + line[1] * line[1]))), pos[1] - line[1] * (size / (2 * (Math.tan(rad(45)) / 2) * Math.sqrt(line[0] * line[0] + line[1] * line[1])))]
var arrowNormal = [-line[1], line[0]]
var arrowLeft = [arrowBase[0] + arrowNormal[0] * (size / (2 * Math.sqrt(line[0] * line[0] + line[1] * line[1]))), arrowBase[1] + arrowNormal[1] * (size / (2 * Math.sqrt(line[0] * line[0] + line[1] * line[1])))]
var arrowRight = [arrowBase[0] + arrowNormal[0] * (-size / (2 * Math.sqrt(line[0] * line[0] + line[1] * line[1]))), arrowBase[1] + arrowNormal[1] * (size / (2 * Math.sqrt(line[0] * line[0] + line[1] * line[1])))]
var new_point = rotate_angle(center_screen[0], center_screen[1], angle, distance, 1, 1.2)
var top = rotate_angle(new_point[0], new_point[1], angle, 50, 1, 1)
var left = rotate_angle( new_point[0], new_point[1], angle + (50/2), 50/2, 1.2, 1)
var right = rotate_angle( new_point[0], new_point[1], angle - (50/2), 50/2, 1.2, 1)
Render.Polygon( [top, left, right], [color[0], color[1], color[2],pulse] );
}*/
function drawArrow(angle) {
const pulse = Clamp((Math.floor(Math.sin(Globals.Realtime() * 5) * 127) + 128) + 20, 20, 255)
var distance = GUI.GetValue(p.radar, "Arrow distance") * 600
var size = GUI.GetValue(p.radar, "Arrow size") * 30
var color = GUI.GetColor(p.radar, "FOV arrows")
var new_point = rotate_angle(center_screen[0], center_screen[1], angle, distance)
var top = rotate_angle(new_point[0], new_point[1], angle, size)
var left = rotate_angle( new_point[0], new_point[1], angle + (size/2), size/2)
var right = rotate_angle( new_point[0], new_point[1], angle - (size/2), size/2)
Render.Polygon([top, right, left], [color[0], color[1], color[2], pulse]);
}
/*function drawArrow(angle) {
const pulse = Clamp((Math.floor(Math.sin(Globals.Realtime() * 5) * 127) + 128) + 20, 20, 255)
var distance = GUI.GetValue(p.radar, "Arrow distance") * 600
var size = GUI.GetValue(p.radar, "Arrow size") * 30
var color = GUI.GetColor(p.radar, "FOV arrows")
angle = Local.GetCameraAngles()[1] - angle - 90;
const _0x55b844 = deg2rad(angle)
var x = center_screen[0] + Math.cos(_0x55b844) * distance;
var y = center_screen[1] + Math.sin(_0x55b844) * distance;
}*/
function world_point_visible(origin) {
var w2s = Render.WorldToScreen(origin)
if (w2s[0] < 0 || w2s[0] > screen_size[0] || w2s[1] < 0 || w2s[1] > screen_size[1])
return false
else
return true
}
function paint() {
if (!GUI.GetValue(p.radar, "[NW] FOV Arrows") || Entity.IsAlive(lp()) == false)
return
var players = Entity.GetEnemies();
var local_origin = Local.GetCameraPosition();
for (var i in players) {
var player = players[i]
if (Entity.IsValid(player) && Entity.IsAlive(player)) {
var player_origin = Entity.GetRenderOrigin(player);
var angles = calculate_yaw(local_origin, player_origin);
var do_draw = world_point_visible(player_origin)
if (!do_draw && ((GUI.GetValue(p.radar, "[NW] Dormant arrows") && Visuals.LastSeen[player] + 10 > Globals.Curtime()) || !Entity.IsDormant(player)))
drawArrow(angles)
}
}
}
Cheat.RegisterCallback("Draw", "paint");
function get_icon_name(a) {
var letter = ""
switch (a) {
case "desert eagle":
letter = "A"
break
case "dual berettas":
letter = "B"
break
case "five seven":
letter = "C"
break
case "glock 18":
letter = "D"
break
case "ak 47":
letter = "W"
break
case "aug":
letter = "U"
break
case "awp":
letter = "Z"
break
case "famas":
letter = "R"
break
case "m249":
letter = "g"
break
case "g3sg1":
letter = "X"
break
case "galil ar":
letter = "Q"
break
case "m4a4":
letter = "S"
break
case "m4a1 s":
letter = "T"
break
case "mac 10":
letter = "K"
break
case "p2000":
letter = "E"
break
case "ump 45":
letter = "L"
break
case "xm1014":
letter = "b"
break
case "pp bizon":
letter = "M"
break
case "mag 7":
letter = "d"
break
case "negev":
letter = "f"
break
case "sawed off":
letter = "c"
break
case "tec 9":
letter = "w"
break
case "zeus x27":
letter = "h"
break
case "p250":
letter = "F"
break
case "mp7":
letter = "N"
break
case "mp9":
letter = "O"
break
case "nova":
letter = "e"
break
case "p90":
letter = "P"
break
case "scar 20":
letter = "Y"
break
case "sg 553":
letter = "V"
break
case "ssg 08":
letter = "a"
break
case "knife":
letter = "["
break
case "flashbang":
letter = "i"
break
case "high explosive grenade":
letter = "j"
break
case "smoke grenade":
letter = "k"
break
case "molotov":
letter = "l"
break
case "decoy grenade":
letter = "m"
break
case "incendiary grenade":
letter = "n"
break
case "c4 explosive":
letter = "o"
break
case "usp s":
letter = "G"
break
case "cz75 auto":
letter = "I"
break
case "r8 revolver":
letter = "J"
break
case "bayonet":
letter = "1"
break
case "flip knife":
letter = "2"
break
case "gut knife":
letter = "3"
break
case "karambit":
letter = "4"
break
case "m9 bayonet":
letter = "5"
break
case "falchion knife":
letter = "0"
break
case "bowie knife":
letter = "7"
break
case "butterfly knife":
letter = "8"
break
case "shadow daggers":
letter = "9"
break
case "ursus knife":
letter = "6"
break
case "navaja knife":
letter = "0"
break
case "stiletto knife":
letter = "1"
break
case "skeleton knife":
letter = "8"
break
case "huntsman knife":
letter = "6"
break
case "talon knife":
letter = "4"
break
case "classic knife":
letter = "7"
break
case "paracord knife":
letter = "1"
break
case "survival knife":
letter = "2"
break
case "nomad knife":
letter = "6"
break
default:
letter = ""
break
}
return letter
}
Entity.IsFakeDucking = function(player) {
const DuckSpeed = Entity.GetProp(player, "CBasePlayer", "m_flDuckSpeed");
const DuckAmount = Entity.GetProp(player, "CBasePlayer", "m_flDuckAmount");
const Flags = Entity.GetProp(player, "CBasePlayer", "m_fFlags");
if (DuckSpeed == 8 && DuckAmount > 0 && !(Flags & (1 << 1)))
return true;
return false;
}
var Visuals = {
LastSeen: new Array(64),
PFlags: new Object(),
Hittables: new Array(),
Fonts: function() {
var sfont = Render.GetFont("font.ttf", 16, false)
var nfont = Render.GetFont("Verdana.ttf", 10, true)
var bfont = Render.GetFont("Calibrib.ttf", Indicators.Size, true)
if (Northwood.Get("visuals:weapon_icon") == "true")
var ifont = Render.GetFont("undefeated.ttf", 14, true)
return [sfont, nfont, bfont, ifont]
},
Text: function(x, y, flags, text, color) {
var sfont = Render.GetFont("font.ttf", 16, false)
var nfont = Render.GetFont("Verdana.ttf", 10, true)
var bfont = Render.GetFont("Calibrib.ttf", Indicators.Size, true)
if (Northwood.Get("visuals:weapon_icon") == "true")
var ifont = Render.GetFont("undefeated.ttf", 14, true)
if (flags.includes("-")) {
Render.String(x-1, y-1, flags.includes("c") ? 1 : 0, text, [0, 0, 0, color[3]], sfont)
Render.String(x+1, y-1, flags.includes("c") ? 1 : 0, text, [0, 0, 0, color[3]], sfont)
Render.String(x-1, y+1, flags.includes("c") ? 1 : 0, text, [0, 0, 0, color[3]], sfont)
Render.String(x+1, y+1, flags.includes("c") ? 1 : 0, text, [0, 0, 0, color[3]], sfont)
Render.String(x, y-1, flags.includes("c") ? 1 : 0, text, [0, 0, 0, color[3]], sfont)
Render.String(x+1, y, flags.includes("c") ? 1 : 0, text, [0, 0, 0, color[3]], sfont)
Render.String(x-1, y, flags.includes("c") ? 1 : 0, text, [0, 0, 0, color[3]], sfont)
Render.String(x, y+1, flags.includes("c") ? 1 : 0, text, [0, 0, 0, color[3]], sfont)
Render.String(x, y, flags.includes("c") ? 1 : 0, text, color, sfont)
}
else if (flags.includes("+")) {
Render.String(x+1, y+1, flags.includes("c") ? 1 : 0, text, [0, 0, 0, color[3]], bfont)
Render.String(x, y, flags.includes("c") ? 1 : 0, text, color, bfont)
}
else if (flags.includes("i")) {
Render.String(x+1, y+1, flags.includes("c") ? 1 : 0, text, [0, 0, 0, color[3]], ifont)
Render.String(x, y, flags.includes("c") ? 1 : 0, text, color, ifont)
}
else {
Render.String(x+1, y+1, flags.includes("c") ? 1 : 0, text, [0, 0, 0, color[3]], nfont)
Render.String(x, y, flags.includes("c") ? 1 : 0, text, color, nfont)
}
},
WeaponName: function(ply) {
var weaponname = Entity.GetName(Entity.GetWeapon(ply)).toUpperCase()
switch (weaponname) {
case "SCAR 20":
weaponname = "SCAR-20"
break;
}
return weaponname;
},
CreateMove: function() {
Visuals.Hittables = new Array();
var enem = Entity.GetEnemies();
var lp = Entity.GetLocalPlayer();
for (var i = 0; i < enem.length; i++) {
var ply = enem[i];
if (!Entity.IsAlive(ply) || Entity.GetName(Entity.GetWeapon(ply)).includes("knife"))
continue;
var target_body = Entity.GetHitboxPosition(ply, 2);
var target_head = Entity.GetHitboxPosition(ply, 0);
var local_eye = Entity.GetEyePosition(lp);
var trace = Trace.Bullet(lp, ply, local_eye, target_body);
if (trace !== undefined && trace[1] > 0)
Visuals.Hittables.push(ply);
else {
trace = Trace.Bullet(lp, ply, local_eye, target_head);
if (trace !== undefined && trace[1] > 0)
Visuals.Hittables.push(ply);
}
}
},
Draw: function() {
var enem = Entity.GetEnemies();
for (var i = 0; i < enem.length; i++) {
var ply = enem[i];
if (!Entity.IsAlive(ply))
continue;
var b = Entity.GetRenderBox(ply);
var w = b[3] - b[1];
var h = b[4] - b[2];
var dcolor = GUI.GetColor(["Visuals", "Extra", "General"], "Dormant ESP");
var dalpha = 1;
if (!Entity.IsDormant(ply))
Visuals.LastSeen[i] = Globals.Curtime();
else { dalpha = 0.7 }
if (Visuals.LastSeen[i] + 11 > Globals.Curtime() && Visuals.LastSeen[i] + 10 < Globals.Curtime()) {
dalpha = Math.max(0.7 + (Visuals.LastSeen[i] + 10 - Globals.Curtime()), 0)
}
dcolor = [dcolor[0], dcolor[1], dcolor[2], dcolor[3] * dalpha]
if (Visuals.LastSeen[i] + 11 < Globals.Curtime() || Visuals.LastSeen[i] == undefined)
continue;
Visuals.PFlags[ply] = new Array();
Visuals.PFlags[ply].push(["$"+Entity.GetProp(ply, "CCSPlayer", "m_iAccount").toString(), [140, 200, 40, 175]]);
if (Entity.GetProp(ply, "CCSPlayerResource", "m_iArmor") > 0)
Visuals.PFlags[ply].push([(Entity.GetProp(ply, "CCSPlayer", "m_bHasHelmet") ? "HK" : "K"), [255, 255, 255, 175]]);
if (Entity.GetProp(ply, "CCSPlayer", "m_bIsScoped") > 0)
Visuals.PFlags[ply].push(["ZOOM", [87, 175, 255, 175]]);
if (Entity.GetProp(ply, "CCSPlayer", "m_flFlashDuration") > 0)
Visuals.PFlags[ply].push(["BLIND", [87, 175, 255, 175]]);
var weapons = Entity.GetWeapons(ply);
var hasc4 = false;
for (var wn in weapons) {
if (Entity.GetName(weapons[wn]) == "c4 explosive")
hasc4 = true;
}
if (hasc4)
Visuals.PFlags[ply].push(["B", [255, 0, 0, 175]]);
if (Entity.IsFakeDucking(ply))
Visuals.PFlags[ply].push(["FD", [255, 255, 255, 175]]);
if (Entity.GetProp(ply, "CCSPlayer", "m_hCarriedHostage").toString() != "m_hCarriedHostage")
Visuals.PFlags[ply].push(["VIP", [255, 0, 0, 175]]);
if (Entity.GetProp(Entity.GetWeapon(ply), "CBaseCSGrenade", "m_bPinPulled"))
Visuals.PFlags[ply].push(["PIN", [255, 0, 0, 175]]);
if (Visuals.Hittables.indexOf(ply) !== -1)
Visuals.PFlags[ply].push(["HIT", [255, 255, 255, 175]]);
if (Northwood.Get("visuals:weapon_icon") && b[0]) {
var flags = Visuals.PFlags[ply];
for (var f in flags) {
var ft = flags[f][0];
var fc = !Entity.IsDormant(ply) ? flags[f][1] : dcolor;
if (Entity.IsDormant(ply))
fc[3] *= 1.2;
Visuals.Text(b[3] + 3, Math.floor(b[2] - 5 + (10 * f)), "-", ft, fc)
}
}
if (GUI.GetValue(p.visuals, "[NW] HP Bar")) {
/*
* HP BAR
*/
if (b[0]) {
var hp = Entity.GetProp(ply, "CCSPlayer", "m_iHealth")
var maxhp = 100;
var hpheight = Math.ceil(h / maxhp * Math.min(hp, 100))
var color = GUI.GetColor(p.visuals, "Health color override")
if (Northwood.Get("visuals:weapon_icon") == "true") {
if (hp <= 30)
color = [200, 100, 90, 255];
else if (hp <= 50)
color = [200, 200, 90, 255];
else
color = [90, 200, 100, 255];
}
/*if (hp <= 30)
color = [90, 50, 150, 255];
else if (hp <= 50)
color = [50, 90, 150, 255];*/
Render.FilledRect(b[1] - 6, b[2] - 1, 4, h + 2, [0, 0, 0, 125 * dalpha]);
Render.FilledRect(b[1] - 5, Math.floor(b[2] + (h / maxhp * (maxhp - hp))), 2, hpheight, !Entity.IsDormant(ply) ? color : dcolor);
if (!Entity.IsDormant(ply) && Northwood.Get("visuals:weapon_icon") != "true") {
if (hp <= 30)
Render.FilledRect(b[1] - 5, Math.floor(b[2] + (h / maxhp * (maxhp - hp))), 2, hpheight, [0, 0, 0, 150]);
else if (hp <= 50)
Render.FilledRect(b[1] - 5, Math.floor(b[2] + (h / maxhp * (maxhp - hp))), 2, hpheight, [0, 0, 0, 80]);
}
if (hp < 95 || hp > 100)
Visuals.Text(b[1] - 4, b[2] + (h / maxhp * (maxhp - hp)) - 6, "c-", hp.toString(), [255, 255, 255, 200 * dalpha])
}
}
if (GUI.GetValue(p.visuals, "[NW] Weapon name")) {
/*
* WEAPON NAME
*/
if (b[0] && Visuals.WeaponName(ply) != Entity.GetName(ply).toUpperCase())
Visuals.Text(b[1] + w/2, b[4] + (!Entity.IsDormant(ply) ? 4 : 0), "c-", Visuals.WeaponName(ply), [255, 255, 255, 220 * dalpha])
}
if (Northwood.Get("visuals:weapon_icon") == "true" && b[0] && Visuals.WeaponName(ply) != Entity.GetName(ply).toUpperCase())
Visuals.Text(b[1] + w/2, b[4] + (!Entity.IsDormant(ply) && !Entity.GetName(Entity.GetWeapon(ply)).includes("knife") ? 6 : 2), "ci", get_icon_name(Entity.GetName(Entity.GetWeapon(ply))), [255, 255, 255, 220 * dalpha])
if (GUI.GetValue(p.visuals, "[NW] Zeus warning")) {
if (b[0] && !Entity.IsDormant(ply)) {
var flag = false;
for (var wpn in Entity.GetWeapons(ply)) {
if (Entity.GetName(Entity.GetWeapons(ply)[wpn]) == "zeus x27")
flag = true;
}
if (flag) {
var x = b[1] - 14;
var y = b[2];
Render.Polygon([[x, y], [x, y+7], [x-6, y+7]], [255, 255, 0, 255])
Render.Polygon([[x, y], [x+4, y], [x-2, y+7]], [255, 255, 0, 255])
Render.Polygon([[x-1, y+5], [x+6, y+5], [x-3, y+12]], [255, 255, 0, 255])
}
}
}
if (GUI.GetValue(p.visuals, "[NW] Ping warning")) {
if (b[0]) {
var localping = Math.floor(Entity.GetProp(Entity.GetLocalPlayer(), "CPlayerResource", "m_iPing"));
var ping = Math.floor(Entity.GetProp(ply, "CPlayerResource", "m_iPing"));
if (GUI.GetValue(p.visuals, "Show difference between delays")) {
if (localping - ping > 0) {
var color = Northwood.Utils.StatusColor(Math.max(0, 100 - (localping - ping)), 100);
Visuals.Text(Math.floor(b[1] + w/2) - 1, b[2] - 25, "c-", String.format("+{0} MS", localping - ping), Entity.IsDormant(ply) ? dcolor : color.concat(200));
}
else {
var color = Northwood.Utils.StatusColor(Math.max(0, ping - localping), 100, 5);
Visuals.Text(Math.floor(b[1] + w/2) - 1, b[2] - 25, "c-", String.format("-{0} MS", ping - localping), Entity.IsDormant(ply) ? dcolor : color.concat(200));
}
}
else {
var color = Northwood.Utils.StatusColor(Math.max(0, 150 - ping), 150);
Visuals.Text(Math.floor(b[1] + w/2) - 1, b[2] - 25, "c-", String.format("{0} MS", ping), Entity.IsDormant(ply) ? dcolor : color.concat(200));
}
}
}
}
},
DrawEntities: function() {
if (GUI.GetValue(p.radar, "[NW] Hostages")) {
var ents = Entity.GetEntitiesByClassID(97);
for(i=0; i < ents.length; i++) {
var ent = ents[i];
var origin = Entity.GetRenderOrigin(ent);
var scr = Render.WorldToScreen(origin)
if (scr[2] && calcDist(Entity.GetRenderOrigin(lp()), origin) < 1200)
Visuals.Text(scr[0] - 20, Math.max(scr[1] - 20, 0), "-", "HOSTAGE", [56, 159, 252, 201])
}
}
if (GUI.GetValue(p.radar, "[NW] Bomb")) {
var ents = Entity.GetEntitiesByClassID(34);
for(i=0; i < ents.length; i++) {
var ent = ents[i];
var origin = Entity.GetRenderOrigin(ent);
var scr = Render.WorldToScreen(origin)
if (scr[2] && Entity.GetProp(ent, "CBaseEntity", "m_hOwnerEntity").toString() == "m_hOwnerEntity")
Visuals.Text(scr[0] - 10, scr[1] - 10, "-", "BOMB", [150, 200, 60, 255])
}
}
}
}
Cheat.RegisterCallback("Draw", "Visuals.Draw")
Cheat.RegisterCallback("CreateMove", "Visuals.CreateMove")
Cheat.RegisterCallback("Draw", "Visuals.DrawEntities")
UI.AddCheckbox(p.radar, "[NW] Grenade proximity warning")
/*UI.AddCheckbox(p.radar, "[NW] Predict grenade path")
UI.AddSliderInt(p.radar, "[NW] Re-predict grenade", 0, 126)
if (GUI.GetValue(p.radar, "[NW] Re-predict grenade") == 0)
GUI.SetValue(p.radar, "[NW] Re-predict grenade", 126)*/
function GrenadeWarning()
{
if (!Entity.IsAlive(lp()) || !GUI.GetValue(p.radar, "[NW] Grenade proximity warning"))
return;
var font1 = Render.GetFont("Calibrib.ttf", 25, true);
var font2 = Render.GetFont("Verdanab.ttf", 10, true);
var DistanceInFeet = function(origin, destination) {
var sub = [destination[0] - origin[0], destination[1] - origin[1], destination[2] - origin[2]];
return Math.round(Math.sqrt(sub[0] ** 2 + sub[1] ** 2 + sub[2] ** 2) / 12);
}
GrenadePrediction.Run();
var origin = Entity.GetRenderOrigin(lp());
var grenades = GrenadePrediction.GetLiveGrenades();
/*for (var i in grenades)
{
var g = grenades[i];
var destination = g.Position;
var distance = DistanceInFeet(origin, destination);
var screen = Render.WorldToScreen(destination);
if (distance > 50)
{
continue;
}
if (!g.IsLive)
continue;
Render.FilledCircle(screen[0], screen[1] -50, 30, [Math.max(0, 255 - Math.pow(distance, 1.7)), 0, 0, 255])
draw_arc1(screen[0]-1, screen[1] - 50, 31, 29, 270, 360, 30, [10, 10, 10, 255]);
Render.String(screen[0], screen[1] - 68, 1, "!", [255, 250, 20, 200], font1);
Render.String(screen[0], screen[1] - 45, 1, distance + " ft", [232, 232, 232, 200], font2);
if (g.Type == "Molotov") {
time = Entity.GetProp(g.EntityIndex, "CInferno", "m_nFireEffectTickBegin") * Globals.TickInterval();
factor = Clamp(((time + 7) - Globals.Curtime()) / 7, 0, 7);
draw_arc1(screen[0]-1, screen[1] - 50, 31, 29, 270, 360 * factor, 150, [232, 232, 232, 200]);
}
}*/
for (var i in grenades) {
var g = grenades[i];
if (g.Type != "Molotov" && g.Type != "Grenade")
return;
var destination = g.Position;
var distance = DistanceInFeet(origin, destination)
var Hit = true;
var screen = Render.WorldToScreen(destination)
screen[1] += 30;
if (g.Type == "Grenade") {
Hit = false;
for (var d in g.Hits) {
var hit = g.Hits[d];
if (hit.EntityIndex == Entity.GetLocalPlayer()) {
distance = hit.Damage;
Hit = true;
break;
}
}
}
if ((g.Type == "Grenade" && !Hit) || (g.Type == "Molotov" && distance > 25))
continue;
if (!g.IsLive)
continue;
/*if (screen[2]) {
Render.FilledCircle(screen[0], screen[1] -50, Math.max(30, 40 - distance), [Math.max(0, 255 - Math.pow(distance, 1.8)), 0, 0, 220])
Render.Circle(screen[0], screen[1] -50, Math.max(30, 40 - distance), [10, 10, 10, 255])
Render.Circle(screen[0], screen[1] -50, Math.max(30, 40 - distance) - 1, [10, 10, 10, 255])
//draw_arc1(screen[0]-1, screen[1] - 50, Math.max(30, 40 - distance) + 1, Math.max(30, 40 - distance) - 1, 270, 360, 30, [10, 10, 10, 255]);
Render.String(screen[0], screen[1] - 68, 1, "!", [255, 250, 20, 200], font1);
Render.String(screen[0], screen[1] - 45, 1, distance + (g.Type == "Grenade" ? " hp" : " ft"), [232, 232, 232, 200], font2);
}*/
else {
var yaw = calculate_yaw(origin, destination);
var new_point = rotate_angle(center_screen[0], center_screen[1], yaw, center_screen[1] / 1.15)
new_point = rotate_angle(new_point[0], new_point[1], yaw, 50 / Math.tan(rad(45)))
Render.FilledCircle(new_point[0], new_point[1] -50, 30, [Math.max(17, 255 - Math.pow(distance, 1.8)), 17, 17, 220])
Render.Circle(new_point[0], new_point[1] -50, 30, [10, 10, 10, 255])
Render.Circle(new_point[0], new_point[1] -50, 30 - 1, [10, 10, 10, 255])
//draw_arc1(new_point[0]-1, new_point[1] - 50, 30 + 1, 29, 270, 360, 30, [0, 0, 0, 200]);
Render.String(new_point[0], new_point[1] - 68, 1, "!", [255, 250, 20, 200], font1);
Render.String(new_point[0], new_point[1] - 45, 1, distance + (g.Type == "Grenade" ? " hp" : " ft"), [232, 232, 232, 200], font2);
}
}
}
Cheat.RegisterCallback("Draw", "GrenadeWarning");
/*
* Section: Logs
*/
UI.AddCheckbox(p.cheat, "Override event logs")
UI.AddDropdown(p.cheat, "Event logs output", ["Console", "Console + Screen"], 0)
UI.AddMultiDropdown(p.cheat, "Event logs triggers", ["Item purchase", "Aimbot fire", "Player hurt", "Missed shots"])
var logs = new Array();
function event_log(text) {
if (!GUI.GetValue(p.cheat, "Override event logs"))
return;
if (!GUI.GetValue(p.cheat, "Event logs output")) {
Cheat["PrintColor"](GUI.GetColor(p.cheat, "Log color"), "[onetap] "+text+"\n");
}
else {
//Cheat["PrintLog"](text, GUI.GetColor(p.cheat, "Log color"));
Cheat["PrintColor"](GUI.GetColor(p.cheat, "Log color"), "[onetap] "+text+"\n");
logs.push({text: text, time: Globals.Curtime(), color: [255, 255, 255], alpha: 255, y: 0});
}
}
function draw_logs() {
while (logs.length > 6) {
logs.shift();
}
for (var l in logs) {
if (logs[l].time + 6 < Globals.Curtime()) {
logs[l].alpha -= Globals.Frametime() * 1.5 * 255;
if (logs[l].alpha <= 80) {
logs[l].y += Globals.Frametime() * 180;
}
if (logs[l].alpha <= 0)
logs.shift();
}
}
var cfont = Render.GetFont("lucidaconsolenoa3.ttf", 16, false);
for (var l in logs) {
log = logs[l];
Render.String(9, (3 + 12 * l) - Math.floor(log.y), 0, log.text, [0, 0, 0, log.alpha], cfont);
Render.String(8, (2 + 12 * l) - Math.floor(log.y), 0, log.text, log.color.concat(log.alpha), cfont);
}
}
//Cheat.RegisterCallback("Draw", "draw_logs")
function eventlog_handle_ui() {
if (!GUI.GetValue(p.cheat, "Override event logs")) {
GUI.SetEnabled(p.cheat, "Event logs output", 0)
GUI.SetEnabled(p.cheat, "Event logs triggers", 0)
GUI.SetEnabled(p.cheat, "Log output", 1)
GUI.SetEnabled(p.cheat, "Log events", 1)
}
else {
GUI.SetEnabled(p.cheat, "Event logs output", 1)
GUI.SetEnabled(p.cheat, "Event logs triggers", 1)
GUI.SetEnabled(p.cheat, "Log output", 0)
GUI.SetEnabled(p.cheat, "Log events", 0)
GUI.SetValue(p.cheat, "Log output", 0)
}
}
var hitgroups = ["generic", "head", "chest", "stomach", "left arm", "right arm", "left leg", "right leg", "unknown"];
var hitboxes = ["head", "head", "stomach", "stomach", "chest", "chest", "chest", "left leg", "right leg", "left leg", "right leg", "left leg", "right leg", "left arm", "right arm", "left arm", "left arm", "right arm", "generic"];
var choked = 0;
var choked_prev = 0;
var choked_max = 0;
var choked_prev_cmd = 0;
var tickcount = 0;
var tickcount_prev = 0;
function fakelag_handler() {
choked_prev = choked;
choked = Globals.ChokedCommands();
if (choked > choked_max)
choked_max = choked;
else if (choked == 0 && choked_prev != 0)
choked_max = choked_prev;
else if (choked == 0 && choked_prev_cmd == 0)
choked_max = 0;
tickcount = Globals.Tickcount();
if (tickcount != tickcount_prev) {
choked_prev_cmd = choked_prev_cmd;
tickcount_prev = tickcount;
}
}
Global.RegisterCallback("CreateMove", "fakelag_handler");
function on_player_hurt() {
if (!(GUI.GetValue(p.cheat, "Event logs triggers") & 1 << 2) || Entity.GetEntityFromUserID(Event.GetInt("attacker")) != Entity.GetLocalPlayer())
return;
var hit_type = "Hit"
switch (Event.GetString("weapon")) {
case "hegrenade":
hit_type = "Naded"
break;
case "inferno":
hit_type = "Burned"
break;
default:
hit_type = "Hit"
break;
}
if (Event.GetString("weapon").includes("knife"))
hit_type = "Knifed"
var ply = Entity.GetEntityFromUserID(Event.GetInt("userid"))
if (hit_type == "Hit") {
ragebot_hit++;
event_log(String.format("Hit {0} in the {1} for {2} damage ({3} health remaining)", Entity.GetName(ply), hitgroups[Event.GetInt("hitgroup")], Event.GetInt("dmg_health").toString(), Event.GetInt("health").toString()))
}
else
event_log(String.format("{0} {1} for {2} damage ({3} health remaining)", hit_type, Entity.GetName(ply), Event.GetInt("dmg_health").toString(), Event.GetInt("health").toString()))
}
var entities = {}
var cl_data = {
tick_shifted: false,
extrapolated: false,
}
var tickbase_prev = 0;
var tickbase = 0;
var ragebot_shots = 0;
var ragebot_hit = 0;
var latest_shot = {
name: "",
hitchance: 0,
safety: 0,
hitbox: 0,
};
function anglevector(a) {
var sy = Math.sin(a[1] / 180 * Math.PI)
var cy = Math.cos(a[1] / 180 * Math.PI)
var sp = Math.sin(a[0] / 180 * Math.PI)
var cp = Math.cos(a[0] / 180 * Math.PI)
return [cp * cy, cp * sy, -sp]
}
function vecmulfl(a, b) {
return [a[0] * b, a[1] * b, a[2] * b]
}
function vecadd(a, b) {
return [a[0] + b[0], a[1] + b[1], a[2] + b[2]]
}
function flags_handler() {
for (var i in Entity.GetEnemies()) {
var ply = Entity.GetEnemies()[i]
entities[ply] = {
shots: Entity.GetProp(ply, "CCSPlayer", "m_iShotsFired"),
}
}
//tickbase = Entity.GetProp(Entity.GetLocalPlayer(), "CBasePlayer", "m_nTickBase")
tickbase = Exploit.GetPredictedTickbase();
if (tickbase_prev + 2 < tickbase)
cl_data.tick_shifted = true;
else
cl_data.tick_shifted = false;
cl_data.extrapolated = Math.abs(Indicators.last_origin_sqr - Indicators.origin_sqr) > 40960;
tickbase_prev = tickbase;
if (GUI.GetValue(p.cheat, "Event logs triggers") & 1 << 3) {
if (latest_impact == Globals.Tickcount()) {
if (ragebot_shots > ragebot_hit) {
var reason = "unknown"
if (latest_shot.safety > 0 && latest_shot.hitchance <= 95)
reason = "spread";
else if (latest_shot.safety > 0 && latest_shot.hitchance > 95)
reason = "prediction error";
else if (latest_shot.safety == 0) {
if (latest_shot.hitchance > 35)
reason = "correction";
else
reason = "spread";
}
event_log(String.format("Missed shot at {0}'s {1} due to {4} (hc={2}; safe={3})", latest_shot.name, hitboxes[latest_shot.hitbox], latest_shot.hitchance, latest_shot.safety, reason))
latest_impact = 0;
}
ragebot_hit = ragebot_shots;
}
}
}
function on_weapon_fire() {
if (Event.GetInt("exploit") == 0)
ragebot_shots++;
var ply = Event.GetInt("target_index")
var hitbox = hitboxes[Event.GetInt("hitbox")]
var flags = "";
if (Event.GetInt("exploit") > 0)
flags += "S";
if (Event.GetInt("hitchance") == 0)
flags += "T";
if (entities[ply].shots > 0 || Entity.GetProp(ply, "CCSPlayer", "m_iShotsFired") > 0)
flags += "H";
if (GUI.GetValue(p.cheat, "Event logs triggers") & 1 << 1)
event_log(String.format("Fired at {0}'s {1} (hc={2}; safe={3}; fl={4}"+(flags != "" ? "; flags={5}" : "")+")", Entity.GetName(ply), hitbox, Event.GetInt("hitchance"), Event.GetInt("safepoint"), choked_max, flags))
latest_shot = {
name: Entity.GetName(ply),
hitchance: Event.GetInt("hitchance"),
safety: Event.GetInt("safepoint"),
hitbox: Event.GetInt("hitbox"),
}
}
function on_item_purchase() {
if (!(GUI.GetValue(p.cheat, "Event logs triggers") & 1 << 0))
return;
if (Event.GetString("weapon") == "weapon_unknown")
return;
var ply = Entity.GetEntityFromUserID(Event.GetInt("userid"))
if (ply != Entity.GetLocalPlayer())
event_log(String.format("{0} bought {1}", Entity.GetName(ply), Event.GetString("weapon")))
}
function weapon_fire() {
Tickbase.LastShot = Globals.Tickcount();
}
Cheat.RegisterCallback("FRAME_NET_UPDATE_END", "flags_handler")
Cheat.RegisterCallback("ragebot_fire", "on_weapon_fire")
Cheat.RegisterCallback("weapon_fire", "weapon_fire")
Cheat.RegisterCallback("player_hurt", "on_player_hurt")
Cheat.RegisterCallback("item_purchase", "on_item_purchase")
Cheat.RegisterCallback("Draw", "eventlog_handle_ui")
/*
* Section: Indicators
*/
UI.AddCheckbox(p.indicators, "[NW] Indicators")
UI.AddCheckbox(p.indicators, "Fake indicator")
UI.AddCheckbox(p.indicators, "Fake lag indicator")
UI.AddCheckbox(p.indicators, "Damage override indicator")
UI.AddMultiDropdown(p.indicators, "On-screen indicators", ["Double tap", "Hide shots", "Damage override", "Fake duck", "Inverter", "Safe points", "Body aim", "Freestanding", "Slow walk", "Auto peek", "Edge jump", "Fake angles"])
UI.AddDropdown(p.indicators, "On-screen indicators font", ["Normal", "Small"], 0)
UI.AddCheckbox(p.indicators, "On-screen indicators short text")
function calcDist(local, target) {
var lx = local[0];
var ly = local[1];
var lz = local[2];
var tx = target[0];
var ty = target[1];
var tz = target[2];
var dx = lx - tx;
var dy = ly - ty;
var dz = lz - tz;
return Math.sqrt(dx * dx + dy * dy + dz * dz);
}
var lc = false;
var Indicators = {
Size: (Northwood.Get("indicators:size") == "" ? 24 : parseInt(Northwood.Get("indicators:size"))),
last_origin: [0, 0, 0],
last_origin_sqr: 0,
origin_sqr: 0,
Offset: 0,
Air_tickcount: Globals.Tickcount(),
Planting: false,
Defusing: false,
PlantingTimer: Globals.Curtime(),
DefusingTimer: Globals.Curtime(),
APlants: [454, 372, 102, 276, 174, 121, 301, 142, 408, 97, 213, 216],
PlantIndex: 0,
Damage: 0,
Alpha: {
['Double tap']: 0,
['Hide shots']: 0,
['Damage override']: 0,
['Fake duck']: 0,
['Inverter']: 0,
['Safe points']: 0,
['Body aim']: 0,
['Freestanding']: 0,
['Slow walk']: 0,
['Auto peek']: 0,
['Edge jump']: 0,
},
OnPlanting: function() {
Indicators.Planting = true;
Indicators.PlantingTimer = Globals.Curtime() + 3;
Indicators.PlantIndex = Event.GetInt("site");
//Cheat.Print(Event.GetInt("site").toString())
},
OnAbortPlanting: function() {
Indicators.Planting = false;
},
OnDefusing: function() {
Indicators.Defusing = true;
Indicators.DefusingTimer = Globals.Curtime() + (Event.GetInt("haskit") ? 5 : 10)
},
OnAbortDefusing: function() {
Indicators.Defusing = false;
},
Circle: function(x, y, radius, thickness, color) {
var inner = radius - thickness;
for(; radius > inner; --radius)
{
Render.Circle(x, y, radius, color);
}
},
Arc: function(x, y, radius, radius_inner, start_angle, end_angle, segments, color) {
segments = 360 / segments;
for (var i = start_angle; i < start_angle + end_angle; i = i + segments)
{
var rad = i * Math.PI / 180;
var rad2 = (i + segments) * Math.PI / 180;
var rad_cos = Math.cos(rad);
var rad_sin = Math.sin(rad);
var rad2_cos = Math.cos(rad2);
var rad2_sin = Math.sin(rad2);
var x1_inner = x + rad_cos * radius_inner;
var y1_inner = y + rad_sin * radius_inner;
var x1_outer = x + rad_cos * radius;
var y1_outer = y + rad_sin * radius;
var x2_inner = x + rad2_cos * radius_inner;
var y2_inner = y + rad2_sin * radius_inner;
var x2_outer = x + rad2_cos * radius;
var y2_outer = y + rad2_sin * radius;
Render.Polygon( [
[ x1_outer, y1_outer ],
[ x2_outer, y2_outer ],
[ x1_inner, y1_inner ] ],
color
);
Render.Polygon( [
[ x1_inner, y1_inner ],
[ x2_outer, y2_outer ],
[ x2_inner, y2_inner ] ],
color
);
}
},
Add: function(text, color) {
var tw = Render.TextSize(text, Visuals.Fonts()[2])[0]
Render.GradientRect(11, screen_size[1] - 340 - 37 * this.Offset - 6, Math.floor(tw/2), 33 * (Indicators.Size / 24), 1, [0, 0, 0, 5], [0, 0, 0, 60])
Render.GradientRect(11 + Math.floor(tw/2), screen_size[1] - 340 - 37 * this.Offset - 6, Math.floor(tw/2), 33 * (Indicators.Size / 24), 1, [0, 0, 0, 60], [0, 0, 0, 5])
Visuals.Text(20, screen_size[1] - 340 - 37 * this.Offset, "+", text, color)
this.Offset++;
return (screen_size[1] - 340 - 37 * (this.Offset - 1))
},
Draw: function() {
if (GUI.GetValue(p.indicators, "[NW] Indicators")) {
Indicators.Offset = 0;
var velocity = Entity.GetProp(Entity.GetLocalPlayer(), "CBasePlayer", "m_vecVelocity[0]");
var speed = Math.sqrt(velocity[0] * velocity[0] + velocity[1] * velocity[1]);
var flags = Entity.GetProp(Entity.GetLocalPlayer(), "CBasePlayer" ,"m_fFlags")
var fake = Math.abs(normalize_yaw(Local.GetRealYaw() - Local.GetFakeYaw()))
if (GUI.GetValue(p.indicators, "Fake indicator") && Entity.IsAlive(Entity.GetLocalPlayer())) {
//[255 - Math.min(57, fake)*2.3682, Math.min(57, fake)*3.4210, Math.min(57, fake)*0.22807, 255]
var y = Indicators.Add("FAKE", Northwood.Utils.StatusColor(fake, 60).concat(255));
Indicators.Arc(90, y+11*(Indicators.Size / 24), 10, 5, 0, 360, 15, [0, 0, 0, 180]);
Indicators.Arc(90, y+11*(Indicators.Size / 24), 9, 6, 0, fake * 6, 60, Northwood.Utils.StatusColor(fake, 60).concat(255));
}
if (GUI.GetValue(p.indicators, "Fake lag indicator") && Entity.IsAlive(Entity.GetLocalPlayer())) {
var c = Northwood.GetColor();
c[3] = 255;
var y = Indicators.Add("FL", c);
Indicators.Arc(60, y+11*(Indicators.Size / 24), 10, 5, 0, 360, 15, [0, 0, 0, 180])
Indicators.Arc(60, y+11*(Indicators.Size / 24), 9, 6, 0, Math.min(360, Globals.ChokedCommands() * (360 / 14)), 56, c)
}
if (GUI.GetValue(p.indicators, "Damage override indicator") && GUI.GetValue(p.rage, "Minimum damage override") && Indicators.Damage >= 0) {
Indicators.Add("DMG: "+Indicators.Damage.toString(), [150, 160, 170, 255]);
}
if (Indicators.Planting) {
var y = Indicators.Add("Bombsite " + (Indicators.APlants.indexOf(Indicators.PlantIndex) === -1 ? "B" : "A"), [255, 240, 100, 255]);
//Indicators.Circle(150, y+12, 10, 7, [0, 0, 0, 180])
Indicators.Arc(155, y+10, 10, 5, 0, 360, 15, [0, 0, 0, 180])
Indicators.Arc(155, y+10, 9, 6, 0, Math.min(360 - (Indicators.PlantingTimer - Globals.Curtime()) * 120, 360), 60, [255, 255, 255, 255])
}
if (GUI.GetValue(p.antiaim_keys, "Fake duck") && Entity.IsAlive(Entity.GetLocalPlayer()))
Indicators.Add("DUCK", [255, 255, 255, 255]);
if (!(flags & 1))
Indicators.Air_tickcount = Globals.Tickcount()
if (speed > 180 && (!(flags & 1) || Globals.Tickcount() < Indicators.Air_tickcount + 2) && Entity.IsAlive(Entity.GetLocalPlayer())) {
lc = true;
}
if (lc)
Indicators.Add("LC", Math.abs(Indicators.last_origin_sqr - Indicators.origin_sqr) > 40960 ? [123, 195, 21, 255] : [255, 0, 0, 255]);
if (speed > 230 && (!(flags & 1) || Globals.Tickcount() < Indicators.Air_tickcount + 2) && Entity.IsAlive(Entity.GetLocalPlayer())) {
lc = true;
}
else {
lc = false;
}
var C4 = Entity.GetEntitiesByClassID(129)[0];
if (C4 !== undefined) {
var local = lp()
if (!Entity.IsAlive(Entity.GetLocalPlayer()))
local = Entity.GetProp(Entity.GetLocalPlayer(), "CBasePlayer", "m_hObserverTarget")
if (local == "m_hObserverTarget")
return;
if (Entity.GetProp(C4, "CPlantedC4", "m_bBombDefused") == 1)
return;
var eLoc = Entity.GetRenderOrigin(C4);
var lLoc = Entity.GetRenderOrigin(local)
var distance = calcDist(eLoc, lLoc);
var dmg = 0;
var armor = Entity.GetProp(local, "CCSPlayerResource", "m_iArmor");
var health = Entity.GetProp(local, "CBasePlayer", "m_iHealth");
var timer = Entity.GetProp(C4, "CPlantedC4", "m_flC4Blow") - Globals.Curtime();
var bombsite = Entity.GetProp(C4, "CPlantedC4", "m_nBombSite");
bombsite = (bombsite == 0 ? "A" : "B")
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 = newDmg;
}
dmg = Math.ceil(damage);
if (timer > 0)
Indicators.Add(String.format("{0} - {1}s", bombsite, timer.toFixed(1)), [255, 255, 255, 255]);
if (dmg > 1 && timer > 0)
Indicators.Add(dmg >= health ? "FATAL" : String.format("-{0} HP", dmg), dmg >= health ? [255, 0, 0, 255] : [255, 240, 100, 255]);
}
if (GUI.GetValue(["Rage", "Exploits", "Keys", "Key assignment"], "Double tap") && Entity.IsAlive(Entity.GetLocalPlayer()))
Indicators.Add("DT", Exploit.GetCharge() > 0.8 ? [210, 210, 210, 255] : [255, 0, 0, 255]);
if (Indicators.Defusing) {
Render.FilledRect(0, 0, 20, screen_size[1], [0, 0, 0, 150]);
Render.FilledRect(0, screen_size[1] - (screen_size[1] / 10) * (Indicators.DefusingTimer - Globals.Curtime()), 19, (screen_size[1] / 10) * (Indicators.DefusingTimer - Globals.Curtime()), (Indicators.DefusingTimer - Globals.Curtime() > timer ? [180, 0, 0, 120] : [0, 180, 50, 120]));
}
}
if (GUI.GetValue(p.indicators, "On-screen indicators") != 0) {
if (!Entity.IsAlive(Entity.GetLocalPlayer()))
return;
var t = Globals.Frametime() * 255 * 8;
var options = GUI.GetValue(p.indicators, "On-screen indicators")
var flags = "c";
var offset = 1;
var offset_size = GUI.GetValue(p.indicators, "On-screen indicators font") == 1 ? 10 : 13;
if (options & (1 << 11))
offset += 2;
var short = GUI.GetValue(p.indicators, "On-screen indicators short text")
switch (GUI.GetValue(p.indicators, "On-screen indicators font")) {
case 1:
flags += "-";
break;
}
if (options & (1 << 0)) {
Visuals.Text(center_screen[0], center_screen[1] + offset * offset_size, flags, short ? "DT" : "DOUBLE TAP", Exploit.GetCharge() == 1 || (Indicators.Alpha['Double tap'] < 220 && !GUI.GetValue(["Rage", "Exploits", "Keys", "Key assignment"], "Double tap")) ? [140, 200, 0, Indicators.Alpha['Double tap']] : [255, 60, 30, Indicators.Alpha['Double tap']])
if (Indicators.Alpha['Double tap'] !== 0)
offset++;
if (GUI.GetValue(["Rage", "Exploits", "Keys", "Key assignment"], "Double tap")) {
Indicators.Alpha['Double tap'] = Math.min(220, Indicators.Alpha["Double tap"] + t);
}
else {
Indicators.Alpha['Double tap'] = Math.max(0, Indicators.Alpha["Double tap"] - t);
}
}
if (options & (1 << 1)) {
Visuals.Text(center_screen[0] + (short ? 0 : -1), center_screen[1] + offset * offset_size, flags, short ? "HS" : "HIDESHOTS", [80, 130, 230, Indicators.Alpha["Hide shots"]])
if (Indicators.Alpha["Hide shots"] !== 0)
offset++;
if (GUI.GetValue(["Rage", "Exploits", "Keys", "Key assignment"], "Hide shots")) {
Indicators.Alpha["Hide shots"] = Math.min(220, Indicators.Alpha["Hide shots"] + t);
}
else {
Indicators.Alpha["Hide shots"] = Math.max(0, Indicators.Alpha["Hide shots"] - t);
}
}
if (options & (1 << 2)) {
Visuals.Text(center_screen[0], center_screen[1] + offset * offset_size, flags, short ? "DMG" : "DAMAGE OVERRIDE", [80, 80, 230, Indicators.Alpha['Damage override']])
if (Indicators.Alpha['Damage override'] !== 0)
offset++;
if (GUI.GetValue(p.rage, "Minimum damage override")) {
Indicators.Alpha['Damage override'] = Math.min(220, Indicators.Alpha['Damage override'] + t);
}
else {
Indicators.Alpha['Damage override'] = Math.max(0, Indicators.Alpha['Damage override'] - t);
}
}
if (options & (1 << 3)) {
Visuals.Text(center_screen[0], center_screen[1] + offset * offset_size, flags, short ? "FD" : "FAKE DUCK", [130, 80, 230, Indicators.Alpha['Fake duck']])
if (Indicators.Alpha['Fake duck'] !== 0)
offset++;
if (GUI.GetValue(p.antiaim_keys, "Fake duck")) {
Indicators.Alpha['Fake duck'] = Math.min(220, Indicators.Alpha['Fake duck'] + t);
}
else {
Indicators.Alpha['Fake duck'] = Math.max(0, Indicators.Alpha['Fake duck'] - t);
}
}
if (options & (1 << 4)) {
Visuals.Text(center_screen[0], center_screen[1] + offset * offset_size, flags, short ? "INV" : "INVERTER", [230, 230, 230, Indicators.Alpha['Inverter']])
if (Indicators.Alpha['Inverter'] !== 0)
offset++;
if (GUI.GetValue(p.antiaim_keys, "AA direction inverter")) {
Indicators.Alpha['Inverter'] = Math.min(220, Indicators.Alpha['Inverter'] + t);
}
else {
Indicators.Alpha['Inverter'] = Math.max(0, Indicators.Alpha['Inverter'] - t);
}
}
if (options & (1 << 5)) {
Visuals.Text(center_screen[0], center_screen[1] + offset * offset_size, flags, short ? "SP" : "SAFE POINTS", [80, 230, 180, Indicators.Alpha['Safe points']])
if (Indicators.Alpha['Safe points'] !== 0)
offset++;
if (GUI.GetValue(p.rage, "Force safe point")) {
Indicators.Alpha['Safe points'] = Math.min(220, Indicators.Alpha['Safe points'] + t);
}
else {
Indicators.Alpha['Safe points'] = Math.max(0, Indicators.Alpha['Safe points'] - t);
}
}
if (options & (1 << 6)) {
Visuals.Text(center_screen[0], center_screen[1] + offset * offset_size, flags, short ? "BAIM" : "BODY AIM", [230, 80, 60, Indicators.Alpha['Body aim']])
if (Indicators.Alpha['Body aim'] !== 0)
offset++;
if (GUI.GetValue(p.rage, "Force body aim")) {
Indicators.Alpha['Body aim'] = Math.min(220, Indicators.Alpha['Body aim'] + t);
}
else {
Indicators.Alpha['Body aim'] = Math.max(0, Indicators.Alpha['Body aim'] - t);
}
}
if (options & (1 << 7)) {
Visuals.Text(center_screen[0], center_screen[1] + offset * offset_size, flags, short ? "FS" : "FREESTAND", [0, 230, 230, Indicators.Alpha['Freestanding']])
if (Indicators.Alpha['Freestanding'] !== 0)
offset++;
if (GUI.GetValue(p.antiaim_keys, "Freestanding")) {
Indicators.Alpha['Freestanding'] = Math.min(220, Indicators.Alpha['Freestanding'] + t);
}
else {
Indicators.Alpha['Freestanding'] = Math.max(0, Indicators.Alpha['Freestanding'] - t);
}
}
if (options & (1 << 8)) {
Visuals.Text(center_screen[0], center_screen[1] + offset * offset_size, flags, short ? "SM" : "SLOWMOTION", [230, 100, 180, Indicators.Alpha['Slow walk']])
if (Indicators.Alpha['Slow walk'] !== 0)
offset++;
if (GUI.GetValue(p.antiaim_keys, "Slow walk")) {
Indicators.Alpha['Slow walk'] = Math.min(220, Indicators.Alpha['Slow walk'] + t);
}
else {
Indicators.Alpha['Slow walk'] = Math.max(0, Indicators.Alpha['Slow walk'] - t);
}
}
if (options & (1 << 9)) {
Visuals.Text(center_screen[0], center_screen[1] + offset * offset_size, flags, short ? "AP" : "AUTO PEEK", [230, 180, 130, Indicators.Alpha['Auto peek']])
if (Indicators.Alpha['Auto peek'] !== 0)
offset++;
if (GUI.GetValue(["Misc.", "Keys", "Keys", "Key assignment"], "Auto peek")) {
Indicators.Alpha['Auto peek'] = Math.min(220, Indicators.Alpha['Auto peek'] + t);
}
else {
Indicators.Alpha['Auto peek'] = Math.max(0, Indicators.Alpha['Auto peek'] - t);
}
}
if (options & (1 << 10)) {
Visuals.Text(center_screen[0], center_screen[1] + offset * offset_size, flags, short ? "EJ" : "EDGE JUMP", [230, 180, 60, Indicators.Alpha['Edge jump']])
if (Indicators.Alpha['Edge jump'] !== 0)
offset++;
if (GUI.GetValue(["Misc.", "Keys", "Keys", "Key assignment"], "Edge jump")) {
Indicators.Alpha['Edge jump'] = Math.min(220, Indicators.Alpha['Edge jump'] + t);
}
else {
Indicators.Alpha['Edge jump'] = Math.max(0, Indicators.Alpha['Edge jump'] - t);
}
}
if (options & (1 << 11)) {
var c = Northwood.GetColor();
c[3] = 255;
Visuals.Text(center_screen[0], center_screen[1] + 13, flags, "FAKE YAW", c)
var w = Math.ceil(Math.min(60, Math.abs(Fakepanel.Delta)) / 1.3);
Render.GradientRect(center_screen[0] - w, center_screen[1] + 29, w, 3, 1, [c[0], c[1], c[2], 0], c);
Render.GradientRect(center_screen[0], center_screen[1] + 29, w, 3, 1, c, [c[0], c[1], c[2], 0]);
}
}
},
CreateMove: function() {
if (Globals.ChokedCommands() == 0) {
if (Indicators.last_origin != Entity.GetProp(Entity.GetLocalPlayer(),"DT_BasePlayer", "m_vecOrigin")) {
Indicators.last_origin_sqr = Indicators.last_origin[0] * Indicators.last_origin[0] + Indicators.last_origin[1] * Indicators.last_origin[1];
Indicators.origin_sqr = Entity.GetProp(Entity.GetLocalPlayer(),"DT_BasePlayer", "m_vecOrigin")[0] * Entity.GetProp(Entity.GetLocalPlayer(),"DT_BasePlayer", "m_vecOrigin")[0] + Entity.GetProp(Entity.GetLocalPlayer(),"DT_BasePlayer", "m_vecOrigin")[1] * Entity.GetProp(Entity.GetLocalPlayer(),"DT_BasePlayer", "m_vecOrigin")[1];
Indicators.last_origin = Entity.GetProp(Entity.GetLocalPlayer(),"DT_BasePlayer", "m_vecOrigin");
}
}
}
}
Cheat.RegisterCallback("bomb_beginplant", "Indicators.OnPlanting")
Cheat.RegisterCallback("bomb_abortplant", "Indicators.OnAbortPlanting")
Cheat.RegisterCallback("bomb_planted", "Indicators.OnAbortPlanting")
Cheat.RegisterCallback("round_prestart", "Indicators.OnAbortPlanting")
Cheat.RegisterCallback("client_disconnect", "Indicators.OnAbortPlanting")
Cheat.RegisterCallback("bomb_begindefuse", "Indicators.OnDefusing")
Cheat.RegisterCallback("round_prestart", "Indicators.OnAbortDefusing")
Cheat.RegisterCallback("bomb_abortdefuse", "Indicators.OnAbortDefusing")
Cheat.RegisterCallback("bomb_exploded", "Indicators.OnAbortDefusing")
Cheat.RegisterCallback("bomb_defused", "Indicators.OnAbortDefusing")
Cheat.RegisterCallback("client_disconnect", "Indicators.OnAbortDefusing")
Cheat.RegisterCallback("Draw", "Indicators.Draw")
Cheat.RegisterCallback("CreateMove", "Indicators.CreateMove")
/*
* Section: Utilities
*/
var Watermark = {
Load: function() {
GUI.SetEnabled(p.script_ui, "Watermark", 0);
GUI.SetValue(p.script_ui, "Watermark", 0);
UI.AddCheckbox(p.script_ui, "[NW] Watermark");
UI.AddDropdown(p.script_ui, "Watermark style", ["northwood", "onetap", "onetap.com"], 0);
UI.AddTextbox(p.script_ui, "Watermark username");
if (Northwood.Get("watermark:unlock_prefix") == "true")
UI.AddTextbox(p.script_ui, "Watermark prefix")
if (Northwood.Get("watermark:unlock_suffix") == "true")
UI.AddTextbox(p.script_ui, "Watermark suffix")
UI.AddCheckbox(p.script_ui, "Fade at top");
},
GradientBar: function() {
if (!GUI.GetValue(p.script_ui, "Fade at top"))
return;
var c = Northwood.GetFade();
Render.GradientRect(0, 0, screen_size[0] / 2, 3, 1, c[0], c[1]);
Render.GradientRect(screen_size[0] / 2, 0, screen_size[0] / 2, 3, 1, c[1], c[2]);
Render.FilledRect(0, 1, screen_size[0], 1, [0, 0, 0, 20]);
Render.FilledRect(0, 2, screen_size[0], 1, [0, 0, 0, 40]);
},
Draw: function() {
if (!GUI.GetValue(p.script_ui, "[NW] Watermark"))
return;
var prefix;
switch (GUI.GetValue(p.script_ui, "Watermark style")) {
case 0:
prefix = "northwood"
break;
case 1:
prefix = "onetap"
break;
case 2:
prefix = "onetap.com"
break;
}
if (Northwood.Get("watermark:unlock_prefix") == "true" && GUI.GetString(p.script_ui, "Watermark prefix") != "")
prefix = GUI.GetString(p.script_ui, "Watermark prefix");
if (Northwood.Get("watermark:unlock_suffix") == "true" && GUI.GetString(p.script_ui, "Watermark suffix") != "")
prefix += " ["+GUI.GetString(p.script_ui, "Watermark suffix")+"]"
var username = GUI.GetString(p.script_ui, "Watermark username") == "" ? Cheat.GetUsername() : GUI.GetString(p.script_ui, "Watermark username")
var today = new Date()
today = today.toTimeString().substring(0, 8)
if (typeof prefix == "Symbol") {
prefix = prefix.toString();
prefix = prefix.replace("Symbol(")
prefix = prefix.replace(")")
}
if (typeof username == "Symbol") {
username = username.toString();
username = username.replace("Symbol(")
username = username.replace(")")
}
if (!World.GetServerString())
var text = String.format("{0} | {1} | {2}", prefix, username, today)
else
var text = String.format("{0} | {1} | delay: {2}ms | {3}tick | {4}", prefix, username, Math.floor(Entity.GetProp(Entity.GetLocalPlayer(), "CPlayerResource", "m_iPing")), Globals.Tickrate(), today)
var off = Northwood.I_Offset;
var c = Northwood.GetColor()
var w = Math.floor(Render.TextSize(text, Visuals.Fonts()[1])[0])
var x = size[0] - w - 14
switch (Northwood.GetStyle()) {
case 0:
Render.GradientRect(x - 4, 8 + 22 * off, Math.floor((w + 8) / 2), 2, 1, [c[0], c[1], c[2], 255 * GUI.GetValue(p.script_ui, "[NW] Fade split ratio")], [c[0], c[1], c[2], 255])
Render.GradientRect(x - 4 + Math.floor((w + 8) / 2), 8 + 22 * off, Math.floor((w + 8) / 2) + 1, 2, 1, [c[0], c[1], c[2], 255], [c[0], c[1], c[2], 255 * GUI.GetValue(p.script_ui, "[NW] Fade split ratio")])
break;
case 1:
var fc = Northwood.GetFade();
Render.FilledRect(x - 4, 8 + 22 * off, w + 8, 2, [0,0,0,255])
Render.GradientRect(x - 4, 8 + 22 * off, Math.ceil((w + 8) / 2), 2, 1, fc[0], fc[1])
Render.GradientRect(x - 4 + Math.ceil((w + 8) / 2), 8 + 22 * off, Math.floor((w + 8) / 2), 2, 1, fc[1], fc[2])
Render.FilledRect(x - 4, 9 + 22 * off, w + 8, 1, [0,0,0,40])
break;
}
Render.GradientRect(x - 4, 10 + 22 * off, Math.floor((w + 8) / 2), 17, 1, Northwood.GetBackground()[0], Northwood.GetBackground()[1])
Render.GradientRect(x - 4 + Math.floor((w + 8) / 2), 10 + 22 * off, Math.floor((w + 8) / 2), 17, 1, Northwood.GetBackground()[1], Northwood.GetBackground()[0])
Visuals.Text(x, 11 + 22 * off, "", text, [255, 255, 255, 255]);
Northwood.I_Offset++;
}
}
Watermark.Load();
Cheat.RegisterCallback("Draw", "Watermark.Draw")
Cheat.RegisterCallback("Draw", "Watermark.GradientBar")
/*
* Section: Fakepanel
*/
var Fakepanel = {
Load: function() {
UI.AddCheckbox(p.script_ui, "[NW] Fake yaw panel");
UI.AddCheckbox(p.script_ui, "[NW] Fake lag panel");
},
SetPrev: false,
Delta: 0,
CreateMove: function() {
if (Globals.ChokedCommands() != 0)
return;
var Delto = normalize_yaw(Local.GetRealYaw() - Local.GetFakeYaw())
if (Math.abs(Delto - Fakepanel.Delta) > 3 && !Fakepanel.SetPrev) {
Fakepanel.SetPrev = true
}
else {
Fakepanel.SetPrev = false
Fakepanel.Delta = Delto
}
//Cheat.Print(String.format("Delto: {0} SetPrev: {1} Delta: {2}\n", Delto, Fakepanel.SetPrev, Fakepanel.Delta))
},
Color: function(delta) {
return [255 - Math.min(58, delta)*2.3682, Math.min(58, delta)*3.4210, Math.min(58, delta)*0.22807, 255]
},
Draw: function() {
if (!World.GetServerString() || !Entity.IsAlive(Entity.GetLocalPlayer()) || (!GUI.GetValue(p.script_ui, "[NW] Fake yaw panel") && !GUI.GetValue(p.script_ui, "[NW] Fake lag panel")))
return;
if (!GUI.GetValue(p.script_ui, "[NW] Fake lag panel")) {
var side = "-";
if ((Fakepanel.Delta > 1 && (Math.abs(normalize_yaw(Local.GetViewAngles()[1] - Local.GetRealYaw())) > 60)))
side = "<"
else if ((Fakepanel.Delta < -1 && (Math.abs(normalize_yaw(Local.GetViewAngles()[1] - Local.GetRealYaw())) < 60)))
side = "<"
else if ((Fakepanel.Delta < -1 && (Math.abs(normalize_yaw(Local.GetViewAngles()[1] - Local.GetRealYaw())) > 60)))
side = ">"
else if ((Fakepanel.Delta > 1 && (Math.abs(normalize_yaw(Local.GetViewAngles()[1] - Local.GetRealYaw())) < 60)))
side = ">"
var text = String.format("FAKE ({0} ) | safety: {1}% | side: {2}", Math.min(Math.abs(Fakepanel.Delta), 60).toFixed(1), Math.abs(Math.floor(Math.min(Math.abs(Fakepanel.Delta), 116) / 116 * 100)), side)
}
else {
var text = String.format("FAKE ({0} )", Math.min(Math.abs(Fakepanel.Delta), 60).toFixed(1))
if (Globals.Tickcount() < Indicators.Air_tickcount + 3 || Exploit.GetCharge() == 1)
var text_fl = String.format("FL: {0} | {1}", choked_max, (Exploit.GetCharge() == 1 ? "SHIFTING " : "dst: "))
else
var text_fl = String.format("FL: {0}", choked_max)
}
var off = Northwood.I_Offset;
var w = Render.TextSize(text, Visuals.Fonts()[1])[0] + 5
var x = screen_size[0] - 10 - w - (GUI.GetValue(p.script_ui, "[NW] Fake lag panel") ? Render.TextSize(text_fl, Visuals.Fonts()[1])[0] + 15 : 0)
var a = Northwood.GetColor()[3]
if (GUI.GetValue(p.script_ui, "[NW] Fake yaw panel")) {
Render.GradientRect(x - 6, 13 + 22 * off, Math.floor((w + 8) / 2), 17, 1, Northwood.GetBackground()[0], Northwood.GetBackground()[1])
Render.GradientRect(x - 6 + Math.floor((w + 8) / 2), 13 + 22 * off, Math.floor((w + 8) / 2), 17, 1, Northwood.GetBackground()[1], Northwood.GetBackground()[0])
var color = Northwood.Utils.StatusColor(Math.abs(Fakepanel.Delta), 60);
Render.GradientRect(x-8, 13 + 22 * off, 2, 8, 0, color.concat(50), color.concat(255));
Render.GradientRect(x-8, 21 + 22 * off, 2, 9, 0, color.concat(255), color.concat(50));
Visuals.Text(x-2, 14 + 22 * off, "", text, [255, 255, 255, 255])
Render.Circle(x + Render.TextSize(String.format("FAKE ({0}", Math.min(Math.abs(Fakepanel.Delta), 60).toFixed(1)), Visuals.Fonts()[1])[0], 18 + 22 * off, 1, [255, 255, 255, 255])
}
Northwood.I_Offset++;
if (GUI.GetValue(p.script_ui, "[NW] Fake lag panel")) {
w = Render.TextSize(text_fl, Visuals.Fonts()[1])[0] + 5
x = screen_size[0] - 10 - w
a = Northwood.GetColor()[3]
var c = [180, 190, 190]
if (Exploit.GetCharge() == 1)
c = [255, 150, 0]
Render.GradientRect(x - 5, 13 + 22 * off, Math.floor((w) / 2), 17, 1, Northwood.GetBackground()[0], Northwood.GetBackground()[1])
Render.GradientRect(x - 5 + Math.floor((w) / 2), 13 + 22 * off, Math.floor((w + 8) / 2), 17, 1, Northwood.GetBackground()[1], Northwood.GetBackground()[0])
Render.GradientRect(x - 5, 30 + 22 * off, Math.floor((w) / 2), 1, 1, [c[0], c[1], c[2], 0], [c[0], c[1], c[2], 255])
Render.GradientRect(x - 5 + Math.floor((w) / 2), 30 + 22 * off, Math.floor((w + 8) / 2), 1, 1, [c[0], c[1], c[2], 255], [c[0], c[1], c[2], 0])
//Cheat.Print(Indicators.Air_tickcount.toString())
if (Exploit.GetCharge() != 1 && Globals.Tickcount() < Indicators.Air_tickcount + 2) {
c = Northwood.GetColor()
var add_w = Render.TextSize(String.format("FL: {0} | {1}", choked_max, "dst: "), Visuals.Fonts()[1])[0];
Render.GradientRect(x - 1 + add_w, 19 + 22 * off, Math.min(25, (Math.abs(Indicators.last_origin_sqr - Indicators.origin_sqr) / 10) / 1024), 6, 1, [c[0], c[1], c[2], 255], [c[0], c[1], c[2], 0])
}
Visuals.Text(x - 1, 14 + 22 * off, "", text_fl, [255, 255, 255, 255])
}
},
}
Fakepanel.Load()
Cheat.RegisterCallback("Draw", "Fakepanel.Draw")
Cheat.RegisterCallback("CreateMove", "Fakepanel.CreateMove")
var Performance = {
Freq: (Northwood.Get("performance:freq") == "" ? 60 : parseInt(Northwood.Get("performance:freq"))),
RequestTime: Globals.Curtime(),
Frametime: Globals.Frametime(),
Frametimes: [],
Load: function() {
UI.AddCheckbox(p.script_ui, "[NW] Performance panel");
},
Draw: function() {
if (!World.GetServerString() || !GUI.GetValue(p.script_ui, "[NW] Performance panel"))
return;
if (Performance.RequestTime + 1 < Globals.Curtime()) {
Performance.Frametime = Globals.Frametime()
Performance.RequestTime = Globals.Curtime()
Performance.Frametimes.unshift(Performance.Frametime)
if (Performance.Frametimes.length > 4)
Performance.Frametimes.pop()
}
var off = Northwood.I_Offset;
var text_ie = "IO | ";
var text_freq = String.format("{0}ms / {1}hz", Math.abs((Performance.Frametime * 1000).toFixed(1)), Performance.Freq)
var y = 8
var w = Render.TextSize(text_ie, Visuals.Fonts()[1])[0] + 24
var x = screen_size[0] - 24 - w - Render.TextSize(text_freq, Visuals.Fonts()[1])[0]
Render.GradientRect(x - 4, y + 28 * off, Math.floor((w + 4) /2), 17, 1, Northwood.GetBackground()[0], Northwood.GetBackground()[1])
Render.GradientRect(x - 4 + Math.floor((w + 4) /2), y + 28 * off, Math.floor((w + 4) /2), 17, 1, Northwood.GetBackground()[1], Northwood.GetBackground()[0])
//Render.FilledRect(x - 4, y + 28 * off, w + 4, 17, [17, 17, 17, Northwood.GetColor()[3]])
Visuals.Text(x, y+1 + 28 * off, "", text_ie, [255, 255, 255, 255])
for (var i in Performance.Frametimes) {
var ft = Performance.Frametimes[i]
var c = Northwood.GetColor()
Render.GradientRect(x + w - 9 - (5 * i), y + 28 * off + 14 - Math.floor(Math.min(12, ft / 1 * 1000)), 5, Math.floor(Math.min(12, ft / 1 * 1000)), 0, [c[0], c[1], c[2], 0], [c[0], c[1], c[2], 255])
}
w = Render.TextSize(text_freq, Visuals.Fonts()[1])[0]
x = screen_size[0] - 10 - w - 4
var c = [0, 255, 0]
var ft = Performance.Frametime * 1000
if (ft > 15)
c = [255, 0, 0]
else if (ft > 12)
c = [255, 170, 0]
else if (ft > 10)
c = [255, 255, 0]
else if (ft > 7.5)
c = [150, 255, 0]
else if (ft > 5)
c = [70, 255, 0]
Render.GradientRect(x - 4, y+ 28 * off, Math.floor((w + 8) / 2), 17, 1, Northwood.GetBackground()[0], Northwood.GetBackground()[1])
Render.GradientRect(x - 4 + Math.floor((w + 8) / 2), y + 28 * off, Math.floor((w + 8) / 2), 17, 1, Northwood.GetBackground()[1], Northwood.GetBackground()[0])
//Render.FilledRect(x - 4, y+ 28 * off, w + 8, 17, [17, 17, 17, Northwood.GetColor()[3]])
Visuals.Text(x, y+1+ 28 * off, "", text_freq, [255, 255, 255, 255])
Render.GradientRect(x - 4, y+17+ 28 * off, w / 2 + 4, 1, 1, c.concat(0), c.concat(255))
Render.GradientRect(x + w / 2, y+17+ 28 * off, w / 2 + 4, 1, 1, c.concat(255), c.concat(0))
Northwood.I_Offset++;
},
}
Performance.Load()
Cheat.RegisterCallback("Draw", "Performance.Draw")
function in_bounds(vec, x, y, x2, y2) {
return (vec[0] > x) && (vec[1] > y) && (vec[0] < x2) && (vec[1] < y2)
}
function isEquals(element, index, array, text) {
if (element.text == text)
return true;
}
if (!Array.prototype.find) {
Object.defineProperty(Array.prototype, 'find', {
value: function(predicate) {
// 1. Let O be ? ToObject(this value).
if (this == null) {
throw new TypeError('"this" is null or not defined');
}
var o = Object(this);
// 2. Let len be ? ToLength(? Get(O, "length")).
var len = o.length >>> 0;
// 3. If IsCallable(predicate) is false, throw a TypeError exception.
if (typeof predicate !== 'function') {
throw new TypeError('predicate must be a function');
}
// 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
var thisArg = arguments[1];
// 5. Let k be 0.
var k = 0;
// 6. Repeat, while k < len
while (k < len) {
// a. Let Pk be ! ToString(k).
// b. Let kValue be ? Get(O, Pk).
// c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
// d. If testResult is true, return kValue.
var kValue = o[k];
if (predicate.call(thisArg, kValue, k, o, arguments[1])) {
return kValue;
}
// e. Increase k by 1.
k++;
}
// 7. Return undefined.
return undefined;
},
configurable: true,
writable: true
});
}
var Hotkeys = {
GRABBED: false,
GRAB_X: 0,
GRAB_Y: 0,
GLOBAL_ALPHA: 0,
MAX_WIDTH: 100,
CUR_WIDTH: 100,
active_list: new Array(),
items_list: new Array(),
Load: function() {
GUI.SetEnabled(p.script_ui, "Show keybind states", 0);
GUI.SetValue(p.script_ui, "Show keybind states", 0);
UI.AddCheckbox(p.script_ui, "[NW] Keybinds");
UI.AddSliderFloat(p.script_ui, "Keybinds split ratio", 0, 1)
UI.AddSliderInt(p.script_ui, "Keybinds X", 0, screen_size[0])
UI.AddSliderInt(p.script_ui, "Keybinds Y", 0, screen_size[1])
GUI.SetEnabled(p.script_ui, "Keybinds X", 0)
GUI.SetEnabled(p.script_ui, "Keybinds Y", 0)
this.items_list.push({text: "Menu key", func: UI.IsMenuOpen, path: "nil", name: "nil", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Double tap", func: GUI.GetValue, path: ["Rage", "Exploits", "Keys", "Key assignment"], name: "Double tap", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "On shot anti-aim", func: GUI.GetValue, path: ["Rage", "Exploits", "Keys", "Key assignment"], name: "Hide shots", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Force safe point", func: GUI.GetValue, path: ["Rage", "General", "General", "Key assignment"], name: "Force safe point", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Rage bot", func: GUI.GetValue, path: ["Rage", "General", "General", "Key assignment"], name: "Ragebot activation", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Resolver override", func: GUI.GetValue, path: ["Rage", "General", "General", "Key assignment"], name: "Resolver override", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Force body aim", func: GUI.GetValue, path: ["Rage", "General", "General", "Key assignment"], name: "Force body aim", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Force head aim", func: GUI.GetValue, path: ["Rage", "General", "General", "Key assignment"], name: "Force head aim", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Force safe point", func: GUI.GetValue, path: ["Rage", "General", "General", "Key assignment"], name: "Force safe point", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Mouse direction", func: GUI.GetValue, path: p.antiaim_keys, name: "Mouse direction", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Jitter anti-aim", func: GUI.GetValue, path: p.antiaim_keys, name: "Jitter", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Slow motion", func: GUI.GetValue, path: p.antiaim_keys, name: "Slow walk", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Anti-aim inverter", func: GUI.GetValue, path: p.antiaim_keys, name: "AA direction inverter", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Duck peek assist", func: GUI.GetValue, path: p.antiaim_keys, name: "Fake duck", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Freestanding", func: GUI.GetValue, path: p.antiaim_keys, name: "Freestanding", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Edge jump", func: GUI.GetValue, path: ["Misc.", "Keys", "Keys", "Key assignment"], name: "Edge jump", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Free look", func: GUI.GetValue, path: ["Misc.", "Keys", "Keys", "Key assignment"], name: "Freecam", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Quick peek assist", func: GUI.GetValue, path: ["Misc.", "Keys", "Keys", "Key assignment"], name: "Auto peek", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Zoom", func: GUI.GetValue, path: ["Misc.", "Keys", "Keys", "Key assignment"], name: "Zoom", status: "[~]", alpha: 0, active: false})
this.items_list.push({text: "Damage override", func: GUI.GetValue, path: p.rage, name: "Minimum damage override", status: "[~]", alpha: 0, active: false})
},
Grabbing: function(x, y, w) {
if (Global.IsKeyPressed(1) && UI.IsMenuOpen()) {
const mouse_pos = Global.GetCursorPosition();
if (in_bounds(mouse_pos, x, y, x + w, y + 22)) {
if (!Hotkeys.GRABBED) {
Hotkeys.GRAB_X = mouse_pos[0] - x;
Hotkeys.GRAB_Y = mouse_pos[1] - y;
}
Hotkeys.GRABBED = true;
}
}
else {
Hotkeys.GRABBED = false;
}
if (Hotkeys.GRABBED) {
GUI.SetValue(p.script_ui, "Keybinds X", mouse_pos[0] - Hotkeys.GRAB_X)
GUI.SetValue(p.script_ui, "Keybinds Y", mouse_pos[1] - Hotkeys.GRAB_Y)
}
},
HandleItems: function() {
if (Hotkeys.active_list.length == 0)
Hotkeys.MAX_WIDTH = 100;
var t = Globals.Frametime() * 8 * 255
for (var i=0; i < Hotkeys.items_list.length; i++) {
var elem = Hotkeys.items_list[i];
if (elem.path != "nil" && UI.GetHotkeyState(GUI.GetPath(elem.path, elem.name)) == "Always")
continue;
if (elem.func(elem.path, elem.name)) {
elem.active = true;
var elem_w = Render.TextSize(elem.text, Visuals.Fonts()[1])[0]
if (elem_w + 80 > this.MAX_WIDTH)
this.MAX_WIDTH = elem_w + 80
if (elem.alpha < 255)
elem.alpha = Math.min(255, elem.alpha + t)
if (Hotkeys.active_list.indexOf(elem.text) == -1)
Hotkeys.active_list.push(elem.text)
}
else {
if (elem.alpha > 0)
elem.alpha = Math.max(0, elem.alpha - t)
else {
elem.active = false
var index = Hotkeys.active_list.indexOf(elem.text)
if (index !== -1) {
Hotkeys.active_list.splice(index, 1)
if (Hotkeys.active_list.length > 0)
this.MAX_WIDTH = 100
}
}
}
}
var active = false
if (Hotkeys.active_list.length == 1) {
//x => x.text == Hotkeys.active_list[0]
var a_elem = Hotkeys.items_list.find(isEquals, Hotkeys.active_list[0]);
if (!a_elem.func(a_elem.path, a_elem.name))
active = true;
}
if (Hotkeys.active_list.length == 0 || active) {
if (Hotkeys.GLOBAL_ALPHA > 0)
this.GLOBAL_ALPHA = Math.max(0, this.GLOBAL_ALPHA - t)
}
else {
if (Hotkeys.GLOBAL_ALPHA < 255)
Hotkeys.GLOBAL_ALPHA = Math.min(255, Hotkeys.GLOBAL_ALPHA + t)
}
if (this.CUR_WIDTH > this.MAX_WIDTH)
this.CUR_WIDTH = Math.max(this.CUR_WIDTH - t / 2, this.CUR_WIDTH - (this.CUR_WIDTH - this.MAX_WIDTH))
else if (this.CUR_WIDTH < this.MAX_WIDTH)
this.CUR_WIDTH = Math.min(this.CUR_WIDTH + t / 2, this.CUR_WIDTH + (this.MAX_WIDTH - this.CUR_WIDTH))
},
CalcAlpha: function(alpha) {
return Math.min(this.GLOBAL_ALPHA, alpha);
},
GetStatus: function(path, name) {
var status = "[~]"
if (path == "nil")
return status;
switch (UI.GetHotkeyState(GUI.GetPath(path, name))) {
case "Toggle":
status = "[toggled]";
break;
case "Hold":
status = "[holding]";
break;
case "Always":
status = "[enabled]";
break;
}
return status;
},
Draw: function() {
if (!GUI.GetValue(p.script_ui, "[NW] Keybinds") || !World.GetServerString())
return;
Hotkeys.HandleItems();
var x = GUI.GetValue(p.script_ui, "Keybinds X")
var y = GUI.GetValue(p.script_ui, "Keybinds Y")
var c = Northwood.GetColor()
var w = Hotkeys.CUR_WIDTH;
switch (Northwood.GetStyle()) {
case 0:
Render.GradientRect(x, y-2, Math.floor(w / 2), 2, 1, [c[0], c[1], c[2], Hotkeys.CalcAlpha(255 * GUI.GetValue(p.script_ui, "[NW] Fade split ratio"))], [c[0], c[1], c[2], Hotkeys.CalcAlpha(255)])
Render.GradientRect(x + Math.floor(w / 2), y-2, Math.floor(w / 2), 2, 1, [c[0], c[1], c[2], Hotkeys.CalcAlpha(255)], [c[0], c[1], c[2], Hotkeys.CalcAlpha(255 * GUI.GetValue(p.script_ui, "[NW] Fade split ratio"))])
break;
case 1:
var fc = Northwood.GetFade();
Render.FilledRect(x, y-2, w-1, 2, [0, 0, 0, Hotkeys.CalcAlpha(255)])
/*Render.GradientRect(x - 4, 8, Math.floor((w + 8) / 2), 2, 1, [fc[0][0], fc[0][1], fc[0][2], Hotkeys.CalcAlpha(fc[0][3])], [fc[1][0], fc[1][1], fc[1][2], Hotkeys.CalcAlpha(fc[1][3])])
Render.GradientRect(x - 4 + Math.floor((w + 7) / 2), 8, Math.floor((w + 8) / 2) + 1, 2, 1, [fc[1][0], fc[1][1], fc[1][2], Hotkeys.CalcAlpha(fc[1][3])], [fc[2][0], fc[2][1], fc[2][2], Hotkeys.CalcAlpha(fc[2][3]))*/
Render.GradientRect(x, y-2, Math.floor(w / 2), 2, 1, [fc[0][0], fc[0][1], fc[0][2], Hotkeys.CalcAlpha(fc[0][3])], [fc[1][0], fc[1][1], fc[1][2], Hotkeys.CalcAlpha(fc[1][3])])
Render.GradientRect(x + Math.floor(w / 2), y-2, Math.floor(w / 2), 2, 1, [fc[1][0], fc[1][1], fc[1][2], Hotkeys.CalcAlpha(fc[1][3])], [fc[2][0], fc[2][1], fc[2][2], Hotkeys.CalcAlpha(fc[2][3])])
Render.FilledRect(x, y-1, w, 1, [0, 0, 0, Hotkeys.CalcAlpha(40)])
break;
}
Render.FilledRect(x, y, w, 17, [17, 17, 17, Hotkeys.CalcAlpha(c[3])])
Visuals.Text(x + w/2, y+1, "c", "keybinds", [255, 255, 255, Hotkeys.CalcAlpha(255)])
Hotkeys.Grabbing(x, y, w);
for(var i=0; i < Hotkeys.active_list.length; i++) {
var elem = Hotkeys.items_list.find(isEquals, Hotkeys.active_list[i]);
var status = Hotkeys.GetStatus(elem.path, elem.name);
if (elem.active && status != "[enabled]") {
Render.FilledRect(x, y + 17 + (17*i), w, 17, [17, 17, 17, Hotkeys.CalcAlpha(Math.min(elem.alpha, c[3] * GUI.GetValue(p.script_ui, "Keybinds split ratio")))])
Visuals.Text(x + 4, y + 17 + (17*i), "", elem.text, [255, 255, 255, Hotkeys.CalcAlpha(elem.alpha)])
Visuals.Text(x + w - Render.TextSize(status, Visuals.Fonts()[1])[0] - 4, y + 17 + (17*i), "", status, [255, 255, 255, Hotkeys.CalcAlpha(elem.alpha)])
}
}
},
}
Hotkeys.Load();
Cheat.RegisterCallback("Draw", "Hotkeys.Draw")
/*
* Section: Ragebot
*/
function VectorAngles(forward)
{
var angles;
var tmp, yaw, pitch;
if (forward[1] == 0 && forward[0] == 0)
{
yaw = 0;
if (forward[2] > 0)
pitch = 270;
else
pitch = 90;
}
else
{
yaw = (Math.atan2(forward[1], forward[0]) * 180 / Math.PI);
if (yaw < 0)
yaw += 360;
tmp = Math.sqrt (forward[0]*forward[0] + forward[1]*forward[1]);
pitch = (Math.atan2(-forward[2], tmp) * 180 / Math.PI);
if (pitch < 0)
pitch += 360;
}
x = pitch;
y = yaw;
z = 0;
angles = [x,y,z];
return angles;
}
function can_shoot(Player){
var index = Entity.GetWeapon(Player)
var classid = Entity.GetClassID(index);
var weapon = classid == 107 || classid == 108 || classid == 96 || classid == 99 || classid ==112 || classid == 155 || classid == 47 || classid == 267;//checking if the selected weapon is knife or nade
var clip = Entity.GetProp(index, "DT_BaseCombatWeapon", "m_iClip1");
if(weapon || clip == 0 || UserCMD.GetButtons() & (1 << 1))//check if player is jumping or as an empty mag
return false;
return true;
}
var weaponNames = {
"usp s": "USP", "glock 18": "Glock", "dual berettas": "Dualies", "r8 revolver": "Revolver", "desert eagle": "Deagle", "p250": "P250", "tec 9": "Tec-9",
"mp9": "MP9", "mac 10": "Mac10", "pp bizon": "PP-Bizon", "ump 45": "UMP45", "ak 47": "AK47", "sg 553": "SG553", "aug": "AUG", "m4a1 s": "M4A1-S", "m4a4": "M4A4", "ssg 08": "SSG08",
"awp": "AWP", "g3sg1": "G3SG1", "scar 20": "SCAR20", "xm1014": "XM1014", "mag 7": "MAG7", "m249": "M249", "negev": "Negev", "p2000": "P2000", "famas": "FAMAS", "five seven": "Five Seven", "mp7": "MP7",
"ump 45": "UMP45", "p90": "P90", "cz75 auto": "CZ-75", "mp5 sd": "MP5", "galil ar": "GALIL", "sawed off": "Sawed off", "nova": "Nova"
};
for (var name in weaponNames) {
UI.AddCheckbox(["Rage", "Target", weaponNames[name]], "Delay shot")
UI.AddMultiDropdown(["Rage", "Target", weaponNames[name]], "Avoid unsafe hitboxes", ["Head", "Chest", "Stomach", "Arms", "Legs", "Feet"])
UI.AddCheckbox(["Rage", "Target", weaponNames[name]], "Force body aim on peek")
UI.AddSliderInt(["Rage", "Target", weaponNames[name]], "Damage override", 0, 130)
UI.AddCheckbox(["Rage", "Target", weaponNames[name]], "Override hitchance");
UI.AddSliderInt(["Rage", "Target", weaponNames[name]], "Hitchance override", 0, 100);
UI.AddCheckbox(["Rage", "Target", weaponNames[name]], "Override no scope hitchance");
UI.AddSliderInt(["Rage", "Target", weaponNames[name]], "No scope hitchance", 0, 100);
UI.AddCheckbox(["Rage", "Target", weaponNames[name]], "Override in air hitchance");
UI.AddSliderInt(["Rage", "Target", weaponNames[name]], "In air hitchance", 0, 100);
UI.AddCheckbox(["Rage", "Target", weaponNames[name]], "Override double tap damage");
UI.AddSliderInt(["Rage", "Target", weaponNames[name]], "Double tap damage", 0, 130);
}
UI.AddHotkey(p.rage_keys, "Force head aim", "Force head aim")
UI.AddHotkey(p.rage_keys, "Minimum damage override", "Damage override")
//UI.AddHotkey(p.rage_keys, "Dormant aimbot", "Dormant aimbot")
var Rage = {
OldTime: Globals.Realtime(),
/*DormantAimbot: function() {
if (!Tickbase.CanShift(1) || !UI.GetValue(["Rage", "General", "General", "Key assignment", "Dormant aimbot"]))
return;
var enemies = Entity.GetEnemies()
var d = enemies.filter(function(e){
return Entity.IsDormant(e) && Entity.IsAlive(e) && Trace.Bullet(Entity.GetLocalPlayer(), e, Entity.GetEyePosition(Entity.GetLocalPlayer()), VectorAdd(Entity.GetRenderOrigin(e), [0, 0, 45]))[1] > 1
})
var c = d.sort(function(a, b){
return Trace.Bullet(Entity.GetLocalPlayer(), a, Entity.GetEyePosition(Entity.GetLocalPlayer()), va(Entity.GetRenderOrigin(a), [0, 0, 45]))[1] - Trace.Bullet(Entity.GetLocalPlayer(), b, Entity.GetEyePosition(Entity.GetLocalPlayer()), va(Entity.GetRenderOrigin(b), [0, 0, 45]))[1]
})[0]
if(!c) return;
Cheat.Print("Target found\n");
var weapon_index = Entity.GetWeapon(Entity.GetLocalPlayer());
var viewangle = VectorAngles(VectorSubtract(VectorAdd(Entity.GetRenderOrigin(c), [0, 0, 45]),Entity.GetEyePosition(Entity.GetLocalPlayer())))
UserCMD.SetViewAngles(viewangle, true)
UserCMD.SetButtons(UserCMD.GetButtons() | (1 << 0))
dmg = Trace.Bullet(Entity.GetLocalPlayer(), c, Entity.GetEyePosition(Entity.GetLocalPlayer()), VectorAdd(Entity.GetRenderOrigin(c), [0, 0, 45]))[1]
Cheat.Print("Dormant fired\n");
},*/
CreateMove: function() {
var target = Ragebot.GetTargets();
var weaponName = Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer()))
Indicators.Damage = (weaponNames.hasOwnProperty(weaponName)) ? GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Damage override") : -1;
if (weaponNames.hasOwnProperty(weaponName)) {
for (var i in target) {
// Hitchance override
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Delay shot") && Globals.ChokedCommands() != 0) {
for (var h = 0; h <= 18; h++) {
Ragebot.IgnoreTargetHitbox(target[i], h, true);
}
}
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Override no scope hitchance") && !Entity.GetProp(Entity.GetLocalPlayer(), "CCSPlayer", "m_bIsScoped")) {
Ragebot.ForceTargetHitchance(target[i], GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "No scope hitchance"))
}
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Override in air hitchance") && !(Entity.GetProp(Entity.GetLocalPlayer(), "CBasePlayer" ,"m_fFlags") & (1 << 0))) {
Ragebot.ForceTargetHitchance(target[i], GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "In air hitchance"))
}
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Override double tap damage") && Exploit.GetCharge() == 1) {
Ragebot.ForceTargetMinimumDamage(target[i], GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Double tap damage"))
}
// Hitscan override
if (GUI.GetValue(p.rage_keys, "Minimum damage override")) {
Ragebot.ForceTargetMinimumDamage(target[i], GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Damage override"))
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Override hitchance"))
Ragebot.ForceTargetHitchance(target[i], GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Hitchance override"))
}
// Avoid unsafe hitboxes
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Avoid unsafe hitboxes") & (1 << 0)) {
Ragebot.ForceHitboxSafety(0)
}
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Avoid unsafe hitboxes") & (1 << 1)) {
Ragebot.ForceHitboxSafety(4)
Ragebot.ForceHitboxSafety(5)
Ragebot.ForceHitboxSafety(6)
}
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Avoid unsafe hitboxes") & (1 << 2)) {
Ragebot.ForceHitboxSafety(2)
Ragebot.ForceHitboxSafety(3)
}
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Avoid unsafe hitboxes") & (1 << 3)) {
Ragebot.ForceHitboxSafety(13)
Ragebot.ForceHitboxSafety(14)
Ragebot.ForceHitboxSafety(15)
Ragebot.ForceHitboxSafety(16)
Ragebot.ForceHitboxSafety(17)
Ragebot.ForceHitboxSafety(18)
}
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Avoid unsafe hitboxes") & (1 << 4)) {
Ragebot.ForceHitboxSafety(7)
Ragebot.ForceHitboxSafety(8)
Ragebot.ForceHitboxSafety(9)
Ragebot.ForceHitboxSafety(10)
}
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Avoid unsafe hitboxes") & (1 << 5)) {
Ragebot.ForceHitboxSafety(11)
Ragebot.ForceHitboxSafety(12)
}
if (GUI.GetValue(["Rage", "Target", weaponNames[weaponName]], "Force body aim on peek") && !GUI.GetValue(p.rage_keys, "Force head aim")) {
var velocity = Entity.GetProp(Entity.GetLocalPlayer(), "CBasePlayer", "m_vecVelocity[0]");
var speed = Math.sqrt(velocity[0] * velocity[0] + velocity[1] * velocity[1]);
if (speed > 80) {
Ragebot.IgnoreTargetHitbox(target[i], 0)
Ragebot.IgnoreTargetHitbox(target[i], 1)
Ragebot.IgnoreTargetHitbox(target[i], 2)
Ragebot.IgnoreTargetHitbox(target[i], 7)
Ragebot.IgnoreTargetHitbox(target[i], 8)
Ragebot.IgnoreTargetHitbox(target[i], 9)
Ragebot.IgnoreTargetHitbox(target[i], 10)
Ragebot.IgnoreTargetHitbox(target[i], 11)
Ragebot.IgnoreTargetHitbox(target[i], 12)
Ragebot.IgnoreTargetHitbox(target[i], 13)
Ragebot.IgnoreTargetHitbox(target[i], 14)
Ragebot.IgnoreTargetHitbox(target[i], 15)
Ragebot.IgnoreTargetHitbox(target[i], 16)
Ragebot.IgnoreTargetHitbox(target[i], 17)
Ragebot.IgnoreTargetHitbox(target[i], 18)
}
}
if (GUI.GetValue(p.rage_keys, "Force head aim")) {
for (var h = 2; h <= 18; h++) {
Ragebot.IgnoreTargetHitbox(target[i], h, true);
}
}
}
}
},
Draw: function() {
if (Rage.OldTime + 0.1 < Globals.Curtime()) {
Rage.OldTime = Globals.Curtime()
for (var name in weaponNames) {
GUI.SetEnabled(["Rage", "Target", weaponNames[name]], "Hitchance override", GUI.GetValue(["Rage", "Target", weaponNames[name]], "Override hitchance"))
GUI.SetEnabled(["Rage", "Target", weaponNames[name]], "In air hitchance", GUI.GetValue(["Rage", "Target", weaponNames[name]], "Override in air hitchance"))
GUI.SetEnabled(["Rage", "Target", weaponNames[name]], "No scope hitchance", GUI.GetValue(["Rage", "Target", weaponNames[name]], "Override no scope hitchance"))
GUI.SetEnabled(["Rage", "Target", weaponNames[name]], "Double tap damage", GUI.GetValue(["Rage", "Target", weaponNames[name]], "Override double tap damage"))
}
}
},
}
Cheat.RegisterCallback("Draw", "Rage.Draw")
Cheat.RegisterCallback("CreateMove", "Rage.CreateMove")
/*
* Section: Welcome message
*/
var latest_load = Northwood.LatestLoad;
nlogs.push([String.format("Welcome, {0}! Northwood " + (Northwood.IsBeta() ? "(Beta) " : "(Release) ") + "loaded successfully.", Cheat.GetUsername()), Globals.Curtime(), 8, 0])
if (latest_load == "") {
nlogs.push([String.format("You loaded script for the first time. Check #release-info at discord for instructions.", Cheat.GetUsername()), Globals.Curtime(), 15, 0])
}
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Loaded successfully.\n")
Cheat.PrintColor([220, 220, 220, 255], " Welcome, "); Cheat.PrintColor([220, 150, 255, 255], Cheat.GetUsername()); Cheat.PrintColor([220, 220, 220, 255], "!\n")
if (latest_load == "") {
Cheat.PrintColor([220, 220, 220, 255], " Thank you for purchasing \"Northwood\"!\n")
Cheat.PrintColor([220, 220, 220, 255], " You can read more info at #release-info Discord channel\n")
}
else {
Cheat.PrintColor([220, 220, 220, 255], " Latest load: "+latest_load+"\n")
}
function Notify_logs() {
for(var i=0; i<nlogs.length; i++) {
var j = nlogs[i][1];
var k = nlogs[i][2];
var l = nlogs[i][0];
var time = j + k;
var time_left = time - Globals.Curtime();
//if (time >= Globals.Curtime()) {
if (nlogs[i][3] < 1 && !(time_left < 0.6))
nlogs[i][3] += Globals.Frametime() * 2;
if (time_left < 0.6)
nlogs[i][3] -= Globals.Frametime() * 2;
if (i == 0) {
if (speed < 1 && !(time_left < 0.6))
speed += Globals.Frametime() * 4;
/*if (time_left < 0.6)
speed -= Globals.Frametime() * 4;*/
if (time_left <= 0.01 && nlogs.length > 0)
speed = 1;
notify(l, Math.floor(speed * 20) + 20, Math.max(Math.min(1, nlogs[i][3]), 0));
}
else {
notify(l, 40 * (i + 1), Math.max(Math.min(1, nlogs[i][3]), 0));
}
if (Math.max(Math.min(1, nlogs[i][3])) <= 0)
nlogs.splice(i, 1);
/*}
else {
nlogs.splice(i, 1);
}*/
}
if (nlogs.length == 0)
speed = 0;
}
Cheat.RegisterCallback("Draw", "Notify_logs");
/*
* Section: Grenade prediction
*/
const grenade_prediction = {
'nades': [],
'paths': []
};
const direction_t = {
'LEFT': 0x0,
'RIGHT': 0x1,
'FORWARD': 0x2,
'BACKWARD': 0x3,
'UP': 0x4,
'DOWN': 0x5
};
function extrapolate(a, b, c) {
var TickInterval = Globals.TickInterval();
return a[0x0] += b[0x0] * TickInterval * c, a[0x1] += b[0x1] * TickInterval * c, a[0x2] += b[0x2] * TickInterval * c, a;
}
function angle_to_vector(_0x2e6753) {
var _0x264e09 = Math['sin'](deg2rad(_0x2e6753[0x0]))
var _0x192a86 = Math['cos'](deg2rad(_0x2e6753[0x0]))
var _0xb6c43a = Math['sin'](deg2rad(_0x2e6753[0x1]))
var _0x57e0ce = Math['cos'](deg2rad(_0x2e6753[0x1]))
return [_0x192a86 * _0x57e0ce, _0x192a86 * _0xb6c43a, -_0x264e09];
}
function vector_to_angles(_0x5a29c2) {
var _0x140a2d, _0x3619c3, _0x5d797a, _0x572471 = [];
if (_0x5a29c2[0x1] === 0x0 && _0x5a29c2[0x0] === 0x0) {
_0x3619c3 = 0x0;
if (_0x5a29c2[0x2] > 0x0) _0x5d797a = 0x10e;
else _0x5d797a = 0x5a;
} else {
_0x3619c3 = Math['atan2'](_0x5a29c2[0x1], _0x5a29c2[0x0]) * 0xb4 / Math['PI'];
if (_0x3619c3 < 0x0) _0x3619c3 += 0x168;
_0x140a2d = Math['sqrt'](_0x5a29c2[0x0] * _0x5a29c2[0x0] + _0x5a29c2[0x1] * _0x5a29c2[0x1]), _0x5d797a = Math['atan2'](-_0x5a29c2[0x2], _0x140a2d) * 0xb4 / Math['PI'];
if (_0x5d797a < 0x0) _0x5d797a += 0x168;
}
return _0x572471[0x0] = _0x5d797a, _0x572471[0x1] = _0x3619c3, _0x572471[0x2] = 0x0, _0x572471;
}
function compensate_for_collision(grenade, ticks) {
var flags = 0x1 | 0x4000 | 0x2 | 0x2000000 | 0x8 | 0x80000
var start_position = grenade['data']['start_position']
var start_velocity = vector_to_angles(grenade['data']['start_velocity'])
var compensated_velocity = [angle_to_vector([0x0, start_velocity[0x1] - 0x5a, 0x0]), angle_to_vector([0x0, start_velocity[0x1] + 0x5a, 0x0]), angle_to_vector([0x0, start_velocity[0x1], 0x0]), angle_to_vector([0x0, start_velocity[0x1] - 0xb4, 0x0]), angle_to_vector([start_velocity[0x0] - 0x5a, 0x0, 0x0]), angle_to_vector([start_velocity[0x0] + 0x5a, 0x0, 0x0])]
var planes = [
[0.5, -0.5, 0.25],
[0.5, -0.5, 0.25],
[-0.5, 0.5, 0.25],
[-0.5, 0.5, 0.25],
[0.5, 0.5, -0.25],
[0.5, 0.5, -0.25]
]
var grenade_info = {
'origin': Render['WorldToScreen'](start_position),
'point': []
};
for (var i = 0; i < 6; i++) {
const ext_position = extrapolate([start_position[0x0] + compensated_velocity[i][0x0], start_position[0x1] + compensated_velocity[i][0x1], start_position[0x2] + compensated_velocity[i][0x2]], grenade['data']['start_velocity'], 0x1)
const trace_result = Trace.RawLine(grenade['entity'], start_position, ext_position, flags, 0);
if (!trace_result) continue;
if (trace_result[0x1] < 0.98 && trace_result[0x0] !== Entity["GetProp"](grenade['entity'], "CBaseEntity", "m_hOwnerEntity")) {
if (grenade['is_inferno'] && i === direction_t['DOWN']) {
grenade['should_predict'] = false, grenade['data']['prediction_ticks'] = ticks;
return;
}
grenade['data']['start_velocity'][0x0] *= planes[i][0x0], grenade['data']['start_velocity'][0x1] *= planes[i][0x1], grenade['data']['start_velocity'][0x2] *= planes[i][0x2];
}
}
}
var predicted_times = 0;
function register_grenades() {
if (!GUI.GetValue(p.radar, "[NW] Predict grenade path"))
return;
const grenades = Entity.GetEntitiesByClassID(9).concat(Entity.GetEntitiesByClassID(114))
for (var i = 0x0; i < grenades['length']; i++) {
const grenade = grenades[i]
const class_id = Entity.GetClassID(grenade)
if (!grenade) continue;
if (Entity.GetProp(grenade, "CBaseCSGrenadeProjectile", "m_nExplodeEffectTickBegin")) {
predicted_times = 0;
continue;
}
const is_molotov = (class_id === 114);
if (is_molotov) {
if (Entity.GetProp(grenade, "CInferno", "m_nFireEffectTickBegin")) {
predicted_times = 0;
continue;
}
}
if (grenade_prediction.nades.indexOf(grenade) === -1) {
grenade_prediction.nades.push(grenade)
grenade_prediction.paths[grenade] = {
'entity': grenade,
'simulated': false,
'initialized': false,
'ticks': 0x0,
'should_predict': true,
'should_follow': false,
'data': {
'start_velocity': [],
'start_position': [],
'prediction_ticks': 0x0
},
'paths': [],
'is_inferno': is_molotov,
}
predict_grenades();
}
}
}
function predict_grenades() {
if (!GUI.GetValue(p.radar, "[NW] Predict grenade path"))
return;
const TickInterval = Globals.TickInterval();
const gravity = Convar.GetFloat("sv_gravity") * TickInterval;
for (var i in grenade_prediction.paths) {
var grenade = grenade_prediction.paths[i]
var ticks = grenade['is_inferno'] ? 126 : 100;
ticks -= GUI.GetValue(p.radar, "[NW] Re-predict grenade") * predicted_times;
if (Entity.GetProp(grenade['entity'], "CBaseCSGrenadeProjectile", "m_nExplodeEffectTickBegin") || Entity.GetProp(grenade['entity'], "CInferno", "m_nFireEffectTickBegin"))
predicted_times = 0;
if (grenade['simulated']) {
grenade['ticks']++;
if (grenade['ticks'] >= GUI.GetValue(p.radar, "[NW] Re-predict grenade")) {
grenade_prediction['nades'].splice(grenade_prediction.nades.indexOf(grenade['entity'], 1))
grenade_prediction['paths'].splice(i, 1)
register_grenades()
}
continue;
}
for (var t = 0; t < ticks; t++) {
if (!grenade['initialized']) {
const origin = Entity.GetRenderOrigin(grenade['entity'])
const velocity = Entity.GetProp(grenade['entity'], "CBaseGrenade", "m_vecVelocity")
grenade['data']['start_position'] = origin
grenade['data']['start_velocity'] = velocity
grenade['initialized'] = true;
}
compensate_for_collision(grenade, t);
grenade['data']['start_position'] = extrapolate(grenade['data']['start_position'], grenade['data']['start_velocity'], 1)
grenade['data']['start_velocity'][2] -= gravity * 0.4;
if (!grenade['should_predict']) {
grenade['paths'].push(grenade['data']['start_position'])
break;
}
if (t === ticks - 1) {
grenade['paths'].push(grenade['data']['start_position'])
}
}
grenade['simulated'] = true;
grenade_prediction.paths[i] = grenade;
}
}
/*Cheat.RegisterCallback('CreateMove', 'register_grenades')
Cheat.RegisterCallback('CreateMove', 'predict_grenades')*/
/*
* Section: Clantag
*/
var ui_clantag = UI.AddCheckbox(p.cheat, "[NW] Clantag")
var old_tick = 0;
function clantag() {
if (!UI.GetValue(ui_clantag)) {
if (old_tick != 0) {
old_tick = 0;
Local.SetClanTag("");
}
return;
}
if (!World.GetServerString() || old_tick == Math.floor(Globals.Curtime() * 2.7))
return;
old_tick = Math.floor(Globals.Curtime() * 2.7);
switch (Math.floor((Globals.Curtime() * 2.7) % 24)) {
case 0:
Local.SetClanTag(" n")
break;
case 1:
Local.SetClanTag(" no")
break;
case 2:
Local.SetClanTag(" nor")
break;
case 3:
Local.SetClanTag(" nort")
break;
case 4:
Local.SetClanTag(" north")
break;
case 5:
Local.SetClanTag(" northw")
break;
case 6:
Local.SetClanTag(" northwo")
break;
case 7:
Local.SetClanTag(" northwoo")
break;
case 8:
Local.SetClanTag(" northwood")
break;
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
Local.SetClanTag("northwood ")
break;
case 15:
Local.SetClanTag("orthwood ")
break;
case 16:
Local.SetClanTag("rthwood ")
break;
case 17:
Local.SetClanTag("thwood ")
break;
case 18:
Local.SetClanTag("hwood ")
break;
case 19:
Local.SetClanTag("wood ")
break;
case 20:
Local.SetClanTag("ood ")
break;
case 21:
Local.SetClanTag("od ")
break;
case 22:
Local.SetClanTag("d ")
break;
case 23:
Local.SetClanTag(" ")
break;
}
}
Cheat.RegisterCallback("Draw", "clantag")
/*
* Section: Commands
*/
if (Northwood.Get("console_filter:enabled")) {
Cheat.ExecuteCommand("con_filter_enable 1")
Cheat.ExecuteCommand("con_filter_text [onetap]")
}
UI.AddTextbox(p.general, "[NW] Command")
UI.AddCheckbox(p.general, "Execute command")
var Commands = {
Handler: function() {
if (GUI.GetValue(p.general, "Execute command") == 0)
return;
var command = GUI.GetString(p.general, "[NW] Command")
var executed = false;
if (command.includes("indicators:set_size ")) {
var size = parseInt(command.replace("indicators:set_size ", ""), 10)
if (size == NaN) {
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Syntax: `indicators:set_size <size>`\n")
return;
}
Indicators.Size = size;
Northwood.Write("indicators:size", size.toString())
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Indicators size set\n")
executed = true;
}
if (command.includes("performance:set_freq ")) {
var freq = parseInt(command.replace("performance:set_freq ", ""), 10)
if (freq == NaN) {
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Syntax: `performance:set_freq <freq>`\n")
return;
}
Performance.Freq = freq;
Northwood.Write("performance:freq", freq.toString())
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Refresh frequency set\n")
executed = true;
}
if (command.includes("presets:export ")) {
var filename = command.replace("presets:export ", "")
DataFile.Load(filename)
DataFile.SetKey(filename, "antiaim_standing_yawbase", GUI.GetValue(p.antiaim, "[S] Yaw base").toString())
DataFile.SetKey(filename, "antiaim_standing_yaw", GUI.GetValue(p.antiaim, "[S] Yaw").toString())
DataFile.SetKey(filename, "antiaim_standing_yawoffset", GUI.GetValue(p.antiaim, "[S] Yaw offset").toString())
DataFile.SetKey(filename, "antiaim_standing_yawjitter", GUI.GetValue(p.antiaim, "[S] Yaw jitter").toString())
DataFile.SetKey(filename, "antiaim_standing_yawjitteroffset", GUI.GetValue(p.antiaim, "[S] Yaw jitter offset").toString())
DataFile.SetKey(filename, "antiaim_standing_edgeyaw", GUI.GetValue(p.antiaim, "[S] Edge yaw").toString())
DataFile.SetKey(filename, "antiaim_standing_fakeyaw", GUI.GetValue(p.antiaim_fake, "[S] Fake yaw").toString())
DataFile.SetKey(filename, "antiaim_standing_fakeyawoffset", GUI.GetValue(p.antiaim_fake, "[S] Fake yaw offset").toString())
DataFile.SetKey(filename, "antiaim_standing_fakeyawlimit", GUI.GetValue(p.antiaim_fake, "[S] Fake yaw limit").toString())
DataFile.SetKey(filename, "antiaim_standing_freestandfakeyaw", GUI.GetValue(p.antiaim_fake, "[S] Freestand fake yaw").toString())
DataFile.SetKey(filename, "antiaim_standing_bulletevasion", GUI.GetValue(p.antiaim_fake, "[S] Bullet evasion").toString())
DataFile.SetKey(filename, "antiaim_walking_yawbase", GUI.GetValue(p.antiaim, "[W] Yaw base").toString())
DataFile.SetKey(filename, "antiaim_walking_yaw", GUI.GetValue(p.antiaim, "[W] Yaw").toString())
DataFile.SetKey(filename, "antiaim_walking_yawoffset", GUI.GetValue(p.antiaim, "[W] Yaw offset").toString())
DataFile.SetKey(filename, "antiaim_walking_yawjitter", GUI.GetValue(p.antiaim, "[W] Yaw jitter").toString())
DataFile.SetKey(filename, "antiaim_walking_yawjitteroffset", GUI.GetValue(p.antiaim, "[W] Yaw jitter offset").toString())
DataFile.SetKey(filename, "antiaim_walking_edgeyaw", GUI.GetValue(p.antiaim, "[W] Edge yaw").toString())
DataFile.SetKey(filename, "antiaim_walking_fakeyaw", GUI.GetValue(p.antiaim_fake, "[W] Fake yaw").toString())
DataFile.SetKey(filename, "antiaim_walking_fakeyawoffset", GUI.GetValue(p.antiaim_fake, "[W] Fake yaw offset").toString())
DataFile.SetKey(filename, "antiaim_walking_fakeyawlimit", GUI.GetValue(p.antiaim_fake, "[W] Fake yaw limit").toString())
DataFile.SetKey(filename, "antiaim_walking_freestandfakeyaw", GUI.GetValue(p.antiaim_fake, "[W] Freestand fake yaw").toString())
DataFile.SetKey(filename, "antiaim_walking_bulletevasion", GUI.GetValue(p.antiaim_fake, "[W] Bullet evasion").toString())
DataFile.SetKey(filename, "antiaim_moving_yawbase", GUI.GetValue(p.antiaim, "[M] Yaw base").toString())
DataFile.SetKey(filename, "antiaim_moving_yaw", GUI.GetValue(p.antiaim, "[M] Yaw").toString())
DataFile.SetKey(filename, "antiaim_moving_yawoffset", GUI.GetValue(p.antiaim, "[M] Yaw offset").toString())
DataFile.SetKey(filename, "antiaim_moving_yawjitter", GUI.GetValue(p.antiaim, "[M] Yaw jitter").toString())
DataFile.SetKey(filename, "antiaim_moving_yawjitteroffset", GUI.GetValue(p.antiaim, "[M] Yaw jitter offset").toString())
DataFile.SetKey(filename, "antiaim_moving_edgeyaw", GUI.GetValue(p.antiaim, "[M] Edge yaw").toString())
DataFile.SetKey(filename, "antiaim_moving_fakeyaw", GUI.GetValue(p.antiaim_fake, "[M] Fake yaw").toString())
DataFile.SetKey(filename, "antiaim_moving_fakeyawoffset", GUI.GetValue(p.antiaim_fake, "[M] Fake yaw offset").toString())
DataFile.SetKey(filename, "antiaim_moving_fakeyawlimit", GUI.GetValue(p.antiaim_fake, "[M] Fake yaw limit").toString())
DataFile.SetKey(filename, "antiaim_moving_freestandfakeyaw", GUI.GetValue(p.antiaim_fake, "[M] Freestand fake yaw").toString())
DataFile.SetKey(filename, "antiaim_moving_bulletevasion", GUI.GetValue(p.antiaim_fake, "[M] Bullet evasion").toString())
DataFile.SetKey(filename, "antiaim_general_lowerbody", GUI.GetValue(p.antiaim_fake, "Lower body yaw").toString())
DataFile.Save(filename)
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Config exported into scripts directory\n")
executed = true;
}
if (command.includes("presets:import ")) {
var filename = command.replace("presets:import ", "")
DataFile.Load(filename)
GUI.SetValue(p.antiaim, "[S] Yaw base", parseInt(DataFile.GetKey(filename, "antiaim_standing_yawbase")))
GUI.SetValue(p.antiaim, "[S] Yaw", parseInt(DataFile.GetKey(filename, "antiaim_standing_yaw")))
GUI.SetValue(p.antiaim, "[S] Yaw offset", parseInt(DataFile.GetKey(filename, "antiaim_standing_yawoffset")))
GUI.SetValue(p.antiaim, "[S] Yaw jitter", parseInt(DataFile.GetKey(filename, "antiaim_standing_yawjitter")))
GUI.SetValue(p.antiaim, "[S] Yaw jitter offset", parseInt(DataFile.GetKey(filename, "antiaim_standing_yawjitteroffset")))
GUI.SetValue(p.antiaim, "[S] Edge yaw", parseInt(DataFile.GetKey(filename, "antiaim_standing_edgeyaw")))
GUI.SetValue(p.antiaim_fake, "[S] Fake yaw", parseInt(DataFile.GetKey(filename, "antiaim_standing_fakeyaw")))
GUI.SetValue(p.antiaim_fake, "[S] Fake yaw offset", parseInt(DataFile.GetKey(filename, "antiaim_standing_fakeyawoffset")))
GUI.SetValue(p.antiaim_fake, "[S] Fake yaw limit", parseInt(DataFile.GetKey(filename, "antiaim_standing_fakeyawlimit")))
GUI.SetValue(p.antiaim_fake, "[S] Freestand fake yaw", parseInt(DataFile.GetKey(filename, "antiaim_standing_freestandfakeyaw")))
GUI.SetValue(p.antiaim_fake, "[S] Bullet evasion", parseInt(DataFile.GetKey(filename, "antiaim_standing_bulletevasion")))
GUI.SetValue(p.antiaim, "[W] Yaw base", parseInt(DataFile.GetKey(filename, "antiaim_walking_yawbase")))
GUI.SetValue(p.antiaim, "[W] Yaw", parseInt(DataFile.GetKey(filename, "antiaim_walking_yaw")))
GUI.SetValue(p.antiaim, "[W] Yaw offset", parseInt(DataFile.GetKey(filename, "antiaim_walking_yawoffset")))
GUI.SetValue(p.antiaim, "[W] Yaw jitter", parseInt(DataFile.GetKey(filename, "antiaim_walking_yawjitter")))
GUI.SetValue(p.antiaim, "[W] Yaw jitter offset", parseInt(DataFile.GetKey(filename, "antiaim_walking_yawjitteroffset")))
GUI.SetValue(p.antiaim, "[W] Edge yaw", parseInt(DataFile.GetKey(filename, "antiaim_walking_edgeyaw")))
GUI.SetValue(p.antiaim_fake, "[W] Fake yaw", parseInt(DataFile.GetKey(filename, "antiaim_walking_fakeyaw")))
GUI.SetValue(p.antiaim_fake, "[W] Fake yaw offset", parseInt(DataFile.GetKey(filename, "antiaim_walking_fakeyawoffset")))
GUI.SetValue(p.antiaim_fake, "[W] Fake yaw limit", parseInt(DataFile.GetKey(filename, "antiaim_walking_fakeyawlimit")))
GUI.SetValue(p.antiaim_fake, "[W] Freestand fake yaw", parseInt(DataFile.GetKey(filename, "antiaim_walking_freestandfakeyaw")))
GUI.SetValue(p.antiaim_fake, "[W] Bullet evasion", parseInt(DataFile.GetKey(filename, "antiaim_walking_bulletevasion")))
GUI.SetValue(p.antiaim, "[M] Yaw base", parseInt(DataFile.GetKey(filename, "antiaim_moving_yawbase")))
GUI.SetValue(p.antiaim, "[M] Yaw", parseInt(DataFile.GetKey(filename, "antiaim_moving_yaw")))
GUI.SetValue(p.antiaim, "[M] Yaw offset", parseInt(DataFile.GetKey(filename, "antiaim_moving_yawoffset")))
GUI.SetValue(p.antiaim, "[M] Yaw jitter", parseInt(DataFile.GetKey(filename, "antiaim_moving_yawjitter")))
GUI.SetValue(p.antiaim, "[M] Yaw jitter offset", parseInt(DataFile.GetKey(filename, "antiaim_moving_yawjitteroffset")))
GUI.SetValue(p.antiaim, "[M] Edge yaw", parseInt(DataFile.GetKey(filename, "antiaim_moving_edgeyaw")))
GUI.SetValue(p.antiaim_fake, "[M] Fake yaw", parseInt(DataFile.GetKey(filename, "antiaim_moving_fakeyaw")))
GUI.SetValue(p.antiaim_fake, "[M] Fake yaw offset", parseInt(DataFile.GetKey(filename, "antiaim_moving_fakeyawoffset")))
GUI.SetValue(p.antiaim_fake, "[M] Fake yaw limit", parseInt(DataFile.GetKey(filename, "antiaim_moving_fakeyawlimit")))
GUI.SetValue(p.antiaim_fake, "[M] Freestand fake yaw", parseInt(DataFile.GetKey(filename, "antiaim_moving_freestandfakeyaw")))
GUI.SetValue(p.antiaim_fake, "[M] Bullet evasion", parseInt(DataFile.GetKey(filename, "antiaim_moving_bulletevasion")))
GUI.SetValue(p.antiaim_fake, "Lower body yaw", parseInt(DataFile.GetKey(filename, "antiaim_general_lowerbody")))
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Config imported successfully\n")
executed = true;
}
if (!executed) {
switch (command) {
case "watermark:unlock_suffix":
if (Northwood.Get("watermark:unlock_suffix") == "true") {
Northwood.Write("watermark:unlock_suffix", "false")
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Watermark suffix disabled\n")
UI.RemoveItem(GUI.GetPath(p.script_ui, "Watermark suffix"))
}
else {
Northwood.Write("watermark:unlock_suffix", "true")
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Watermark suffix unlocked\n")
UI.AddTextbox(p.script_ui, "Watermark suffix")
}
break;
case "watermark:unlock_prefix":
if (Northwood.Get("watermark:unlock_prefix") == "true") {
Northwood.Erase("watermark:unlock_prefix")
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Watermark prefix disabled\n")
UI.RemoveItem(GUI.GetPath(p.script_ui, "Watermark prefix"))
}
else {
Northwood.Write("watermark:unlock_prefix", "true")
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Watermark prefix unlocked\n")
UI.AddTextbox(p.script_ui, "Watermark prefix")
}
break;
case "console_filter:enable":
Northwood.Write("console_filter:enabled", "true")
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Console filter enabled\n")
Cheat.ExecuteCommand("con_filter_enable 1")
Cheat.ExecuteCommand("con_filter_text [onetap]")
break;
case "console_filter:disable":
Northwood.Erase("console_filter:enabled")
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Console filter disabled\n")
Cheat.ExecuteCommand("con_filter_enable 0")
break;
case "visuals:weapon_icon":
Northwood.Write("visuals:weapon_icon", "true")
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Weapon icon ESP enabled\n")
break;
default:
Cheat.PrintColor([190, 220, 255, 255], "[northwood] ")
Cheat.PrintColor([220, 220, 220, 255], "Unknown command\n")
break;
}
}
GUI.SetValue(p.general, "Execute command", 0)
}
}
UI.RegisterCallback(GUI.GetPath(p.general, "Execute command"), "Commands.Handler")
var ShotsHandler = {
LastShotID: 0,
LastTarget: -1,
Shots: new Array(),
Events: {
aim_fire: function(shot) {
Cheat.PrintColor([89, 119, 239, 255], String.format("[{0}] aim_fire: (target: {1}, hitbox: {2}, hit_chance: {3}, damage: {4}, priority: {5}, teleported: {6}, shifted: {7}, tick: {8})\n", shot.shot_id, Entity.GetName(shot.target), hitboxes[shot.hitbox], shot.hit_chance, shot.damage, shot.priority, shot.teleported, shot.shot_info.shifting, shot.tick))
},
aim_miss: function(shot) {
Cheat.PrintColor([89, 119, 239, 255], String.format("[{0}] aim_miss: (target: {1}, hitbox: {2}, hit_chance: {3}, damage: {4}, priority: {5}, teleported: {6}, shifted: {7}, tick: {8}, reason: {9})\n", shot.shot_id, Entity.GetName(shot.target), hitboxes[shot.hitbox], shot.hit_chance, shot.damage, shot.priority, shot.teleported, shot.shot_info.shifting, shot.tick, shot.shot_info.reason))
},
},
RagebotFire: function() {
/*
RagebotFire Object:
id: // Shot ID
target: // Target player entindex
hitbox: // Targetted hitbox
hit_chance: // Hitchance
damage: // Predicted damage
priority: // Was the shot at a high priority record
teleported: // Was target player breaking lag comp
tick: // Tick the shot was made at
shot_info: {
shifting:
}
*/
var shot = new Object();
shot.shot_id = ShotsHandler.LastShotID;
shot.target = Event.GetInt("target_index");
shot.hitbox = Event.GetInt("hitbox");
shot.hit_chance = Event.GetInt("hitchance");
shot.damage = Trace.Bullet(Entity.GetLocalPlayer(), Event.GetInt("target_index"), Entity.GetEyePosition(Entity.GetLocalPlayer()), Entity.GetHitboxPosition(Event.GetInt("target_index"), Event.GetInt("hitbox")))[1];
shot.priority = ShotsHandler.LastTarget === Event.GetInt("target_index");
shot.teleported = false;
shot.tick = Globals.Tickcount();
shot.shot_info = {};
shot.shot_info.shifting = false;
ShotsHandler.Shots.push(shot);
ShotsHandler.LastShotID = ShotsHandler.LastShotID + 1;
ShotsHandler.LastTarget = Event.GetInt("target_index");
ShotsHandler.Events.aim_fire(shot);
},
PlayerDeath: function() {
if (Entity.GetEntityFromUserID(Event.GetInt('userid')) == Entity.GetLocalPlayer()) {
if (ShotsHandler.Shots.length > 0) {
var shot = ShotsHandler.Shots[ShotsHandler.Shots.length - 1];
shot.shot_info.reason = "death";
ShotsHandler.Events.aim_miss(shot);
ShotsHandler.Shots = new Array();
ShotsHandler.LastShotID = 0;
}
}
else if (Entity.GetEntityFromUserID(Event.GetInt('userid')) == ShotsHandler.LastTarget) {
if (ShotsHandler.Shots.length > 0) {
var shot = ShotsHandler.Shots[ShotsHandler.Shots.length - 1];
shot.shot_info.reason = "death";
ShotsHandler.Events.aim_miss(shot);
ShotsHandler.Shots.pop();
}
}
},
Load: function() {
/*Cheat.RegisterCallback("ragebot_fire", "ShotsHandler.RagebotFire")
Cheat.RegisterCallback("player_death", "ShotsHandler.PlayerDeath")*/
},
}
//ShotsHandler.Load();
function GrenadeWarning()
{
var font1 = Render.GetFont("Calibrib.ttf", 25, true);
var font2 = Render.GetFont("Verdanab.ttf", 10, true);
var DistanceInFeet = function(origin, destination) {
var sub = [destination[0] - origin[0], destination[1] - origin[1], destination[2] - origin[2]];
return Math.round(Math.sqrt(sub[0] ** 2 + sub[1] ** 2 + sub[2] ** 2) / 12);
}
GrenadePrediction.Run();
var lp = Entity.GetLocalPlayer;
var origin = Entity.GetRenderOrigin(lp());
var grenades = GrenadePrediction.GetLiveGrenades();
for (var i in grenades)
{
var g = grenades[i];
var destination = g.Position;
var distance = DistanceInFeet(origin, destination);
var screen = Render.WorldToScreen(destination);
if (distance > 50)
{
continue;
}
function Clamp(num, min, max) {
return num <= min ? min : num >= max ? max : num;
}
if (!g.IsLive)
continue;
function draw_arc1(a,n,o,r,t,h,M,c){M=360/M;for(var e=t;e<t+h;e+=M){var s=e*Math.PI/180,P=(e+M)*Math.PI/180,d=Math.cos(s),i=Math.sin(s),f=Math.cos(P),g=Math.sin(P),l=a+d*r,v=n+i*r,y=a+d*o,I=n+i*o,R=a+f*r,u=n+g*r,w=a+f*o,_=n+g*o;Render.Polygon([[y,I],[w,_],[l,v]],c),Render.Polygon([[l,v],[w,_],[R,u]],c)}};
Render.FilledCircle(screen[0], screen[1] -50, 30, [Math.max(0, 255 - Math.pow(distance, 1.7)), 0, 0, 255])
draw_arc1(screen[0]-1, screen[1] - 50, 31, 29, 270, 360, 30, [10, 10, 10, 255]);
Render.String(screen[0], screen[1] - 68, 1, "!", [255, 250, 20, 200], font1);
Render.String(screen[0], screen[1] - 45, 1, distance + " ft", [232, 232, 232, 200], font2);
if (g.Type == "Molotov") {
time = Entity.GetProp(g.EntityIndex, "CInferno", "m_nFireEffectTickBegin") * Globals.TickInterval();
factor = Clamp(((time + 7) - Globals.Curtime()) / 7, 0, 7);
draw_arc1(screen[0]-1, screen[1] - 50, 31, 29, 270, 360 * factor, 150, [232, 232, 232, 200]);
}
}
}
Cheat.RegisterCallback("Draw", "GrenadeWarning");
Минус твоего варнинга в том, что вместо белой полоски у тебя похоже черная. А еще когда молик упал кружка нет и не показывает типа таймер молик (( Если сделаешь это все просто поцелую в щеки)))))скит варнинг на от 4
как это чудо работаетJavaScript:function GrenadeWarning() { var font1 = Render.GetFont("Calibrib.ttf", 25, true); var font2 = Render.GetFont("Verdanab.ttf", 10, true); var DistanceInFeet = function(origin, destination) { var sub = [destination[0] - origin[0], destination[1] - origin[1], destination[2] - origin[2]]; return Math.round(Math.sqrt(sub[0] ** 2 + sub[1] ** 2 + sub[2] ** 2) / 12); } GrenadePrediction.Run(); var lp = Entity.GetLocalPlayer; var origin = Entity.GetRenderOrigin(lp()); var grenades = GrenadePrediction.GetLiveGrenades(); for (var i in grenades) { var g = grenades[i]; var destination = g.Position; var distance = DistanceInFeet(origin, destination); var screen = Render.WorldToScreen(destination); if (distance > 50) { continue; } function Clamp(num, min, max) { return num <= min ? min : num >= max ? max : num; } if (!g.IsLive) continue; function draw_arc1(a,n,o,r,t,h,M,c){M=360/M;for(var e=t;e<t+h;e+=M){var s=e*Math.PI/180,P=(e+M)*Math.PI/180,d=Math.cos(s),i=Math.sin(s),f=Math.cos(P),g=Math.sin(P),l=a+d*r,v=n+i*r,y=a+d*o,I=n+i*o,R=a+f*r,u=n+g*r,w=a+f*o,_=n+g*o;Render.Polygon([[y,I],[w,_],[l,v]],c),Render.Polygon([[l,v],[w,_],[R,u]],c)}}; Render.FilledCircle(screen[0], screen[1] -50, 30, [Math.max(0, 255 - Math.pow(distance, 1.7)), 0, 0, 255]) draw_arc1(screen[0]-1, screen[1] - 50, 31, 29, 270, 360, 30, [10, 10, 10, 255]); Render.String(screen[0], screen[1] - 68, 1, "!", [255, 250, 20, 200], font1); Render.String(screen[0], screen[1] - 45, 1, distance + " ft", [232, 232, 232, 200], font2); if (g.Type == "Molotov") { time = Entity.GetProp(g.EntityIndex, "CInferno", "m_nFireEffectTickBegin") * Globals.TickInterval(); factor = Clamp(((time + 7) - Globals.Curtime()) / 7, 0, 7); draw_arc1(screen[0]-1, screen[1] - 50, 31, 29, 270, 360 * factor, 150, [232, 232, 232, 200]); } } } Cheat.RegisterCallback("Draw", "GrenadeWarning");
он не отрисовывает линиюМинус твоего варнинга в том, что вместо белой полоски у тебя похоже черная
сабка вт ,увы, закончиласьЕсли сделаешь
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz