Something rather simple

Can somebody make a thing that tells who sprayed the spray and then prevents people from spraying their spray to overlap it?

-snip-

This isn’t simple. Don’t say it is when you have no fucking clue.

This wouldn’t even be worth the time making
OH NOEZ HE SPRAYED OVER MY PRETTY SPRAY

It is simple because I’ve had it done within 30 minutes of requesting it before… the problem was i cannot get intouch with that person again.

I use this on my server. You could probably edit it slightly to prevent spraying entirely if another player’s spray (NWVector here) is close.
[lua]
if SERVER then

AddCSLuaFile("trace_dem_sprays.lua")

function ResetSpray( ply )
	ply:SetNWVector( "SprayPos", Vector( 0, 0, 0 ) )
end
hook.Add( "PlayerInitialSpawn", "ResetSpray", ResetSpray )
 
function OnSpray( ply )
	local pos = ply:GetEyeTrace().HitPos
	ply:SetNWVector( "SprayPos", pos )
end
hook.Add( "PlayerSpray", "HandleSpray", OnSpray )

function ChatCommandSpray(ply, text)
	if ( text == "!spray" or text == "!spraytrace" or text == "!tracespray") then
	   ply:ConCommand("spraytrace")
	   return ""
	end	
end
hook.Add("PlayerSay", "ChatCommandSpray", ChatCommandSpray)

end

if CLIENT then

function ShowSprayOwner()
	local Trace = LocalPlayer():GetEyeTrace()
	local LookAt = Trace.HitPos
	local demcounter = 0 
	
	for _, pl in pairs(player.GetAll()) do
		if demcounter > 0 then break end
		local SPos = pl:GetNWVector( "SprayPos" )         
		if SPos != Vector(0, 0, 0) and LookAt:Distance( SPos ) < 32 and Trace.HitWorld and LocalPlayer():GetPos():Distance( SPos ) < 400 then
			local Text = pl:Nick() .. "'s Spray"
			local Text2 = pl:SteamID()
			surface.SetFont( "ScoreboardText" )
			local w, h = surface.GetTextSize( Text )
			local w2, h2 = surface.GetTextSize( Text2 )
			w = w + 5
			h = h + 5
			w2 = w2 + 5
			h2 = h2 + 5
			demcounter = demcounter + 1			
			draw.WordBox( 6, ScrW() / 2 - w / 2, ScrH() / 2 - h / 2, Text, "ScoreboardText", Color( 0, 0, 0, 200 ), team.GetColor( pl:Team() ) )
			draw.WordBox( 6, ScrW() / 2 - w2 / 2, (ScrH() / 2 - h2 / 2) + 31, Text2, "ScoreboardText", Color( 0, 0, 0, 200 ), Color(255,255,255,255) )
		end
	
	end
end
hook.Add( "HUDPaint", "ShowSprayOwner", ShowSprayOwner )

function PrintSprayOwner()
	local Trace = LocalPlayer():GetEyeTrace()
	local LookAt = Trace.HitPos
	for _, pl in pairs(player.GetAll()) do
		local SPos = pl:GetNWVector( "SprayPos" )
		if SPos != Vector(0, 0, 0) and LookAt:Distance( SPos ) < 32 and Trace.HitWorld and LocalPlayer():GetPos():Distance( SPos ) < 600 then
			local Text = pl:Nick() .. "'s"
			local Text2 = " (" .. pl:SteamID() .. ") "
			chat.AddText(team.GetColor( pl:Team() ),Text,Color(255,255,255,255),Text2,team.GetColor( pl:Team() ),"Spray.")
		end
	end
end
concommand.Add("spraytrace",PrintSprayOwner)

end
[/lua]

Thanks

Simple would take 5 minutes. ‘simple’ and ‘not an entire fucking gamemode’ are two different things.

How stupid can one person be? This is not a gamemode and actually it took about 10 minutes for it to be finished. This is just a simple script to tell me whos spray belongs to who and to prevent spray covering…

As i said. The time it takes to do something is not related to the simplicity of the problems one has to overcome in order to accomplish said tasks. Making a sandwich is simple, yet it takes a good 10 minutes to get all the ingredients and assemble it. Making pancakes isn’t as simple, yet takes about the same amount of time. So, to use your own words, “How stupid can one person be?”

And that’s 69 lines. 10 lines would be ‘simple’

And my final point, Say you go into a mechanic’s shop because your air conditioning broke. He fixes it in 30 minutes. Was it simple? Just becaus ehe knows what he is fucking doing doesn’t mean it is simple.

That code is extremely simple. It uses basic lua which isnt hard to learn at all.

Simplicity isnt based on how long it takes or how big it is, more of how complicated it is.

Its different for everyone.

But more or less simple is more commonly used for irony.

Nice thanks… I would say that script above was simple. Doesn’t seem to complicated and my lua friends think it is “simple” aswell.

Edit:

It for admining bad sprays and to sotp people from spraying over those bad sprays so i can still see them.