Advertisement
v_Burn

Untitled

Jun 24th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --// Reciter
  2.  
  3. local Host = game:service'Players'.ilovemen536
  4. local Max, Up = 50,.2
  5. local Y = .025
  6. local Plots = {};
  7.  
  8. local Offset = Vector3.new(-Max/2,-1,100)
  9. local Delay = .025
  10.  
  11. local background = Instance.new('Part')
  12. background.Size = Vector3.new(Max, Max, Y)
  13. background.Name = 'background'
  14. background.Anchored = true
  15. background.Transparency=0
  16. background.Material = 'Grass'
  17. background.CFrame = CFrame.new(Offset) * CFrame.new((Max/2)+1,(Max/2)+1,1.5+Y)
  18. background.Color = Color3.new(.156863,.498039,.278431)
  19. background.Parent = script
  20.  
  21. _G.Ignore = _G.Ignore or {};
  22.  
  23. table.insert(_G.Ignore, background)
  24.  
  25. function Affect(Function)
  26. for Index, Plot in next, Plots do
  27. Function(Plot)
  28. end
  29. end
  30.  
  31. function Render()
  32. local yi,xi = 0, 0
  33. for y = 0, (Max + Up), Up do
  34. yi = yi + 1
  35. for x = 0, (Max + Up), Up do
  36. xi = xi + 1
  37. local Plot = Instance.new('Part')
  38. Plot.Size = Vector3.new(1,1,1)
  39. Plot.Name = 'Base'
  40. Plot.Anchored = true
  41. --Plot.Material = 'Neon'
  42. Plot.CFrame = CFrame.new(Up * xi, Up * yi, 1) * CFrame.new(Offset.X/2,Offset.Y,Offset.Z)
  43. Plot.Transparency = 0
  44.  
  45. local Mesh = Instance.new('SpecialMesh')
  46. Mesh.MeshId='rbxassetid://9856898'
  47. Mesh.TextureId='rbxassetid://215418209'
  48. Mesh.Scale = Vector3.new(Up,Up,Y)
  49.  
  50. Mesh.Parent = Plot
  51.  
  52. Plots[#Plots + 1] = {Plot, Mesh, Plot:Clone()}
  53. end
  54. xi = 0
  55. wait(Delay)
  56. end
  57.  
  58. print(#Plots)
  59. end
  60.  
  61. function SendRay(Part)
  62. local Ting
  63. if type(Part) == 'Instance' and Part:IsA'BasePart' then
  64. Ting = Part.Position
  65. else
  66. Ting = Part
  67. end
  68. local Ray = Ray.new(Ting,Vector3.new(0,0,-1)*9e9)
  69. --table.insert(Ignore, Part)
  70. local Hit,Pos,SurfaceNorm = workspace:FindPartOnRayWithIgnoreList(Ray,_G.Ignore)
  71. if Hit == nil then return false,nil end
  72. return true, Hit
  73. end;
  74.  
  75. local mn = 0
  76. Host.Chatted:connect(function(msg)
  77. if msg:sub(1,8) == '!render ' then
  78. local num = msg:sub(9)
  79. if typeof(tonumber(num)):lower() ~= 'number' then
  80. return
  81. elseif tonumber(num) < .1 then
  82. --num = .5
  83. warn'too high of resolution'
  84. return
  85. end
  86. if Up ~= num then
  87. Up = num
  88. print('Rendering '..num)
  89. Render()
  90. print'Capturing'
  91. else
  92. print('Recapturing')
  93. end
  94. mn = 0
  95. local used = 0
  96. Affect(function(Plot)
  97. local Block, Mesh, OG = Plot[1], Plot[2], Plot[3]
  98. local hit, obj = SendRay(OG.Position)
  99. if hit ~= false and obj ~= nil then
  100. if obj.Parent:IsA'Accessory' or obj.Parent:IsA'Hat' or obj.Name == 'Wall' then
  101. table.insert(_G.Ignore, obj)
  102. else
  103. used = used + 1
  104. local cr,cg,cb = obj.Color.r,obj.Color.g,obj.Color.b
  105. local origin = Block.CFrame
  106. local refer = obj.CFrame
  107. local a,b = refer.p, origin.p
  108. local dist = (a-b).magnitude
  109. num = math.rad(dist)
  110. if num > mn then
  111. mn = num
  112. end
  113. local r,g,b = num,num,num
  114. Mesh.VertexColor = Vector3.new(cr-r,cg-g,cb-b)
  115. Block.Material = obj.Material
  116. Block.Transparency = 0
  117. Block.CanCollide = true
  118. Mesh.Scale = Mesh.Scale+Vector3.new(Mesh.Scale.X,Mesh.Scale.Y,0)
  119. delay((math.random()/(math.random()+.5)) , function()
  120. Block.Parent = script
  121. end)
  122. game:service'RunService'.Stepped:wait()
  123. end
  124. else
  125. Block.Parent = nil
  126. end
  127. end)
  128. print(used..' pixels out of '..#Plots..' used in rendering')
  129. end
  130. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement