I've been to the GMod wiki but nothing really helps me understand how to use user messages to relay information to people--for example, I want to eventually use it to replace the datastream system currently in place inside DarkRP's code.
Any help would be totally awesome. :)
Say you wanted to tell a client when someone has died, and who killed them.
Clientside code would be:
[lua]
usermessage.Hook("PlayerKilledUM", function( um ) -- Make the hook
local ply = um:ReadString() -- The dead player is the first string
local att = um:ReadString() -- The killer is the second string
print( string.format( "Oh noes! %s was killed by %s!", ply, att ) ) -- Print to the console that att killed ply
end )
[/lua]
Serverside:
[lua]
hook.Add("DoPlayerDeath", "PlayerKilledUM", function( ply, att )
umsg.Start("PlayerKilledUM") -- Start the usermessage. No player is specified so it's sending it to all players
umsg.String( ply:Nick() ) -- Send the first string as the dead player's name
if ValidEntity( att ) and att:IsPlayer() then -- Checking to see if the attacker is a player (you can't call :Nick() on non-player entities)
umsg.String( att:Nick() ) -- If it is, send the second string as their name
else
umsg.String("Non-Player") -- Else, send the second string as "Non-Player"
end -- End the check
umsg.End()
end ) -- End the function
[/lua]
umsg.End() at the end of that serverside part too, just after the "end the check" comment
[QUOTE=superkyol;21621735]I want to eventually use it to replace the datastream system currently in place inside DarkRP's code.[/QUOTE]
FYI Datastream is just a lua module that uses usermessages to communicate with the client.
[QUOTE=Crazy Quebec;21628874]FYI Datastream is just a lua module that uses usermessages to communicate with the client.[/QUOTE]
and console commands :cop:
[QUOTE=CombineGuru;21628901]and console commands :cop:[/QUOTE]
For client to server communications. Not the other way around. :clint:
[QUOTE=Crazy Quebec;21628934]For client to server communications. Not the other way around. :clint:[/QUOTE]
ya :bahgawd:
Sorry, you need to Log In to post a reply to this thread.