Advertisement
Prehistoricman

upvalues

Apr 7th, 2013
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.40 KB | None | 0 0
  1. function Unscaffoldise(scaffolding)
  2.     local parts = scaffolding:GetChildren()
  3.     table.sort(parts, function (a, b) if a.Position.Y > b.Position.Y then return true else return false end end)
  4.     local decks = {}
  5.     local poles = {}
  6.     for i = 1, #parts do
  7.         if parts[i].Name == "Pole" then
  8.             table.insert(poles, parts[i])
  9.             elseif parts[i].Name == "Deck" then
  10.             table.insert(decks, parts[i])
  11.         end
  12.     end
  13.  
  14.     local Poles_per_level = 0
  15.     local height = 0
  16.     for i = 1, #poles do
  17.         if height == 0 then
  18.             height = math.floor(poles[i].Position.Y)
  19.             Poles_per_level = Poles_per_level + 1
  20.             elseif height ~= math.floor(poles[i].Position.Y) then
  21.             break
  22.             else
  23.             Poles_per_level = Poles_per_level + 1
  24.         end
  25.     end
  26.  
  27.     local levels = (#poles / Poles_per_level) - 1
  28.  
  29.     local OldCFrame = decks[1].CFrame
  30.     decks[1].Size = decks[1].Size + Vector3.new(0.01, 0.01, 0.01)
  31.     decks[1].CFrame = OldCFrame
  32.  
  33.     for i = 1, Poles_per_level do
  34.         delay(0, function ()
  35.             for y = 6, 0, -2 do
  36.             wait(0.2)
  37.                 if y == 0 then
  38.                     poles[i]:Destroy()
  39.                 else
  40.                     local NewCFrame = poles[i].CFrame + Vector3.new(0, -1, 0)
  41.                     poles[i].Size = Vector3.new(2, y, 2)
  42.                     poles[i].CFrame = NewCFrame
  43.                 end
  44.             end
  45.         end)
  46.     end
  47.  
  48.     wait(0.2 * 4)
  49.  
  50.     local polesdeleted = Poles_per_level
  51.     for level = 1, levels do
  52.         for i = polesdeleted + 1, polesdeleted + Poles_per_level do
  53.             delay(0, function ()
  54.                 for y = 6, 0, -2 do
  55.                     wait(0.2)
  56.                     if y == 0 then
  57.                         poles[i]:Destroy()
  58.                     else
  59.                         local NewCFrame = poles[i].CFrame + Vector3.new(0, -1, 0) --attempt to index upvalue 'poles' (a nil value)
  60.                         poles[i].Size = Vector3.new(2, y, 2)
  61.                         poles[i].CFrame = NewCFrame
  62.                     end
  63.                 end
  64.             end)
  65.         end
  66.         wait(0.2 * 4)
  67.         polesdeleted = polesdeleted + Poles_per_level
  68.         if level ~= levels then
  69.             TweenTo(decks[1], decks[2].Position, 0.5, "Bounce") --attempt to index field '?' (a nil value)
  70.             decks[2]:Destroy()
  71.             table.remove(decks, 2)
  72.         else
  73.             TweenTo(decks[1], decks[1].Position + Vector3.new(0, -8, 0), 0.5, "Bounce")
  74.         end
  75.     end
  76.     decks[1]:Destroy()
  77. end
  78.  
  79. --This bit calls the function
  80.  
  81. scaffs = {}
  82. for n, a in pairs(game.Workspace.Model:GetChildren()) do
  83.     delay(0, function ()
  84.         print(n)
  85.         a.Parent = Instance.new("Model", a.Parent)
  86.         scaffs[n] = Scaffoldise(a.Parent, a.Size, Instance.new("Model", game.Workspace))
  87.         Build(a.Parent)
  88.         Unscaffoldise(scaffs[n]) --everything works except this
  89.     end)
  90. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement