Hello guys!
I tried to make a simple script which print messages to chat and server console when somebody connect, spawn, leave server.
That's actually it is:
cl_joinleave.lua
[CODE]
function PlayerJoin( ply )
local nick = ply:Nick();
local steam = ply:SteamID();
chat.AddText( "Player ", nick ," (", steam ,") joined." );
print( "Player "..ply:Nick().." ("..ply:SteamID()..") joined" );
end
usermessage.Hook( "PlayerJoin", PlayerJoin );
function PlayerSpawn( ply )
local nick = ply:Nick();
local steam = ply:SteamID();
chat.AddText( "Player ", nick ," (", steam ,") spawned." );
print( "Player "..ply:Nick().." ("..ply:SteamID()..") spawned" );
end
usermessage.Hook( "PlayerSpawned", PlayerSpawned );
function PlayerLeave( ply )
local nick = ply:Nick();
local steam = ply:SteamID();
chat.AddText( "Player ", nick ," (", steam ,") disconnected." );
print( "Player "..ply:Nick().." ("..ply:SteamID()..") disconnected" );
end
usermessage.Hook( "PlayerLeave", PlayerLeave );
[/CODE]
How to make this work in a good way?
What code must be in a sv_joinleave.lua?
That is not how usermessages work. I'd suggest you on reading it up a bit more. The serverside part should be pretty simple for what you're doing, maximum 10 lines.
[url]http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/indexd325.html?title=User_Messages[/url]
You would want to use gamemode hooks for this sort of thing.
GM hooks:
[URL="http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/indexd101.html?title=Gamemode_Hooks"]http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/indexd101.html?title=Gamemode_Hooks[/URL]
Connect:
[URL="http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/index0d60.html?title=Gamemode.PlayerConnect"]http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/index0d60.html?title=Gamemode.PlayerConnect[/URL]
Disc
[URL="http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/index01a8.html?title=Gamemode.PlayerDisconnected"]http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/index01a8.html?title=Gamemode.PlayerDisconnected[/URL]
I made this:
[CODE]
function UserConnect( ply )
for k,v in pairs(player.GetAll()) do
v:ChatPrint("Player " .. ply:Nick() .. "(" .. ply:SteamID() .. ") connected.")
end
end
hook.Add( "PlayerConnect", "playerconnect", UserConnect )
[/CODE]
But server doesn't want this to work fine.
Print this:
[CODE]
ERROR: Hook 'playerconnect' Failed: [@addons\autorun\lua\auto\sv\sv_messages.lua:3] bad key to string index (number expected, got string)
Removing Hook 'playerconnect'
[/CODE]
If you want their steamid you might want to use this:
[URL="http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/index2901.html?title=Gamemode.PlayerInitialSpawn"]http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/index2901.html?title=Gamemode.PlayerInitialSpawn[/URL]
[lua]
hook.Add( "PlayerInitialSpawn", "playerInitialSpawn" function(ply)
for k,v in pairs(player.GetAll()) do
v:ChatPrint("Player " .. ply:Nick() .. "(" .. ply:SteamID() .. ") connected.")
end
end)
[/lua]
This tag is called [.lua][./lua] btw
Sorry, you need to Log In to post a reply to this thread.