stoneharry

Untitled

Apr 17th, 2014
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.19 KB | None | 0 0
  1.  
  2. local links = {};
  3.  
  4. local function ReceiveAddonMessage(message)
  5.     local packet, link, linkCount, msg = message:match("(%d%d%d)(%d%d)(%d%d)(.+)");
  6.     packet, link, linkCount = tonumber(packet), tonumber(link), tonumber(linkCount);
  7.     print (packet, link, linkCount, msg);
  8.    
  9.     links[packet] = links[packet] or {count = 0};
  10.     links[packet][link] = msg;
  11.     links[packet].count = links[packet].count + 1;
  12.    
  13.     if (links[packet].count == linkCount) then
  14.         local fullMessage = table.concat(links[packet]);
  15.         --Do whatever with 'fullMessage'
  16.         print (fullMessage, "\n");
  17.         links[packet] = {count = 0};
  18.     end
  19. end
  20.  
  21. local t = os.clock();
  22.  
  23. ReceiveAddonMessage("0010101Hello, world!");
  24. ReceiveAddonMessage("0020103Hello");
  25. ReceiveAddonMessage("0020303world!");
  26. ReceiveAddonMessage("0020203, ");
  27.  
  28. print (string.format("Time taken: %f", os.clock() - t));
  29.  
  30.  
  31. local function SendAddonMessage(packet, message)
  32.     local splitLength = 240;
  33.     local splits = math.ceil(#message / splitLength);
  34.     local counter = 1;
  35.     for i = 1, #message, splitLength do
  36.         local send = string.format("%03u%02u%02u%s", packet, counter, splits, message:sub(1, splitLength));
  37.         message = message:sub(241);
  38.         counter = counter + 1;
  39.     end
  40. end
Advertisement
Add Comment
Please, Sign In to add comment