Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local cef = (function()
- local self = {}
- local subscribe = false
- local eventFunction = nil
- addEventHandler("onSendPacket",function(id, bs, priority, reliability, orderingChannel)
- if not subscribe then return end
- if id == 220 then
- local id = raknetBitStreamReadInt8(bs)
- local packet = raknetBitStreamReadInt8(bs)
- local len = raknetBitStreamReadInt16(bs)
- raknetBitStreamIgnoreBits(bs, 24)
- local str = raknetBitStreamReadString(bs, len)
- if packet ~= 0 and packet ~= 1 and #str > 2 then
- local result = str
- if type(result) ~= "nil" then
- return eventFunction('S', result)
- end
- end
- end
- end)
- addEventHandler("onReceivePacket",function(id, bs)
- if not subscribe then return end
- if id == 220 then
- raknetBitStreamIgnoreBits(bs, 8)
- if raknetBitStreamReadInt8(bs) == 17 then
- raknetBitStreamIgnoreBits(bs, 32)
- local length = raknetBitStreamReadInt16(bs)
- local encoded = raknetBitStreamReadInt8(bs)
- local result = (encoded ~= 0) and raknetBitStreamDecodeString(bs, length + encoded) or raknetBitStreamReadString(bs, length)
- if type(result) ~= "nil" then
- return eventFunction('R', result)
- end
- end
- end
- end)
- --Interfaces
- function self.subscribeEvents(var, func)
- if type(var) ~= "boolean" then error('bad argument #1 to subscribe, boolean expected got: '..type(var)) end
- if var == true and type(func) ~= "function" then error('bad argument #2 to subscribe, function expected got: '..type(func)) end
- subscribe = var
- eventFunction = func or nil
- return subscribe
- end
- function self.send(str)
- if type(str) ~= "string" or #str == 0 then error('bad argument #1 to send, not empty string expected got: '..type(str)) end
- local bs = raknetNewBitStream()
- raknetBitStreamWriteInt8(bs, 220)
- raknetBitStreamWriteInt8(bs, 18)
- raknetBitStreamWriteInt16(bs, #str)
- raknetBitStreamWriteString(bs, str)
- raknetBitStreamWriteInt16(bs, 0)
- raknetSendBitStream(bs)
- raknetDeleteBitStream(bs)
- end
- function self.emulate(str)
- local bs = raknetNewBitStream()
- raknetBitStreamWriteInt8(bs, 17)
- raknetBitStreamWriteInt16(bs, 0)
- raknetBitStreamWriteInt16(bs, #str)
- raknetBitStreamWriteString(bs, str)
- raknetEmulPacketReceiveBitStream(220, bs)
- raknetDeleteBitStream(bs)
- end
- function self.sendPacket(...)
- local packet = {...}
- local bs = raknetNewBitStream()
- for _, value in ipairs(packet) do
- raknetBitStreamWriteInt8(bs, value)
- end
- raknetSendBitStreamEx(bs, 1, 7, 1)
- raknetDeleteBitStream(bs)
- end
- function self.emulatePacket(...)
- local packetTable = {...}
- local bs = raknetNewBitStream()
- raknetBitStreamWriteInt8(bs, packetTable[2]) -- 220
- for i = 2, #packetTable do
- local value = packetTable[i]
- if type(value) == "number" then
- raknetBitStreamWriteInt32(bs, value)
- elseif type(value) == "string" then
- raknetBitStreamWriteInt32(bs, #value)
- raknetBitStreamWriteString(bs, value)
- end
- end
- raknetEmulPacketReceiveBitStream(packetTable[1], bs)
- raknetDeleteBitStream(bs)
- end
- return self
- end)()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement