Advertisement
romanespit

Untitled

Apr 12th, 2025
415
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.59 KB | None | 0 0
  1. local cef = (function()
  2.     local self = {}
  3.  
  4.     local subscribe = false
  5.     local eventFunction = nil
  6.  
  7.     addEventHandler("onSendPacket",function(id, bs, priority, reliability, orderingChannel)
  8.         if not subscribe then return end
  9.         if id == 220 then
  10.             local id = raknetBitStreamReadInt8(bs)
  11.             local packet = raknetBitStreamReadInt8(bs)
  12.             local len = raknetBitStreamReadInt16(bs)
  13.             raknetBitStreamIgnoreBits(bs, 24)
  14.             local str = raknetBitStreamReadString(bs, len)
  15.             if packet ~= 0 and packet ~= 1 and #str > 2 then
  16.                 local result = str
  17.                 if type(result) ~= "nil" then
  18.                     return eventFunction('S', result)
  19.                 end
  20.             end
  21.         end
  22.     end)
  23.    
  24.     addEventHandler("onReceivePacket",function(id, bs)
  25.         if not subscribe then return end
  26.         if id == 220 then
  27.             raknetBitStreamIgnoreBits(bs, 8)
  28.             if raknetBitStreamReadInt8(bs) == 17 then
  29.                 raknetBitStreamIgnoreBits(bs, 32)
  30.                 local length = raknetBitStreamReadInt16(bs)
  31.                 local encoded = raknetBitStreamReadInt8(bs)
  32.                 local result = (encoded ~= 0) and raknetBitStreamDecodeString(bs, length + encoded) or raknetBitStreamReadString(bs, length)
  33.                 if type(result) ~= "nil" then
  34.                     return eventFunction('R', result)
  35.                 end
  36.             end
  37.         end
  38.     end)
  39.  
  40.     --Interfaces
  41.  
  42.     function self.subscribeEvents(var, func)
  43.         if type(var) ~= "boolean" then error('bad argument #1 to subscribe, boolean expected got: '..type(var)) end
  44.         if var == true and type(func) ~= "function" then error('bad argument #2 to subscribe, function expected got: '..type(func)) end
  45.         subscribe = var
  46.         eventFunction = func or nil
  47.         return subscribe
  48.     end
  49.  
  50.     function self.send(str)
  51.         if type(str) ~= "string" or #str == 0 then error('bad argument #1 to send, not empty string expected got: '..type(str)) end
  52.         local bs = raknetNewBitStream()
  53.         raknetBitStreamWriteInt8(bs, 220)
  54.         raknetBitStreamWriteInt8(bs, 18)
  55.         raknetBitStreamWriteInt16(bs, #str)
  56.         raknetBitStreamWriteString(bs, str)
  57.         raknetBitStreamWriteInt16(bs, 0)
  58.         raknetSendBitStream(bs)
  59.         raknetDeleteBitStream(bs)
  60.     end
  61.  
  62.     function self.emulate(str)
  63.         local bs = raknetNewBitStream()
  64.         raknetBitStreamWriteInt8(bs, 17)
  65.         raknetBitStreamWriteInt16(bs, 0)
  66.         raknetBitStreamWriteInt16(bs, #str)
  67.         raknetBitStreamWriteString(bs, str)
  68.         raknetEmulPacketReceiveBitStream(220, bs)
  69.         raknetDeleteBitStream(bs)
  70.     end
  71.  
  72.     function self.sendPacket(...)
  73.         local packet = {...}
  74.         local bs = raknetNewBitStream()
  75.         for _, value in ipairs(packet) do
  76.             raknetBitStreamWriteInt8(bs, value)
  77.         end
  78.         raknetSendBitStreamEx(bs, 1, 7, 1)
  79.         raknetDeleteBitStream(bs)
  80.     end
  81.  
  82.     function self.emulatePacket(...)
  83.         local packetTable = {...}
  84.  
  85.         local bs = raknetNewBitStream()
  86.    
  87.         raknetBitStreamWriteInt8(bs, packetTable[2]) -- 220
  88.    
  89.         for i = 2, #packetTable do
  90.             local value = packetTable[i]
  91.             if type(value) == "number" then
  92.                 raknetBitStreamWriteInt32(bs, value)
  93.             elseif type(value) == "string" then
  94.                 raknetBitStreamWriteInt32(bs, #value)
  95.                 raknetBitStreamWriteString(bs, value)
  96.             end
  97.         end
  98.    
  99.         raknetEmulPacketReceiveBitStream(packetTable[1], bs)
  100.         raknetDeleteBitStream(bs)
  101.     end
  102.  
  103.     return self
  104. end)()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement