Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Created by Atheon
- --You can find the thread at http://www.mpgh.net/forum/713-garrys-mod-hacks-cheats/669569-keypad-cracker-lua-v2.html#post8138844 for instructions on use
- --Please also post bugs/suggestions in this thread
- local X = -50
- local Y = -100
- local KeyPos = {
- {X+5, Y+100, 25, 25, -2.2, 3.45, 1.3, -0},
- {X+37.5, Y+100, 25, 25, -0.6, 1.85, 1.3, -0},
- {X+70, Y+100, 25, 25, 1.0, 0.25, 1.3, -0},
- {X+5, Y+132.5, 25, 25, -2.2, 3.45, 2.9, -1.6},
- {X+37.5, Y+132.5, 25, 25, -0.6, 1.85, 2.9, -1.6},
- {X+70, Y+132.5, 25, 25, 1.0, 0.25, 2.9, -1.6},
- {X+5, Y+165, 25, 25, -2.2, 3.45, 4.55, -3.3},
- {X+37.5, Y+165, 25, 25, -0.6, 1.85, 4.55, -3.3},
- {X+70, Y+165, 25, 25, 1.0, 0.25, 4.55, -3.3},
- {X+5, Y+67.5, 50, 25, -2.2, 4.7, -0.3, 1.6},
- {X+60, Y+67.5, 35, 25, 0.3, 1.65, -0.3, 1.6}
- }
- local function FindDisplayText(ent)
- if ent.GetDisplayText then
- return ent:GetDisplayText()
- else
- return ent.Entity:GetNetworkedInt("keypad_num")
- end
- end
- local function FindStatus(ent)
- if ent.GetStatus then
- return ent:GetStatus()
- elseif ent.Entity:GetNetworkedBool("keypad_access") and ent.Entity:GetNetworkedBool("keypad_showaccess") then
- return 1
- elseif not ent.Entity:GetNetworkedBool("keypad_access") and ent.Entity:GetNetworkedBool("keypad_showaccess") then
- return 2
- else
- return 0
- end
- end
- hook.Add("Think", "Somethingoranotherthatissomething", function()
- for k,v in pairs(player.GetAll()) do
- local kp = v:GetEyeTrace().Entity
- if IsValid(kp) and (string.find(kp:GetClass(), "keypad") and not(string.find(v:GetClass(), "cracker") or string.find(v:GetClass(), "checker"))) and v:EyePos():Distance(kp:GetPos()) <= 70 then
- kp.tempCode = kp.tempCode or ""
- kp.tempText = kp.tempText or ""
- kp.tempStatus = kp.tempStatus or 0
- if (FindDisplayText(kp) != kp.tempText) or (FindStatus(kp) != kp.tempStatus) then
- kp.tempText = FindDisplayText(kp)
- kp.tempStatus = FindStatus(kp)
- local tr = util.TraceLine({
- start = v:EyePos(),
- endpos = v:GetAimVector() * 32 + v:EyePos(),
- filter = v
- })
- local pos = kp:WorldToLocal(tr.HitPos)
- for i,p in pairs(KeyPos) do
- local x = (pos.y - p[5]) / (p[5] + p[6])
- local y = 1 - (pos.z + p[7]) / (p[7] + p[8])
- if (x >= 0 and y >= 0 and x <= 1 and y <= 1) then
- if i == 11 then
- if kp.tempStatus == 1 then
- kp.code = kp.tempCode
- kp.tempCode = ""
- elseif kp.tempStatus == 2 then
- kp.tempCode = ""
- end
- elseif i == 10 then
- kp.tempCode = ""
- elseif i > 0 then
- kp.tempCode = kp.tempCode..i
- end
- end
- end
- end
- end
- end
- end)
- hook.Add( "HUDPaint", "somethingoranotherthatissomethingelse", function()
- local e = LocalPlayer():GetEyeTrace().Entity
- if IsValid(e) and string.find(e:GetClass(), "keypad") then
- local text = e.code or "Not Found"
- draw.WordBox( 8, ScrW() / 2, ScrH() / 2, text, "Default", Color(50,50,75,100), Color(255,255,255,255) )
- end
- for k,v in pairs(ents.GetAll()) do
- if IsValid(v) then
- if string.find(v:GetClass(), "keypad") and not(string.find(v:GetClass(), "cracker") or string.find(v:GetClass(), "checker")) then
- if v != e then
- local pos = v:GetPos():ToScreen()
- if IsValid(v) and v.code then
- draw.RoundedBox( 4, pos.x-5, pos.y-5, 20, 20, Color( 0, 255, 0, 150 ) )
- else
- draw.RoundedBox( 4, pos.x-5, pos.y-5, 20, 20, Color( 255, 0, 0, 150 ) )
- end
- end
- end
- end
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement