if SERVER then
    util.AddNetworkString("welcome_message")
    hook.Add("PlayerConnect", "welcome_message_hook", function(nickname, ipaddress)
        net.Start("welcome_message")
        net.WriteInt(1, 3)
        net.WriteString(nickname)
        net.Broadcast()
    end)
    hook.Add("PlayerDisconnected", "welcome_message_hook", function(player)
        net.Start("welcome_message")
        net.WriteInt(2, 3)
        net.WriteString(player:Name())
        net.Broadcast()
    end)
else
    net.Receive("welcome_message", function(len, a)
        if IsValid(a) and a:IsPlayer() then return end
        local id, nickname = net.ReadInt(3), net.ReadString()
        if id == 1 then
            chat.AddText(Color(100, 255, 100), nickname .. " подключается к серверу.")
        elseif id == 2 then
            chat.AddText(Color(255, 0, 0), nickname .. " вышел с сервера.")
        else
            return
        end
    end)
end