Code:
if not CLIENT then return end
if C then _G.C = nil end
local _R = debug.getregistry();
local CreateClientConVar = CreateClientConVar
local concommand = concommand
local GetConVarNumber = GetConVarNumber
local hook = hook
local GetConVarString = GetConVarString
local raz = {}
local LocalPlayer = LocalPlayer
local ents = ents
local ScrW = ScrW
local ScrH = ScrH
local require = require
local cvars = cvars
local print = print
local include = include
local GetEyeTrace = GetEyeTrace
local Entity = Entity
local ConCommand = ConCommand
local RunConsoleCommand = RunConsoleCommand
local CurTime = CurTime
local cam = cam
local chat = chat
local draw = draw
local package = package
local player = player
local math = math
local render = render
local string = string
local surface = surface
local table = table
local team = team
local timer = timer
local util = util
local vgui = vgui
local Angle = Angle
local Color = Color
local EyeAngles = EyeAngles
local EyePos = EyePos
local ipairs = ipairs
local pairs = pairs
local tobool = tobool
local tonumber = tonumber
local tostring = tostring
local type = type
local unpack = unpack
local Vector = Vector
local MsgN = MsgN
local IsValid = IsValid
local RealFrameTime = RealFrameTime
local CreateClientConVar = CreateClientConVar
local CreateMaterial = CreateMaterial
local AddConsoleCommand = AddConsoleCommand
raz.cvars = {
{ Name = "razor_aimbot_fov", Value = 50 },
{ Name = "razor_aimbot_autofire", Value = 0 },
{ Name = "razor_aimbot_autosnap", Value = 0 },
{ Name = "razor_aimbot_bone", Value = "ValveBiped.Bip01_Head1" },
{ Name = "razor_radius", Value = 25000 },
{ Name = "razor_targetfriends", Value = 0 },
}
raz.bones = {
"ValveBiped.Bip01_Head1",
"ValveBiped.Bip01_Neck1",
"ValveBiped.Bip01_Spine",
"ValveBiped.Bip01_Pelvis",
"ValveBiped.Bip01_R_UpperArm",
"ValveBiped.Bip01_L_UpperArm",
"ValveBiped.Bip01_R_Thigh",
"ValveBiped.Bip01_L_Thigh",
"random"
}
local function AddHook(Type, name, Function)
hook.Add(Type, name, Function)
end
local function RemoveHook(Type, name)
hook.Remove(Type, name)
end
local function AddConvar(Name, Value)
CreateClientConVar(Name, Value)
end
local mapex = {}
mape*****mmands = {}
mapex.Hooks = {}
mapex.MenuInfo = {}
mapex.Meta = { _G, hook, concommand, debug, file }
mapex.World = { players = {} }
mapex.timers = {}
mapex.spectators = {}
mapex.admins = {}
mapex.superadmins = {}
settings = {
aim = 0;
aim_friendlyfire = 0;
aim_ignoreadmins = 0;
aim_ignoretraitors = 0;
aim_ignorefriends = 0;
aim_autoshoot = 0;
aim_snaponfire = 0;
aim_ignorevisibility = 0;
aim_prediction = 1;
aim_prediction_val_tar = 66;
aim_prediction_val_ply = 45;
aim_prediction_type = 1;
aim_offset = 0;
aim_fov = 12;
aim_smooth = 0;
aim_smooth_val = 0;
misc_bunnyhop = 0;
misc_norecoil = 0;
showadmins = 0;
showspecs = 0;
}
mape*****py = {
hook = table.Copy( hook ),
GetInt = _R["ConVar"].GetInt,
GetBool = _R["ConVar"].GetBool,
SetViewAngles = _R["CUserCmd"].SetViewAngles
}
mapex.Vars = {
osv = 0,
target = nil,
aimlocked = false,
pkfake = false,
pkthrow = false,
firing = false,
found = false,
aimingang = Angle( 0, 0, 0 ),
fakeang = Angle( 0, 0, 0 ),
pkfakeang = Angle( 0, 0, 0 ),
pkthrowang = Angle( 0, 0, 0 ),
prefix = "mapex_"
}
mape*****lors = {
orange = Color(255,106,0);
lightblue = Color(0,150,255);
red = Color(255,0,0);
blue = Color(0,0,255);
green = Color(0,255,0);
white = Color(255,255,255);
yellow = Color(0,255,255);
}
mapex.Mats = {
shield = Material( "icon16/shield.png", nocull );
shieldadd = Material( "icon16/shield_add.png", nocull );
user = Material( "icon16/user.png", nocull );
heart = Material( "icon16/heart.png", nocull );
money = Material( "icon16/money.png", nocull );
arrow_down = Material( "vgui/hack/arrow_down.png", nocull ); -- materials
arrow_up = Material( "vgui/hack/arrow_up.png", nocull );
grad = Material( "vgui/hack/gradient.png", nocull );
mapex = Material( "vgui/hack/mapex.png", nocull );
off = Material( "vgui/hack/off.png", nocull );
on = Material( "vgui/hack/on.png", nocull );
seperator_bottom = Material( "vgui/hack/seperator_bottom.png", nocull );
seperator_side = Material( "vgui/hack/seperator_side.png", nocull );
}
mapex.ZombieModels = {
{"models/zombie/fast_torso.mdl", "ValveBiped.HC_BodyCube"};
{"models/zombie/fast.mdl", "ValveBiped.HC_BodyCube"};
{"models/headcrabclassic.mdl", "HeadcrabClassic.SpineControl"};
{"models/headcrabblack.mdl", "HCBlack.body"};
{"models/headcrab.mdl", "HCFast.body"};
{"models/zombie/poison.mdl", "ValveBiped.Headcrab_Cube1"};
{"models/zombie/classic.mdl", "ValveBiped.HC_Body_Bone"};
{"models/zombie/classic_torso.mdl", "ValveBiped.HC_Body_Bone"};
{"models/zombie/zombie_soldier.mdl", "ValveBiped.HC_Body_Bone"};
}
surface.CreateFont("Herp", {font = "Tahoma", size = 11, weight = 0, shadow = true})
surface.CreateFont("HerpSmall", {font = "Tahoma", size = 11, weight = 0, shadow = true})
surface.CreateFont("Derp", {font = "Tahoma", size = 18, weight = 0, shadow = true})
//////////////////////////
/// Utility Functions ///
/////////////////////////
// Chat print func
function mapex.Notify(dosound,col,msg)
if dosound == sound then
surface.PlaySound("/buttons/button17.wav")
end
chat.AddText(mape*****lors.lightblue, "[mApex] ", col, msg)
end
mapex.Notify(true,mape*****lors.green,"has sucessfully loaded!")
mapex.Notify(true,mape*****lors.green,"Hugh's Exploits sucessfully loaded!!")
// Concommand func
function mapex:createConCommand()
for k, v in pairs(settings) do
CreateClientConVar(mapex.Vars.prefix.. k, v, true, false)
MsgC(Color(0,150,255), "[mApex]", Color(255,255,255), " concommand created with arguments: ".. k .. " \n" )
end
end
// Check value func
local function settings(cmd)
if ConVarExists(mapex.Vars.prefix..cmd) then
return tonumber(GetConVarNumber(mapex.Vars.prefix..cmd))
end
return 0
end
mapex:createConCommand()
// Check if player is valid
local function playerValid(v)
if v:Alive() == true && v:Health() ~= 0 && v:Health() >= 0 && v ~= LocalPlayer() && LocalPlayer():Alive() then
return true
else
return false
end
end
///////////
/// ESP ///
///////////
function mapex:ESP()
for k,v in pairs(player.GetAll()) do
if _espon && (v ~= LocalPlayer() and playerValid(v)) then
local ESP = (v:GetPos()):ToScreen()
local ESP2 = (v:EyePos()):ToScreen()
if v:IsAdmin() and !v:IsSuperAdmin() then
draw.DrawText(v:Name(), "Herp", ESP.x, ESP.y +18, team.GetColor(v:Team()), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
surface.SetMaterial( mapex.Mats.shield ); surface.SetDrawColor( Color( 255, 255, 255, 255 ) ); surface.DrawTexturedRect( ESP.x - 7, ESP.y + 30, 16, 16 );
elseif v:IsSuperAdmin() then
draw.DrawText(v:Name(), "Herp", ESP.x, ESP.y +18, team.GetColor(v:Team()), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
surface.SetMaterial( mapex.Mats.shieldadd ); surface.SetDrawColor( Color( 255, 255, 255, 255 ) ); surface.DrawTexturedRect( ESP.x - 8, ESP.y + 30, 16, 16 );
else
draw.DrawText(v:Name(), "Herp", ESP.x, ESP.y +18, team.GetColor(v:Team()), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
surface.SetMaterial( mapex.Mats.user ); surface.SetDrawColor( Color( 255, 255, 255, 255 ) ); surface.DrawTexturedRect( ESP.x - 8, ESP.y + 30, 16, 16 );
end
draw****undedBox(0, ESP.x - 21, ESP.y +49, 42, 7, Color(0,0,0,255))
draw****undedBox(0, ESP.x - 20, ESP.y +50, 40 * math.Clamp(v:Health(), 0, 100) / 100, 5, Color(255,0,0,255))
draw****undedBox(0, ESP.x - 20, ESP.y +50, 40 * math.Clamp(v:Health(), 0, 100) / 100, 2.5, Color(255,255,255,30))
draw.DrawText(v:Health(), "Herp", ESP.x, ESP.y +46, Color(255, 255, 255, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
end
end
end
function mapex:Crosshair()
if _crosson then
surface.SetDrawColor( Color(0, 80, 255, 255) );
surface.SetMaterial( Material("vgui/hack/crosshair.png") );
surface.DrawTexturedRect(ScrW() / 2 - 7, ScrH() / 2 - 7, 15, 15);
end
end
/////////////
/// Chams ///
/////////////
function mapex:Chams()
if not _wallon then return end
for k,v in pairs(player.GetAll()) do
if playerValid(v) then
cam.Start3D(EyePos(), EyeAngles())
render.SetBlend( 0.45 )
render.SetColorModulation( 1, 1, 1 )
v:DrawModel()
cam.End3D()
elseif ( gmod.GetGamemode().Name ) == "TTT" or ( gmod.GetGamemode().Name ) == "Trouble in Terrorist Town" then
for k,v in pairs(player.GetAll()) do
if playerValid(v) and v.HatTraitor and GetConVarNumber( "mapex_traitor" ) >= 1 then
cam.Start3D(EyePos(), EyeAngles())
v:SetColor(Color(255, 0, 0, 255))
render.SetColorModulation( 1, 0, 0 )
v:DrawModel()
cam.End3D()
end
end
end
end
end
////////////////////////
/// Draw Spectators ///
//////////////////////
local pos = 30
local textLength = 0
function mapex:showAdmins()
if GetConVarNumber("mapex_showadmins") == 1 then
local Admins = {}
local x = 0
for k,v in pairs(player.GetAll()) do
if v:IsAdmin() or v:IsSuperAdmin() then
table.insert(Admins, v:Name())
end
end
textLength = surface.GetTextSize(table.concat(Admins) ) / 6
draw****undedBox(0, ScrW() / 2 * 2 - 125, pos, 100, 80 + textLength, Color(45,45,45,180))
draw****undedBox(2, ScrW() / 2 * 2 - 125, pos, 100, 20, mape*****lors.lightblue )
draw.SimpleText("Admins", "Herp", ScrW() /2 * 2 -75, pos + 5, mape*****lors.white, TEXT_ALIGN_CENTER )
for k, v in pairs(Admins) do
draw.SimpleText(v, "Herp", ScrW() / 2 * 2 -75, pos + 25 + x, mape*****lors.white, TEXT_ALIGN_CENTER)
x = x + 15
end
end
end
// Print when spectated
function mapex:Spectate()
for k, v in pairs(player.GetAll()) do
if (IsValid(v:GetObserverTarget()) and v:GetObserverTarget():IsPlayer() and v:GetObserverTarget() == LocalPlayer()) then
if(not table.HasValue(mapex.spectators, v)) then
table.insert(mapex.spectators, v);
mapex.Notify(true,mape*****lors.orange,""..v:Name().. " has begun to spectate you.")
surface.PlaySound("buttons/blip1.wav")
end
end
end
for k, v in pairs(mapex.spectators) do
if (not IsValid(v) or not IsValid(v:GetObserverTarget()) or not v:GetObserverTarget():IsPlayer() or (v:GetObserverTarget() ~= LocalPlayer())) then
table.remove(mapex.spectators, k);
mapex.Notify(true,mape*****lors.green,""..v:Name().." has stopped spectating you.")
end
end
for k, v in pairs(player.GetAll()) do
if (v:IsSuperAdmin() and not table.HasValue(mapex.superadmins, v)) then
table.insert(mapex.superadmins, v);
mapex.Notify(true,mape*****lors.white,"Super Admin " .. v:Name() .. " has joined the game.")
surface.PlaySound("buttons/blip1.wav");
end
end
for k, v in pairs(player.GetAll()) do
if (v:IsAdmin() and not table.HasValue(mapex.admins, v) and not v:IsSuperAdmin()) then
table.insert(mapex.admins, v);
mapex.Notify(true,mape*****lors.white,"Admin " .. v:Name() .. " has joined the game.")
surface.PlaySound("buttons/blip1.wav");
end
end
end
// Draw box on screen
function mapex:showSpectators()
if GetConVarNumber("mapex_showspecs") == 1 then
local Spectators = {}
local x = 0
for k,v in pairs(player.GetAll()) do
if (IsValid(v:GetObserverTarget()) and v:GetObserverTarget():IsPlayer() and v:GetObserverTarget() == LocalPlayer()) and not table.HasValue(Spectators, v:Name()) then
table.insert(Spectators, v:Name())
end
end
local newpos = pos + 80 + textLength + 25
if settings("showadmins") == 0 then newpos = pos end
local textLength2 = surface.GetTextSize(table.concat(Spectators) ) / 6
draw****undedBox(0, ScrW() / 2 * 2 - 125, newpos, 100, 80, Color(45,45,45,180))
draw****undedBox( 2, ScrW() / 2 * 2 - 125, newpos, 100, 20, mape*****lors.lightblue )
draw.SimpleText("Spectators", "Herp", ScrW() /2 * 2 - 75, newpos + 5, mape*****lors.white, TEXT_ALIGN_CENTER )
for k, v in pairs(Spectators) do
draw.SimpleText(v, "Herp", ScrW() / 2 * 2 - 75, newpos + 25, mape*****lors.white, TEXT_ALIGN_CENTER)
x = x + 15
end
end
end
/////////////////
/// Bunnyhop ///
///////////////
function mapex:Bunnyhop( cmd )
if settings('misc_bunnyhop') == 0 then return end
local ply = LocalPlayer()
if ( ply:GetMoveType() ~= MOVETYPE_WALK ) then return end
if ply and cmd:KeyDown( IN_JUMP ) then
if ply:IsOnGround() then
cmd:SetButtons( cmd:GetButtons() , IN_JUMP )
else
cmd:SetButtons( cmd:GetButtons() - IN_JUMP )
end
end
end
/////////////
/// Menu ///
///////////
if mapex_menu then
mapex_menu:Remove( );
mapex_menu = nil;
end;
function util.InBox( x, y, w, h )
local mx, my = gui.MouseX( ), gui.MouseY( );
if mx >= x and mx <= x + w and my >= y and my <= y + h then
return true;
end;
return false;
end;
local NUMBER_OF_TABS = 4;
local tab1_options = { };
tab1_options.num = 1;
tab1_options.toggle = false;
tab1_options.name = "Coming Soon"; -- edit name
-- tab 2
local tab2_options = { };
tab2_options.num = 2;
tab2_options.toggle = false;
tab2_options.name = "Chams"; -- edit name
tab2_options[ 1 ] = { };
tab2_options[ 1 ].name = "Enabled";
tab2_options[ 1 ].on = function( ) return _wallon; end;
tab2_options[ 1 ].off = function( ) _wallon = false; end;
tab2_options[ 1 ].seton = function( ) _wallon = true; end;
tab2_options[ 2 ] = { };
tab2_options[ 2 ].name = "Base Chams";
tab2_options[ 2 ].on = function( ) return tobool( GetConVarNumber( "hugh_propchams" ) ); end;
tab2_options[ 2 ].off = function( ) RunConsoleCommand( "hugh_propchams", "0" ); end;
tab2_options[ 2 ].seton = function( ) RunConsoleCommand( "hugh_propchams", "1" ); end;
-- tab 3
local tab3_options = { };
tab3_options.num = 3;
tab3_options.toggle = false;
tab3_options.name = "ESP"; -- edit name
tab3_options[ 1 ] = { };
tab3_options[ 1 ].name = "ESP";
tab3_options[ 1 ].on = function( ) return _espon; end;
tab3_options[ 1 ].off = function( ) _espon = false; end;
tab3_options[ 1 ].seton = function( ) _espon = true; end;
tab3_options[ 2 ] = { };
tab3_options[ 2 ].name = "Crosshair";
tab3_options[ 2 ].on = function( ) return _crosson; end;
tab3_options[ 2 ].off = function( ) _crosson = false; end;
tab3_options[ 2 ].seton = function( ) _crosson = true; end;
tab3_options[ 3 ] = { };
tab3_options[ 3 ].name = "Admin List";
tab3_options[ 3 ].on = function( ) return tobool( GetConVarNumber( "mapex_showadmins" ) ); end;
tab3_options[ 3 ].off = function( ) RunConsoleCommand( "mapex_showadmins", "0" ); end;
tab3_options[ 3 ].seton = function( ) RunConsoleCommand( "mapex_showadmins", "1" ); end;
tab3_options[ 4 ] = { };
tab3_options[ 4 ].name = "Spectator Box";
tab3_options[ 4 ].on = function( ) return tobool( GetConVarNumber( "mapex_showspecs" ) ); end;
tab3_options[ 4 ].off = function( ) RunConsoleCommand( "mapex_showspecs", "0" ); end;
tab3_options[ 4 ].seton = function( ) RunConsoleCommand( "mapex_showspecs", "1" ); end;
local tab4_options = { };
tab4_options.num = 4;
tab4_options.toggle = false;
tab4_options.name = "Misc";
tab4_options[ 1 ] = { };
tab4_options[ 1 ].name = "Traitor Detector";
tab4_options[ 1 ].on = function( ) return tobool( GetConVarNumber( "mapex_traitor" ) ); end;
tab4_options[ 1 ].off = function( ) RunConsoleCommand( "mapex_traitor", "0" ); end;
tab4_options[ 1 ].seton = function( ) RunConsoleCommand( "mapex_traitor", "1" ); end;
tab4_options[ 2 ] = { };
tab4_options[ 2 ].name = "No Recoil";
tab4_options[ 2 ].on = function( ) return tobool( GetConVarNumber( "mapex_norecoil" ) ); end;
tab4_options[ 2 ].off = function( ) RunConsoleCommand( "mapex_norecoil", "0" ); end;
tab4_options[ 2 ].seton = function( ) RunConsoleCommand( "mapex_norecoil", "1" ); end;
tab4_options[ 3 ] = { };
tab4_options[ 3 ].name = "Bunnyhop";
tab4_options[ 3 ].on = function( ) return tobool( GetConVarNumber( "mapex_misc_bunnyhop" ) ); end;
tab4_options[ 3 ].off = function( ) RunConsoleCommand( "mapex_misc_bunnyhop", "0" ); end;
tab4_options[ 3 ].seton = function( ) RunConsoleCommand( "mapex_misc_bunnyhop", "1" ); end;
tab4_options[ 4 ] = { };
tab4_options[ 4 ].name = "Teleport To Spawn";
tab4_options[ 4 ].on = function( ) return tobool( GetConVarNumber( "Hugh_Respawn" ) ); end;
tab4_options[ 4 ].off = function( ) RunConsoleCommand( "Hugh_Respawn" ); end;
tab4_options[ 4 ].seton = function( ) RunConsoleCommand( "Hugh_Respawn" ); end;
tab4_options[ 5 ] = { };
tab4_options[ 5 ].name = "Place Hit";
tab4_options[ 5 ].on = function( ) return tobool( GetConVarNumber( "Hugh_Place_Hit" ) ); end;
tab4_options[ 5 ].off = function( ) RunConsoleCommand( "Hugh_Place_Hit" ); end;
tab4_options[ 5 ].seton = function( ) RunConsoleCommand( "Hugh_Place_Hit" ); end;
tab4_options[ 6 ] = { };
tab4_options[ 6 ].name = "Untie";
tab4_options[ 6 ].on = function( ) return tobool( GetConVarNumber( "Hugh_StartUntie" ) ); end;
tab4_options[ 6 ].off = function( ) RunConsoleCommand( "Hugh_StartUntie" ); end;
tab4_options[ 6 ].seton = function( ) RunConsoleCommand( "Hugh_StartUntie" ); end;
tab4_options[ 7 ] = { };
tab4_options[ 7 ].name = "Free Cam";
tab4_options[ 7 ].on = function( ) return tobool( GetConVarNumber( "Hugh_FreeCam" ) ); end;
tab4_options[ 7 ].off = function( ) RunConsoleCommand( "Hugh_FreeCam" ); end;
tab4_options[ 7 ].seton = function( ) RunConsoleCommand( "Hugh_FreeCam" ); end;
local tables = { tab1_options, tab2_options, tab3_options, tab4_options };
local mouse_down = false;
local pressed = false;
local released = false;
local press_elem = nil;
function mapex:MenuThink()
-- press
if not pressed and input.IsMouseDown( MOUSE_LEFT ) then
pressed = true;
if IsValid( opt_menu ) then menuopen = true; end;
end;
-- release
if pressed and not input.IsMouseDown( MOUSE_LEFT ) then
pressed = false;
released = true;
end;
if released then
if press_elem then
if press_elem.toggle != nil then
press_elem.toggle = !press_elem.toggle;
if press_elem.toggle then
for k, v in pairs( press_elem ) do
if type( v ) == "table" and v.slider then
v.scratcher = v.scratch( );
v.scratcher:SetPos( tab_x + ( tabwidth - 2 ) * press_elem.num - 1 - 16 - 5, 37 + k * 37 - 27 );
end;
end;
end;
elseif press_elem.options then
if not IsValid( opt_menu ) and menuopen then
menuopen = false;
else
press_elem.menu( );
end;
else
if press_elem.on( ) then
press_elem.off( );
else
press_elem.seton( );
end;
end;
press_elem = nil;
end;
released = false;
end;
end
-- draw tab function
local function drawtab( x, first, vartab, tw )
if first then
surface.SetMaterial( mapex.Mats.seperator_side );
surface.SetDrawColor( Color( 255, 255, 255, 255 ) );
surface.DrawTexturedRect( x, 0, 2, 36 );
end;
-- check for hover, with options for hovering with it being on or off
local opt_on = vartab.toggle;
local col = Color( 11, 156, 28, 255 );
local col2 = Color( 51, 51, 51, 255 );
if not opt_on then col = Color( 0, 123, 184, 255 ); col2 = Color( 51, 51, 51, 255 ); end;
if util.InBox( x + 2, 0, tw - 4, 35 ) then
if not opt_on then
col2 = Color( 51, 51, 51, 255 );
if pressed then col2 = Color( 81, 81, 81, 255 ); press_elem = vartab; end;
else
col2 = Color( 51, 51, 51, 255 );
if pressed then col2 = Color( 71, 71, 71, 255 ); press_elem = vartab; end;
end;
end;
-- box
draw****undedBoxEx( 0, x + 2, 0, tw - 4, 35, col2 );
-- sperator
surface.SetMaterial( mapex.Mats.seperator_side );
surface.SetDrawColor( Color( 255, 255, 255, 255 ) );
surface.DrawTexturedRect( x + tw - 2, 0, 2, 36 );
-- name
draw.SimpleText( vartab.name, "Derp", x + tw / 2, 35 / 2, col, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER );
-- items
if vartab.toggle then
surface.SetMaterial( mapex.Mats.seperator_side );
surface.SetDrawColor( Color( 255, 255, 255, 255 ) );
surface.DrawTexturedRect( x, 37, 2, 37 * #vartab );
surface.SetDrawColor( Color( 255, 255, 255, 255 ) );
surface.DrawTexturedRect( x + tw - 2, 37, 2, 37 * #vartab );
local yadd = 37;
for i = 1, #vartab do
local mat;
local opt_on;
if not vartab[ i ].slider and not vartab[ i ].options then
opt_on = vartab[ i ].on( );
mat = mapex.Mats.on;
end;
local col = Color( 11, 156, 28, 255 );
local col2 = Color( 51, 51, 51, 255 );
if not vartab[ i ].slider and not vartab[ i ].options then
if not opt_on then
mat = mapex.Mats.off;
col = Color( 0, 123, 184, 255 );
end;
end;
if util.InBox( x + 2, yadd, tw - 4, 35 ) and not vartab[ i ].slider then
if pressed then col2 = Color( 61, 61, 61, 255 ); press_elem = vartab[ i ]; end;
end;
-- box
draw****undedBoxEx( 0, x + 2, yadd, tw - 4, 35, col2 );
surface.SetMaterial( mapex.Mats.seperator_bottom );
surface.SetDrawColor( Color( 255, 255, 255, 255 ) );
surface.DrawTexturedRect( x + 1, yadd + 35, tw - 3, 2 );
-- on off material
if not vartab[ i ].slider and not vartab[ i ].options then
surface.SetMaterial( mat );
surface.SetDrawColor( Color( 255, 255, 255, 255 ) );
surface.DrawTexturedRect( x + tw - 4 - 5 - 14, yadd + 36 / 2 - 7, 14, 14 );
end;
-- text
if vartab[ i ].options then
draw.SimpleText( vartab[ i ].name .. " (PICK)", "HerpSmall", x + 10, yadd + 37 / 2, Color( 255, 120, 120, 255 ), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER );
draw.SimpleText( vartab[ i ].name, "HerpSmall", x + 10, yadd + 37 / 2, col, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER );
else
draw.SimpleText( vartab[ i ].name, "HerpSmall", x + 10, yadd + 37 / 2, col, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER );
end;
-- add y
yadd = yadd + 37;
end;
surface.SetMaterial( mapex.Mats.arrow_down );
surface.SetDrawColor( Color( 255, 255, 255, 255 ) );
surface.DrawTexturedRect( x + ( tw - 4 ) / 2 - 4, 37, 9, 6 );
else
surface.SetMaterial( mapex.Mats.arrow_up );
surface.SetDrawColor( Color( 255, 255, 255, 255 ) );
surface.DrawTexturedRect( x + ( tw - 4 ) / 2 - 4, 29, 9, 6 );
end;
end;
mapex_paint = function()
-- bar
surface.SetMaterial( mapex.Mats.grad );
surface.SetDrawColor( Color( 255, 255, 255, 255 ) );
surface.DrawTexturedRect( 0, 0, ScrW( ), 35 );
surface.SetMaterial( mapex.Mats.seperator_bottom );
surface.SetDrawColor( Color( 255, 255, 255, 255 ) );
surface.DrawTexturedRect( 0, 35, ScrW( ), 2 );
-- logo
surface.SetMaterial( mapex.Mats.mapex );
surface.SetDrawColor( Color( 255, 255, 255, 255 ) );
surface.DrawTexturedRect( 8, -1, 91, 36 );
-- tabs
local after_logo_add = 25;
tabwidth = math.ceil( ( ScrW( ) - 91 - ScrW( ) * 0.20 - after_logo_add ) / NUMBER_OF_TABS );
tab_x = 91 + after_logo_add;
drawtab( tab_x, true, tab1_options, tabwidth );
drawtab( tab_x + tabwidth - 2, false, tab2_options, tabwidth );
drawtab( tab_x + ( tabwidth - 2 ) * 2, false, tab3_options, tabwidth );
drawtab( tab_x + ( tabwidth - 2 ) * 3, false, tab4_options, tabwidth );
end;
function mapex:Show()
for k, v in pairs( tables ) do
for k2, v2 in pairs( v ) do
if type( v2 ) == "table" and IsValid( v2.scratcher ) then
if not v.toggle then
v2.scratcher:SetVisible( false );
else
v2.scratcher:SetVisible( true );
end;
end;
end;
end;
if showgui then
if not mapex_menu then
mapex_menu = vgui.Create( "DFrame" );
mapex_menu:ShowCloseButton( false );
mapex_menu:SetDraggable( false );
mapex_menu.lblTitle:SetVisible( false );
else
if not mapex_menu.setpaint then
mapex_menu.Paint = mapex_paint;
mapex_menu.setpaint = true;
end;
mapex_menu:SetSize( ScrW( ), ScrH( ) );
end;
else
if mapex_menu then
mapex_menu:Remove( );
mapex_menu = nil;
end;
end;
if input.IsKeyDown( KEY_INSERT ) then
homedown = true;
elseif not input.IsKeyDown( KEY_INSERT ) and homedown then
showgui = !showgui;
gui.EnableScreenClicker( showgui );
homedown = false;
end;
end;
//////////////
/// Hooks ///
////////////
function mapex:AddHook( name, func )
str = "hook"..math.random(1,200000000)
return hook.Add(name,str,func);
end
function mapex.HUDPaint( cmd )
mapex:ESP()
mapex:showAdmins()
mapex:showSpectators()
mapex:Crosshair()
mapex:Chams()
end
mapex:AddHook("HUDPaint", mapex.HUDPaint)
function mapex.CreateMove( cmd )
mapex:Bunnyhop( cmd )
end
mapex:AddHook( "CreateMove", mapex.CreateMove )
function mapex.ThinkHook()
mapex:Spectate()
mapex:Show()
mapex:MenuThink()
end
mapex:AddHook( "Think", mapex.ThinkHook )
//Hugh's Exploits
local hughs******target = LocalPlayer():GetEyeTrace().Entity
concommand.Add( "Hugh_Respawn", function ()
net.Start("ReSpawn")
net.SendToServer()
end )
concommand.Add( "Hugh_SMS_Bomb", function ( ply, cmd, args )
timer.Create( "SMS_BOMB", 5, 0, function()
net.Start( "rphone_sms_send" )
net.WriteString( args[1] )
net.WriteString( args[2] )
net.SendToServer()
end )
end )
concommand.Add( "Hugh_SMS_Bomb_Stop", function ()
timer.Destroy( "SMS_BOMB" )
end )
concommand.Add( "Hugh_Place_Hit" , function ()
local hitRequest = {}
hitRequest.hitman = LocalPlayer()
hitRequest.requester = LocalPlayer()
hitRequest.target = hughs******target
hitRequest.reward = 1000
net.Start( 'hhh_request' )
net.WriteTable( hitRequest )
net.SendToServer()
end )
concommand.Add( "Hugh_StartUntie" , function ( ply, cmd, args )
timer.Create( "hugh_untie", 0.1, 25, function()
local StruggleDelay = 0
RunConsoleCommand("Struggle")
end )
end )
//Aimbot
local function InDist(v)
local dist = v:GetPos():Distance(LocalPlayer():GetPos())
if dist < GetConVarNumber("razor_radius") then
return true
end
return false
end
local function IsVisible(e)
local tr = {}
tr.start = LocalPlayer():GetShootPos()
tr.endpos = e:GetPos() + Vector(0, 0, 5)
tr.filter = {LocalPlayer(), e}
tr.mask = MASK_SHOT
local trace = util.TraceLine(tr)
if (trace.Fraction == 1) then
return true
else
return false
end
end
local function IsVisibleTrace(e)
local tr = {}
tr.start = LocalPlayer():GetShootPos()
tr.endpos = e:GetPos() + Vector(0, 0, 60)
tr.filter = {LocalPlayer(), e}
tr.mask = MASK_SHOT
local trace = util.TraceLine(tr)
if (trace.Fraction == 1) then
return true
else
return false
end
end
local targetang = ""
local infovbone = ""
function InFOV(e)
local aimfov = GetConVarNumber("razor_aimbot_fov")
if( aimfov != 360 ) then
local myang = LocalPlayer():GetAngles()
infovbone = GetConVarString("razor_aimbot_bone")
local targetang = (e:GetBonePosition(e:LookupBone(infovbone)) - LocalPlayer():EyePos()):Angle()
local calc1 = math.abs( math.NormalizeAngle( myang.y - targetang.y ) )
local calc2 = math.abs( math.NormalizeAngle( myang.p - targetang.p ) )
if (calc1 > aimfov || calc2 > aimfov) then
return false
end
end
return true
end
local function CreateConVars()
for k,v in pairs(raz.cvars) do
AddConvar(v.Name, v.Value)
end
end
CreateConVars()
local function changefov(ply, ori, ang, fov)
local view = {}
view.fov = GetConVarNumber("razor_fov")
return view
end
if GetConVarNumber("razor_fov_enable") == 1 then
AddHook("CalcView", "ChangeFOV", changefov)
end
cvars.AddChangeCallback("razor_fov_enable", function()
if GetConVarNumber("razor_fov_enable") == 1 then
AddHook("CalcView", "ChangeFOV", changefov)
else
RemoveHook("CalcView", "ChangeFOV")
end
end)
RunConsoleCommand("razor_aimbot_autosnap", 0)
local targethead = ""
local targetheadpos = ""
local function aimbot()
for k, v in pairs(player.GetAll()) do
if v:IsValid() and v:Alive() and IsVisibleTrace(v) and InFOV(v) and InDist(v) then
if v != LocalPlayer() then
aimboton = true
if v:GetFriendStatus() == "friend" then
if GetConVarNumber("razor_targetfriends") != 1 then
return
end
end
if GetConVarString("razor_aimbot_bone") == "random" then
targethead = v:LookupBone(table.Random(raz.bones))
targetheadpos = v:GetBonePosition(targethead)
else
targethead = v:LookupBone(GetConVarString("razor_aimbot_bone"))
targetheadpos = v:GetBonePosition(targethead)
end
LocalPlayer():SetEyeAngles((targetheadpos - LocalPlayer():GetShootPos()):Angle())
if GetConVarNumber("razor_aimbot_autofire") == 1 then
if LocalPlayer():GetEyeTrace().Entity:IsPlayer() and LocalPlayer():GetEyeTrace().Entity:Alive() and LocalPlayer():GetEyeTrace().Entity:IsValid() then
RunConsoleCommand("+attack")
else
RunConsoleCommand("-attack")
end
end
end
end
end
end
concommand.Add("+razor_aim", function()
AddHook("Think","aimbot",aimbot)
end)
concommand.Add("-razor_aim", function()
RemoveHook("Think","aimbot")
RunConsoleCommand("-attack")
end)
local function autosnap()
for k, v in pairs(player.GetAll()) do
if v:IsValid() and v:Alive() and IsVisibleTrace(v) and InFOV(v) and InDist(v) then
if v != LocalPlayer() then
if v:GetFriendStatus() == "friend" then
if GetConVarNumber("razor_targetfriends") != 1 then
return
end
end
AddHook("Think", "aimbot", aimbot)
end
end
end
end
RemoveHook("Think", "autosnap")
cvars.AddChangeCallback("razor_aimbot_autosnap", function()
if GetConVarNumber("razor_aimbot_autosnap") == 1 then
AddHook("Think", "autosnap", autosnap)
else
RemoveHook("Think", "autosnap")
RemoveHook("Think", "aimbot")
end
end)
//FreeCam
local Hugh = {}
Hugh.Enabled = false
Hugh.ViewOrigin = Vector( 0, 0, 0 )
Hugh.ViewAngle = Angle( 0, 0, 0 )
Hugh.Velocity = Vector( 0, 0, 0 )
function Hugh.CalcView( ply, origin, angles, fov )
if ( !Hugh.Enabled ) then return end
if ( Hugh.SetView ) then
Hugh.ViewOrigin = origin
Hugh.ViewAngle = angles
Hugh.SetView = false
end
return { origin = Hugh.ViewOrigin, angles = Hugh.ViewAngle }
end
hook.Add( "CalcView", "SpiritWalk", Hugh.CalcView )
function Hugh.CreateMove( cmd )
if ( !Hugh.Enabled ) then return end
local time = FrameTime()
Hugh.ViewOrigin = Hugh.ViewOrigin + ( Hugh.Velocity * time )
Hugh.Velocity = Hugh.Velocity * 0.95
local sensitivity = 0.022
Hugh.ViewAngle.p = math.Clamp( Hugh.ViewAngle.p + ( cmd:GetMouseY() * sensitivity ), -89, 89 )
Hugh.ViewAngle.y = Hugh.ViewAngle.y + ( cmd:GetMouseX() * -1 * sensitivity )
local add = Vector( 0, 0, 0 )
local ang = Hugh.ViewAngle
if ( cmd:KeyDown( IN_FORWARD ) ) then add = add + ang:Forward() end
if ( cmd:KeyDown( IN_BACK ) ) then add = add - ang:Forward() end
if ( cmd:KeyDown( IN_MOVERIGHT ) ) then add = add + ang:Right() end
if ( cmd:KeyDown( IN_MOVELEFT ) ) then add = add - ang:Right() end
if ( cmd:KeyDown( IN_JUMP ) ) then add = add + ang:Up() end
if ( cmd:KeyDown( IN_DUCK ) ) then add = add - ang:Up() end
add = add:GetNormal() * time * 500
if ( cmd:KeyDown( IN_SPEED ) ) then add = add * 2 end
Hugh.Velocity = Hugh.Velocity + add
if ( Hugh.LockView == true ) then
Hugh.LockView = cmd:GetViewAngles()
end
if ( Hugh.LockView ) then
cmd:SetViewAngles( Hugh.LockView )
end
cmd:SetForwardMove( 0 )
cmd:SetSideMove( 0 )
cmd:SetUpMove( 0 )
end
hook.Add( "CreateMove", "SpiritWalk", Hugh.CreateMove )
function Hugh.Toggle()
Hugh.Enabled = !Hugh.Enabled
Hugh.LockView = Hugh.Enabled
Hugh.SetView = true
local status = { [ true ] = "ON", [ false ] = "OFF" }
print( "Hugh_FreeCam " .. status[ Hugh.Enabled ] )
end
concommand.Add( "Hugh_FreeCam", Hugh.Toggle )
concommand.Add( "Hugh_pos", function() print( Hugh.ViewOrigin ) end )
//Prop Chams
CreateClientConVar("hugh_propchams_radius", 750)
CreateClientConVar("hugh_propchams", 0)
local ******radius = GetConVarNumber("hugh_propchams_radius")
local niggrplys = {}
local ******props = {}
local whtype = 1
timer.Create("entrefresh", 1, 0, function()
niggrplys = {}
******props = {}
for k, v in pairs(ents.FindInSphere(LocalPlayer():GetPos(), ******radius)) do
if (v:IsPlayer() and !(LocalPlayer() == v)) or v:IsNPC() then
table.insert(niggrplys, v)
elseif v:GetClass() == "prop_physics" then
table.insert(******props, v)
end
end
end)
local function wh()
cam.Start3D()
for k, v in pairs(******props) do
if v:IsValid() then
render.SetColorModulation( 0, 255, 0, 0)
render.SetBlend(.4)
v:DrawModel()
end
end
for k, v in pairs(niggrplys) do
if v:IsValid() then
local teamcolor = v:IsPlayer() and team.GetColor(v:Team()) or Color(255,128,0,255)
if whtype >= 1 then
v:SetMaterial("models/debug/debugwhite")
else
v:SetMaterial("models/wireframe")
end
render.SetColorModulation(teamcolor.r / 255, teamcolor.g / 255, teamcolor.b / 255)
render.SetBlend(teamcolor.a / 255)
v:SetColor(teamcolor)
v:DrawModel()
v:SetColor(Color(255,255,255))
v:SetMaterial("")
end
end
cam.End3D()
end
hook.Remove("HUDPaint", "wh")
if GetConVarNumber("hugh_propchams") == 1 then
hook.Add("HUDPaint", "wh", wh)
end
cvars.AddChangeCallback("hugh_propchams_radius", function()
******radius = GetConVarNumber("hugh_propchams_radius")
end)
cvars.AddChangeCallback("hugh_propchams", function()
if GetConVarNumber("hugh_propchams") == 1 then
hook.Add("HUDPaint", "wh", wh)
else
hook.Remove("HUDPaint", "wh")
end
end)