Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- ######################################################################################################
- # ######## ####### ## ## ## ## ## ## ### ###### ## ## ## ## ####### #
- # ## ## ## ## ### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
- # ## ## ## ## #### ## #### ## ## ## ## ## ## ## ## ## ## #
- # ######## ## ## ## ## ## ## ######### ## ## ## ##### ## ## ####### #
- # ## ## ## ## #### ## ## ## ######### ## ## ## ## ## ## #
- # ## ## ## ## ### ## ## ## ## ## ## ## ## ## ## ## ## ## #
- # ## ####### ## ## ## ## ## ## ## ###### ## ## ### ####### #
- ######################################################################################################
- # by Kawaii Hafnium #
- ######################################################################################################
- ######################################################################################################
- # #### ## ## ######## ####### ######## ## ## ### ######## #### ####### ## ## #
- # ## ### ## ## ## ## ## ## ### ### ## ## ## ## ## ## ### ## #
- # ## #### ## ## ## ## ## ## #### #### ## ## ## ## ## ## #### ## #
- # ## ## ## ## ###### ## ## ######## ## ### ## ## ## ## ## ## ## ## ## ## #
- # ## ## #### ## ## ## ## ## ## ## ######### ## ## ## ## ## #### #
- # ## ## ### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ### #
- # #### ## ## ## ####### ## ## ## ## ## ## ## #### ####### ## ## #
- ######################################################################################################
- # #
- # This version of PonyHack should correct most of the complaints I had in PonyHack v2, I havn't #
- # put much work in it, the reason the release was delayed a lot is because I never really found #
- # the time to work on it a lot with school and everything. The only time I worked on this was #
- # during the christmas break when I wasn't busy with other things. Though I had to motivation #
- # to continue working on this, I did anyways because I knew that many MPGH users were awaiting #
- # it's release. #
- # #
- # Here's a list of the changes done in PonyHack v3: #
- # - Redid the menu from scratch. (messy but less messy) #
- # - Removed all unused code. #
- # - Did some cleaning up and optimization, fixed up garbage code. #
- # - Added spread compensation to HL2 weapons. #
- # - Redid ESP, better looking, better esp. #
- # - Fixed movement compensation for silent aim. #
- # - Fixed a few errors with bhop and autofire restricting movement. #
- # - Stopped hack from running if spreadthebutter isn't installed correctly #
- # - And much more #
- # #
- ######################################################################################################
- __________________________________________¦¦¦
- ______________________________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦__
- __________________________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦_
- ______________________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦__
- __________________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦_
- _________________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦_
- _____________________¦__¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦_
- __________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯
- ________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯
- _______________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯
- _____________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ___________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦___________
- ___________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- __________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _______¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _______¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- __¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯¯¯¯¯¯¯¯
- _¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦_¦¦¦_¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- __¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯_¦¦¯__¯_____¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- __¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯__¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦_¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- __¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦__¦¦¦_¦¦¦¦¦¦¦¦¦¦¦¦¦____¯¦_¦¦¦¦¦¦¦¦¦¦ ¦¦¦¦
- ___¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯¦¦¦¦___¯¦¦¦¦¦¦¦¦¦¦¦_____¯ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ____¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯¯¯¯¯¦¦¦¦_____¯¦¦¦¦¦¦¦¦¦¦¦_____¯ ¦¦¦¦¦¦¦¦¦¦¦¦
- _____¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦______¦¦¦¯¯¦¦¦¦¦¦¦______¯¦¦¦¦ ¯¦
- ______¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦_____¦¦¦__¦¦¦¦¦¦¦¦____¦¦¦¦¦¦¦¦¦¦¦¦
- ______¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯¦¦¦¦¦¦¦¦¦¦¦¦¦__¦¦¦¦¦¦¦¦¦¦¦¦¦
- ______¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯¯¯¦¦¦¦¦¦¦¦_¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _______¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _______¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _______¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _______¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- __________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ___________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ____________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _____________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ______________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _______________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- _________________¯¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯
- __________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯
- ________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯
- ________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯
- ________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯
- _________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¯
- __________________¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ___________________¦¦¦¦¦¦¦¦¦¦¦¦¯
- ____________________¯¦¦¦¦¦¦¦¦¦¯
- ______________________¯¦¦¦¦¦¦¦
- ________________________¯¯¦¦¦
- ____________________________¯
- #################################################################################################################################################################################
- # #### ######## ####### ## ## ######## ######## ## ## ######## ## ## ## ## ### ######## ###### ## ## ## ## ## ######## #
- # ## ## ## ## ## ### ## ## ## ## ## ## ### ## ## ## ## ## ## ## ## ## ## ## ### ### ## ## ## #
- # ## ## ## ## ## #### ## ## ## ## ## ## #### ## ## ## ## ## ## ## ## ## ## #### #### ## ## ## #
- # ## ## ## ## ## ## ## ## ## ###### ## ## ###### ## ## ## ## ## ## ## ## ## ## ######### ## ### ## ## ######## #
- # ## ## ## ## ## ## #### ## ## ## ## ## ## #### ## ## ## ######### ## ## ## ## ## ## ## ## #
- # ## ## ## ## ## ## ### ## ## ## ## ## ## ### ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
- # #### ######## ####### ## ## ## ######## ### ######## ## ## ### ### ## ## ## ###### ## ## ## ## ######## ## #
- #################################################################################################################################################################################
- # I DON'T EVEN FUCKING WATCH THAT SHIT ANYMORE. #
- #################################################################################################################################################################################
- ]]--
- if file.Find( "lua/bin/gmcl_spreadthebutter_win32.dll", "MOD" ) then
- require( "spreadthebutter" )
- else
- MsgC(Color(255,0,0,255), "gmcl_spreadthebutter wasn't installed correctly.")
- return
- end
- -- Menu colors
- local fg = Color(0,150,250,255)
- local bg = Color(0,0,0,255)
- -- Wallhack color
- local WhCol = Color(255,255,255,255)
- local pony = {}
- local vars = {}
- pony.cones = {}
- pony.name = "PonyHack"
- pony.version = "3.0.0"
- pony.author = " Kawai Senpai - I'mPopQwZz"
- pony.prefix = "[PonyHack]"
- surface.CreateFont( "PonyFont", {
- font = "Arial",
- size = 15
- } )
- surface.CreateFont( "PonyFont_n", {
- font = "Arial",
- size = 30
- } )
- require("hook")
- local LocalPlayer = LocalPlayer
- local math = math
- local draw = draw
- local player = player
- local render = render
- local pairs = pairs
- local cam = cam
- local table = table
- local RunConsoleCommand = RunConsoleCommand
- local ents = ents
- local ScrH = ScrH
- local ScrW = ScrW
- local tostring = tostring
- local Color = Color
- local Angle = Angle
- local IsValid = IsValid
- local Vector = Vector
- local MASK_SHOT = MASK_SHOT
- local IN_ATTACK = IN_ATTACK
- local KEY_SPACE = KEY_SPACE
- local KEY_E = KEY_E
- local _R = debug.getregistry()
- local me = LocalPlayer()
- local attacking = false
- pony.cones["weapon_pistol"] = Vector(0.01,0.01,0)
- pony.cones["weapon_smg1"] = Vector(0.04362,0.04362,0)
- pony.cones["weapon_ar2"] = Vector(0.02618,0.02618,0)
- local tempr = table.Copy( _R )
- _R.Entity.FireBullets = function( ent, bullet )
- if not pony.cones[me:GetActiveWeapon():GetClass()] || pony.cones[me:GetActiveWeapon():GetClass()] != bullet.Spread then
- pony.cones[me:GetActiveWeapon():GetClass()] = bullet.Spread
- end
- return tempr.Entity.FireBullets( ent, bullet )
- end
- function pony.print(txt)
- return MsgC( Color(255,0,0,255), pony.prefix, Color(255,255,255,255), " " .. txt .. "\n")
- end
- function pony.drawtext(txt,x,y,col)
- if !col then
- col = Color(255,255,255,255)
- end
- draw.SimpleTextOutlined( txt, "PonyFont", x, y, col, TEXT_ALIGN_LEFT, TEXT_ALIGN_LEFT, 1, Color(0,0,0,255) )
- end
- function pony.distance(v1,v2)
- v1 = v1:LengthSqr()
- v2 = v2:LengthSqr()
- local distance = math.Round( v1 - v2 )
- distance = distance * 0.001
- if distance < 0 then
- distance = -distance
- end
- return distance
- end
- local old_angs = nil
- function pony.getfakeangle()
- if old_angs != nil then
- return old_angs
- end
- return Angle(me:EyeAngles().p,me:EyeAngles().y, me:EyeAngles().r)
- end
- function pony.isvisible(target)
- local limb = vars["aimbot.limb"]
- if vars["aimbot.bodyaim"] then
- limb = "chest"
- end
- local target_head = target:LookupAttachment( limb )
- local headpos
- if target_head and target:GetAttachment(target_head) then
- headpos = target:GetAttachment(target_head).Pos
- end
- local StartPos = me:GetShootPos()
- local tr = {}
- tr.start = StartPos
- tr.endpos = headpos or (target:GetPos() + Vector(0,0,16))
- tr.mask = MASK_SHOT
- tr.filter = function( ent )
- return !ent:IsPlayer()
- end
- local trace = util.TraceLine( tr )
- if trace.Hit then return false else return true end
- end
- function pony.addhook(name,name2,func)
- local hidden_name = util.CRC( name2 )
- hook.Add(name,hidden_name,func)
- end
- function pony.dormant(ent)
- if #player.GetAll() >= 15 then
- return ent:IsDormant()
- else
- return false
- end
- end
- function pony.closest(ents)
- local ent_distances = {}
- for i = 1, #ents do
- v = ents[i]
- ent_distances[i] = pony.distance( me:GetPos(), v:GetPos() )
- i = i+1
- end
- local closest = math.min( unpack( ent_distances ) )
- for i = 1, #ent_distances do
- v = ent_distances[i]
- if closest == v then
- return ents[i]
- end
- i = i+1
- end
- return nil
- end
- function pony.attack(cmd)
- local wep = me:GetActiveWeapon()
- if IsValid(wep) and wep.Primary and (wep.Primary.Automatic == true) then
- cmd:SetButtons( bit.bor(cmd:GetButtons(), IN_ATTACK ) )
- attacking = true
- else
- if attacking then
- cmd:RemoveKey( IN_ATTACK )
- attacking = false
- else
- cmd:SetButtons( bit.bor(cmd:GetButtons(), IN_ATTACK ) )
- attacking = true
- end
- end
- end
- vars["esp.distance"] = 5000
- vars["esp.players"] = false
- vars["esp.entity"] = false
- vars["esp.ents"] = {"money_printer", "spawned_money", "spawned_shipment"}
- vars["esp.staff"] = false
- vars["esp.crosshair"] = false
- vars["esp.hpbar"] = false
- vars["esp.fillbox"] = false
- vars["esp.teamcolor"] = false
- vars["aimbot.enabled"] = false
- vars["aimbot.limb"] = "eyes"
- vars["aimbot.silent"] = false
- vars["aimbot.friends"] = false
- vars["aimbot.babygod"] = false
- vars["aimbot.noclip"] = false
- vars["aimbot.team"] = false
- vars["aimbot.rage"] = false
- vars["aimbot.nospread"] = false
- vars["aimbot.bodyaim"] = false
- vars["misc.bhop"] = true
- vars["misc.fastshoot"] = false
- vars["misc.norecoil"] = false
- pony.addhook("HUDPaint", "player.wallhack", function()
- if !vars["esp.players"] then
- return
- end
- for _,v in pairs( player.GetAll() ) do
- if v != me and !pony.dormant(v) and v:Alive() then
- local min = (v:GetPos() + Vector(0, 0, 1)):ToScreen();
- local max = (v:GetPos() + Vector(0, 0, 70)):ToScreen();
- local hit = (min.y - max.y);
- local wid = (hit / 2.5)
- local Pos = max.y;
- local col
- if vars["esp.teamcolor"] then
- col = team.GetColor( v:Team() )
- else
- col = WhCol
- end
- surface.SetDrawColor(col)
- surface.DrawOutlinedRect(max.x - (wid / 2), max.y, wid, hit);
- surface.SetDrawColor( bg )
- surface.DrawOutlinedRect(max.x - (wid / 2) - 1, max.y - 1, wid + 2, hit + 2);
- surface.DrawOutlinedRect(max.x - (wid / 2) + 1, max.y + 1, wid - 2, hit - 2);
- draw.SimpleText(v:Nick(), "BudgetLabel", max.x + (wid / 2) + 5, Pos, Color(255, 255, 255, 255))
- Pos = Pos + 12;
- draw.SimpleText("HP:"..v:Health(), "BudgetLabel", max.x + (wid / 2) + 5, Pos, Color(255, 255, 255, 255))
- Pos = Pos + 12;
- if vars["esp.fillbox"] then
- draw.RoundedBox(0, max.x - (wid/2) + 1, max.y + 1, wid-2, hit-2, Color(col.r,col.g,col.b,50))
- end
- if vars["esp.hpbar"] then
- draw.RoundedBox(0, max.x - (wid/1.5), max.y, (wid-2)/10 + 2, hit, Color(0,0,0,255))
- draw.RoundedBox(0, max.x - (wid/1.5) + 1, max.y + 1, (wid-2)/10, (hit-2)*0.01 * v:Health(), Color(0,200,0,255))
- end
- end
- end
- end)
- pony.addhook("HUDPaint", "wallhack.entities", function()
- if !vars["esp.entity"] then
- return
- end
- for k,v in pairs(ents.GetAll()) do
- if table.HasValue(vars["esp.ents"], v:GetClass()) and ( pony.distance( me:GetPos(), v:GetPos() ) <= vars["esp.distance"] ) and !v:IsDormant() then
- surface.SetFont("PonyFont")
- local class = v:GetClass()
- local classize = surface.GetTextSize(class)
- local posy = v:GetPos():ToScreen()
- cam.Start3D()
- cam.IgnoreZ(true)
- render.MaterialOverride(Material("models/debug/debugwhite"))
- render.SuppressEngineLighting( true )
- local col = WhCol
- render.SetColorModulation( col.r/255, col.g/255, col.b/255 )
- v:DrawModel()
- render.SetColorModulation( 1, 1, 1 )
- render.SuppressEngineLighting( false )
- render.MaterialOverride(0)
- cam.IgnoreZ(false)
- cam.End3D()
- pony.drawtext(class, posy.x - classize*0.5,posy.y)
- end
- end
- end)
- local safegroups = { -- Groups that shouldn't be considered as 'staff'
- "user",
- "default",
- "vip",
- "member",
- "regular"
- }
- pony.addhook("HUDPaint", "wallhack.staff", function()
- if !vars["esp.staff"] then
- return
- end
- local staffs = 0
- for k,v in pairs(player.GetAll()) do
- if !table.HasValue(safegroups, v:GetUserGroup()) then
- staffs = staffs + 1
- end
- end
- pony.drawtext("Possible staff members online: " .. tostring( staffs ), 5,5)
- end)
- pony.addhook("HUDPaint", "wallhack.crosshair", function()
- if !vars["esp.crosshair"] then
- return
- end
- local x = ScrW()*0.5
- local y = ScrH()*0.5
- surface.SetDrawColor( Color(255,255,255) )
- local wep = me:GetActiveWeapon()
- local gap
- if wep and wep.Primary and wep.Primary.Spread then
- gap = wep.Primary.Spread * (x)
- else
- gap = 5
- end
- local length = gap + 5
- surface.DrawLine( x - length, y, x - gap, y )
- surface.DrawLine( x + length, y, x + gap, y )
- surface.DrawLine( x, y - length, x, y - gap )
- surface.DrawLine( x, y + length, x, y + gap )
- surface.SetDrawColor( WhCol )
- gap = 0
- length = 5
- surface.DrawLine( x - length, y, x - gap, y )
- surface.DrawLine( x + length, y, x + gap, y )
- surface.DrawLine( x, y - length, x, y - gap )
- surface.DrawLine( x, y + length, x, y + gap )
- end)
- local function hl2()
- local class = me:GetActiveWeapon():GetClass()
- if class == "weapon_pistol" then return true end
- if class == "weapon_357" then return true end
- if class == "weapon_smg1" then return true end
- if class == "weapon_ar2" then return true end
- return false
- end
- local function punch()
- if me:GetActiveWeapon() == nil then return Angle() end
- if string.find(string.lower(me:GetActiveWeapon():GetClass()), "fas2") or hl2() then
- return me:GetPunchAngle()
- end
- return Angle()
- end
- local target = nil
- local aa = false
- local reloading = false
- pony.addhook("CreateMove", "aimbot", function(cmd)
- if !me:Alive() then
- return
- end
- if reloading then
- cmd:RemoveKey(IN_RELOAD)
- reloading = false
- return
- end
- if me:GetActiveWeapon() and me:GetActiveWeapon().Clip1 and me:GetActiveWeapon():Clip1() <= 0 then
- cmd:SetButtons( bit.bor(cmd:GetButtons(), IN_RELOAD) )
- reloading = true
- end
- local wep = LocalPlayer():GetActiveWeapon()
- if attacking and IsValid(wep) and wep.Primary and wep.Primary.Automatic then
- cmd:RemoveKey(IN_ATTACK)
- attacking = false
- end
- if !vars["aimbot.enabled"] then
- target = nil
- return
- end
- if old_angs then
- if vars["aimbot.silent"] then
- cmd:SetViewAngles(old_angs)
- cmd:RemoveKey(IN_ATTACK)
- end
- old_angs = nil
- return
- end
- if !IsValid(target) or !target:Alive() or !pony.isvisible(target) then
- local possible_targets = {}
- for i = 1, #player.GetAll() do
- v = player.GetAll()[i]
- i = i+1
- if v != me and pony.isvisible(v) and !v:IsDormant() and v:Alive() then
- if (vars["aimbot.friends"] and v:GetFriendStatus() == "friend") or
- (vars["aimbot.babygod"] and v:GetColor().a != 255) or
- (vars["aimbot.noclip"] and v:GetMoveType() == MOVETYPE_NOCLIP) or
- (vars["aimbot.team"] and v:Team() == me:Team()) then
- else
- table.insert(possible_targets, v)
- end
- end
- end
- local ent = pony.closest(possible_targets)
- if not IsValid(ent) then
- return
- end
- target = ent
- end
- if cmd:KeyDown( IN_ATTACK ) or vars["aimbot.rage"] then
- old_angs = cmd:GetViewAngles()
- local limb = vars["aimbot.limb"]
- if vars["aimbot.bodyaim"] then
- limb = "chest"
- end
- if vars["aimbot.rage"] then
- pony.attack(cmd)
- end
- local angle = target:LookupAttachment( limb )
- local atch = target:GetAttachment( angle )
- if angle and atch then
- angle = ( atch.Pos - me:GetShootPos() ):Angle()
- else
- angle = ( target:GetPos() + Vector(0,0,16) - me:GetShootPos() ):Angle()
- end
- if vars["aimbot.nospread"] and IsValid(me:GetActiveWeapon()) and pony.cones[ me:GetActiveWeapon():GetClass() ] then
- angle = DS_manipulateShot(DS_md5PseudoRandom(cmd:CommandNumber()), angle:Forward(), Vector(-pony.cones[me:GetActiveWeapon():GetClass()].x, -pony.cones[me:GetActiveWeapon():GetClass()].y, 0)):Angle();
- cmd:SetViewAngles( angle - punch() )
- else
- cmd:SetViewAngles( angle - punch() )
- end
- if vars["aimbot.silent"] then -- Thanks to NanoCat I was able to correct fake angle <3
- local ang = angle - pony.getfakeangle()
- local move = Vector( cmd:GetForwardMove(), cmd:GetSideMove(), 0 )
- local vec = ( move:Angle() + ( cmd:GetViewAngles() - pony.getfakeangle() ) ):Forward() * move:Length()
- cmd:SetForwardMove( vec[1] )
- cmd:SetSideMove( vec[2] )
- end
- end
- end)
- local spreading = nil
- pony.addhook("CreateMove", "nospread", function(cmd)
- if vars["aimbot.enabled"] then
- return
- end
- if spreading then
- cmd:SetViewAngles(spreading)
- spreading = nil
- cmd:RemoveKey(IN_ATTACK)
- return
- end
- local angle = me:EyeAngles()
- old_angs = angle
- if vars["aimbot.nospread"] and IsValid(me:GetActiveWeapon()) and pony.cones[ me:GetActiveWeapon():GetClass() ] then
- spreading = angle
- angle = DS_manipulateShot(DS_md5PseudoRandom(cmd:CommandNumber()), angle:Forward(), Vector(-pony.cones[me:GetActiveWeapon():GetClass()].x, -pony.cones[me:GetActiveWeapon():GetClass()].y, 0)):Angle();
- cmd:SetViewAngles( angle )
- end
- end)
- pony.addhook("Think", "norecoil", function()
- if !vars["misc.norecoil"] then return end
- local weapon = me:GetActiveWeapon()
- if !IsValid(weapon) then
- return
- end
- if weapon.Primary then
- if weapon.Primary.Recoil then
- weapon.Primary.Recoil = 0
- end
- if weapon.Primary.KickUp then
- weapon.Primary.KickUp = 0
- weapon.Primary.KickDown = 0
- weapon.Primary.KickHorizontal = 0
- end
- end
- end)
- pony.addhook("CalcView", "fakeview", function( ply, pos, ang, fov, nearZ, farZ )
- local view = {}
- view.origin = pos
- view.angles = pony.getfakeangle()
- view.fov = fov
- return view
- end)
- pony.addhook("CalcViewModelView", "fakeview_weapon", function( wep, vm, oldPos, oldAng, pos, ang )
- return pos, pony.getfakeangle()
- end)
- pony.addhook("CreateMove", "bhop", function(cmd)
- if !vars["misc.bhop"] then return end
- if me:IsOnGround() and input.IsKeyDown( KEY_SPACE ) then
- cmd:SetButtons( bit.bor(cmd:GetButtons(), IN_JUMP) )
- else
- cmd:RemoveKey(IN_JUMP)
- end
- end)
- local attacking = false
- pony.addhook("CreateMove", "fastshoot", function(cmd)
- if !vars["misc.fastshoot"] then return end
- if !input.IsMouseDown( MOUSE_LEFT ) then return end
- attacking = !attacking
- if attacking then
- cmd:SetButtons( bit.bor( cmd:GetButtons(), IN_ATTACK ) )
- else
- cmd:RemoveKey(IN_ATTACK)
- end
- end)
- function pony.menu()
- local function btn_paint(but)
- function but.OnCursorEntered()
- but.hover = true
- but:SetTextColor(bg)
- end
- function but.OnCursorExited()
- but.hover = false
- but:SetTextColor(fg)
- end
- function but.Paint()
- but:SetTextColor(bg)
- draw.RoundedBox(0, 1, 1, but:GetWide() - 2, but:GetTall() - 2, fg)
- if but.hover then
- draw.RoundedBox(0, 0, 0, but:GetWide(), but:GetTall(), fg)
- end
- end
- end
- local mainframe_items = {}
- local backpanel = vgui.Create("DFrame")
- backpanel:SetSize(512,256)
- backpanel:Center()
- backpanel:MakePopup()
- backpanel:SetTitle("")
- backpanel:ShowCloseButton(false)
- local function CreateBox(var,txt)
- local but = vgui.Create("DButton", backpanel)
- but.txt = txt
- function but.DoClick()
- vars[var] = !vars[var]
- end
- but:SetText("")
- function but.Paint()
- draw.RoundedBox(0, 0, 0, 18, 18, fg)
- draw.RoundedBox(0, 1, 1, 16, 16, bg)
- if vars[var] then
- draw.RoundedBox(0, 2, 2, 14, 14, fg)
- end
- surface.SetFont("PonyFont")
- local txt_w = surface.GetTextSize(but.txt)
- draw.DrawText( but.txt, "PonyFont", 25 + txt_w/2, 2, Color(255,255,255,255), 1 )
- end
- but:SetTall(18)
- return but
- end
- local items
- local close = vgui.Create("DButton", backpanel)
- close:SetSize(30,20)
- close:SetPos(backpanel:GetWide() - 32, 2)
- close:SetText("X")
- close:SetTextColor( Color(255,255,255,255) )
- function close.Paint()
- surface.SetDrawColor(bg)
- surface.DrawOutlinedRect( 0, 0, close:GetWide(), close:GetTall() )
- surface.SetDrawColor( Color(200,0,0,255) )
- surface.DrawRect( 1, 1, close:GetWide()-2, close:GetTall() - 2 )
- end
- function close.DoClick()
- backpanel:Remove()
- end
- function backpanel.Paint()
- surface.SetDrawColor(bg)
- surface.DrawOutlinedRect( 0, 0, backpanel:GetWide(), backpanel:GetTall() )
- surface.SetDrawColor(fg)
- surface.DrawRect( 1, 1, backpanel:GetWide()-2, 22 )
- surface.SetDrawColor(Color(0,0,0,250))
- surface.DrawRect( 1, 23, backpanel:GetWide()-2, backpanel:GetTall() - 23 )
- surface.SetDrawColor(fg)
- surface.SetFont("PonyFont")
- local txt = "BitchBot v3 - Only For You Aaryn! :)"
- local txt_w = surface.GetTextSize(txt)
- draw.DrawText(txt, "PonyFont", backpanel:GetWide()*0.5, 4, bg, 1)
- end
- local mainframe = vgui.Create("DForm", backpanel)
- mainframe:SetPos(2, 25)
- mainframe:SetSize(backpanel:GetWide() - 80, 50)
- mainframe:SetName("Options...")
- local function AddItem(item)
- mainframe:AddItem(item)
- table.insert(mainframe_items, item)
- end
- function mainframe.Paint()
- end
- local aimbot = vgui.Create("DButton", backpanel)
- aimbot:SetSize(70,20)
- aimbot:SetPos(backpanel:GetWide() - 75, 25 )
- aimbot:SetText("Aimbot")
- function aimbot.DoClick()
- surface.PlaySound("HL1/fvox/blip.wav")
- mainframe:Clear()
- local but = CreateBox("aimbot.enabled", "Aimbot enabled")
- mainframe:AddItem(but)
- local but = CreateBox("aimbot.rage", "Autofire")
- mainframe:AddItem(but)
- local but = CreateBox("aimbot.silent", "Silent aim")
- mainframe:AddItem(but)
- local but = CreateBox("aimbot.team", "Ignore team")
- mainframe:AddItem(but)
- local but = CreateBox("aimbot.friends", "Ignore friends")
- mainframe:AddItem(but)
- local but = CreateBox("aimbot.babygod", "Ignore god")
- mainframe:AddItem(but)
- local but = CreateBox("aimbot.bodyaim", "Body aim")
- mainframe:AddItem(but)
- end
- btn_paint(aimbot)
- local visual = vgui.Create("DButton", backpanel)
- visual:SetSize(70,20)
- visual:SetPos(backpanel:GetWide() - 75, 25 + 25 )
- visual:SetText("Visual")
- function visual.DoClick()
- surface.PlaySound("HL1/fvox/blip.wav")
- mainframe:Clear()
- local but = CreateBox("esp.players", "Show players")
- mainframe:AddItem(but)
- local but = CreateBox("esp.hpbar", "Health bars")
- mainframe:AddItem(but)
- local but = CreateBox("esp.fillbox", "Fill box")
- mainframe:AddItem(but)
- local but = CreateBox("esp.teamcolor", "Use team color")
- mainframe:AddItem(but)
- local but = CreateBox("esp.crosshair", "Crosshair")
- mainframe:AddItem(but)
- local but = CreateBox("esp.entity", "Show entities")
- mainframe:AddItem(but)
- local but = vgui.Create("DButton", mainframe)
- mainframe:AddItem(but)
- but:SetText("Entity list ->")
- function but.Paint()
- draw.RoundedBox(0, 0, 0, but:GetWide(), but:GetTall(), fg)
- end
- but:SetTextColor(bg)
- function but.DoClick()
- local function btn_paint(but)
- function but.OnCursorEntered()
- but.hover = true
- but:SetTextColor(bg)
- end
- function but.OnCursorExited()
- but.hover = false
- but:SetTextColor(fg)
- end
- function but.Paint()
- but:SetTextColor(fg)
- draw.RoundedBox(0, 0, 0, but:GetWide(), but:GetTall(), bg)
- draw.RoundedBox(0, 1, 1, but:GetWide() - 2, but:GetTall() - 2, bg)
- if but.hover then
- but:SetTextColor(bg)
- draw.RoundedBox(0, 0, 0, but:GetWide(), but:GetTall(), fg)
- end
- end
- end
- local function view_paint(view)
- function view.Paint()
- draw.RoundedBox(0, 0, 0, view:GetWide(), view:GetTall(), fg)
- draw.RoundedBox(0, 1, 1, view:GetWide() - 2, view:GetTall() - 2, bg)
- end
- end
- local backpanel = vgui.Create("DFrame")
- backpanel:SetSize(512,256)
- backpanel:Center()
- backpanel:MakePopup()
- backpanel:SetDraggable(true)
- backpanel:SetTitle("Entity list")
- function backpanel.Paint()
- draw.RoundedBox(2, 0, 0, backpanel:GetWide(), backpanel:GetTall(), fg)
- draw.RoundedBox(2, 1, 1, backpanel:GetWide() - 2, backpanel:GetTall() - 2, bg)
- draw.RoundedBox(0, 0, 0, backpanel:GetWide(), 22, fg)
- end
- local view1 = vgui.Create("DListView", backpanel)
- view1:SetPos(5,30)
- view1:SetSize(backpanel:GetWide()/2 - 30, backpanel:GetTall()-35)
- local view = view1:AddColumn("Not on ESP")
- view1:SetMultiSelect( false )
- view_paint(view1)
- local entities = {}
- for k,v in pairs(ents.GetAll()) do
- local class = v:GetClass()
- if !table.HasValue(entities,class) then
- table.insert(entities,class)
- view1:AddLine(class)
- end
- end
- for k,v in pairs(view1:GetLines()) do
- function v.Paint()
- local val = v:GetValue()
- draw.RoundedBox(0, 1, 1, v:GetWide() - 2, v:GetTall() - 2, bg)
- v.Columns[1]:SetTextColor(fg)
- if v:IsSelected() then
- draw.RoundedBox(0, 1, 1, v:GetWide() - 2, v:GetTall() - 2, fg)
- v.Columns[1]:SetTextColor(bg)
- end
- end
- end
- function view.Header.Paint()
- draw.RoundedBox(0, 0, 0, view.Header:GetWide(), view.Header:GetTall(), fg)
- draw.RoundedBox(0, 1, 1, view.Header:GetWide() - 2, view.Header:GetTall() - 2, bg)
- view.Header:SetTextColor(fg)
- end
- local view2 = vgui.Create("DListView", backpanel)
- view2:SetPos(backpanel:GetWide() - view1:GetWide() - 5,30)
- view2:SetSize(backpanel:GetWide()/2 - 30, backpanel:GetTall()-35)
- view2:SetMultiSelect( false )
- local view = view2:AddColumn("On ESP")
- for k,v in pairs(vars["esp.ents"]) do
- view2:AddLine(v)
- end
- view_paint(view2)
- for k,v in pairs(view2:GetLines()) do
- function v.Paint()
- local val = v:GetValue()
- draw.RoundedBox(0, 1, 1, v:GetWide() - 2, v:GetTall() - 2, bg)
- v.Columns[1]:SetTextColor(fg)
- if v:IsSelected() then
- draw.RoundedBox(0, 1, 1, v:GetWide() - 2, v:GetTall() - 2, fg)
- v.Columns[1]:SetTextColor(bg)
- end
- end
- end
- local function refresh()
- if IsValid(view2) then
- view2:Clear()
- for k,v in pairs(vars["esp.ents"]) do
- view2:AddLine(v)
- end
- end
- entities = {}
- if IsValid(view1) then
- view1:Clear()
- for k,v in pairs(ents.GetAll()) do
- local class = v:GetClass()
- if !table.HasValue(entities,class) then
- table.insert(entities,class)
- view1:AddLine(class)
- end
- end
- end
- for k,v in pairs(view2:GetLines()) do
- function v.Paint()
- local val = v:GetValue()
- draw.RoundedBox(0, 1, 1, v:GetWide() - 2, v:GetTall() - 2, bg)
- v.Columns[1]:SetTextColor(fg)
- if v:IsSelected() then
- draw.RoundedBox(0, 1, 1, v:GetWide() - 2, v:GetTall() - 2, fg)
- v.Columns[1]:SetTextColor(bg)
- end
- end
- end
- for k,v in pairs(view1:GetLines()) do
- function v.Paint()
- local val = v:GetValue()
- draw.RoundedBox(0, 1, 1, v:GetWide() - 2, v:GetTall() - 2, bg)
- v.Columns[1]:SetTextColor(fg)
- if v:IsSelected() then
- draw.RoundedBox(0, 1, 1, v:GetWide() - 2, v:GetTall() - 2, fg)
- v.Columns[1]:SetTextColor(bg)
- end
- end
- end
- end
- function view.Header.Paint()
- draw.RoundedBox(0, 0, 0, view.Header:GetWide(), view.Header:GetTall(), fg)
- draw.RoundedBox(0, 1, 1, view.Header:GetWide() - 2, view.Header:GetTall() - 2, bg)
- view.Header:SetTextColor(fg)
- end
- local but = vgui.Create("DButton", backpanel)
- but:SetPos(view1:GetWide() + 10, backpanel:GetTall()/2 - 10)
- but:SetSize(40,20)
- but:SetText("->")
- btn_paint(but)
- function but.DoClick()
- local class = view1:GetSelected()[1].Columns[1]:GetValue() -- Something tells me I'm overcomplicating it ^.^
- if !table.HasValue(vars["esp.ents"], class) then
- table.insert(vars["esp.ents"],class)
- end
- refresh()
- end
- local but = vgui.Create("DButton", backpanel)
- but:SetPos(view1:GetWide() + 10, backpanel:GetTall()/2 + 15)
- but:SetSize(40,20)
- but:SetText("<-")
- btn_paint(but)
- function but.DoClick()
- local class = view2:GetSelected()[1].Columns[1]:GetValue()
- if table.HasValue(vars["esp.ents"], class) then
- table.RemoveByValue(vars["esp.ents"],class)
- end
- refresh()
- end
- end
- end
- btn_paint(visual)
- local misc = vgui.Create("DButton", backpanel)
- misc:SetSize(70,20)
- misc:SetPos(backpanel:GetWide() - 75, 25 + 25 + 25 )
- misc:SetText("Misc")
- btn_paint(misc)
- function misc.DoClick()
- surface.PlaySound("HL1/fvox/blip.wav")
- mainframe:Clear()
- local but = CreateBox("aimbot.nospread", "Spread compensation")
- mainframe:AddItem(but)
- local but = CreateBox("misc.bhop", "Bunny hop")
- mainframe:AddItem(but)
- local but = CreateBox("misc.fastshoot", "Auto pistol")
- mainframe:AddItem(but)
- local but = CreateBox("misc.norecoil", "No recoil")
- mainframe:AddItem(but)
- end
- local settings = vgui.Create("DButton", backpanel)
- settings:SetSize(70,20)
- settings:SetPos(backpanel:GetWide() - 75, 25 + 25 + 25 + 25 )
- settings:SetText("Settings")
- btn_paint(settings)
- function settings.DoClick()
- surface.PlaySound("HL1/fvox/blip.wav")
- mainframe:Clear()
- local slider = vgui.Create("DColorMixer", backpanel)
- mainframe:AddItem(slider)
- slider:SetWangs(false)
- slider:SetPalette(false)
- slider:SetTall(120)
- slider:SetAlphaBar(false)
- local but = vgui.Create("DButton")
- but:SetText("Menu color")
- mainframe:AddItem(but)
- function but.Paint()
- draw.RoundedBox(0, 0, 0, but:GetWide(), but:GetTall(), fg)
- end
- but:SetTextColor(bg)
- function but.DoClick()
- local scol = slider:GetColor()
- fg = Color( scol.r, scol.g, scol.b, 200 )
- end
- local but = vgui.Create("DButton")
- but:SetText("Wallhack color")
- mainframe:AddItem(but)
- function but.Paint()
- draw.RoundedBox(0, 0, 0, but:GetWide(), but:GetTall(), fg)
- end
- but:SetTextColor(bg)
- function but.DoClick()
- WhCol = slider:GetColor()
- end
- end
- local credits = vgui.Create("DButton", backpanel)
- credits:SetSize(70,20)
- credits:SetPos(backpanel:GetWide() - 75, 25 + 25 + 25 + 25 + 25 )
- credits:SetText("<3")
- btn_paint(credits)
- function credits.DoClick()
- surface.PlaySound("HL1/fvox/blip.wav")
- mainframe:Clear()
- local txt = vgui.Create("RichText")
- mainframe:AddItem(txt)
- txt:SetTall(mainframe:GetTall())
- txt:InsertColorChange(255,255,255,255)
- txt:AppendText( "\nLove goes to the following people:\n\n" )
- txt:AppendText( "Kawaii I'mPopQwZz\n" )
- txt:AppendText( "HeX\n" )
- txt:AppendText( "Jay\n" )
- txt:AppendText( "WiseZombieKing\n" )
- txt:AppendText( "NanoCat\n" )
- txt:AppendText( "Trollaux\n" )
- end
- aimbot.DoClick()
- end
- concommand.Add("bitchbot", pony.menu)
- local matOverlay = Material( "sprites/glow08" )
- local matTraitor = Material( "sprites/dot" )
- local twep = {"spiderman's_swep", "weapon_ttt_trait_defilibrator", "weapon_ttt_xbow", "weapon_ttt_dhook", "weapon_awp", "weapon_ttt_ak47", "weapon_jihadbomb", "weapon_ttt_knife", "weapon_ttt_c4", "weapon_ttt_decoy", "weapon_ttt_flaregun", "weapon_ttt_phammer", "weapon_ttt_push", "weapon_ttt_radio", "weapon_ttt_sipistol", "weapon_ttt_teleport", "weapon_ttt_awp", "weapon_mad_awp", "weapon_real_cs_g3sg1", "weapon_ttt_cvg_g3sg1", "weapon_ttt_g3sg1", "weapon_ttt_healthstation5", "weapon_ttt_sentry", "weapon_ttt_poison_dart", "weapon_ttt_trait_defibrillator"}
- for _,v in pairs(player.GetAll()) do
- v.HatTraitor = nil
- end
- for _,v in pairs(ents.GetAll()) do
- v.HatESPTracked = nil
- end
- hook.Add("PostDrawOpaqueRenderables", "wire_animations_idle", function()
- if GAMEMODE.round_state != ROUND_ACTIVE then
- for _,v in pairs(player.GetAll()) do
- v.HatTraitor = nil
- end
- for _,v in pairs(ents.GetAll()) do
- v.HatESPTracked = nil
- end
- return
- end
- for _,v in pairs( ents.GetAll() ) do
- if v and IsValid(v) and (table.HasValue(twep, v:GetClass()) and !v.HatESPTracked) then
- local pl = v.Owner
- if pl and IsValid(pl) and pl:IsTerror() then
- if pl:IsDetective() then
- v.HatESPTracked = true
- else
- v.HatESPTracked = true
- pl.HatTraitor = true
- chat.AddText( pl, Color(255,125,0), " is a ",Color(255,0,0), "TRAITOR",Color(255,125,0), " with a ",Color(255,0,0),v:GetClass().."!")
- end
- end
- end
- end
- //Add a name for anyone we tracked
- // cam.Start2D()
- // local pos = (pl:GetPos()+Vector(0,0,100)):ToScreen()
- // draw.DrawText( pl:Nick(), "ScoreboardText", pos['x'], pos['y'], team.GetColor( pl:Team() ), TEXT_ALIGN_CENTER )
- // cam.End2D()
- // end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement