-- by https://steamcommunity.
com/id/Pastebin/
-- https://www.mpgh.net/forum/showthread.php?t=1432417
netCodes = netCodes or {
["SendToServer"] = net.SendToServer,
["Start"] = net.Start,
["WriteAngle"] = net.WriteAngle,
["WriteBit"] = net.WriteBit,
["WriteBool"] = net.WriteBool,
["WriteColor"] = net.WriteColor,
["WriteData"] = net.WriteData,
["WriteDouble"] = net.WriteDouble,
["WriteEntity"] = net.WriteEntity,
["WriteFloat"] = net.WriteFloat,
["WriteInt"] = net.WriteInt,
["WriteMatrix"] = net.WriteMatrix,
["WriteNormal"] = net.WriteNormal,
["WriteString"] = net.WriteString,
["WriteTable"] = net.WriteTable,
["WriteUInt"] = net.WriteUInt,
["WriteVector"] = net.WriteVector
}
function tableToString(t)
if type(o) == 'table' then
local s = '{ '
for k,v in pairs(o) do
if type(k) ~= 'number' then k = '"'..k..'"' end
s = s .. '['..k..'] = ' .. dump(v) .. ','
end
return s .. '} '
else
return tostring(o)
end
end
local buffer = ""
local function construct_net_block(t, netName)
makeString = "net." ..netName .. "("
for i=1, #t do
indexValue = t[i]
if (type(indexValue) == "number") then
if (i == #t) then makeString = makeString .. indexValue else
makeString = makeString .. indexValue .. ", " end
elseif (type(indexValue) == "boolean") then
makeString = makeString .. tostring(indexValue)
elseif (type(indexValue) == "string") then
if (i == #t) then makeString = makeString .. "\"" ..
indexValue .. "\"" else makeString = makeString .. "\"" .. indexValue .. "\", " end
elseif (type(indexValue) == "Player" || type(indexValue) == "Entity" ||
type(indexValue) == "NPC") then
makeString = makeString .. "Entity(" ..
tostring(indexValue:EntIndex()) .. ")"
elseif (type(indexValue) == "Vector") then
makeString = makeString .. "Vector(" ..
string.gsub(tostring(indexValue), "%s+", ", ") .. ")"
elseif (type(indexValue) == "table") then
print("INDEXVALUE IS TABLE")
print("indevalue", table.ToString(indexValue))
makeString = makeString .. table.ToString(indexValue)
else
ErrorNoHalt("[netlogthing] !!! UNHANDLED !!! " .. "type(index): "
.. "[" .. type(indexValue) .. "]" .. " index: " .. "[" .. tostring(indexValue) ..
"]")
end
end
buffer = buffer .. makeString .. ")" .. "\n"
if (string.match(buffer, "SendToServer")) then
hook.Run( "RecvNetMsg", buffer )
buffer = ""
end
end
-- net request sent
-- net requests go through our
function handle_net_message(netName)
return function (...) -- just doing this so I can give access to netName in
construct_net_block function
construct_net_block({...}, netName)
hook.Add( "RecvNetMsg", "netlogger", function(netmsg)
detour_net_functions(false)
RunString(netmsg)
detour_net_functions(true)
end)
-- netCodes[netName](...)
end
end
function detour_net_functions(bool) -- WriteTable calls a bunch of other net
functions internally, so got to turn it off
if (bool) then
for k, v in pairs(netCodes) do
net[k] = handle_net_message(k)
end
else
for k, v in pairs(netCodes) do
net[k] = v
end
end
end
if (!detoured_net_functions) then
detoured_net_functions = true
detour_net_functions(true)
else
print("\n\n\nAlready detoured net functions\n\n\n")
end
surface.CreateFont( "customFont2", {
font = "Verdana", -- Use the font-name which is shown to you by your
operating system Font Viewer, not the file name
extended = false,
size = 15,
weight = 100,
blursize = 0,
scanlines = 0,
antialias = true,
underline = false,
italic = false,
strikeout = false,
symbol = false,
rotary = false,
shadow = false,
additive = false,
outline = false,
} )
function mysplit(inputstr, sep)
if sep == nil then
sep = "%s"
end
local t={} ; i=1
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
t[i] = str
i = i + 1
end
return t
end
local net_message_box = {
setTextAndCount = function(self, text, count)
newLineCount = #mysplit(text, "\n")
self:SetTitle(" #" .. tostring(count))
self.netmsgBox:SetText(text)
W, H = self.netmsgBox:GetSize()
W, H = self.netmsgBox:GetSize()
self:SetSize(W, H + 200)
self:SizeToContents()
end,
Init = function(self)
outer_self = self
self:ShowCloseButton( false )
self:SetSize(150, 400)
self.W, self.H = self:GetSize()
self.netmsgBox = vgui.Create( "DTextEntry", self)
self.netmsgBox:SetPos( 40, 50 )
self.netmsgBox:Dock(FILL)
self.netmsgBox:SetMultiline(true);
self.netmsgBox.Paint = function(self,w,h)
draw.RoundedBox(0, 0, 0, w, h, Color(48,10,36, 255))
self:DrawTextEntryText(Color(255, 255, 255), Color(30, 130, 255),
Color(255, 255, 255))
end
local closeBtn = vgui.Create( "Button", self)
closeBtn:SetSize( 14,14 )
closeBtn:SetPos(5,6)
closeBtn:SetVisible( true )
closeBtn:SetText( "" )
closeBtn.Paint = function(self,w,h)
draw.RoundedBox(5, 0, 0, w, h, Color(225,81,32, 255))
-- surface.DrawCircle( 100, 100, 50, Color(255,255,255,255) )
draw.DrawText( "x", "customFont2", w/2, -1, Color( 255,255,255,
255 ), TEXT_ALIGN_CENTER )
end
print("outer_self", outer_self)
function closeBtn:OnMousePressed()
outer_self:SetVisible(false)
outer_self:Remove()
end
end,
Paint = function(self, w, h)
draw.RoundedBox(0, 0, 0, w, h, Color(48,10,36, 255))
surface.SetDrawColor( Color( 200, 200, 200, 255 ) )
surface.DrawOutlinedRect(0,0, w-1,h-1)
surface.DrawOutlinedRect(0,0, w-1,25)
end,
Think = function(self, w, h)
if (self:IsHovered()) then
end
end
}
vgui.Register("netmessagebox", net_message_box, "DFrame")
-- net_message_box = vgui.Create("netmessagebox")
-- net_message_box:setTextAndCount("net.Start('test')\nnet.SendToServer()")
browser = {
Init = function(self)
self.W, self.H = self:GetSize()
self:SetSize(self.W * 15, 555)
self:ShowCloseButton(false)
self:SetDraggable(true)
self.gmodwiki = vgui.Create("DHTML", self)
self.gmodwiki:OpenURL("http://wiki.garrysmod.com/page/Main_Page")
self.gmodwiki.zoom = 100
self.gmodwiki:Dock(FILL)
self:SetTitle("")
-- self:MakePopup()
local addressBar = vgui.Create( "DTextEntry", self ) -- create the form
as a child of frame
addressBar:SetPos( 60, 2 )
addressBar:SetSize( 400, 25 )
addressBar:SetText("http://wiki.garrysmod.com/page/Main_Page")
addressBar.OnEnter = function( self1 )
self.gmodwiki:OpenURL( self1:GetValue() ) -- print the form's text
as server text
end
local backBtn = vgui.Create( "DButton", self ) -- create the form as a
child of frame
backBtn:SetPos( 5, 2 )
backBtn:SetSize( 25, 25 )
backBtn:SetText("<")
backBtn:SetTextColor(Color(255,255,255))
backBtn.DoClick = function()
self.gmodwiki:RunJavascript([[window.history.go(-1)]])
end
backBtn.Paint = function(self, w, h)
draw.RoundedBox(0, 0, 0, w, h, Color(57, 58, 49))
end
local forwardBtn = vgui.Create( "DButton", self ) -- create the form as
a child of frame
forwardBtn:SetPos( 35, 2 )
forwardBtn:SetSize( 25, 25 )
forwardBtn:SetText(">")
forwardBtn:SetTextColor(Color(255,255,255))
forwardBtn.DoClick = function()
self.gmodwiki:RunJavascript([[window.history.go(1)]])
end
forwardBtn.Paint = function(self, w, h)
draw.RoundedBox(0, 0, 0, w, h, Color(57, 58, 49))
end
self.gmodwiki:RunJavascript([[
String.prototype.startsWith = function(char){
return this[0] == char;
}
]]) -- pls update gmod's javascript engine
local zoomInBtn = vgui.Create( "DButton", self ) -- create the form as
a child of frame
zoomInBtn:SetPos( 465, 2 )
zoomInBtn:SetSize( 45, 25 )
zoomInBtn:SetText("Zoom in")
zoomInBtn:SetTextColor(Color(255,255,255))
zoomInBtn.DoClick = function()
self.gmodwiki.zoom = self.gmodwiki.zoom + 10
self.gmodwiki:RunJavascript("document.body.style.zoom = \"" ..
tostring(self.gmodwiki.zoom) .. "%\";")
end
zoomInBtn.Paint = function(self, w, h)
draw.RoundedBox(0, 0, 0, w, h, Color(57, 58, 49))
end
local zoomOutBtn = vgui.Create( "DButton", self ) -- create the form as
a child of frame
zoomOutBtn:SetPos( 515, 2 )
zoomOutBtn:SetSize( 45, 25 )
zoomOutBtn:SetText("Zoom out")
zoomOutBtn:SetTextColor(Color(255,255,255))
zoomOutBtn.DoClick = function()
self.gmodwiki.zoom = self.gmodwiki.zoom - 10
self.gmodwiki:RunJavascript("document.body.style.zoom = \"" ..
tostring(self.gmodwiki.zoom) .. "%\";")
end
zoomOutBtn.Paint = function(self, w, h)
draw.RoundedBox(0, 0, 0, w, h, Color(57, 58, 49))
end
-- local closeBtn = vgui.Create( "DButton", self )
-- closeBtn:SetText( "X" )
-- closeBtn:SetPos( 575, 5 )
-- closeBtn:SetSize( 20, 20 )
-- closeBtn:SetTextColor(Color(255,255,255))
-- closeBtn.DoClick = function()
--
self.gmodwiki:RunJavascript([[document.getElementsByTagName("body")[0].style.zoom =
"200%"]])
-- timer.Simple(5, function()
-- self:Close()
-- end)
-- end
-- closeBtn.Paint = function(self,w,h) draw.RoundedBox(0, 0, 0, w, h,
Color(170, 37, 37)) end
self.Paint = function(self, w,h)
draw.RoundedBox(0, 0, 0, w, h, Color(47, 48, 42, 255))
end
self.Think = function(self)
end
end,
}
vgui.Register("browser", browser, "DFrame")
-- vgui.Create("browser")
local infoPopup = {
setInfoText = function(self, tab_name)
-- print(self.infopopupTexts[tab_name].header)
self.header:SetText(self.infopopupTexts[tab_name].header)
self.infoText:SetText(self.infopopupTexts[tab_name].infoText)
end,
Init = function(self)
self.infopopupTexts = {
-- Tab = {header = "", infoText = ""},
ExploitTab = {header = "Exploit Tab", infoText = "You can upload
your exploits locally or to the web here. This tab is also responsible for finding
every single net message name on the server you load this menu on and saves it
locally so we can tell if other servers have common exploits"},
NetLoggerTab = {header = "Net logger Tab", infoText = "Logs all
the net messages that come through. Useful for things that you can easily interact
with that sends net messages i.e NPCs"},
RepeaterTab = {header = "Repeater Tab", infoText = "Repeats the
given net messages"},
interceptorTab = {header = "Intercepter Tab", infoText = "Repeats
the given net messages"},
LuaViewerTab = {header = "Lua viewer Tab", infoText = "View all
the server's client side files here"},
LuaEditorTab = {header = "Lua editor Tab", infoText = "Simple lua
editor with a \"browser\" built in"}
},
self:SetTitle("")
self:SetSize(350, 350)
self:Center()
self:MakePopup()
self:ShowCloseButton(false)
local closeBtn = vgui.Create( "DButton", self )
closeBtn:SetText( "X" )
closeBtn:SetPos( 325, 5 )
closeBtn:SetSize( 20, 20 )
closeBtn:SetTextColor(Color(255,255,255))
closeBtn.DoClick = function() self:Close() end
closeBtn.Paint = function(self,w,h) draw.RoundedBox(0, 0, 0, w, h,
Color(170, 37, 37)) end
self.header = vgui.Create("DLabel", self)
self.header:SetFont("headerFont1")
self.header:SetSize(150, 35)
-- self.header:SetText("Exploits tab")
self.header:Center()
self.header.posX, self.header.posY = self.header:GetPos()
self.header:SetPos(self.header.posX, 15)
self.infoText = vgui.Create("DLabel", self)
self.infoText:SetFont("infoFont")
self.infoText:SetSize(320, 200)
self.infoText:SetPos(30, 10)
-- self.infoText:SetText("You can upload your exploits locally or to
the web here. This tab is also responsible for finding every single net message
name on the server you load this menu on and saves it locally so we can tell if
other servers have common exploits")
self.infoText:SetWrap(true)
self.footerText = vgui.Create("DLabel", self)
self.footerText:SetFont("infoFont")
self.footerText:SetSize(100, 20)
self.footerText:Center()
self.footerText.posX, self.footerText.posY = self.footerText:GetPos()
self.footerText:SetPos(self.footerText.posX, 320)
self.footerText:SetText("Made by Riddle")
self.footerText:SetWrap(true)
self.Paint = function(self,w,h)
draw.RoundedBox(0, 0, 0, w, h, Color(39, 40, 34))
surface.SetDrawColor(Color(255,255,255))
startX = 0
endX = 350
startY = 65
endY = 65
surface.DrawLine( startX, startY, endX, endY )
DrawRainbowRectOutline(1, 0,0, w-1,h-1, 2)
end
end,
vgui.Register("infoPopup", infoPopup, "DFrame")
gmodWikiFrame = {
Init = function(self)
self:SetSize(700, 600)
self.gmodwiki = vgui.Create("DHTML", self)
self.gmodwiki:Dock(FILL)
self.gmodwiki:OpenURL("http://wiki.garrysmod.com/page/Main_Page")
end,
}
local CodeEditor = {
setFill = function(self, b)
if (b) then
self:Dock(FILL)
end
end,
setText = function(self, text)
self.html:RunJavascript("SetContent(" .. "'" .. text .. "')")
end,
createButton = function(self)
self.runLuaBtn = vgui.Create("DButton", self.right)
self.runLuaBtn:Dock(BOTTOM)
self.runLuaBtn:SetTall(self.runLuaBtn:GetTall() * 1.5)
self.runLuaBtn:SetText("Run lua")
self.runLuaBtn.DoClick = function()
if (not self.currentCode) then
print("[Warning] Nothing inside code editor")
return
end
RunString(self.currentCode)
end
self.runLuaBtn:SetTextColor(Color(255,255,255))
self.runLuaBtn.Paint = function(self, w, h)
draw.RoundedBox(0, 0, 0, w, h, Color(57, 58, 49))
end
end,
showButton = function(self, b)
self.shouldHaveButton = b
end,
Init = function(self)
self.shouldHaveButton = true
self:SetSize(250, 250)
-- self:SetPos(20, 30)
self.right = vgui.Create("PANEL", self)
self.right:Dock(FILL)
self.html = vgui.Create("DHTML", self.right)
self.html:Dock(FILL)
self.html:SetAllowLua(true)
self.html:OpenURL("asset://garrysmod/lua/menu_plugins/luaviewer/index.html")
--thx metastruct
self.html:AddFunction("gmodinterface", "OnCode", function(code)
self.currentCode = code
end)
-- self.html:RunJavascript("SetContent(" .. "'" .. content .. "')")
self.html:AddFunction("gmodinterface", "DoLog", function(logstr)
print("Log\t=\t", logstr) end)
timer.Simple(0.1, function()
if (self.shouldHaveButton) then
self:createButton()
else
self.html:RunJavascript([[SetFontSize(10)]])
end
end)
end
}
vgui.Register("CodeEditor", CodeEditor, "DPanel")
surface.CreateFont( "questionMarkFont", {
font = "Arial", -- Use the font-name which is shown to you by your operating
system Font Viewer, not the file name
extended = false,
size = 17,
weight = 500,
blursize = 0,
scanlines = 0,
antialias = true,
underline = false,
italic = false,
strikeout = false,
symbol = false,
rotary = false,
shadow = false,
additive = false,
outline = false,
} )
-- if (string.len(file.Read( "exploits.txt", "DATA" )) < 5) then
-- default = {serversWithExploits = {}, exploits = {}, loggedServers = {}}
-- file.Write( "exploits.txt", util.TableToJSON(default) )
-- end
local net_message_table = {}
local PANEL = {
addToCatergory = function(self, netmsg, freq)
local name = mysplit(netmsg, "\n")[1]
if not net_message_table[name] then
local Category = self.CategoryList:Add(name)
Category:SetExpanded(false)
local countLabel = vgui.Create( "DLabel", Category )
countLabel:SetFont("customFont2")
countLabel:SetColor(Color(255,255,255))
countLabel:SetPos( 280, 0 )
countLabel:SetSize(200,16)
countLabel:SetText("COUNT: 1")
net_message_box = vgui.Create("netmessagebox")
net_message_box:Dock( TOP )
net_message_box:setTextAndCount(netmsg, 1)
DScrollPanel = vgui.Create( "DScrollPanel")
Category:SetContents(DScrollPanel)
DScrollPanel:Add(net_message_box)
DScrollPanel:Dock( FILL )
-- 51.38.95.230:27015
net_message_table[name] = {panel = Category, count = 1,
countLabel = countLabel, DScrollPanel = DScrollPanel}
Category.Paint = function (s,w,h)
draw.RoundedBox(0, 0, 0, w, h, Color(70,69,65))
end
else
count = net_message_table[name].count + 1
countLabel = net_message_table[name]["countLabel"]
panel = net_message_table[name]["panel"]
DScrollPanel = net_message_table[name]["DScrollPanel"]
net_message_table[name] = { panel = panel, count = count,
countLabel = countLabel, DScrollPanel = DScrollPanel}
panel:SetLabel(name)
countLabel:SetFont("customFont2")
countLabel:SetColor(Color(255,255,255))
countLabel:SetPos( 280, 0 )
countLabel:SetText("COUNT: " .. count)
net_message_box = vgui.Create("netmessagebox")
net_message_box:setTextAndCount(netmsg, count)
net_message_box:Dock( TOP )
DScrollPanel:Add(net_message_box)
DScrollPanel:Dock( FILL )
self.i = 0
end
end,
DrawRainbowRectOutline = function(self, frequency, x, y, w, h )
for i = x, x + w - 1 do
surface.SetDrawColor( HSVToColor( i * frequency % 360, 1, 1 ) )
surface.DrawLine( i, y, i + 1, y )
surface.DrawLine( i, y + h - 1, i + 1, y + h )
end
for i = y, y + h - 1 do
surface.SetDrawColor( HSVToColor( i * frequency % 360, 1, 1 ) )
surface.DrawLine( x, i, x, i + 1 )
surface.DrawLine( x + w - 1, i, x + w, i + 1 )
end
end,
Paint = function(self, w, h)
draw.RoundedBox(0, 0, 0, w, h, Color(47, 48, 42, 255))
self:DrawRainbowRectOutline(1,0,0, w-1,h-1, 2)
end,
Think = function(self, w, h)
self.W, self.H = self:GetSize()
if (self.isFrameOpen) then
self.openGmodWiki:SetVisible(true)
else
self.openGmodWiki:SetVisible(false)
end
self.W, self.H = w, h
end
}
function PANEL:IsOpen(b)
self.isFrameOpen = b
end
function PANEL:Init()
self.isFrameOpen = true
self.W, self.H = self:GetSize()
outside_self = self
self:SetSize(400, 400)
self:SetTitle("Riddle's menu")
self:Center()
self:SetVisible( true )
self:SetDeleteOnClose(false)
self.W, self.H = self:GetSize()
self:ShowCloseButton(false)
self.currentTab = "ExploitTab"
local closeBtn = vgui.Create( "DButton", self )
closeBtn:SetText( "X" )
closeBtn:SetPos( self.W * 0.93, 5 )
closeBtn:SetSize( 20, 20 )
closeBtn:SetTextColor(Color(255,255,255))
closeBtn.DoClick = function() self:Close() end
closeBtn.Paint = function(self,w,h) draw.RoundedBox(0, 0, 0, w, h,
Color(170, 37, 37)) end
local infoBtn = vgui.Create( "DButton", self )
infoBtn:SetText( "?" )
infoBtn:SetFont("questionMarkFont")
infoBtn:SetPos( self.W * 0.87, 5 )
infoBtn:SetSize( 20, 20 )
infoBtn:SetTextColor(Color(255,255,255))
infoBtn.DoClick = function()
infoPopup = vgui.Create("infoPopup")
infoPopup:setInfoText(self.currentTab)
end
infoBtn.Paint = function(self,w,h) draw.RoundedBox(0, 0, 0, w, h,
Color(37, 37, 170)) end
sheet = vgui.Create( "DPropertySheet", self )
sheet:SetPos(1, 20)
sheet:SetSize(397, 376)
local exploitsPanel = vgui.Create( "DPanel", sheet )
exploitsPanel:Dock(FILL)
self.NetLoggerPanel = vgui.Create( "DPanel", sheet )
self.NetLoggerPanel:Dock(FILL)
local repeaterPanel = vgui.Create( "DPanel", sheet )
repeaterPanel:Dock(FILL)
-- local luaViewerPanel = vgui.Create( "DPanel", sheet )
-- luaViewerPanel:Dock(FILL)
local luaEditorPanel = vgui.Create( "DPanel", sheet )
luaEditorPanel:Dock(FILL)
-- ExploitsTab = sheet:AddSheet( "Exploits", exploitsPanel,
"icon16/world.png" )
NetLoggerTab = sheet:AddSheet( "Net Logger", self.NetLoggerPanel,
"icon16/page_white_edit.png" )
repeaterTab = sheet:AddSheet( "Repeater", repeaterPanel,
"icon16/arrow_rotate_anticlockwise.png" )
interceptorTab = sheet:AddSheet( "Intcepter", repeaterPanel,
"icon16/lock_go.png" )
--luaViewerTab = sheet:AddSheet( "Lua Viewer", luaViewerPanel,
"icon16/folder.png", false, false, "See server's clientside files" )
luaEditorTab = sheet:AddSheet( "Lua Editor", luaEditorPanel,
"icon16/application_xp_terminal.png", false, false, "See server's clientside files"
)
self.NetLoggerPanel.Paint = function(s,w,h)
draw.RoundedBox(0, 0, 0, w, h, Color(39, 40, 34))
end
self.CategoryList = vgui.Create( "DCategoryList", self.NetLoggerPanel )
self.CategoryList.Paint = function(self,w,h) draw.RoundedBox(0, 0, 0,
w, h, Color(39, 40, 34)) end
self.CategoryList:Dock( FILL )
-- adding stuff to net_logger
c = 0
hook.Add( "RecvNetMsg", "netlogger2", function( netmsg )
c = c + 1
self:addToCatergory(netmsg, c)
end )
-- creating the panels
-- luaViewer = vgui.Create("luaviewer", luaViewerPanel)
luaEditor = vgui.Create("CodeEditor", luaEditorPanel)
luaEditor:setFill(true)
--main_menu = vgui.Create("main_menu", exploitsPanel)
local browser = vgui.Create("browser", self)
browser:SetPos(600,40)
browser:SetVisible(false)
-- Detouring and resizeing the panels when you click on them
-- DoClickExploitsTab = ExploitsTab.Tab.DoClick
DoClickNetLoggerTab = NetLoggerTab.Tab.DoClick
--DoClickrepeaterTab = luaViewerTab.Tab.DoClick
DoClickLuaViewerTab = repeaterTab.Tab.DoClick
DoClickluaEditorTab = luaEditorTab.Tab.DoClick
DoClickincepterTab = interceptorTab.Tab.DoClick
-- ExploitsTab.Tab.DoClick = function (...)
-- -- outside_self:SizeTo(400, 600, 0.2, 0, 4)
-- -- sheet:SetSize(397, 574)
-- browser:SetVisible(false)
-- outside_self:SizeTo(700, 600, 0.2, 0, 4)
-- sheet:SetSize(697, 574)
-- timer.Create( "Center2", 0.1, 5, function()
outside_self:Center() infoBtn:SetPos( self.W * 0.92, 5 ) closeBtn:SetPos(self.W *
0.96, 5) end )
-- self.currentTab = "ExploitTab"
-- DoClickExploitsTab(...)
-- end
NetLoggerTab.Tab.DoClick = function (...)
outside_self:SizeTo(400, 400, 0.2, 0, 4)
sheet:SetSize(397, 376)
-- closeBtn:SetPos(self.W * 0.95, 5)
timer.Create( "Center3", 0.1, 5, function() outside_self:Center()
infoBtn:SetPos( self.W * 0.87, 2 ) closeBtn:SetPos(self.W * 0.93, 2) end )
self.currentTab = "NetLoggerTab"
DoClickNetLoggerTab(...)
end
repeaterTab.Tab.DoClick = function (...)
-- outside_self:SizeTo(400, 400, 0.2, 0, 4)
-- sheet:SetSize(400, 379)
-- timer.Create( "Center2", 0.1, 5, function()
outside_self:Center() infoBtn:SetPos( self.W * 0.87, 2 ) closeBtn:SetPos(self.W *
0.93, 2) end )
-- self.currentTab = "RepeaterTab"
-- DoClickrepeaterTab(...) -- stops the click from going through
i.e wont switch when clicked
end
interceptorTab.Tab.DoClick = function (...)
-- outside_self:SizeTo(400, 400, 0.2, 0, 4)
-- sheet:SetSize(400, 379)
-- timer.Create( "Center2", 0.1, 5, function()
outside_self:Center() infoBtn:SetPos( self.W * 0.87, 2 ) closeBtn:SetPos(self.W *
0.93, 2) end )
-- self.currentTab = "interceptorTab"
-- DoClickincepterTab(...) -- stops the click from going through
i.e wont switch when clicked
end
-- luaViewerTab.Tab.DoClick = function(...)
-- outside_self:SizeTo(ScrW() * .95, ScrH() * .95, 0.2, 0, 4)
-- sheet:SetSize(ScrW() * .95, ScrH() * .95)
-- browser:SetVisible(false)
-- timer.Create( "Center1", 0.1, 5, function()
outside_self:Center() infoBtn:SetPos( self.W * 0.94, 5 ) closeBtn:SetPos(self.W *
0.97, 5) end )
-- self.currentTab = "LuaViewerTab"
-- DoClickLuaViewerTab(...)
-- end
luaEditorTab.Tab.DoClick = function (...)
outside_self:SizeTo(595, 600, 0.2, 0, 4)
sheet:SetSize(592, 578)
-- outside_self:SizeTo(1200, 600, 0.2, 0, 4)
-- sheet:SetSize(592, 578)
browser:SetVisible(true)
timer.Create( "Center4", 0.1, 5, function() outside_self:Center()
infoBtn:SetPos( self.W * 0.90, 5 ) closeBtn:SetPos(self.W * 0.95, 5) end )
self.currentTab = "LuaEditorTab"
DoClickluaEditorTab(...)
end
self.OnClose = function() self:IsOpen(false)
self.openGmodWiki:SetVisible(false) print("closing")
gui.EnableScreenClicker(false) end
self.openGmodWiki = vgui.Create("DButton", luaEditor)
self.openGmodWiki:SetPos(575, 250)
self.openGmodWiki:SetSize(15, 20)
self.openGmodWiki:SetText(">")
self.openGmodWiki:SetTextColor(Color(255,255,255))
self.openGmodWiki.isOpen = false
self.openGmodWiki.DoClick = function()
self.openGmodWiki.isOpen = !self.openGmodWiki.isOpen
if (self.openGmodWiki.isOpen) then
outside_self:SizeTo(ScrW() * 0.99, 600, 0.2, 0, 4)
self.openGmodWiki:SetText("<")
else
outside_self:SizeTo(595, 600, 0.2, 0, 4)
self.openGmodWiki:SetText(">")
end
sheet:SetSize(592, 578)
timer.Create( "Center4", 0.1, 20, function()
outside_self:Center() end )
end
self.openGmodWiki.Paint = function(self, w, h)
-- 39 G: 40 B: 34
draw.RoundedBox(0, 0, 0, w, h, Color(69, 70, 64))
end
self.Think = function()
self.W, self.H = self:GetSize()
-- print(self.W)
end
end
vgui.Register("frame_handler", PANEL, "DFrame")
exploit_menu = vgui.Create("frame_handler")
exploit_menu:MakePopup()
concommand.Add("_dbg", function()
net.Start("test_message")
net.SendToServer()
end)
concommand.Add("_menu", function ()
if (!exploit_menu) then
exploit_menu = vgui.Create("frame_handler")
end
gui.EnableScreenClicker(true)
exploit_menu:IsOpen(true)
exploit_menu:MakePopup()
exploit_menu:SetVisible( true )
end)