Cobra_Tomtrein-temp-

Untitled

Jul 23rd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. local G_Backup = {}
  2.  
  3. function deepCopy(tab)
  4. local had_tables = {}
  5. local function hadAlready(tab)
  6. for i,v in pairs(had_tables) do
  7. if v.val == tab then
  8. return true
  9. end
  10. end
  11. return false
  12. end
  13.  
  14. local function useClone(tab)
  15. for i,v in pairs(had_tables) do
  16. if v.val == tab then
  17. return v.alt
  18. end
  19. end
  20. end
  21.  
  22. local function setHad(val,alt)
  23. local v = {}
  24. v.val = val
  25. v.alt = alt
  26. had_tables[#had_tables+1] = v
  27. end
  28.  
  29. local function d_copy(tab,n_tab)
  30. for i,v in pairs(tab) do
  31. if type(v) ~= "table" then
  32. n_tab[i] = v
  33. else
  34. if hadAlready(v) then
  35. n_tab[i] = useClone(v)
  36. else
  37. local next_tab = {}
  38. setHad(v,next_tab)
  39. n_tab[i] = d_copy(v,next_tab)
  40. end
  41. end
  42. end
  43. return n_tab
  44. end
  45.  
  46. local next_tab = {}
  47. setHad(tab,next_tab[i])
  48. return d_copy(tab,next_tab)
  49. end
  50.  
  51. _G.reset = function()
  52. _G = deepCopy(G_Backup)
  53. end
  54.  
  55.  
  56. G_Backup = deepCopy(_G)
Advertisement
Add Comment
Please, Sign In to add comment