SHOW:
|
|
- or go back to the newest paste.
1 | --// Reciter | |
2 | ||
3 | - | local Host = game:service'Players'.Filipek8792 |
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) |