• Join/Disconnect
    7 replies, posted
Trying to make a join/disconnect message which displays name, and steam id. The current code I have doesn't seem to work. The file location is currently lua/autorun/server [code] function FirstSpawn( ply ) PrintMessage( HUD_PRINTTALK, ply:Nick().. " entered the server, their SteamID is: " ..ply:SteamID() ) end hook.Add( "PlayerInitialSpawn", "playerInitialSpawn", FirstSpawn ) function PlayerDisconnect( ply ) PrintMessage( HUD_PRINTTALK, ply:Nick().. " has disconnected, their SteamID is: " ..ply:SteamID() ) end hook.Add( "PlayerDisconnected", "playerDisconnected", PlayerDisconnect ) [/code]
Try printing something and see what happens
I'd try changing those id strings, naming them after the hook itself is honestly stupid. If that doesn't work then try printing something like said above, remember it'll print to server console so you'll have to look there. Also I'd make those functions either local or anonymous as they don't need to be global
[QUOTE] ----------------------------------------------------- if SERVER then util.AddNetworkString( 'chat_left' ) function left(ply) net.Start( 'chat_left' ) net.WriteString(ply:Nick()) net.WriteString(ply:SteamID()) net.Broadcast() end hook.Add("PlayerDisconnected", "pldis", left) util.AddNetworkString( 'chat_join' ) function join(ply) net.Start( 'chat_join' ) net.WriteString(ply:Nick()) net.WriteString(ply:SteamID()) net.Broadcast() end hook.Add("PlayerInitialSpawn", "pljoin", join) end if CLIENT then function left(leng, ply) local text = net.ReadString() local text2 = net.ReadString() local color1 = Color(66, 199, 255) local color2 = Color(0, 255, 0) local color3 = Color(192,192,192) local color4 = Color(42,82,190) chat.AddText(color4,"[Server name]: ", color3, "Player : ", color2, text, color3," disconnect. His SteamID - ", color1, text2) end net.Receive( 'chat_left', left) function join(leng, ply) local text = net.ReadString() local text2 = net.ReadString() local color1 = Color(66, 199, 255) local color2 = Color(0, 255, 0) local color3 = Color(192,192,192) local color4 = Color(42,82,190) chat.AddText(color4, "[Server name]: ", color3, "Player: ", color2, text, color3," join on server. His SteamID - ", color1, text2) end net.Receive( 'chat_join', join) end [/QUOTE]
[QUOTE=Heroezzz;50956429]code inserted into a quote[/QUOTE] please use [code] tags
[QUOTE]okay[/QUOTE]
This is perhaps the best addon I've seen that does this: [url]https://github.com/myudev/gmod_addons/tree/advjoinleave[/url]
Someone from Ulysses already did this. [url]http://forums.ulyssesmod.net/index.php?topic=6036.0[/url] I rewrote the code though to ignore the wav noises that came with it and also removed the steam ID. Let me get you the code. EDIT: I rewrote the Steam ID feature in to print the Steam ID. Save File As: cl_player.lua [CODE]// client side apple if SERVER then return end // Connected function PlayerConnectAnnouncement( data ) local name = data:ReadString() local isokayforsound = data:ReadString() chat.AddText( Color( 255, 0, 255 ), "[Server] ", Color( 255, 255, 255 ), name, " has connected to the server. Their ID is: "..steamid ) end usermessage.Hook("PlayerConnectAnnouncement", PlayerConnectAnnouncement) // Disconnect function PlayerDisconnectAnnouncement( data ) local name = data:ReadString() local teamcolour = team.GetColor(data:ReadShort()) local steamid = data:ReadString() local isokayforsound = data:ReadString() chat.AddText( Color( 255, 0, 255 ), "[Server] ", teamcolour, name, Color( 255, 255, 255 ), " has left the server. Their ID was: "..steamid ) end usermessage.Hook("PlayerDisconnectAnnouncement", PlayerDisconnectAnnouncement) // Disconnect function PlayerDisconnectAnnouncement2( data ) local name = data:ReadString() local teamcolour = team.GetColor(data:ReadShort()) local isokayforsound = data:ReadString() chat.AddText( Color( 255, 0, 255 ), "[Server] ", teamcolour, name, Color( 255, 255, 255 ), " has left the server." ) end usermessage.Hook("PlayerDisconnectAnnouncement2", PlayerDisconnectAnnouncement2) // Error function PlayerJDAnnouncement( data ) local errrodata = data:ReadString() chat.AddText( errrodata ) MsgC(Color(255,0,0,0), errrodata) surface.PlaySound( "garrysmod/save_load3.wav" ) end usermessage.Hook("PlayerJDAnnouncement", PlayerJDAnnouncement) local ADDON_NAME = "join_disconnect" usermessage.Hook(ADDON_NAME, function(data) local Version1 = data:ReadString() local Version2 = data:ReadString() local ADDON_ACTUAL_NAME = data:ReadString() local DOWNLOAD_LINK = data:ReadString() local Frame = vgui.Create( "DFrame" ) Frame:SetSize( 300, 150 ) Frame:Center() Frame:SetTitle( "Addon: "..ADDON_ACTUAL_NAME.." needs updating" ) Frame:SetSizable(false) Frame:SetDraggable(false) Frame:ShowCloseButton( false ) Frame:MakePopup() local FLabel = vgui.Create( "DLabel", Frame ) FLabel:Center() FLabel:SetPos( 15, 27 ) --FLabel:SetColor(Color(255,255,255,255)) // Color --FLabel:SetFont("default") FLabel:SetText("The addon: "..ADDON_ACTUAL_NAME.." is outdated!") FLabel:SizeToContents() local FLabel2 = vgui.Create( "DLabel", Frame ) FLabel2:Center() FLabel2:SetPos( 15, 40 ) --FLabel2:SetColor(Color(255,255,255,255)) // Color --FLabel2:SetFont("default") FLabel2:SetText("Please contact system administrator to update addon!") FLabel2:SizeToContents() local FLabel3 = vgui.Create( "DLabel", Frame ) FLabel3:Center() FLabel3:SetPos( 15, 53 ) --FLabel3:SetColor(Color(255,255,255,255)) // Color --FLabel3:SetFont("default") FLabel3:SetText("Server's Version:") FLabel3:SizeToContents() local FLabel35 = vgui.Create( "DLabel", Frame ) FLabel35:Center() FLabel35:SetPos( 100, 53 ) FLabel35:SetColor(Color(255,0,0,255)) // Color --FLabel35:SetFont("default") FLabel35:SetText(Version1) FLabel35:SizeToContents() local FLabel4 = vgui.Create( "DLabel", Frame ) FLabel4:Center() FLabel4:SetPos( 15, 66 ) --FLabel4:SetColor(Color(255,255,255,255)) // Color --FLabel4:SetFont("default") FLabel4:SetText("Online Version:") FLabel4:SizeToContents() local FLabel45 = vgui.Create( "DLabel", Frame ) FLabel45:Center() FLabel45:SetPos( 90, 66 ) FLabel45:SetColor(Color(255,0,0,255)) // Color --FLabel45:SetFont("default") FLabel45:SetText(Version2) FLabel45:SizeToContents() local FLabel5 = vgui.Create( "DLabel", Frame ) FLabel5:Center() FLabel5:SetPos( 15, 81 ) --FLabel5:SetColor(Color(255,255,255,255)) // Color --FLabel5:SetFont("default") FLabel5:SetText("Addon:") FLabel5:SizeToContents() local FLabel55 = vgui.Create( "DButton", Frame ) FLabel55:SetSize(ScrW() * 0.025, ScrH() * 0.015) FLabel55:Center() FLabel55:SetPos( 52, 83 ) FLabel55:SetText("Link") FLabel55.DoClick = function() gui.OpenURL(DOWNLOAD_LINK) end local Close = vgui.Create("DButton", Frame) Close:SetSize(ScrW() * 0.050, ScrH() * 0.025) Close:Center() Close:SetPos(105,120) Close:SetText("Ok") Close.DoClick = function() if Checkbox:GetChecked() == true then net.Start( ADDON_NAME ) net.WriteEntity(LocalPlayer()) net.SendToServer() end end local Checkbox = vgui.Create( "DCheckBox", Frame ) Checkbox:Center() Checkbox:SetPos( 65, 105 ) Checkbox:SetChecked( false ) local FLabel6 = vgui.Create( "DLabel", Frame ) FLabel6:Center() FLabel6:SetPos( 85, 105 ) FLabel6:SetColor(Color(255,0,0,255)) // Color FLabel6:SetFont("default") FLabel6:SetText("Never show message again!") FLabel6:SizeToContents() local Close = vgui.Create("DButton", Frame) Close:SetSize(ScrW() * 0.050, ScrH() * 0.025) Close:Center() Close:SetPos(105,120) Close:SetText("Ok") Close.DoClick = function() if Checkbox:GetChecked() == true then net.Start( ADDON_NAME ) net.WriteEntity(LocalPlayer()) net.SendToServer() end Frame:Close() end end)[/CODE] Save File As: sv_player.lua [CODE]// server side apple if CLIENT then return end AddCSLuaFile( "cl_player.lua" ) if file.Exists( "apple_join_disconnect_warning/indicate.txt", "DATA" ) == false then file.CreateDir("apple_join_disconnect_warning") file.Write( "apple_join_disconnect_warning/indicate.txt", "1" ) end //Connected function PlayerConnectAnnouncement( ply, ip ) for k,v in pairs(player.GetAll()) do umsg.Start( "PlayerConnectAnnouncement", v) umsg.String(ply) umsg.String(file.Read( "apple_join_disconnect_warning/indicate.txt" )) umsg.End() end Msg("Player " .. ply .. " has connected to the server.\n") end hook.Add( "PlayerConnect", "PlayerConnectAnnouncement", PlayerConnectAnnouncement ) //Spawn function PlayerInitialSpawnAnnouncement( ply ) timer.Simple( 3, function() if !ply:IsValid() then return end for k,v in pairs(player.GetAll()) do if v:IsAdmin() then -- if ply:IsBot() then return end umsg.Start( "PlayerInitialSpawnAnnouncement", v) umsg.String(ply:Nick()) umsg.Short(ply:Team()) umsg.String(ply:SteamID()) umsg.String(file.Read( "apple_join_disconnect_warning/indicate.txt" )) umsg.End() else umsg.Start( "PlayerInitialSpawnAnnouncement2", v) umsg.String(ply:Nick()) umsg.Short(ply:Team()) umsg.String(file.Read( "apple_join_disconnect_warning/indicate.txt" )) umsg.End() end end Msg("Player " .. ply:Nick() .. " has spawned in the server.\n") end) end hook.Add( "PlayerInitialSpawn", "PlayerInitialSpawnAnnouncement", PlayerInitialSpawnAnnouncement ) //Disconnect function PlayerDisconnectAnnouncement( ply ) for k,v in pairs(player.GetAll()) do if v:IsAdmin() then if ply:IsBot() then return end umsg.Start( "PlayerDisconnectAnnouncement", v) umsg.String(ply:Nick()) umsg.Short(ply:Team()) umsg.String(ply:SteamID()) umsg.String(file.Read( "apple_join_disconnect_warning/indicate.txt" )) umsg.End() else umsg.Start( "PlayerDisconnectAnnouncement2", v) umsg.String(ply:Nick()) umsg.Short(ply:Team()) umsg.String(file.Read( "apple_join_disconnect_warning/indicate.txt" )) umsg.End() end end Msg("Player " .. ply:Nick() .. " has left the server.\n") end hook.Add( "PlayerDisconnected", "PlayerDisconnectAnnouncement", PlayerDisconnectAnnouncement ) concommand.Add( "jd_sounds", function(ply, cmd, args) if ply:IsPlayer() == false || ply:IsSuperAdmin() == false then MsgC(Color(255,0,0,255),"Either console has attempted to turn sounds off, or a player is attempting to turn sounds off for apple_join_disonnect_warning addon!") return end if tostring(args[1]) == "on" then file.Write( "apple_join_disconnect_warning/indicate.txt", "1" ) umsg.Start( "PlayerJDAnnouncement", ply) umsg.String("You have turned on s
Sorry, you need to Log In to post a reply to this thread.