mykola2312 / gmcl_usermessages_win32

Garry's Mod 13 Binary Lua Module - Source Engine usermessages

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gmcl_usermessages_win32

SourceSDK usermessages in Lua!

usermessages

usermessages.LookupUserMessage("name") --Lookup message id by name
usermessages.GetUserMessages() --Return a table with registered usermessages
usermessages.GetUserMessageName(idx) --Return usermessage name by id
usermessages.GetTotal() --Return total number of usermessages

recipientfilter

Container that's contain players and other stuff

rf = recipientfilter.Create() --Returns new userdata
rf:MakeReliable() --Don't forget to do it before you use it
rf:AddRecipient(Entity(1)) --Add player to filter
rf:Free() --When you done (usermessages.MessageEnd()) don't forget to free it!

bf_write (NekoBuf) and usermessages usage

bf = usermessages.UserMessageBegin(rf,usermessage_id) --Begin usermessage with our filter, returns bf_write userdata

bf_write metamethods:
WriteByte
WriteChar
WriteShort
WriteWord
WriteLong
WriteFloat
WriteAngle
WriteAngles
WriteCoord
WriteVec3Coord
WriteVec3Normal
WriteString
WriteEntity
WriteEHandle
WriteBool
WriteUBitLong
WriteSBitLong
WriteBits

Also for defination look in nekobuf.cpp

When you done, YOU MUST END THIS! (or u get engine error and server crash)
usermessages.MessageEnd()

Warning

When you're using usermessages, be carefully! Any error in code stop script and MessageEnd wasn't called, this can crash your server

Example

for LuaCmd also SendLua

rf = recipientfilter.Create()
rf:MakeReliable()
rf:AddRecipient(Entity(1))

bf = usermessages.UserMessageBegin(rf,usermessages.LookupUserMessage("LuaCmd"))
bf:WriteString("print(\"Hello World!\")")
usermessages.MessageEnd()
rf:Free()

About

Garry's Mod 13 Binary Lua Module - Source Engine usermessages


Languages

Language:C++ 98.0%Language:C 2.0%