Solvednet logger

Posts 1–12 of 12 · Page 1 of 1
net logger
so is there a way to print all of the servers net messages?
If you use scripthook you can just add
Code:
if (net.Receive and net.Start and !ok) then
	ok = true
	
	local oStart = net.Start
	local oReceive = net.Receive
	
	net.Start = function(...)
		print(...)
		return oStart
	end
	
	net.Receive = function(...)
		print(...)
		return oReceive
	end
end
to scripthook.lua
Quote Originally Posted by Cyaegha View Post
If you use scripthook you can just add
Code:
if (net.Receive and net.Start and !ok) then
	ok = true
	
	local oStart = net.Start
	local oReceive = net.Receive
	
	net.Start = function(...)
		print(...)
		return oStart
	end
	
	net.Receive = function(...)
		print(...)
		return oReceive
	end
end
to scripthook.lua
this one glitches out the server and i cant type in chat or do anything

- - - Updated - - -

Quote Originally Posted by zombiiju View Post
Code:
if( net && !done ) then 
	done = true 
	for k , v in next, net do
		if ( type( v ) != "function" ) then continue end 
		net[k] = function( ... )
			print( k , ... )
			return v( ... )
		end 			
	end	
end
and this doesnt print the net message names like net.Start("gay") http://prntscr.com/dc86sa
Quote Originally Posted by Cyaegha View Post
If you use scripthook you can just add
Code:
if (net.Receive and net.Start and !ok) then
	ok = true
	
	local oStart = net.Start
	local oReceive = net.Receive
	
	net.Start = function(...)
		print(...)
		return oStart
	end
	
	net.Receive = function(...)
		print(...)
		return oReceive
	end
end
to scripthook.lua
WRONG
Code:
if (net.Receive and net.Start and !ok) then
	ok = true
	
	local oStart = net.Start
	local oReceive = net.Receive
	
	net.Start = function(...)
		print(...)
		return oStart(...)
	end
	
	net.Receive = function(...)
		print(...)
		return oReceive(...)
	end
end
Quote Originally Posted by eth0s View Post
WRONG
Code:
if (net.Receive and net.Start and !ok) then
	ok = true
	
	local oStart = net.Start
	local oReceive = net.Receive
	
	net.Start = function(...)
		print(...)
		return oStart(...)
	end
	
	net.Receive = function(...)
		print(...)
		return oReceive(...)
	end
end
I wrote that at like 3am stop being mean
Code:
if( net && !done ) then 
	done = true 
	for k , v in next, net do
		if ( type( v ) != "function" ) then continue end 
		net[k] = function( ... )
			print( k , ... )
			return v( ... )
		end 			
	end	
end
credits go to kali

Code:
netlog = netlog || {};
netlog.receivers = netlog.receivers || {};
netlog.originals = netlog.originals || {};
netlog.curmsg = "";
netlog.types = {
	["Angle"] = true,
	["Bit"] = true,
	["Bool"] = true,
	["Color"] = true,
	["Data"] = true,
	["Double"] = true,
	["Entity"] = true,
	["Float"] = true,
	["Int"] = true,
	["Normal"] = true,
	["String"] = true,
	["Table"] = true,
	["Type"] = true,
	["UInt"] = true,
	["Vector"] = true,
};

function netlog.log(msg)
	print("netLog] " .. msg)
end

function netlog.detour(name, func, newfunc)
	netlog.log("detoured net function " .. name);
	
	local ofunc = func;
	netlog.originals[name] = netlog.originals[name] || ofunc;
	return newfunc;
end

function netlog.setcurnet(netname)
	if (!netname || !isstring(netname)) then
		return;
	end

	if (netlog.curmsg && netlog.curmsg != "") then
		netlog.log("---end net msg " .. netlog.curmsg .. "---");
	end

	netlog.log("---begin net msg " .. netname .. "---");
	netlog.curmsg = netname;
	netlog.originals["net.Start"](netname);
end

function netlog.endcurnet()
	netlog.log("---end net msg " .. netlog.curmsg .. "---");
	netlog.curmsg = "";
	netlog.originals["net.SendToServer"]();
end

function netlog.think()
	local same = true;

	for name, func in next, net.Receivers do
		if (!netlog.receivers[name]) then
			same = false;
			netlog.receivers[name] = func;
		end
	end

	if (!same) then
		for name, func in next, net.Receivers do
			netlog.log("detouring net receiver function for " .. name);

			net.Receivers[name] = function(len)
				if (netlog.curmsg && netlog.curmsg != "") then
					netlog.log("---end net msg " .. netlog.curmsg .. "---");
				end

				netlog.log("---begin net msg " .. name .. "---");
				netlog.curmsg = name;
				netlog.receivers[name](len);
			end
		end
	end
end

net.Start = netlog.detour("net.Start", net.Start, netlog.setcurnet);
net.SendToServer = netlog.detour("net.SendToServer", net.SendToServer, netlog.endcurnet);
netlog.log("added think hook");
hook.Add("Think", "netlog.think", netlog.think);

for name, valid in next, netlog.types do
	if (!valid) then
		continue;
	end

	if (net["Read" .. name]) then
		netlog.log("detouring net read function " .. string.lower(name));
		netlog.originals["net.Read" .. name] = netlog.originals["net.Read" .. name] || net["Read" .. name];
		local ofunc = netlog.originals["net.Read" .. name];

		net["Read" .. name] = function(read)
			local ret = ofunc(read);
			netlog.log("read " .. string.lower(name) .. ": " .. tostring(ret));
			return ret;
		end
	end

	if (net["Write" .. name]) then
		netlog.log("detouring net write function " .. string.lower(name));
		netlog.originals["net.Write" .. name] = netlog.originals["net.Write" .. name] || net["Write" .. name];
		local ofunc = netlog.originals["net.Write" .. name];

		net["Write" .. name] = function(write, ...)
			netlog.log("wrote " .. string.lower(name) .. ": " .. tostring(write));
			ofunc(write, ...);
		end
	end
end
Quote Originally Posted by DeVoExploiter View Post
what are net logs good for ?
Logging net messages.
Quote Originally Posted by Cyaegha View Post
Logging net messages.
yes i know that but what u can do with net messages ? Im just interested
Posts 1–12 of 12 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us