diff --git a/README.md b/README.md new file mode 100644 index 0000000..44defaf --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +# 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() +```