GenericBot Final

Posts 16–30 of 33 · Page 2 of 3
? Kden... Looks... Meh....
Quote Originally Posted by BlackHatSheep View Post
How do you open the menu I dunz know
type Menu in console

- - - Updated - - -

Quote Originally Posted by bentleydubs View Post
? Kden... Looks... Meh....
you look cute.
Quote Originally Posted by pcdriza View Post
WARNING

There is a skiddiot ego-booster in the post above.
Please avoid this retard at all times unless you would like to become a paster like him!
fuck off cdriza, you're a skid
Quote Originally Posted by MasterKitty View Post
WARNING: SNIXZZ AUTISM RETARDS ABOVE THIS POST
i see abn is doing well lol

- - - Updated - - -

Quote Originally Posted by MasterKitty View Post
fuck off cdriza, you're a skid
being a skid is much better than an ego boosting troll paster with no credits given
Quote Originally Posted by __Xavier View Post
i see abn is doing well lol

- - - Updated - - -



being a skid is much better than an ego boosting troll paster with no credits given
xavier go fuck your self and have homogaysex with your dumb little snixz buddies, abn closed since a while ago now and i don't give credits, because i don't use others code or get any help, fucking dumbass.
Quote Originally Posted by MasterKitty View Post
fuck off cdriza, you're a skid
kittix calling me a skid, that's new

Code:
/*
	Ground0 Cheats
	
	Coded by cdriza and Q2F2/Cave

	Credits:
		cdriza - Almost everything
		Q2F2 - Localization & help
		Im Friendly - Silent Aim, some of the ESP, and help

	Update log:
	v1 - gHook
	v1.1 - add silent aim + move-fix
	v1.2 - fix move-fix
	v1.3 - add menu + anti-anti-aim
	v1.4 - add anti-aim
	v1.5 - random changes
	v1.6 - autostrafe + bhop fixes
	v1.7 - added comments
	v1.8 - added permanent nospread
	v1.9 - added experimental fakelag
	v2.0 - fixed fakelag, improved aimbot speeds, anti-anti-aim rewrite
	v2.1 - added thirdperson, fixed gm hooks
	v2.2 - made getpos func more efficient
*/

local _R				= debug.getregistry() // get the registry

// nice localization cdriza
// why thank you

local vAngle 			= _R.Vector.Angle
local vLength 			= _R.Vector.Length
local vDistance 		= _R.Vector.Distance
local vToScreen			= _R.Vector.ToScreen
local aForward 			= _R.Angle.Forward

local pGetShootPos 		= _R.Player.GetShootPos
local pGetFriendStatus 	= _R.Player.GetFriendStatus
local pGetActiveWeapon 	= _R.Player.GetActiveWeapon
local pNick 			= _R.Player.Nick
local pEyePos 			= _R.Player.EyePos
local pTeam 			= _R.Player.Team
local pInVehicle    	= _R.Player.InVehicle
local pIsBot			= _R.Player.IsBot
local pAlive			= _R.Player.Alive

local eIsOnGround		= _R.Entity.IsOnGround
local eHealth 			= _R.Entity.Health
local eIsPlayer			= _R.Entity.IsPlayer
local eLocalToWorld 	= _R.Entity.LocalToWorld
local eGetPos 			= _R.Entity.GetPos
local eOnGround 		= _R.Entity.OnGround
local eOBBCenter 		= _R.Entity.OBBCenter
local eDrawModel 		= _R.Entity.DrawModel
local eWaterLevel 		= _R.Entity.WaterLevel
local eGetMoveType 		= _R.Entity.GetMoveType
local eGetClass 		= _R.Entity.GetClass
local eLookupBone 		= _R.Entity.LookupBone
local eGetVelocity 		= _R.Entity.GetVelocity
local eHealth 			= _R.Entity.Health
local eGetMaxHealth 	= _R.Entity.GetMaxHealth
local eGetPoseParameter	= _R.Entity.GetPoseParameter
local eSetPoseParameter	= _R.Entity.SetPoseParameter
local eInvalidateBoneCache = _R.Entity.InvalidateBoneCache
local eEyeAngles 		= _R.Entity.EyeAngles
local eGetAttachments 	= _R.Entity.GetAttachments
local eGetAttachment 	= _R.Entity.GetAttachment
local eLookupAttachment	= _R.Entity.LookupAttachment
local eOBBMaxs			= _R.Entity.OBBMaxs

local wClip1 			= _R.Weapon.Clip1
local wGetNextPrimaryFire = _R.Weapon.GetNextPrimaryFire
local wGetActivity 		= _R.Weapon.GetActivity

local cGetForwardMove 	= _R.CUserCmd.GetForwardMove
local cGetSideMove 		= _R.CUserCmd.GetSideMove
local cGetViewAngles 	= _R.CUserCmd.GetViewAngles
local cSetViewAngles 	= _R.CUserCmd.SetViewAngles
local cSetForwardMove 	= _R.CUserCmd.SetForwardMove
local cSetSideMove 		= _R.CUserCmd.SetSideMove
local cGetMouseX 		= _R.CUserCmd.GetMouseX
local cGetMouseY 		= _R.CUserCmd.GetMouseY
local cGetButtons 		= _R.CUserCmd.GetButtons
local cSetButtons		= _R.CUserCmd.SetButtons
local cRemoveKey		= _R.CUserCmd.RemoveKey
local cKeyDown 			= _R.CUserCmd.KeyDown
local cCommandNumber 	= _R.CUserCmd.CommandNumber

local cvGetBool 		= _R.ConVar.GetBool

local iIsMouseDown 		= input.IsMouseDown
local iIsKeyDown 		= input.IsKeyDown
local fExists 			= file.Exists
local uJSONToTable 		= util.JSONToTable
local uCRC 				= util.CRC
local uTraceLine 		= util.TraceLine
local eTickInterval 	= engine.TickInterval
local mRandom 			= math.random
local mAbs 				= math.abs
local mAngleDifference 	= math.AngleDifference
local mClamp 			= math.Clamp
local mNormalizeAngle 	= math.NormalizeAngle
local dSimpleText 		= draw.SimpleText
local sSetDrawColor 	= surface.SetDrawColor
local sDrawOutlinedRect = surface.DrawOutlinedRect
local tGetColor 		= team.GetColor
local hAdd 				= hook.Add
local pGetAll 			= player.GetAll
local bBor 				= bit.bor
local tCopy				= table.Copy
local vCreate 			= vgui.Create
local tRandom 			= table.Random
local sFind 			= string.find

local tostring 			= tostring
local next 				= next
local Vector 			= Vector
local IsEntity 			= IsEntity
local IsValid 			= IsValid
local Color 			= Color
local MsgC 				= MsgC
local Lerp 				= Lerp
local pcall 			= pcall
local CurTime 			= CurTime
local IsFirstTimePredicted = IsFirstTimePredicted

local pLocalPlayer 		= LocalPlayer() // localize us!

__gcopy = __gcopy || tCopy(_G) // get the existing _G copy, or make a new one!
__rcopy = __rcopy || tCopy(_R) // get the existing registry copy, or make a new one!
__gbackup = __gbackup || tCopy(GAMEMODE) // get the existing GAMEMODE copy, or make a new one!

local gHook 			= {} // make our table!
gHook.AASwitch			= false // setup switch
gHook.CurTime 			= 0 // set proper curtime var
gHook.FLQueue 			= 0 // setup fakelag queue
gHook.SendPacket		= false // set can we fakelag var
gHook.Dickwrap			= nil // no copied dickwrap table right now
gHook.Aimbotting 		= false // set are we aimbotting var
gHook.NoSpread 			= false // set can we nospread var
gHook.MenuOpen 			= false // set menuopen var
gHook.Insert 			= false // set delete var
gHook.Insert2 			= false // set delete2 var
gHook.FakeAngle 		= Angle() // make the fake angle
gHook.Attacking 		= false // we aren't attacking
gHook.Target 			= nil // add a nil target
gHook.LastAng 			= 541 // last yaw ang for aa

gHook.Settings 			= { // table for storing our settings
	Aimbot = {
		bEnabled = false, // aimbot enabled var
		bAntiAntiAim = true, // anti-anti-aim var
		bNoSpread = true, // aimbot nospread var
		bTeam = false, // ignore team var
		bFriends = false, // ignore friends var
		bSilent = false, // silent aimbot var
		bAutoShoot = false, // autoshoot var
		bLegit = false, // legit aimbot var
	},
	
	Visuals = {
		bEnabled = false, // visuals enabled var
		bName = false, // name esp var
		bBox = false, // box esp var
		bHealth = false, // health esp var
		bTeam = false, // team color esp var
		bWatermark = false, // watermark var
	},
	
	Misc = {
		bBunnyHop = false, // bhop var
		bThirdperson = false, // thirdperson var
	},
	
	HvH = {
		bAntiAim = false, // aa var
		bJitter = false, // jitter aa var
		bFakeLag = false, // fakelag var
	},
}

gHook.Cones 			= {} // weapon cone storage table

_R.Entity.FireBullets = function(pEnt, bul)
	local pWep = pGetActiveWeapon(pLocalPlayer) || NULL // get our active weapon
	
	if (!bul.Spread || !IsValid(pWep)) then return __rcopy.Entity.FireBullets(pEnt, bul) end // if the bullet doesn't have spread or the weapon isn't valid, return the copy and do nothing more
	
	if (!gHook.Cones[eGetClass(pWep)] || gHook.Cones[eGetClass(pWep)] != bul.Spread) then // if we don't have the cone or the old cone differs from the new cone
		gHook.Cones[eGetClass(pWep)] = bul.Spread * -1 // set the weapon cone for this weapon!
	end
	
	return __rcopy.Entity.FireBullets(pEnt, bul) // return the copy
end

function gHook.Notify(strMsg)
	MsgC(Color(0, 0, 255), "[gHook] ", Color(255, 255, 255), strMsg .. " \n") // message
end

gHook.Notify("Loading!") // we are loading!

local suc, err = pcall(require, "dickwrap") // pcall it

if suc and !err then
	gHook.Notify("Found dickwrap module, NoSpread is now enabled.") // notification
	gHook.NoSpread = true // we can nospread!
	require("dickwrap") // require it
	gHook.Dickwrap = tCopy(dickwrap) // copy the table
	_G["dickwrap"] = nil // set it to nil, anti-cheat proofing!
else
	gHook.Notify("The dickwrap module wasn't installed correctly, NoSpread is now disabled.") // notification
end

err = nil // set it to nil, incase you didn't have dickwrap installed and it was something, it would break this check

local suc, err = pcall(require, "bsendpacket") // pcall it

if suc and !err then
	gHook.Notify("Found dickwrap module, NoSpread is now enabled.") // notification
	gHook.SendPacket = true // we can fakelag!
	require("bsendpacket") // require it
	bSendPacket = true // initial true statement
else
	gHook.Notify("The dickwrap module wasn't installed correctly, NoSpread is now disabled.") // notification
end

function gHook.AntiAntiAim(pEnt)
	local iPitchParameter = eGetPoseParameter(pEnt, "aim_pitch")
	local iPitch = iPitchParameter

	if (iPitchParameter >= 1) then
		iPitch = -1
	elseif (-1 >= iPitchParameter) then
		iPitch = 1
	end

	eSetPoseParameter(pEnt, "aim_pitch", iPitch)
	eInvalidateBoneCache(pEnt)
end

function gHook.CheckVis(vecPos, pEnt)        
	local tblTraceData = {
		["start"] = pGetShootPos(pLocalPlayer), // the start of our trace is at our eye position!
		["endpos"] = vecPos, // the end position is the place we want to see is visible
		["filter"] = pLocalPlayer, // filter out us, we don't want it returning true because we were in the way!
		["mask"] = MASK_SHOT // set the mask to mask_shot
	}

	if (gHook.Settings.Aimbot["bAntiAntiAim"]) then // if the anti-anti-aim variable is enabled
		gHook.AntiAntiAim(pEnt) // now is the perfect time to anti-anti-aim them!
	end
	
	local pTrace = uTraceLine(tblTraceData) // make a trace with our trace data
	return (pTrace.Fraction == 1 || pTrace.Entity == pEnt) // if it reached the destination or the entity at the end was the target, return true!
end
 
function gHook.GetPos(pEnt)
	local vecPos // localize the position variable
       
	if (eLookupAttachment(pEnt, "eyes") != 0 && gHook.CheckVis(eGetAttachment(pEnt, eLookupAttachment(pEnt, "eyes")).Pos, pEnt)) then // if it has theeyes attachment and the eyes attachment is visible
		vecPos = eGetAttachment(pEnt, eLookupAttachment(pEnt, "eyes")).Pos // set the position to that attachment
	else
		vecPos = eGetPos(pEnt) + eOBBCenter(pEnt) // if it doesn't have any attachments, get the center
	end

	vecPos = vecPos + (eGetVelocity(pEnt) * eTickInterval()) // predict the target pos
	vecPos = vecPos - (eGetVelocity(pLocalPlayer) * eTickInterval()) // predict our pos
	
	return vecPos // return it
end

function gHook.CheckValid(pEnt) // huge valid check
	if (!pEnt || !IsEntity(pEnt) || !IsValid(pEnt) || pEnt == pLocalPlayer || !pAlive(pEnt) || 0 >= eHealth(pEnt) || pInVehicle(pEnt) || pTeam(pEnt) == TEAM_SPECTATOR || !gHook.CheckVis(gHook.GetPos(pEnt), pEnt)) then return false end
	if (gHook.Settings.Aimbot["bTeam"] && pTeam(pEnt) == pTeam(pLocalPlayer)) then return false end
	if (gHook.Settings.Aimbot["bFriends"] && pGetFriendStatus(pEnt) == "friend") then return false end

	return true
end

function gHook.OpenMenu()
	if (iIsKeyDown(KEY_DELETE) && !gHook.MenuOpen && !gHook.Insert) then // check if the delete key (menu toggle key) is down, the menu isn't opened, and we weren't pressing delete before
		gHook.Insert = true // we are now pressing delete, set this to true
		gHook.Menu() // open the menu!
	elseif (!iIsKeyDown(KEY_DELETE) && !gHook.MenuOpen) then // now we need a way to set the delete pressing var to false, if the delete key isn't pressed and the menu isn't opened
		gHook.Insert = false // we aren't pressing delete and the MENU ISN'T OPEN
	end
	
	if (iIsKeyDown(KEY_DELETE) && gHook.Insert && gHook.MenuOpen) then // if the delete key is down, delete var is true, and the menu is open
		gHook.Insert2 = true // set delete2 var to true
	else
		gHook.Insert2 = false // else set it to false
	end

	// DELETE2 VAR IS TO MAKE SURE THE MENU DOESN'T CLOSE WHEN YOU OPEN IT, IF WE DIDN'T HAVE THIS IT WOULD JUST START OPEN AND CLOSE SPAMMING AS SOON AS YOU OPENED IT!
end

function gHook.FindTarget()
	gHook.Target = nil // set the last target to nil
	local iMaxIndexes = #pGetAll() // get the amount of players
	
	for iPlayerIndex = 1, iMaxIndexes do // loop through them all
		local pEnt = pGetAll()[iPlayerIndex] // get the actual entity of the player
		if (gHook.CheckValid(pEnt)) then gHook.Target = pEnt else continue end // if its a valid aimbot target, set the target to that entity else check the next player
	end
end

function gHook.Attack(cmd)
	if (gHook.Attacking) then // if we're already attacking
		cRemoveKey(cmd, IN_ATTACK) // stop attacking
		gHook.Attacking = false // set attacking to false
	else
		cSetButtons(cmd, bBor(cGetButtons(cmd), IN_ATTACK)) // if we aren't attacking, start attacking
		gHook.Attacking = true // set attacking to true
	end
end

function gHook.Silent(cmd)
	if (gHook.Settings.Aimbot["bSilent"] || gHook.Settings.HvH["bAntiAim"] || gHook.Settings.Aimbot["bNoSpread"]) then // check if silent or anti aim is enabled or nospread
		gHook.FakeAngle = gHook.FakeAngle + Angle(cGetMouseY(cmd) * 0.023, cGetMouseX(cmd) * -0.023, 0) // if they are, make the fakeangle the last fakeangle + the current mouse pos
		gHook.FakeAngle.p = mClamp(gHook.FakeAngle.p, -89, 89) // clamp pitch
		gHook.FakeAngle.y = mNormalizeAngle(gHook.FakeAngle.y) // normalize yaw
	else
		gHook.FakeAngle = cGetViewAngles(cmd) // just set it to regular view angles, we don't need to do anything with it!
	end
end
 
function gHook.FixMove(cmd, bAntiAim) // NO CLUE WHAT THIS DOES, NOT MINE!
	local vecFix = Vector(cGetForwardMove(cmd), cGetSideMove(cmd), 0)
	vecFix = aForward(vAngle(vecFix) + cGetViewAngles(cmd) -Angle(0, gHook.FakeAngle.y, 0)) * vLength(vecFix)
       
	if (bAntiAim) then
		cSetForwardMove(cmd, vecFix.x)
		cSetSideMove(cmd, vecFix.y * -1)
		return
	end
       
	cSetForwardMove(cmd, vecFix.x)
	cSetSideMove(cmd, vecFix.y)
end

function gHook.GetSpread(cmd, angPos)
	if (!gHook.Dickwrap || !gHook.NoSpread) then return angPos end // check if we don't have dickwrap installed
	local pWep = pGetActiveWeapon(pLocalPlayer) or NULL // get the players active weapon or nothing if nothing is equipped
	local vecSpread // localized spread var, we'll use this later
       
	if (!IsValid(pWep)) then return angPos end // if the weapon isn't valid (NULL) then return the unpredicted position and do nothing more
       
	if (gHook.Cones[eGetClass(pWep)]) then // do we have this weapons spread?
		local pCone = gHook.Cones[eGetClass(pWep)] // if so get the cone
	
		if (type(pCone) == "number") then // if it's a number it needs to be a vector!
			vecSpread = Vector(-pCone, -pCone, 0) // make it a vector
		elseif (type(pCone) == "Vector") then // but if it's a vector
			vecSpread = pCone // don't do anything to it!
		end

		return vAngle(gHook.Dickwrap.Predict(cmd, aForward(angPos), pCone)) // use dickwrap's prediction to predict the spread, don't do anything else
	end
	
	return angPos // if we don't have the cone return the unpredicted position
end

function gHook.CanFire()
	if (!gHook.CurTime || gHook.CurTime == 0) then return false end // if we don't have the curtime variable, don't check anything!
	local pWep = pGetActiveWeapon(pLocalPlayer) or NULL // get the players active weapon or nothing if nothing is equipped
       
	if (!IsValid(pWep)) then return false end // if the weapon isn't valid (NULL) then return false, you can't fire nothing!
	return (wGetActivity(pWep) != ACT_RELOAD && gHook.CurTime > wGetNextPrimaryFire(pWep)) // return false if we are reloading or we can't fire or true if we can do both
end

function gHook.Aimbot(cmd)
	if (gHook.Settings.Aimbot["bEnabled"] && gHook.Target != nil && gHook.CanFire()) then // check if the aimbot var is enabled, the target is valid, and we can fire
		if (cCommandNumber(cmd) == 0 && !gHook.Settings.Misc["bThirdperson"]) then  // don't aimbot on extra mouse samples
			gHook.Aimbotting = false // we aren't aimbotting!

			if (gHook.Settings.Aimbot["bSilent"] || gHook.Settings.HvH["bAntiAim"] || gHook.Settings.Aimbot["bNoSpread"]) then // check if silent aim or anti aim is enabled or nospread
				cSetViewAngles(cmd, gHook.FakeAngle) // if so set it to our good and dandy fake angle
			end

			return 
		end

		bSendPacket = true // send packets
		local angOView = cGetViewAngles(cmd) // old view angles
		local iOSideMove = cGetSideMove(cmd) // old side movement
		local iOForwardMove = cGetForwardMove(cmd) // old forward movement
		gHook.Aimbotting = true // we are aimbotting
		
		local angPos = vAngle(gHook.GetPos(gHook.Target) - pGetShootPos(pLocalPlayer)) // get their pos
		angPos.p = mNormalizeAngle(angPos.p) // normalize
		angPos.y = mNormalizeAngle(angPos.y) // normalize
		angPos.r = 0 // set the roll to 0, we don't want our screen flipped!

		if (gHook.Settings.Aimbot["bNoSpread"]) then // check if nospread is enabled
			angPos = gHook.GetSpread(cmd, angPos) // get spread angs
			angPos.p = mNormalizeAngle(angPos.p) // normalize
			angPos.y = mNormalizeAngle(angPos.y) // normalize
			angPos.r = 0 // no more roll pls
		end

		cSetViewAngles(cmd, angPos) // set our view angles

		if (gHook.Settings.Aimbot["bAutoShoot"]) then // check if autoshoot is enabled + check that we are near the players head, if we have legit aimbot enabled we could be ages away from the persons head, why shoot at the air?
			gHook.Attack(cmd) // attack!
		end
		
		if (gHook.Settings.Aimbot["bSilent"]) then // check if silent aimbot is enabled
			gHook.FixMove(cmd) // fix movement
		end
		
		return // return nothing and do nothing more, we don't want to say we're not aimbotting or setting our angles to the fake angle!
	end
	
	gHook.Aimbotting = false // we aren't aimbotting!

	if (gHook.Settings.Aimbot["bSilent"] || gHook.Settings.HvH["bAntiAim"] || gHook.Settings.Aimbot["bNoSpread"]) then // check if silent aim or anti aim is enabled or nospread
		cSetViewAngles(cmd, gHook.FakeAngle) // if so set it to our good and dandy fake angle
	end
end

function gHook.NoSpread(cmd)
	if (gHook.Settings.Aimbot["bNoSpread"] && cKeyDown(cmd, IN_ATTACK) && !gHook.Aimbotting && cmd:CommandNumber() != 0) then // check if nospread is enabled, we're holding down attack, and we aren't aimbotting
		local angSpread = gHook.GetSpread(cmd, cGetViewAngles(cmd)) // if so compensate the spread for our current view angles
		angSpread.x, angSpread.y = mNormalizeAngle(angSpread.x), mNormalizeAngle(angSpread.y) // normalize spread angles
		cSetViewAngles(cmd, angSpread) // then set our view angles!
	end
end

gHook.LastJitYaw = 0 // fjitter stuff

function gHook.AntiAim(cmd)
	if (gHook.Settings.HvH["bAntiAim"] && !iIsMouseDown(MOUSE_LEFT) && !gHook.Aimbotting && eGetMoveType(pLocalPlayer) != MOVETYPE_FLY && eGetMoveType(pLocalPlayer) != MOVETYPE_NOCLIP) then // LOADS OF CHECKS
		if (cCommandNumber(cmd) == 0 && !gHook.Settings.Misc["bThirdperson"]) then return end

		if (gHook.Settings.HvH["bJitter"]) then
			local iRandom2 = 540 + mRandom(1, 10) // random jitter shit

			if (gHook.AASwitch) then // if the switch is true
				gHook.LastJitYaw = iRandom2 // set fjitter var
				cSetViewAngles(cmd, Angle(262, iRandom2, 0)) // wtf aa

				if (gHook.SendPacket) then // if we have the bsendpacket module
					bSendPacket = true // set bsendpacket to true
				end
			else // else
				cSetViewAngles(cmd, Angle(-262, gHook.LastJitYaw + 180, 0)) // wtf aa

				if (gHook.SendPacket) then // if we have the bsendpacket module
					bSendPacket = false // set bsendpacket to false
				end
			end

			gHook.AASwitch = !gHook.AASwitch // set fjitter switch
			gHook.FixMove(cmd, true) // fix movement
		else
			if (gHook.AASwitch) then // if the switch is true
				cSetViewAngles(cmd, Angle(180, gHook.FakeAngle.y + 90, 0)) // wtf aa
				if (gHook.SendPacket) then // if we have the bsendpacket module
					bSendPacket = true // set bsendpacket to true
				end
			else // else
				cSetViewAngles(cmd, Angle(-180, gHook.FakeAngle.y - 90, 0)) // wtf aa
				if (gHook.SendPacket) then // if we have the bsendpacket module
					bSendPacket = false // set bsendpacket to false
				end
			end

			gHook.AASwitch = !gHook.AASwitch // set sideways switch
			gHook.FixMove(cmd, true) // fix our movement!
		end
	else // else
		bSendPacket = true // make sure we don't fuck up
	end
end

function gHook.FakeLag(cmd)
 	if (gHook.Settings.HvH["bFakeLag"] && gHook.SendPacket) then // check if its enabled and we have the bsendpacket module
     	if (cCommandNumber(cmd) == 0 || (gHook.Settings.HvH["bAntiAim"] && !gHook.Settings.HvH["bJitter"])) then return end // don't fakelag on extra mouse samples

     	gHook.FLQueue = gHook.FLQueue + 1 // add one createmove tick to the queue
               
      	if (gHook.FLQueue >= 0) then // if it's bigger than 0 or it is 0
           	if (6 > gHook.FLQueue) then // and 6 (fakelag amount) is bigger than the queue
               	bSendPacket = false // don't send packet
           	else // else
               	bSendPacket = true // send packets
           	end
      	else
           	bSendPacket = true // send packets
      	end
       
      	if (gHook.FLQueue >= 15) then // if it's bigger than 15 (max fakelag amount)
       		gHook.FLQueue = 0 // reset queue
       	end
  	else // if it's not enabled
  		gHook.FLQueue = 0 // set the queue to nothing
  		if (gHook.SendPacket) then if (gHook.Settings.HvH["bAntiAim"] && !gHook.Settings.HvH["bJitter"]) then return end bSendPacket = true end // if we have the bsendpacket module, we could've fakelagged earlier and had bsendpacket set to false so start sending packets
  	end
end

function gHook.Bhop(cmd)
	if (gHook.Settings.Misc["bBunnyHop"] && eGetMoveType(pLocalPlayer) != MOVETYPE_FLY && eGetMoveType(pLocalPlayer) != MOVETYPE_NOCLIP) then // check if the bhop var is enabled, and make sure we aren't flying or noclipping
		if (eIsOnGround(pLocalPlayer) && cKeyDown(cmd, IN_JUMP)) then // check if we're on the ground and pressing jump
			cSetButtons(cmd, bBor(cGetButtons(cmd), IN_JUMP)) // set jump key
		else
			cRemoveKey(cmd, IN_JUMP) // stop jumping in the air!

			if (gHook.Settings.Misc["bAutoStrafe"] && cKeyDown(cmd, IN_JUMP)) then // broken autostrafe
				if (cGetMouseX(cmd) > 0) then // broken
					cSetSideMove(cmd, 1000000) // autostrafe
				else
					cSetSideMove(cmd, -1000000) // how to
				end
			end
		end
	end
end

function gHook.GetCol(pEnt)
	if (pTeam(pEnt) == pTeam(pLocalPlayer)) then // if it's us
		return Color(15, 255, 23) // then color should be green
	else
		return Color(255, 7, 2) // else it should be red
	end
end

function gHook.Visuals()
	if (!gHook.Settings.Visuals["bEnabled"]) then return end // check if visuals are enabled, if not then return nothing and do nothing

	for iPlayerIndex,pEnt in next, pGetAll() do // make a loop with all the players
		if (pEnt == pLocalPlayer || !pAlive(pEnt) || 0 >= eHealth(pEnt)) then continue end // if the player == you or the player isn't alive, don't draw and check another player
		
		local iMax = eOBBMaxs(pEnt) // max pos
		local vecTop = vToScreen(eGetPos(pEnt) + Vector(0, 0, iMax.z)) // top pos
		local vecBottom = vToScreen(eGetPos(pEnt)) // bottom pos
		local iMiddle = vecBottom.y - vecTop.y // middle pos
		local iWidth = iMiddle / 4 // width pos
             
		if (gHook.Settings.Visuals["bName"]) then // check if the name esp var is enabled
			dSimpleText(pNick(pEnt), "Trebuchet18", vecTop.x, vecTop.y - 10, color_white, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) // draw that text
		end
             
		if (gHook.Settings.Visuals["bBox"]) then // check if the (bounding) box esp var is enabled
			sSetDrawColor((gHook.Settings.Visuals["bTeam"] && tGetColor(pTeam(pEnt))) || gHook.GetCol(pEnt)) // set the draw color
			sDrawOutlinedRect(vecTop.x - iWidth, vecTop.y, iWidth * 2, iMiddle) // draw box
			sSetDrawColor(Color(0, 0, 0)) // set to black draw color
			sDrawOutlinedRect(vecTop.x - iWidth - 1, vecTop.y - 1, iWidth * 2 + 2, iMiddle + 2) // draw outline
			sDrawOutlinedRect(vecTop.x - iWidth + 1, vecTop.y + 1, iWidth * 2 - 2, iMiddle - 2) // draw outline
		end
             
		if (gHook.Settings.Visuals["bHealth"]) then // check if the health esp var is enabled
			dSimpleText(eHealth(pEnt) .. " HP", "Trebuchet18", vecTop.x, vecBottom.y + 10, Color(0, 255, 0), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) // draw the player's health
		end
	end

	if (gHook.Settings.Visuals["bWatermark"]) then // check if the watermark var is enabled
		dSimpleText("Ground0 Cheats", "Trebuchet18", 50, 12, Color(0, 0, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) // draw the watermark
	end
end

function gHook.Menu() // not listing for this massive menu codes, 2long
	gHook.MenuOpen = true

	local main = vCreate("DFrame")
	main:SetSize(790, 600)
	main:SetTitle("")
	main:Center()
	main:MakePopup()
	main:ShowCloseButton(false)
	main.Paint = function(self)
		draw****undedBox(0, 0, 0, self:GetWide(), self:GetTall(), Color(255, 255, 255))
		local colGradient = Color(0, 0, 170)
	
		for i = 0, 40 do
			surface.SetDrawColor(colGradient)
			colGradient.b = colGradient.b - 1
			surface.DrawLine(0, i, 790, i)
		end
		
		surface.SetDrawColor(colGradient)
		
		surface.DrawRect(0, 31, 5, self:GetTall() - 31)
		surface.DrawRect(0, self:GetTall() - 5, self:GetWide(), self:GetTall())
		surface.DrawRect(self:GetWide() - 5, 31, 5, self:GetTall())
		
		draw.SimpleText("Ground0 Cheats", "Trebuchet24", self:GetWide() / 2, 20, Color(255, 255, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
	end
	
	local aimbot = vCreate("DButton", main)
	aimbot:SetSize(196, 40)
	aimbot:SetPos(5, 41)
	aimbot:SetText("")
	aimbot.Paint = function(self)
		draw****undedBox(4, 0, 0, self:GetWide(), self:GetTall(), Color(75, 75, 75))
		surface.SetDrawColor(70, 70, 70)
		surface.DrawOutlinedRect(0, 0, self:GetWide(), self:GetTall())
		draw.SimpleText("Aimbot", "Trebuchet18", self:GetWide() / 2 - 22, self:GetTall() / 2 - 7, color_white)
	end
	
	local visuals = vCreate("DButton", main)
	visuals:SetSize(196, 40)
	visuals:SetPos(201, 41)
	visuals:SetText("")
	visuals.Paint = function(self)
		draw****undedBox(4, 0, 0, self:GetWide(), self:GetTall(), Color(75, 75, 75))
		surface.SetDrawColor(70, 70, 70)
		surface.DrawOutlinedRect(0, 0, self:GetWide(), self:GetTall())
		draw.SimpleText("Visuals", "Trebuchet18", self:GetWide() / 2 - 22, self:GetTall() / 2 - 7, color_white)
	end
	
	local misc = vCreate("DButton", main)
	misc:SetSize(196, 40)
	misc:SetPos(397, 41)
	misc:SetText("")
	misc.Paint = function(self)
		draw****undedBox(4, 0, 0, self:GetWide(), self:GetTall(), Color(75, 75, 75))
		surface.SetDrawColor(70, 70, 70)
		surface.DrawOutlinedRect(0, 0, self:GetWide(), self:GetTall())
		draw.SimpleText("Misc", "Trebuchet18", self:GetWide() / 2 - 9, self:GetTall() / 2 - 7, color_white)
	end
	
	local hvh = vCreate("DButton", main)
	hvh:SetSize(192, 40)
	hvh:SetPos(593, 41)
	hvh:SetText("")
	hvh.Paint = function(self)
		draw****undedBox(4, 0, 0, self:GetWide(), self:GetTall(), Color(75, 75, 75))
		surface.SetDrawColor(70, 70, 70)
		surface.DrawOutlinedRect(0, 0, self:GetWide(), self:GetTall())
		draw.SimpleText("HvH", "Trebuchet18", self:GetWide() / 2 - 9, self:GetTall() / 2 - 7, color_white)
	end
	
	local aim_enable = vCreate("DCheckBoxLabel", main)
	aim_enable:SetPos(7, 85)
	aim_enable:SetText("Enabled")
	aim_enable:SetVisible(false)
	aim_enable:SetValue(gHook.Settings.Aimbot["bEnabled"])
	aim_enable:SizeToContents()
	aim_enable.OnChange = function(self)
		gHook.Settings.Aimbot["bEnabled"] = tobool(self:GetChecked())
	end

	local aim_aaa = vCreate("DCheckBoxLabel", main)
	aim_aaa:SetPos(7, 105)
	aim_aaa:SetText("Anti Anti-Aim")
	aim_aaa:SetVisible(false)
	aim_aaa:SetValue(gHook.Settings.Aimbot["bAntiAntiAim"])
	aim_aaa:SizeToContents()
	aim_aaa.OnChange = function(self)
		gHook.Settings.Aimbot["bAntiAntiAim"] = tobool(self:GetChecked())
	end
	
	local aim_nospread = vCreate("DCheckBoxLabel", main)
	aim_nospread:SetPos(7, 125)
	aim_nospread:SetText("NoSpread")
	aim_nospread:SetVisible(false)
	aim_nospread:SetValue(gHook.Settings.Aimbot["bNoSpread"])
	aim_nospread:SizeToContents()
	aim_nospread.OnChange = function(self)
		gHook.Settings.Aimbot["bNoSpread"] = tobool(self:GetChecked())
	end
	
	local aim_team = vCreate("DCheckBoxLabel", main)
	aim_team:SetPos(7, 145)
	aim_team:SetText("Ignore Team")
	aim_team:SetVisible(false)
	aim_team:SetValue(gHook.Settings.Aimbot["bTeam"])
	aim_team:SizeToContents()
	aim_team.OnChange = function(self)
		gHook.Settings.Aimbot["bTeam"] = tobool(self:GetChecked())
	end

	local aim_friends = vCreate("DCheckBoxLabel", main)
	aim_friends:SetPos(7, 165)
	aim_friends:SetText("Ignore Friends")
	aim_friends:SetVisible(false)
	aim_friends:SetValue(gHook.Settings.Aimbot["bFriends"])
	aim_friends:SizeToContents()
	aim_friends.OnChange = function(self)
		gHook.Settings.Aimbot["bFriends"] = tobool(self:GetChecked())
	end
	
	local aim_silent = vCreate("DCheckBoxLabel", main)
	aim_silent:SetPos(7, 185)
	aim_silent:SetText("Silent Aim")
	aim_silent:SetVisible(false)
	aim_silent:SetValue(gHook.Settings.Aimbot["bSilent"])
	aim_silent:SizeToContents()
	aim_silent.OnChange = function(self)
		gHook.Settings.Aimbot["bSilent"] = tobool(self:GetChecked())
	end
	
	local aim_auto = vCreate("DCheckBoxLabel", main)
	aim_auto:SetPos(7, 205)
	aim_auto:SetText("AutoShoot")
	aim_auto:SetVisible(false)
	aim_auto:SetValue(gHook.Settings.Aimbot["bAutoShoot"])
	aim_auto:SizeToContents()
	aim_auto.OnChange = function(self)
		gHook.Settings.Aimbot["bAutoShoot"] = tobool(self:GetChecked())
	end

	local aim_legit = vCreate("DCheckBoxLabel", main)
	aim_legit:SetPos(7, 225)
	aim_legit:SetText("Legit Mode")
	aim_legit:SetVisible(false)
	aim_legit:SetValue(gHook.Settings.Aimbot["bLegit"])
	aim_legit:SizeToContents()
	aim_legit.OnChange = function(self)
		gHook.Settings.Aimbot["bLegit"] = tobool(self:GetChecked())
	end
	
	local vis_enabled = vCreate("DCheckBoxLabel", main)
	vis_enabled:SetPos(7, 85)
	vis_enabled:SetText("Enabled")
	vis_enabled:SetVisible(false)
	vis_enabled:SetValue(gHook.Settings.Visuals["bEnabled"])
	vis_enabled:SizeToContents()
	vis_enabled.OnChange = function(self)
		gHook.Settings.Visuals["bEnabled"] = tobool(self:GetChecked())
	end
	
	local vis_name = vCreate("DCheckBoxLabel", main)
	vis_name:SetPos(7, 105)
	vis_name:SetText("Name ESP")
	vis_name:SetVisible(false)
	vis_name:SetValue(gHook.Settings.Visuals["bName"])
	vis_name:SizeToContents()
	vis_name.OnChange = function(self)
		gHook.Settings.Visuals["bName"] = tobool(self:GetChecked())
	end
	
	local vis_box = vCreate("DCheckBoxLabel", main)
	vis_box:SetPos(7, 125)
	vis_box:SetText("2D Box ESP")
	vis_box:SetVisible(false)
	vis_box:SetValue(gHook.Settings.Visuals["bBox"])
	vis_box:SizeToContents()
	vis_box.OnChange = function(self)
		gHook.Settings.Visuals["bBox"] = tobool(self:GetChecked())
	end
	
	local vis_health = vCreate("DCheckBoxLabel", main)
	vis_health:SetPos(7, 145)
	vis_health:SetText("Health ESP")
	vis_health:SetVisible(false)
	vis_health:SetValue(gHook.Settings.Visuals["bHealth"])
	vis_health:SizeToContents()
	vis_health.OnChange = function(self)
		gHook.Settings.Visuals["bHealth"] = tobool(self:GetChecked())
	end

	local vis_team = vCreate("DCheckBoxLabel", main)
	vis_team:SetPos(7, 165)
	vis_team:SetText("Team Color ESP")
	vis_team:SetVisible(false)
	vis_team:SetValue(gHook.Settings.Visuals["bTeam"])
	vis_team:SizeToContents()
	vis_team.OnChange = function(self)
		gHook.Settings.Visuals["bTeam"] = tobool(self:GetChecked())
	end

	local vis_watermark = vCreate("DCheckBoxLabel", main)
	vis_watermark:SetPos(7, 185)
	vis_watermark:SetText("Watermark")
	vis_watermark:SetVisible(false)
	vis_watermark:SetValue(gHook.Settings.Visuals["bWatermark"])
	vis_watermark:SizeToContents()
	vis_watermark.OnChange = function(self)
		gHook.Settings.Visuals["bWatermark"] = tobool(self:GetChecked())
	end
	
	local misc_bhop = vCreate("DCheckBoxLabel", main)
	misc_bhop:SetPos(7, 85)
	misc_bhop:SetText("Bunny Hop")
	misc_bhop:SetVisible(false)
	misc_bhop:SetValue(gHook.Settings.Misc["bBunnyHop"])
	misc_bhop:SizeToContents()
	misc_bhop.OnChange = function(self)
		gHook.Settings.Misc["bBunnyHop"] = tobool(self:GetChecked())
	end

	local misc_thirdperson = vCreate("DCheckBoxLabel", main)
	misc_thirdperson:SetPos(7, 105)
	misc_thirdperson:SetText("ThirdPerson")
	misc_thirdperson:SetVisible(false)
	misc_thirdperson:SetValue(gHook.Settings.Misc["bThirdperson"])
	misc_thirdperson:SizeToContents()
	misc_thirdperson.OnChange = function(self)
		gHook.Settings.Misc["bThirdperson"] = tobool(self:GetChecked())
	end

	local hvh_antiaim = vCreate("DCheckBoxLabel", main)
	hvh_antiaim:SetPos(7, 85)
	hvh_antiaim:SetText("Anti-Aim")
	hvh_antiaim:SetVisible(false)
	hvh_antiaim:SetValue(gHook.Settings.HvH["bAntiAim"])
	hvh_antiaim:SizeToContents()
	hvh_antiaim.OnChange = function(self)
		gHook.Settings.HvH["bAntiAim"] = tobool(self:GetChecked())
	end
	
	local hvh_jitter = vCreate("DCheckBoxLabel", main)
	hvh_jitter:SetPos(7, 105)
	hvh_jitter:SetText("Jitter Anti-Aim")
	hvh_jitter:SetVisible(false)
	hvh_jitter:SetValue(gHook.Settings.HvH["bJitter"])
	hvh_jitter:SizeToContents()
	hvh_jitter.OnChange = function(self)
		gHook.Settings.HvH["bJitter"] = tobool(self:GetChecked())
	end

	local hvh_fakelag = vCreate("DCheckBoxLabel", main)
	hvh_fakelag:SetPos(7, 125)
	hvh_fakelag:SetText("FakeLag")
	hvh_fakelag:SetVisible(false)
	hvh_fakelag:SetValue(gHook.Settings.HvH["bFakeLag"])
	hvh_fakelag:SizeToContents()
	hvh_fakelag.OnChange = function(self)
		gHook.Settings.HvH["bFakeLag"] = tobool(self:GetChecked())
	end

	local function SetVis(strGroup, bVis)
		if (strGroup == "aimbot") then
			aim_enable:SetVisible(bVis)
			aim_aaa:SetVisible(bVis)
			aim_nospread:SetVisible(bVis)
			aim_team:SetVisible(bVis)
			aim_friends:SetVisible(bVis)
			aim_silent:SetVisible(bVis)
			aim_auto:SetVisible(bVis)
			aim_legit:SetVisible(bVis)
		elseif (strGroup == "visuals") then
			vis_enabled:SetVisible(bVis)
			vis_name:SetVisible(bVis)
			vis_box:SetVisible(bVis)
			vis_health:SetVisible(bVis)
			vis_team:SetVisible(bVis)
			vis_watermark:SetVisible(bVis)
		elseif (strGroup == "misc") then
			misc_bhop:SetVisible(bVis)
			misc_thirdperson:SetVisible(bVis)
		elseif (strGroup == "hvh") then
			hvh_antiaim:SetVisible(bVis)
			hvh_jitter:SetVisible(bVis)
			hvh_fakelag:SetVisible(bVis)
		end
	end
	
	aimbot.DoClick = function()
		SetVis("aimbot", true)
		SetVis("visuals", false)
		SetVis("misc", false)
		SetVis("hvh", false)
	end
	
	visuals.DoClick = function()
		SetVis("aimbot", false)
		SetVis("visuals", true)
		SetVis("misc", false)
		SetVis("hvh", false)
	end
	
	misc.DoClick = function()
		SetVis("aimbot", false)
		SetVis("visuals", false)
		SetVis("misc", true)
		SetVis("hvh", false)
	end
	
	hvh.DoClick = function()
		SetVis("aimbot", false)
		SetVis("visuals", false)
		SetVis("misc", false)
		SetVis("hvh", true)
	end
	
	main.Think = function()
		if (input.IsKeyDown(KEY_DELETE) && !gHook.Insert2) then
			main:Remove()
			gHook.MenuOpen = false
		end
	end
end

function gHook.CreateMove(cmd)
	gHook.Silent(cmd) // call silent aimbot code
	gHook.Aimbot(cmd) // call aimbot
	gHook.NoSpread(cmd) // call nospread
	gHook.AntiAim(cmd) // call antiaim
	gHook.FakeLag(cmd) // call fakelag
	gHook.Bhop(cmd) // call bhop
end

function gHook.DrawOverlay()
	gHook.Visuals() // do the visuals (ESP and stuff)
end

function gHook.Think()
	gHook.FindTarget() // find aimbot targets
	gHook.OpenMenu() // check if the menu can be opened
end

function gHook.CalcView(ply, pos, angle, fov, nearZ, farZ)
	local view = {} // make a new viewtable
     
	view.angles = gHook.FakeAngle // set the fake angle so we don't look like we're jittering clientside with silent aim and anti aim
	view.origin = gHook.Settings.Misc["bThirdperson"] && pos - gHook.FakeAngle:Forward() * 100 || pos // set the origin
   
	return view // return it
end

function gHook.Move()
	if (IsFirstTimePredicted()) then // if it's the first time being predicted
		gHook.CurTime = CurTime() + eTickInterval() // set the proper curtime to regular curtime + the tick interval
	end
end

function gHook.AddHook(strHookType, funcHook)
	gHook.Notify("Hooking " .. strHookType) // notify that this is being hooked

	if (GAMEMODE[strHookType] && __gbackup[strHookType]) then // check if it's a valid hook
		GAMEMODE[strHookType] = function(self, ...) // detour it
			__gbackup[strHookType](self, ...) // call the gamemode function
			local retable = {funcHook(...)} // thank you
      		if (retable) then return unpack(retable) end // razor
		end
	end
end

function GetConVarString(cvar)
	if (cvar == "sv_allowcslua" or cvar == "sv_cheats") then // YOU
		return "0" // SIMPLY
	end

	if (cvar == "host_timescale") then // CANNOT
		return "1.0" // TOUCH
	end

	if (cvar == "host_framerate") then // THIS
		return "0" // AMAZING
	end

	return __gcopy["GetConVarString"](cvar) // CHEAT
end

function GetConVarNumber(cvar)
	if (cvar == "sv_allowcslua" or cvar == "sv_cheats") then // check if it's one of these
		return 0 // nope
	end

	if (cvar == "host_timescale") then // host_timescale?
		return 1.0 // NOPE
	end

	if (cvar == "host_framerate") then // HOST_FRAMERATE?!?!?!?
		return 0 // and i'm like "can't touch this"
	end

	return __gcopy["GetConVarNumber"](cvar) // return regular
end

function GetConVar(cvar)
	if (cvar == "sv_allowcslua" or cvar == "sv_cheats" or cvar == "host_framerate") then // check if its one of these
		return __gcopy["GetConVar"]("cl_voicedistance") // crossing my fingers, it should be set to 0
	end

	if (cvar == "host_timescale") then // check if it's host_timescale
		return __gcopy["GetConVar"]("r_drawothermodels") // return r_drawothermodels, it should always be set to 1
	end

	return __gcopy["GetConVar"](cvar) // return regular
end

function file.Open(name, mode, path)
	if (sFind(name, "g0.lua") or sFind(name, "gHook.lua") or sFind(name, "dickwrap")) then // is it one of the cheat's files?
		return nil // can't touch this
	end

	return __gcopy["file"].Open(name, mode, path) // return regular, not one of our names
end

function file.Exists(name, path)
	if (sFind(name, "g0.lua") or sFind(name, "gHook.lua") or sFind(name, "dickwrap")) then // it better not be our cheat names!
		return false // if it is, return false, we don't want them to know we exist
	end

	return __gcopy["file"].Exists(name, path) // return regular, not one of our names
end

function debug.getinfo(func, fields) // detour debug.getinfo
	if func == GetConVarString or func == GetConVarNumber or func == GetConVar or func == file.Open or func == file.Exists or func == debug.getinfo then // check if it's a function we've detoured
		local tbl = __gcopy["debug.getinfo"](__gcopy["debug.getinfo"], fields) // get the dgi table
		tbl.func = func // bypass some more (rare) checks
		return tbl // return it
	end

	return __gcopy["debug"].getinfo(func, fields) // not a detoured func, return regular
end

GAMEMODE["ShouldDrawLocalPlayer"] = function(...)
	return gHook.Settings.Misc["bThirdperson"] // if thirdperson is enabled, show us
end

gHook.AddHook("CreateMove", gHook.CreateMove) // hook createmove
gHook.AddHook("DrawOverlay", gHook.DrawOverlay) // hook drawoverlay
gHook.AddHook("Think", gHook.Think) // hook think
gHook.AddHook("CalcView", gHook.CalcView) // hook calcview
gHook.AddHook("Move", gHook.Move) // hook move
gHook.Notify("Loaded!") // loaded message
this is an example of my 100% skidded code yes yes
Quote Originally Posted by MasterKitty View Post
xavier go fuck your self and have homogaysex with your dumb little snixz buddies, abn closed since a while ago now and i don't give credits, because i don't use others code or get any help, fucking dumbass.
triggered

dont worry, just ignore me and keep refreshing mpgh waiting for new paste
Quote Originally Posted by __Xavier View Post
triggered

dont worry, just ignore me and keep refreshing mpgh waiting for new paste
i dont code lua dumcuck
Quote Originally Posted by MasterKitty View Post
i dont code lua dumcuck
rocketcat was the best dude
Quote Originally Posted by MasterKitty View Post
i dont code lua dumcuck
you pray to oj hoping that one day you will find the shittiest cpp source and paste from that :^)
Quote Originally Posted by ___Xavier View Post
you pray to oj hoping that one day you will find the shittiest cpp source and paste from that :^)
I've worked with KITTIX before, I hope you know he doesn't paste as much as you think Xavier.
Quote Originally Posted by X7334 View Post
I've worked with KITTIX before, I hope you know he doesn't paste as much as you think Xavier.
did he say he'd give you his pasted cheat if you post that
Quote Originally Posted by X7334 View Post
I've worked with KITTIX before, I hope you know he doesn't paste as much as you think Xavier.
*skiddix

Posts 16–30 of 33 · Page 2 of 3
This thread is closed for replies.

Similar Threads

Talk with us