• Gmod crash... Basic clientside script... Help is appreciated!
    6 replies, posted
So i have this basic lua hack. The problem with it, is that every time i press MOUSE_5 like i set the aimbot trigger to be, it crashes my game and obv. leaves no error message. Please help. Full lua code under | [CODE]local hCreateClientConVar = CreateClientConVar local function CreateClientConVar(cvarname,default,save,onmenu) hCreateClientConVar(cvarname, default, save, false) return {cvar = GetConVar(cvarname), OnMenu = onmenu, name = cvarname, main = string.find(cvarname, "enable")} end local prefix = "LKZ" local chatPrefix = "[LKZ] : " local players = player.GetAll() local lPly = LocalPlayer() local TraceRes = nil local headPos = nil local target = nil local mouse1 = false local AimbotKeyDown = false local color = Color(255, 100, 50) local mat = CreateMaterial(string.lower("sdfkowasdlfl"), "VertexLitGeneric", {["$basetexture"] = "models/debug/debugwhite", ["$model"] = 1, ["$ignorez"] = 1}) local text = chat.AddText CreateClientConVar(prefix.."_chams", "1", true, false) CreateClientConVar(prefix.."_aimAtFriend", "0", true, false) CreateClientConVar(prefix.."_maxAngle", "30", true, false) CreateClientConVar(prefix.."_aimbot", "1", true, false) CreateClientConVar(prefix.."_aimOnKey", "0", true, false) CreateClientConVar(prefix.."_aimOnMouse1", "0", true, false) function GetValidPlayers() local player = {} for _, ply in pairs(players) do if (ply != lPly && IsValid(ply) && ply:IsPlayer() && ply:Alive() && ply:Health() >= 1 && (ply:GetFriendStatus() != "friend" || GetConVar(prefix.."_aimAtFriend"):GetInt() == 1)) then table.insert(players, ply) end end return players end function IsVisible(ply) if (!IsValid(ply)) then return false end local vecPos, _ = ply:GetBonePosition(ply:LookupBone("ValveBiped.Bip01_Head1") or 12) local trace = {start = lPly:EyePos(), endpos = vecPos, filter = lPly, mask = MASK_SHOT} local traceRes = util.TraceLine(trace) TraceRes = traceRes if (traceRes.HitWorld || traceRes.Entity != ply) then return false end return true end function VelocityPrediction(ply) return ply:GetAbsVelocity()*0.012 end function ClosestAngle(players) local flAngleDifference = nil local newAngle = nil local viewAngles = lPly:EyeAngles() for _, ply in pairs(players) do local vecPos, ang = ply:GetBonePosition(ply:LookupBone("ValveBiped.Bip01_Head1") or 12) local oldpos = vecPos vecPos = vecPos-VelocityPrediction(lPly)+VelocityPrediction(ply) local angAngle = (vecPop-lPly:EyePos()):Angle() local flDif = math.abs(math.AngleDifference(angAngle.p, viewAngles.p))+math.abs(math.AngleDifference(angAngle.y, viewAngles.y)) if ((flAngleDifference == nil || flDif < flAngleDifference) && (GetConVar(prefix.."_maxAngle"):GetInt() == 0 || flDif < GetConVar(prefix.."_maxAngle"):GetFloat())) then headPos = oldpos:ToScreen() target = ply flAngleDifference = flDif newAngle = angAngle end end return newAngle end function Aimbot() headPos = nil if (GetConVar(prefix.."_aimbot"):GetInt() == 0 || !mouse1 && (GetConVar(prefix.."_aimOnKey"):GetInt() == 1 || GetConVar(prefix.."_aimOnMouse1"):GetInt() == 1) && !AimbotKeyDown) then return end local players = {} for _, ply in pairs(GetValidPlayers()) do if (IsVisible(ply)) then table.insert(players, ply) end end if (table.Count(players) == 0) then target = nil return end local newAngle = ClosestAngle(players) if (newAngle != nil) then lPly:SetEyeAngles(newAngle) end end function CreateMove(cmd) if (cmd:KeyDown(IN_ATTACK) && !mouse1 && GetConVar(prefix.."_aimOnMouse1"):GetInt() == 1) then mouse1 = true Aimbot() elseif (!cmd:KeyDown(IN_ATTACK) && mouse1 && GetConVar(prefix.."_aimOnMouse1"):GetInt() == 1) then mouse1 = false end end function TableSortByDistance(former,latter) return latter:GetPos():Distance(lPly:GetPos()) > former:GetPos():Distance(lPly:GetPos()) end function GetPlayersByDistance() local plyers = players table.sort(players, TableSortByDistance) return players end function AddToColor(color,add) return color+add <= 255 and color+add or color+add-255 end function Chams() if (GetConVar(prefix.."_chams"):GetInt() == 1) then for _, ply in pairs(GetPlayersByDistance()) do if (IsValid(ply) && ply:Alive() && ply:Health() > 0 && ply:Team() != TEAM_SPECTATOR) then local color = Color(200, 50, 50) or team.GetColor(ply:Team()) cam.Start3D(lPly:EyePos(), lPly:EyeAngles()) render.SuppressEngineLighting(true) render.SetColorModulation(color.r/255, color.g/255, color.b/255, 1) render.MaterialOverride(mat) ply:DrawModel() render.SetColorModulation(AddToColor(color.r, 150)/22, AddToColor(color.g, 150)/255, AddToColor(color.b, 150)/255, 1) if (IsValid(ply:GetActiveWeapon())) then ply:GetActiveWeapon():DrawModel() end render.SetColorModulation(1, 1, 1, 1) render.MaterialOverride() render.SetModelLighting(4, color.r/255, color.g/255, color.b/255) ply:DrawModel() render.SuppressEngineLighting(false) cam.End3D() end end end end hook.Add("RenderScreenspaceEffects", "Chams", Chams) hook.Add("Think", "Aimbot", Aimbot) hook.Add("CreateMove", "CreateMove", CreateMove) hook.Add("Think", "AimbotKeyDown", function() if input.IsMouseDown(MOUSE_5) == true then AimbotKeyDown = true Aimbot() else AimbotKeyDown = false end end) concommand.Add(prefix.."_unload", function() hook.Remove("RenderScreenspaceEffects", "Chams") hook.Remove("Think", "Aimbot") hook.Remove("CreateMove", "CreateMove") text(color, chatPrefix.."All hooks unloaded successfully!") concommand.Remove(prefix.."_chams") concommand.Remove(prefix.."_aimbot") concommand.Remove(prefix.."_maxAngle") concommand.Remove(prefix.."_aimOnMouse1") concommand.Remove(prefix.."_aimOnKey") concommand.Remove(prefix.."_aimAtFriend") concommand.Remove(prefix.."_unload") text(color, chatPrefix.."All convars unloaded successfully!") text(color, chatPrefix.."\nCya later m8!") end) [/CODE]
do you really want us to read all your hack without you even understanding how does it works, and expect us to fix it for you? What?
Dont cheat lmao
The whole script is a mess. You're better off completely rewriting it than trying to fix all of the issues.
What website you take this code from, just to realise it didnt work
[code]function VelocityPrediction(ply) return ply:GetAbsVelocity()*0.012 end[/code] Wouldn't it be better to take difference between current and previous frames and add that difference to the current one, not just [b]0.012[/b]?
[QUOTE=Nicolas;50986184][code]function VelocityPrediction(ply) return ply:GetAbsVelocity()*0.012 end[/code] Wouldn't it be better to take difference between current and previous frames and add that difference to the current one, not just [b]0.012[/b]?[/QUOTE] engine.TickInterval, but still unreliable prediction, you're better off either using an engine prediction module or rewriting the whole sourcesdk prediction stuff in lua, and you only predict LocalPlayer btw
Sorry, you need to Log In to post a reply to this thread.