Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.57 KB | None | 0 0
  1. key = get ("key") or 1251232132342134
  2.  
  3. function encode(name)
  4.     local count, meta = fileOpenAndMath (name)
  5.     if count == 0 then return end
  6.         for i = 0, count do
  7.             local info = xmlFindChild (meta, "file", i)
  8.             if info then
  9.                 for data, v in pairs (xmlNodeGetAttributes(info)) do
  10.                     if data == "src" then
  11.                         local s, e = string.find (v, ".dff")
  12.                         if s == nil or e == nil then s, e = string.find (v, ".txd") end
  13.                         if s ~= nil and e ~= nil then
  14.                             local path = ":"..name.."/"..v
  15.                             local file = fileOpen (path)
  16.                             local buffer = fileRead(file, fileGetSize(file))
  17.                             local encript = teaEncode( base64Encode( buffer ), key )
  18.                             fileDelete (path)
  19.                             local newFile = fileCreate (path)
  20.                             fileWrite (newFile, encript)
  21.                             fileClose (newFile)
  22.                         end
  23.                     end
  24.                 end
  25.             end
  26.         end
  27.         outputChatBox ("Ресурс зашифрован!", root, 0, 255, 0)
  28. end
  29. addEvent("encode", true)
  30. addEventHandler("encode", root, encode)
  31.  
  32. function fileOpenAndMath (name)
  33. local count = 0
  34. local res = getResourceFromName (tostring(name))
  35. assert (res, "Not resource with name '"..name.."'!")
  36. local meta = xmlLoadFile (":"..name.."/meta.xml")
  37. assert (meta, "Not meta.xml in resource '"..name.."'!")
  38. local children = xmlNodeGetChildren (meta)
  39. for k, data in ipairs (children) do
  40.     if xmlNodeGetName (data) == "file" then
  41.         count = count + 1
  42.     end
  43. end
  44. return count, meta
  45. end
  46.  
  47. function decode(name)
  48.     local count, meta = fileOpenAndMath (name)
  49.     if count == 0 then return end
  50.         for i = 0, count do
  51.             local info = xmlFindChild (meta, "file", i)
  52.             if info then
  53.                 for data, v in pairs (xmlNodeGetAttributes(info)) do
  54.                     if data == "src" then
  55.                         local s, e = string.find (v, ".dff")
  56.                         if s == nil or e == nil then s, e = string.find (v, ".txd") end
  57.                         if s ~= nil and e ~= nil then
  58.                             local path = ":"..name.."/"..v
  59.                             local file = fileOpen (path)
  60.                             local buffer = fileRead(file, fileGetSize(file))
  61.                             local encript = base64Decode(teaDecode(buffer,key))
  62.                             fileDelete (path)
  63.                             local newFile = fileCreate (path)
  64.                             fileWrite (newFile, encript)
  65.                             fileClose (newFile)
  66.                         end
  67.                     end
  68.                 end
  69.             end
  70.         end
  71.         outputChatBox ("Ресурс расшифрован!", root, 0, 255, 0)
  72. end
  73. addEvent("decode", true)
  74. addEventHandler("decode", root, decode)
  75.  
  76. function replaceCarServr (file)
  77.     local buffer = fileRead(file, fileGetSize(file))
  78.     local encript = base64Decode(teaDecode(buffer,key))
  79.     return encript
  80. end
  81. addEvent ("replaceCarServr", true)
  82. addEventHandler ("replaceCarServr", root, replaceCarServr)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement