SHOW:
|
|
- or go back to the newest paste.
1 | ||
2 | --Converted with ttyyuu12345's model to script plugin v4 | |
3 | function sandbox(var,func) | |
4 | local env = getfenv(func) | |
5 | local newenv = setmetatable({},{ | |
6 | __index = function(self,k) | |
7 | if k=="script" then | |
8 | return var | |
9 | else | |
10 | return env[k] | |
11 | end | |
12 | end, | |
13 | }) | |
14 | setfenv(func,newenv) | |
15 | return func | |
16 | end | |
17 | cors = {} | |
18 | mas = Instance.new("Model",game:GetService("Lighting")) | |
19 | Model0 = Instance.new("Model") | |
20 | - | Part1 = Instance.new("Part") |
20 | + | Model1 = Instance.new("Model") |
21 | - | Part2 = Instance.new("Part") |
21 | + | Model2 = Instance.new("Model") |
22 | - | Decal3 = Instance.new("Decal") |
22 | + | Part3 = Instance.new("Part") |
23 | - | ClickDetector4 = Instance.new("ClickDetector") |
23 | + | Attachment4 = Instance.new("Attachment") |
24 | - | Script5 = Instance.new("Script") |
24 | + | Part5 = Instance.new("Part") |
25 | - | WedgePart6 = Instance.new("WedgePart") |
25 | + | Attachment6 = Instance.new("Attachment") |
26 | Part7 = Instance.new("Part") | |
27 | - | Decal8 = Instance.new("Decal") |
27 | + | Attachment8 = Instance.new("Attachment") |
28 | - | Script9 = Instance.new("Script") |
28 | + | Part9 = Instance.new("Part") |
29 | - | ClickDetector10 = Instance.new("ClickDetector") |
29 | + | Attachment10 = Instance.new("Attachment") |
30 | Part11 = Instance.new("Part") | |
31 | - | Decal12 = Instance.new("Decal") |
31 | + | Attachment12 = Instance.new("Attachment") |
32 | - | ClickDetector13 = Instance.new("ClickDetector") |
32 | + | Part13 = Instance.new("Part") |
33 | - | Script14 = Instance.new("Script") |
33 | + | Attachment14 = Instance.new("Attachment") |
34 | Part15 = Instance.new("Part") | |
35 | - | IntValue16 = Instance.new("IntValue") |
35 | + | Attachment16 = Instance.new("Attachment") |
36 | - | Part17 = Instance.new("Part") |
36 | + | Seat17 = Instance.new("Seat") |
37 | - | Humanoid18 = Instance.new("Humanoid") |
37 | + | Part18 = Instance.new("Part") |
38 | - | Model0.Name = "Rock, Paper, Scissors" |
38 | + | Attachment19 = Instance.new("Attachment") |
39 | Attachment20 = Instance.new("Attachment") | |
40 | - | Part1.Parent = Model0 |
40 | + | Model21 = Instance.new("Model") |
41 | - | Part1.Anchored = true |
41 | + | ObjectValue22 = Instance.new("ObjectValue") |
42 | - | Part1.FormFactor = Enum.FormFactor.Symmetric |
42 | + | ObjectValue23 = Instance.new("ObjectValue") |
43 | - | Part1.Size = Vector3.new(16, 3, 1) |
43 | + | Part24 = Instance.new("Part") |
44 | - | Part1.CFrame = CFrame.new(-6, 2.70001101, -13.5, 1, 0, 0, 0, 1, 0, 0, 0, 1) |
44 | + | ObjectValue25 = Instance.new("ObjectValue") |
45 | - | Part1.Position = Vector3.new(-6, 2.70001101, -13.5) |
45 | + | Part26 = Instance.new("Part") |
46 | - | Part2.Name = "Paper" |
46 | + | ObjectValue27 = Instance.new("ObjectValue") |
47 | - | Part2.Parent = Model0 |
47 | + | Part28 = Instance.new("Part") |
48 | - | Part2.BrickColor = BrickColor.new("Mid gray") |
48 | + | ObjectValue29 = Instance.new("ObjectValue") |
49 | - | Part2.Rotation = Vector3.new(-143.12999, 0, -180) |
49 | + | ObjectValue30 = Instance.new("ObjectValue") |
50 | - | Part2.Anchored = true |
50 | + | Model31 = Instance.new("Model") |
51 | - | Part2.FormFactor = Enum.FormFactor.Plate |
51 | + | Part32 = Instance.new("Part") |
52 | - | Part2.Size = Vector3.new(4, 0.400000006, 3) |
52 | + | ObjectValue33 = Instance.new("ObjectValue") |
53 | - | Part2.CFrame = CFrame.new(-6, 2.86001396, -10.8800001, -1, 0, 0, 0, 0.800000012, 0.600000024, 0, 0.600000024, -0.800000012) |
53 | + | Part34 = Instance.new("Part") |
54 | - | Part2.BottomSurface = Enum.SurfaceType.Smooth |
54 | + | ObjectValue35 = Instance.new("ObjectValue") |
55 | - | Part2.TopSurface = Enum.SurfaceType.Smooth |
55 | + | Part36 = Instance.new("Part") |
56 | - | Part2.Color = Color3.new(0.803922, 0.803922, 0.803922) |
56 | + | ObjectValue37 = Instance.new("ObjectValue") |
57 | - | Part2.Position = Vector3.new(-6, 2.86001396, -10.8800001) |
57 | + | Part38 = Instance.new("Part") |
58 | - | Part2.Orientation = Vector3.new(-36.8699989, 180, 0) |
58 | + | Sound39 = Instance.new("Sound") |
59 | - | Part2.Color = Color3.new(0.803922, 0.803922, 0.803922) |
59 | + | Sound40 = Instance.new("Sound") |
60 | - | Decal3.Parent = Part2 |
60 | + | Sound41 = Instance.new("Sound") |
61 | - | Decal3.Texture = "http://www.roblox.com/asset/?id=12285158" |
61 | + | Sound42 = Instance.new("Sound") |
62 | - | Decal3.Face = Enum.NormalId.Top |
62 | + | Sound43 = Instance.new("Sound") |
63 | - | ClickDetector4.Parent = Part2 |
63 | + | Fire44 = Instance.new("Fire") |
64 | - | Script5.Parent = Part2 |
64 | + | Smoke45 = Instance.new("Smoke") |
65 | - | table.insert(cors,sandbox(Script5,function() |
65 | + | Sound46 = Instance.new("Sound") |
66 | - | function Paper() |
66 | + | Sound47 = Instance.new("Sound") |
67 | - | if script.Parent.BrickColor == BrickColor.new(1002) then |
67 | + | Sound48 = Instance.new("Sound") |
68 | - | script.Parent.BrickColor = BrickColor.new(37) |
68 | + | Part49 = Instance.new("Part") |
69 | - | script.Parent.Parent.Rock.BrickColor = BrickColor.new(26) |
69 | + | ObjectValue50 = Instance.new("ObjectValue") |
70 | - | script.Parent.Parent.Scissors.BrickColor = BrickColor.new(26) |
70 | + | Part51 = Instance.new("Part") |
71 | - | script.Parent.Parent.Opponent.Value = math.random(3) |
71 | + | ObjectValue52 = Instance.new("ObjectValue") |
72 | - | if script.Parent.Parent.Opponent.Value == 1 then |
72 | + | Part53 = Instance.new("Part") |
73 | - | script.Parent.Parent.Name = "Rock!" |
73 | + | Script54 = Instance.new("Script") |
74 | - | wait(3) |
74 | + | Script55 = Instance.new("Script") |
75 | - | script.Parent.Parent.Name = "You win!" |
75 | + | LocalScript56 = Instance.new("LocalScript") |
76 | - | wait(3) |
76 | + | ObjectValue57 = Instance.new("ObjectValue") |
77 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
77 | + | BoolValue58 = Instance.new("BoolValue") |
78 | - | script.Parent.BrickColor = BrickColor.new(1002) |
78 | + | RemoteEvent59 = Instance.new("RemoteEvent") |
79 | - | script.Parent.Parent.Rock.BrickColor = BrickColor.new(1002) |
79 | + | RemoteEvent60 = Instance.new("RemoteEvent") |
80 | - | script.Parent.Parent.Scissors.BrickColor = BrickColor.new(1002) |
80 | + | ScreenGui61 = Instance.new("ScreenGui") |
81 | - | elseif script.Parent.Parent.Opponent.Value == 2 then |
81 | + | Frame62 = Instance.new("Frame") |
82 | - | script.Parent.Parent.Name = "Paper!" |
82 | + | TextLabel63 = Instance.new("TextLabel") |
83 | - | wait(3) |
83 | + | Frame64 = Instance.new("Frame") |
84 | - | script.Parent.Parent.Name = "It's a tie!" |
84 | + | Frame65 = Instance.new("Frame") |
85 | - | wait(3) |
85 | + | TextButton66 = Instance.new("TextButton") |
86 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
86 | + | TextLabel67 = Instance.new("TextLabel") |
87 | - | script.Parent.BrickColor = BrickColor.new(1002) |
87 | + | TextLabel68 = Instance.new("TextLabel") |
88 | - | script.Parent.Parent.Rock.BrickColor = BrickColor.new(1002) |
88 | + | Frame69 = Instance.new("Frame") |
89 | - | script.Parent.Parent.Scissors.BrickColor = BrickColor.new(1002) |
89 | + | TextLabel70 = Instance.new("TextLabel") |
90 | - | elseif script.Parent.Parent.Opponent.Value == 3 then |
90 | + | TextLabel71 = Instance.new("TextLabel") |
91 | - | script.Parent.Parent.Name = "Scissors!" |
91 | + | Frame72 = Instance.new("Frame") |
92 | - | wait(3) |
92 | + | TextLabel73 = Instance.new("TextLabel") |
93 | - | script.Parent.Parent.Name = "You lose!" |
93 | + | TextLabel74 = Instance.new("TextLabel") |
94 | - | wait(3) |
94 | + | ScreenGui75 = Instance.new("ScreenGui") |
95 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
95 | + | Frame76 = Instance.new("Frame") |
96 | - | script.Parent.BrickColor = BrickColor.new(1002) |
96 | + | TextLabel77 = Instance.new("TextLabel") |
97 | - | script.Parent.Parent.Rock.BrickColor = BrickColor.new(1002) |
97 | + | Frame78 = Instance.new("Frame") |
98 | - | script.Parent.Parent.Scissors.BrickColor = BrickColor.new(1002) |
98 | + | Frame79 = Instance.new("Frame") |
99 | TextButton80 = Instance.new("TextButton") | |
100 | - | script.Parent.Parent.Name = "An unexpected error has occured." |
100 | + | TextLabel81 = Instance.new("TextLabel") |
101 | - | wait(3) |
101 | + | TextLabel82 = Instance.new("TextLabel") |
102 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
102 | + | Frame83 = Instance.new("Frame") |
103 | - | script.Parent.BrickColor = BrickColor.new(1002) |
103 | + | TextLabel84 = Instance.new("TextLabel") |
104 | - | script.Parent.Parent.Rock.BrickColor = BrickColor.new(1002) |
104 | + | TextLabel85 = Instance.new("TextLabel") |
105 | - | script.Parent.Parent.Scissors.BrickColor = BrickColor.new(1002) |
105 | + | Frame86 = Instance.new("Frame") |
106 | TextLabel87 = Instance.new("TextLabel") | |
107 | TextLabel88 = Instance.new("TextLabel") | |
108 | TextButton89 = Instance.new("TextButton") | |
109 | Frame90 = Instance.new("Frame") | |
110 | TextLabel91 = Instance.new("TextLabel") | |
111 | - | script.Parent.ClickDetector.MouseClick:connect(Paper) |
111 | + | TextButton92 = Instance.new("TextButton") |
112 | Frame93 = Instance.new("Frame") | |
113 | - | WedgePart6.Parent = Model0 |
113 | + | Frame94 = Instance.new("Frame") |
114 | - | WedgePart6.Rotation = Vector3.new(180, 0, -180) |
114 | + | TextLabel95 = Instance.new("TextLabel") |
115 | - | WedgePart6.Anchored = true |
115 | + | TextLabel96 = Instance.new("TextLabel") |
116 | - | WedgePart6.FormFactor = Enum.FormFactor.Symmetric |
116 | + | Frame97 = Instance.new("Frame") |
117 | - | WedgePart6.Size = Vector3.new(16, 3, 4) |
117 | + | Frame98 = Instance.new("Frame") |
118 | - | WedgePart6.CFrame = CFrame.new(-6, 2.70001101, -11, -1, 0, -0, -0, 1, -0, -0, 0, -1) |
118 | + | TextLabel99 = Instance.new("TextLabel") |
119 | - | WedgePart6.Position = Vector3.new(-6, 2.70001101, -11) |
119 | + | TextLabel100 = Instance.new("TextLabel") |
120 | - | WedgePart6.Orientation = Vector3.new(0, -180, 0) |
120 | + | Frame101 = Instance.new("Frame") |
121 | - | Part7.Name = "Rock" |
121 | + | Frame102 = Instance.new("Frame") |
122 | - | Part7.Parent = Model0 |
122 | + | TextLabel103 = Instance.new("TextLabel") |
123 | - | Part7.BrickColor = BrickColor.new("Mid gray") |
123 | + | TextLabel104 = Instance.new("TextLabel") |
124 | - | Part7.Rotation = Vector3.new(-143.12999, 0, -180) |
124 | + | Frame105 = Instance.new("Frame") |
125 | Frame106 = Instance.new("Frame") | |
126 | - | Part7.FormFactor = Enum.FormFactor.Plate |
126 | + | TextLabel107 = Instance.new("TextLabel") |
127 | - | Part7.Size = Vector3.new(4, 0.400000006, 3) |
127 | + | TextLabel108 = Instance.new("TextLabel") |
128 | - | Part7.CFrame = CFrame.new(-11, 2.86000991, -10.8800001, -1, 0, 0, 0, 0.800000012, 0.600000024, 0, 0.600000024, -0.800000012) |
128 | + | Frame109 = Instance.new("Frame") |
129 | Frame110 = Instance.new("Frame") | |
130 | TextLabel111 = Instance.new("TextLabel") | |
131 | - | Part7.Color = Color3.new(0.803922, 0.803922, 0.803922) |
131 | + | TextButton112 = Instance.new("TextButton") |
132 | - | Part7.Position = Vector3.new(-11, 2.86000991, -10.8800001) |
132 | + | Frame113 = Instance.new("Frame") |
133 | - | Part7.Orientation = Vector3.new(-36.8699989, 180, 0) |
133 | + | TextLabel114 = Instance.new("TextLabel") |
134 | - | Part7.Color = Color3.new(0.803922, 0.803922, 0.803922) |
134 | + | Frame115 = Instance.new("Frame") |
135 | - | Decal8.Parent = Part7 |
135 | + | Frame116 = Instance.new("Frame") |
136 | - | Decal8.Texture = "http://www.roblox.com/asset/?id=10954894" |
136 | + | TextLabel117 = Instance.new("TextLabel") |
137 | - | Decal8.Face = Enum.NormalId.Top |
137 | + | TextLabel118 = Instance.new("TextLabel") |
138 | - | Script9.Parent = Part7 |
138 | + | Frame119 = Instance.new("Frame") |
139 | - | table.insert(cors,sandbox(Script9,function() |
139 | + | Frame120 = Instance.new("Frame") |
140 | - | function Rock() |
140 | + | TextLabel121 = Instance.new("TextLabel") |
141 | - | if script.Parent.BrickColor == BrickColor.new(1002) then |
141 | + | TextLabel122 = Instance.new("TextLabel") |
142 | - | script.Parent.BrickColor = BrickColor.new(37) |
142 | + | Frame123 = Instance.new("Frame") |
143 | - | script.Parent.Parent.Paper.BrickColor = BrickColor.new(26) |
143 | + | Frame124 = Instance.new("Frame") |
144 | - | script.Parent.Parent.Scissors.BrickColor = BrickColor.new(26) |
144 | + | TextLabel125 = Instance.new("TextLabel") |
145 | - | script.Parent.Parent.Opponent.Value = math.random(3) |
145 | + | TextLabel126 = Instance.new("TextLabel") |
146 | - | if script.Parent.Parent.Opponent.Value == 1 then |
146 | + | Frame127 = Instance.new("Frame") |
147 | - | script.Parent.Parent.Name = "Rock!" |
147 | + | Frame128 = Instance.new("Frame") |
148 | - | wait(3) |
148 | + | TextLabel129 = Instance.new("TextLabel") |
149 | - | script.Parent.Parent.Name = "It's a tie!" |
149 | + | TextLabel130 = Instance.new("TextLabel") |
150 | - | wait(3) |
150 | + | Frame131 = Instance.new("Frame") |
151 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
151 | + | Frame132 = Instance.new("Frame") |
152 | - | script.Parent.BrickColor = BrickColor.new(1002) |
152 | + | TextLabel133 = Instance.new("TextLabel") |
153 | - | script.Parent.Parent.Paper.BrickColor = BrickColor.new(1002) |
153 | + | TextButton134 = Instance.new("TextButton") |
154 | - | script.Parent.Parent.Scissors.BrickColor = BrickColor.new(1002) |
154 | + | Frame135 = Instance.new("Frame") |
155 | - | elseif script.Parent.Parent.Opponent.Value == 2 then |
155 | + | TextLabel136 = Instance.new("TextLabel") |
156 | - | script.Parent.Parent.Name = "Paper!" |
156 | + | ScreenGui137 = Instance.new("ScreenGui") |
157 | - | wait(3) |
157 | + | Frame138 = Instance.new("Frame") |
158 | - | script.Parent.Parent.Name = "You lose!" |
158 | + | TextLabel139 = Instance.new("TextLabel") |
159 | - | wait(3) |
159 | + | Frame140 = Instance.new("Frame") |
160 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
160 | + | Frame141 = Instance.new("Frame") |
161 | - | script.Parent.BrickColor = BrickColor.new(1002) |
161 | + | TextButton142 = Instance.new("TextButton") |
162 | - | script.Parent.Parent.Paper.BrickColor = BrickColor.new(1002) |
162 | + | Frame143 = Instance.new("Frame") |
163 | - | script.Parent.Parent.Scissors.BrickColor = BrickColor.new(1002) |
163 | + | TextLabel144 = Instance.new("TextLabel") |
164 | - | elseif script.Parent.Parent.Opponent.Value == 3 then |
164 | + | TextLabel145 = Instance.new("TextLabel") |
165 | - | script.Parent.Parent.Name = "Scissors!" |
165 | + | Frame146 = Instance.new("Frame") |
166 | - | wait(3) |
166 | + | TextLabel147 = Instance.new("TextLabel") |
167 | - | script.Parent.Parent.Name = "You win!" |
167 | + | TextLabel148 = Instance.new("TextLabel") |
168 | - | wait(3) |
168 | + | Frame149 = Instance.new("Frame") |
169 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
169 | + | Frame150 = Instance.new("Frame") |
170 | - | script.Parent.BrickColor = BrickColor.new(1002) |
170 | + | TextButton151 = Instance.new("TextButton") |
171 | - | script.Parent.Parent.Paper.BrickColor = BrickColor.new(1002) |
171 | + | TextLabel152 = Instance.new("TextLabel") |
172 | - | script.Parent.Parent.Scissors.BrickColor = BrickColor.new(1002) |
172 | + | Frame153 = Instance.new("Frame") |
173 | Frame154 = Instance.new("Frame") | |
174 | - | script.Parent.Parent.Name = "An unexpected error has occured." |
174 | + | TextButton155 = Instance.new("TextButton") |
175 | - | wait(3) |
175 | + | TextLabel156 = Instance.new("TextLabel") |
176 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
176 | + | TextButton157 = Instance.new("TextButton") |
177 | - | script.Parent.BrickColor = BrickColor.new(1002) |
177 | + | TextButton158 = Instance.new("TextButton") |
178 | - | script.Parent.Parent.Paper.BrickColor = BrickColor.new(1002) |
178 | + | BoolValue159 = Instance.new("BoolValue") |
179 | - | script.Parent.Parent.Scissors.BrickColor = BrickColor.new(1002) |
179 | + | Script160 = Instance.new("Script") |
180 | BoolValue161 = Instance.new("BoolValue") | |
181 | Model162 = Instance.new("Model") | |
182 | Model163 = Instance.new("Model") | |
183 | ObjectValue164 = Instance.new("ObjectValue") | |
184 | ObjectValue165 = Instance.new("ObjectValue") | |
185 | - | script.Parent.ClickDetector.MouseClick:connect(Rock) |
185 | + | Part166 = Instance.new("Part") |
186 | Part167 = Instance.new("Part") | |
187 | - | ClickDetector10.Parent = Part7 |
187 | + | Model168 = Instance.new("Model") |
188 | - | Part11.Name = "Scissors" |
188 | + | Part169 = Instance.new("Part") |
189 | - | Part11.Parent = Model0 |
189 | + | Part170 = Instance.new("Part") |
190 | - | Part11.BrickColor = BrickColor.new("Mid gray") |
190 | + | Part171 = Instance.new("Part") |
191 | - | Part11.Rotation = Vector3.new(-143.12999, 0, -180) |
191 | + | Part172 = Instance.new("Part") |
192 | Part173 = Instance.new("Part") | |
193 | - | Part11.FormFactor = Enum.FormFactor.Plate |
193 | + | Part174 = Instance.new("Part") |
194 | - | Part11.Size = Vector3.new(4, 0.400000006, 3) |
194 | + | Part175 = Instance.new("Part") |
195 | - | Part11.CFrame = CFrame.new(-1, 2.86000991, -10.8800001, -1, 0, 0, 0, 0.800000012, 0.600000024, 0, 0.600000024, -0.800000012) |
195 | + | Part176 = Instance.new("Part") |
196 | Part177 = Instance.new("Part") | |
197 | ObjectValue178 = Instance.new("ObjectValue") | |
198 | - | Part11.Color = Color3.new(0.803922, 0.803922, 0.803922) |
198 | + | Part179 = Instance.new("Part") |
199 | - | Part11.Position = Vector3.new(-1, 2.86000991, -10.8800001) |
199 | + | Model180 = Instance.new("Model") |
200 | - | Part11.Orientation = Vector3.new(-36.8699989, 180, 0) |
200 | + | Attachment181 = Instance.new("Attachment") |
201 | - | Part11.Color = Color3.new(0.803922, 0.803922, 0.803922) |
201 | + | Attachment182 = Instance.new("Attachment") |
202 | - | Decal12.Parent = Part11 |
202 | + | Part183 = Instance.new("Part") |
203 | - | Decal12.Texture = "http://www.roblox.com/asset/?id=28625654" |
203 | + | Attachment184 = Instance.new("Attachment") |
204 | - | Decal12.Face = Enum.NormalId.Top |
204 | + | HingeConstraint185 = Instance.new("HingeConstraint") |
205 | - | ClickDetector13.Parent = Part11 |
205 | + | Part186 = Instance.new("Part") |
206 | - | Script14.Parent = Part11 |
206 | + | Attachment187 = Instance.new("Attachment") |
207 | - | table.insert(cors,sandbox(Script14,function() |
207 | + | HingeConstraint188 = Instance.new("HingeConstraint") |
208 | - | function Scissors() |
208 | + | Model189 = Instance.new("Model") |
209 | - | if script.Parent.BrickColor == BrickColor.new(1002) then |
209 | + | Part190 = Instance.new("Part") |
210 | - | script.Parent.BrickColor = BrickColor.new(37) |
210 | + | ObjectValue191 = Instance.new("ObjectValue") |
211 | - | script.Parent.Parent.Rock.BrickColor = BrickColor.new(26) |
211 | + | Part192 = Instance.new("Part") |
212 | - | script.Parent.Parent.Paper.BrickColor = BrickColor.new(26) |
212 | + | ObjectValue193 = Instance.new("ObjectValue") |
213 | - | script.Parent.Parent.Opponent.Value = math.random(3) |
213 | + | Part194 = Instance.new("Part") |
214 | - | if script.Parent.Parent.Opponent.Value == 1 then |
214 | + | ObjectValue195 = Instance.new("ObjectValue") |
215 | - | script.Parent.Parent.Name = "Rock!" |
215 | + | Part196 = Instance.new("Part") |
216 | - | wait(3) |
216 | + | ObjectValue197 = Instance.new("ObjectValue") |
217 | - | script.Parent.Parent.Name = "You lose!" |
217 | + | Part198 = Instance.new("Part") |
218 | - | wait(3) |
218 | + | SurfaceGui199 = Instance.new("SurfaceGui") |
219 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
219 | + | TextLabel200 = Instance.new("TextLabel") |
220 | - | script.Parent.BrickColor = BrickColor.new(1002) |
220 | + | Model0.Name = "Plane" |
221 | - | script.Parent.Parent.Rock.BrickColor = BrickColor.new(1002) |
221 | + | |
222 | - | script.Parent.Parent.Paper.BrickColor = BrickColor.new(1002) |
222 | + | Model1.Name = "Functional" |
223 | - | elseif script.Parent.Parent.Opponent.Value == 2 then |
223 | + | Model1.Parent = Model0 |
224 | - | script.Parent.Parent.Name = "Paper!" |
224 | + | Model2.Name = "ControlSurfaces" |
225 | - | wait(3) |
225 | + | Model2.Parent = Model1 |
226 | - | script.Parent.Parent.Name = "You win!" |
226 | + | Part3.Name = "AileronBottomLeft" |
227 | - | wait(3) |
227 | + | Part3.Parent = Model2 |
228 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
228 | + | Part3.BrickColor = BrickColor.new("Grime") |
229 | - | script.Parent.BrickColor = BrickColor.new(1002) |
229 | + | Part3.Rotation = Vector3.new(-180, 0, -180) |
230 | - | script.Parent.Parent.Rock.BrickColor = BrickColor.new(1002) |
230 | + | Part3.Anchored = true |
231 | - | script.Parent.Parent.Paper.BrickColor = BrickColor.new(1002) |
231 | + | Part3.CanCollide = false |
232 | - | elseif script.Parent.Parent.Opponent.Value == 3 then |
232 | + | Part3.Size = Vector3.new(6.1999979, 0.200000003, 2.39999986) |
233 | - | script.Parent.Parent.Name = "Scissors!" |
233 | + | Part3.CFrame = CFrame.new(6.17938185, 5.48912001, -5.25378418, -1, 0, 0, 0, 1, 0, 0, 0, -1) |
234 | - | wait(3) |
234 | + | Part3.BottomSurface = Enum.SurfaceType.Smooth |
235 | - | script.Parent.Parent.Name = "It's a tie!" |
235 | + | Part3.TopSurface = Enum.SurfaceType.Smooth |
236 | - | wait(3) |
236 | + | Part3.Color = Color3.new(0.498039, 0.556863, 0.392157) |
237 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
237 | + | Part3.Position = Vector3.new(6.17938185, 5.48912001, -5.25378418) |
238 | - | script.Parent.BrickColor = BrickColor.new(1002) |
238 | + | Part3.Orientation = Vector3.new(0, 180, 0) |
239 | - | script.Parent.Parent.Rock.BrickColor = BrickColor.new(1002) |
239 | + | Part3.Color = Color3.new(0.498039, 0.556863, 0.392157) |
240 | - | script.Parent.Parent.Paper.BrickColor = BrickColor.new(1002) |
240 | + | Attachment4.Name = "AnimatedAttachment" |
241 | Attachment4.Parent = Part3 | |
242 | - | script.Parent.Parent.Name = "An unexpected error has occured." |
242 | + | Attachment4.Rotation = Vector3.new(0, 90, 0) |
243 | - | wait(3) |
243 | + | Attachment4.CFrame = CFrame.new(-1, 0, -1.19999993, 0, 0, 1, 0, 1, -0, -1, 0, 0) |
244 | - | script.Parent.Parent.Name = "Rock, Paper, Scissors" |
244 | + | Attachment4.Position = Vector3.new(-1, 0, -1.19999993) |
245 | - | script.Parent.BrickColor = BrickColor.new(1002) |
245 | + | Attachment4.Axis = Vector3.new(0, 0, -1) |
246 | - | script.Parent.Parent.Rock.BrickColor = BrickColor.new(1002) |
246 | + | Attachment4.Orientation = Vector3.new(0, 90, 0) |
247 | - | script.Parent.Parent.Paper.BrickColor = BrickColor.new(1002) |
247 | + | Part5.Name = "AileronBottomRight" |
248 | Part5.Parent = Model2 | |
249 | Part5.BrickColor = BrickColor.new("Grime") | |
250 | Part5.Rotation = Vector3.new(-180, 0, -180) | |
251 | Part5.Anchored = true | |
252 | Part5.CanCollide = false | |
253 | - | script.Parent.ClickDetector.MouseClick:connect(Scissors) |
253 | + | Part5.Size = Vector3.new(6.1999979, 0.200000003, 2.39999986) |
254 | Part5.CFrame = CFrame.new(-27.6203613, 5.48912001, -5.25402784, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
255 | - | Part15.Parent = Model0 |
255 | + | Part5.BottomSurface = Enum.SurfaceType.Smooth |
256 | Part5.TopSurface = Enum.SurfaceType.Smooth | |
257 | - | Part15.Size = Vector3.new(16, 1.20000005, 5) |
257 | + | Part5.Color = Color3.new(0.498039, 0.556863, 0.392157) |
258 | - | Part15.CFrame = CFrame.new(-6, 0.600012004, -11.5, 1, 0, 0, 0, 1, 0, 0, 0, 1) |
258 | + | Part5.Position = Vector3.new(-27.6203613, 5.48912001, -5.25402784) |
259 | - | Part15.Position = Vector3.new(-6, 0.600012004, -11.5) |
259 | + | Part5.Orientation = Vector3.new(0, 180, 0) |
260 | - | IntValue16.Name = "Opponent" |
260 | + | Part5.Color = Color3.new(0.498039, 0.556863, 0.392157) |
261 | - | IntValue16.Parent = Model0 |
261 | + | Attachment6.Name = "AnimatedAttachment" |
262 | - | Part17.Name = "Head" |
262 | + | Attachment6.Parent = Part5 |
263 | - | Part17.Parent = Model0 |
263 | + | Attachment6.Rotation = Vector3.new(0, 90, 0) |
264 | - | Part17.BrickColor = BrickColor.new("Black") |
264 | + | Attachment6.CFrame = CFrame.new(1, 0, -1.19999993, 0, 0, 1, 0, 1, -0, -1, 0, 0) |
265 | - | Part17.Anchored = true |
265 | + | Attachment6.Position = Vector3.new(1, 0, -1.19999993) |
266 | - | Part17.FormFactor = Enum.FormFactor.Plate |
266 | + | Attachment6.Axis = Vector3.new(0, 0, -1) |
267 | - | Part17.Size = Vector3.new(2, 0.400000006, 1) |
267 | + | Attachment6.Orientation = Vector3.new(0, 90, 0) |
268 | - | Part17.CFrame = CFrame.new(-6, 4.40000677, -13.5, 1, 0, 0, 0, 1, 0, 0, 0, 1) |
268 | + | Part7.Name = "AileronTopLeft" |
269 | - | Part17.Color = Color3.new(0.105882, 0.164706, 0.207843) |
269 | + | Part7.Parent = Model2 |
270 | - | Part17.Position = Vector3.new(-6, 4.40000677, -13.5) |
270 | + | Part7.BrickColor = BrickColor.new("Grime") |
271 | - | Part17.Color = Color3.new(0.105882, 0.164706, 0.207843) |
271 | + | Part7.Rotation = Vector3.new(-180, 0, -180) |
272 | - | Humanoid18.Parent = Model0 |
272 | + | |
273 | - | Humanoid18.NameOcclusion = Enum.NameOcclusion.NoOcclusion |
273 | + | Part7.CanCollide = false |
274 | - | Humanoid18.Health = 0 |
274 | + | Part7.Size = Vector3.new(6.39999771, 0.200000003, 2.39999986) |
275 | - | Humanoid18.MaxHealth = 0 |
275 | + | Part7.CFrame = CFrame.new(6.07946587, 11.4890957, -7.05383301, -1, 0, 0, 0, 1, 0, 0, 0, -1) |
276 | Part7.BottomSurface = Enum.SurfaceType.Smooth | |
277 | Part7.TopSurface = Enum.SurfaceType.Smooth | |
278 | Part7.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
279 | Part7.Position = Vector3.new(6.07946587, 11.4890957, -7.05383301) | |
280 | Part7.Orientation = Vector3.new(0, 180, 0) | |
281 | Part7.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
282 | Attachment8.Name = "AnimatedAttachment" | |
283 | Attachment8.Parent = Part7 | |
284 | Attachment8.Rotation = Vector3.new(0, 90, 0) | |
285 | Attachment8.CFrame = CFrame.new(-1, 0, -1.19999993, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
286 | Attachment8.Position = Vector3.new(-1, 0, -1.19999993) | |
287 | Attachment8.Axis = Vector3.new(0, 0, -1) | |
288 | Attachment8.Orientation = Vector3.new(0, 90, 0) | |
289 | Part9.Name = "AileronTopRight" | |
290 | Part9.Parent = Model2 | |
291 | Part9.BrickColor = BrickColor.new("Grime") | |
292 | Part9.Rotation = Vector3.new(-180, 0, -180) | |
293 | Part9.Anchored = true | |
294 | Part9.CanCollide = false | |
295 | Part9.Size = Vector3.new(6.39999771, 0.200000003, 2.39999986) | |
296 | Part9.CFrame = CFrame.new(-27.5202026, 11.4890957, -7.05371094, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
297 | Part9.BottomSurface = Enum.SurfaceType.Smooth | |
298 | Part9.TopSurface = Enum.SurfaceType.Smooth | |
299 | Part9.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
300 | Part9.Position = Vector3.new(-27.5202026, 11.4890957, -7.05371094) | |
301 | Part9.Orientation = Vector3.new(0, 180, 0) | |
302 | Part9.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
303 | Attachment10.Name = "AnimatedAttachment" | |
304 | Attachment10.Parent = Part9 | |
305 | Attachment10.Rotation = Vector3.new(0, 90, 0) | |
306 | Attachment10.CFrame = CFrame.new(1, 0, -1.19999993, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
307 | Attachment10.Position = Vector3.new(1, 0, -1.19999993) | |
308 | Attachment10.Axis = Vector3.new(0, 0, -1) | |
309 | Attachment10.Orientation = Vector3.new(0, 90, 0) | |
310 | Part11.Name = "ElevatorLeft" | |
311 | Part11.Parent = Model2 | |
312 | Part11.BrickColor = BrickColor.new("Grime") | |
313 | Part11.Rotation = Vector3.new(-180, 0, -180) | |
314 | Part11.Anchored = true | |
315 | Part11.Size = Vector3.new(4.5999999, 0.200000003, 2) | |
316 | Part11.CFrame = CFrame.new(-7.92047024, 6.98912001, -25.6539307, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
317 | Part11.BottomSurface = Enum.SurfaceType.Smooth | |
318 | Part11.TopSurface = Enum.SurfaceType.Smooth | |
319 | Part11.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
320 | Part11.Position = Vector3.new(-7.92047024, 6.98912001, -25.6539307) | |
321 | Part11.Orientation = Vector3.new(0, 180, 0) | |
322 | Part11.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
323 | Attachment12.Name = "AnimatedAttachment" | |
324 | Attachment12.Parent = Part11 | |
325 | Attachment12.Rotation = Vector3.new(0, 90, 0) | |
326 | Attachment12.CFrame = CFrame.new(-1, 0, -1, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
327 | Attachment12.Position = Vector3.new(-1, 0, -1) | |
328 | Attachment12.Axis = Vector3.new(0, 0, -1) | |
329 | Attachment12.Orientation = Vector3.new(0, 90, 0) | |
330 | Part13.Name = "ElevatorRight" | |
331 | Part13.Parent = Model2 | |
332 | Part13.BrickColor = BrickColor.new("Grime") | |
333 | Part13.Rotation = Vector3.new(-180, 0, -180) | |
334 | Part13.Anchored = true | |
335 | Part13.Size = Vector3.new(4.5999999, 0.200000003, 2) | |
336 | Part13.CFrame = CFrame.new(-13.5205078, 6.98912001, -25.6538086, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
337 | Part13.BottomSurface = Enum.SurfaceType.Smooth | |
338 | Part13.TopSurface = Enum.SurfaceType.Smooth | |
339 | Part13.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
340 | Part13.Position = Vector3.new(-13.5205078, 6.98912001, -25.6538086) | |
341 | Part13.Orientation = Vector3.new(0, 180, 0) | |
342 | Part13.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
343 | Attachment14.Name = "AnimatedAttachment" | |
344 | Attachment14.Parent = Part13 | |
345 | Attachment14.Rotation = Vector3.new(0, 90, 0) | |
346 | Attachment14.CFrame = CFrame.new(1, 0, -1, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
347 | Attachment14.Position = Vector3.new(1, 0, -1) | |
348 | Attachment14.Axis = Vector3.new(0, 0, -1) | |
349 | Attachment14.Orientation = Vector3.new(0, 90, 0) | |
350 | Part15.Name = "Rudder" | |
351 | Part15.Parent = Model2 | |
352 | Part15.BrickColor = BrickColor.new("Dusty Rose") | |
353 | Part15.Rotation = Vector3.new(-180, 0, -90) | |
354 | Part15.Anchored = true | |
355 | Part15.Size = Vector3.new(3.20000005, 0.200000003, 2) | |
356 | Part15.CFrame = CFrame.new(-10.72052, 8.48910427, -26.2539063, 0, 1, 0, 1, 0, 0, 0, 0, -1) | |
357 | Part15.BottomSurface = Enum.SurfaceType.Smooth | |
358 | Part15.TopSurface = Enum.SurfaceType.Smooth | |
359 | Part15.Color = Color3.new(0.639216, 0.294118, 0.294118) | |
360 | Part15.Position = Vector3.new(-10.72052, 8.48910427, -26.2539063) | |
361 | Part15.Orientation = Vector3.new(0, 180, 90) | |
362 | Part15.Color = Color3.new(0.639216, 0.294118, 0.294118) | |
363 | Attachment16.Name = "AnimatedAttachment" | |
364 | Attachment16.Parent = Part15 | |
365 | Attachment16.Rotation = Vector3.new(0, 90, 0) | |
366 | Attachment16.CFrame = CFrame.new(0, 0, -1, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
367 | Attachment16.Position = Vector3.new(0, 0, -1) | |
368 | Attachment16.Axis = Vector3.new(0, 0, -1) | |
369 | Attachment16.Orientation = Vector3.new(0, 90, 0) | |
370 | Seat17.Name = "PilotSeat" | |
371 | Seat17.Parent = Model1 | |
372 | Seat17.Material = Enum.Material.Fabric | |
373 | Seat17.BrickColor = BrickColor.new("Institutional white") | |
374 | Seat17.Rotation = Vector3.new(-180, 0, -180) | |
375 | Seat17.Anchored = true | |
376 | Seat17.Size = Vector3.new(2, 0.600000024, 2) | |
377 | Seat17.CFrame = CFrame.new(-10.7204599, 6.68909883, -5.25378418, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
378 | Seat17.BottomSurface = Enum.SurfaceType.Smooth | |
379 | Seat17.TopSurface = Enum.SurfaceType.Smooth | |
380 | Seat17.Disabled = true | |
381 | Seat17.Color = Color3.new(0.972549, 0.972549, 0.972549) | |
382 | Seat17.Position = Vector3.new(-10.7204599, 6.68909883, -5.25378418) | |
383 | Seat17.Orientation = Vector3.new(0, 180, 0) | |
384 | Seat17.Color = Color3.new(0.972549, 0.972549, 0.972549) | |
385 | Part18.Name = "Joystick" | |
386 | Part18.Parent = Model1 | |
387 | Part18.Material = Enum.Material.Wood | |
388 | Part18.BrickColor = BrickColor.new("Brown") | |
389 | Part18.Rotation = Vector3.new(-180, 0, -180) | |
390 | Part18.Anchored = true | |
391 | Part18.Size = Vector3.new(0.200000003, 2, 0.200000003) | |
392 | Part18.CFrame = CFrame.new(-10.7204599, 7.38911104, -3.95385909, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
393 | Part18.BottomSurface = Enum.SurfaceType.Smooth | |
394 | Part18.TopSurface = Enum.SurfaceType.Smooth | |
395 | Part18.Color = Color3.new(0.486275, 0.360784, 0.27451) | |
396 | Part18.Position = Vector3.new(-10.7204599, 7.38911104, -3.95385909) | |
397 | Part18.Orientation = Vector3.new(0, 180, 0) | |
398 | Part18.Color = Color3.new(0.486275, 0.360784, 0.27451) | |
399 | Attachment19.Name = "AnimatedAttachment" | |
400 | Attachment19.Parent = Part18 | |
401 | Attachment19.Rotation = Vector3.new(-0, -0, -90) | |
402 | Attachment19.CFrame = CFrame.new(0, -1, 0, 0, 1, -0, -1, 0, 0, 0, 0, 1) | |
403 | Attachment19.Position = Vector3.new(0, -1, 0) | |
404 | Attachment19.Axis = Vector3.new(0, -1, 0) | |
405 | Attachment19.Orientation = Vector3.new(-0, -0, -90) | |
406 | Attachment20.Name = "AnimatedAttachment" | |
407 | Attachment20.Parent = mas | |
408 | Attachment20.Rotation = Vector3.new(-0, -90, 0) | |
409 | Attachment20.CFrame = CFrame.new(0, 0, 0.5, 0, 0, -1, 0, 1, 0, 1, 0, 0) | |
410 | Attachment20.Position = Vector3.new(0, 0, 0.5) | |
411 | Attachment20.Axis = Vector3.new(0, 0, 1) | |
412 | Attachment20.Orientation = Vector3.new(-0, -90, 0) | |
413 | Model21.Name = "StaticAirFoils" | |
414 | Model21.Parent = Model1 | |
415 | ObjectValue22.Name = "DamageCollider" | |
416 | ObjectValue22.Parent = mas | |
417 | ObjectValue23.Name = "DamageCollider" | |
418 | ObjectValue23.Parent = mas | |
419 | Part24.Name = "HorizontalStabilizerLeft" | |
420 | Part24.Parent = Model21 | |
421 | Part24.BrickColor = BrickColor.new("Grime") | |
422 | Part24.Rotation = Vector3.new(-180, 0, -180) | |
423 | Part24.Anchored = true | |
424 | Part24.Size = Vector3.new(5, 0.200000003, 2) | |
425 | Part24.CFrame = CFrame.new(-8.12030029, 6.98912001, -23.6539307, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
426 | Part24.BottomSurface = Enum.SurfaceType.Smooth | |
427 | Part24.TopSurface = Enum.SurfaceType.Smooth | |
428 | Part24.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
429 | Part24.Position = Vector3.new(-8.12030029, 6.98912001, -23.6539307) | |
430 | Part24.Orientation = Vector3.new(0, 180, 0) | |
431 | Part24.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
432 | ObjectValue25.Name = "DamageCollider" | |
433 | ObjectValue25.Parent = Part24 | |
434 | Part26.Name = "HorizontalStabilizerRight" | |
435 | Part26.Parent = Model21 | |
436 | Part26.BrickColor = BrickColor.new("Grime") | |
437 | Part26.Rotation = Vector3.new(-180, 0, -180) | |
438 | Part26.Anchored = true | |
439 | Part26.Size = Vector3.new(5, 0.200000003, 2) | |
440 | Part26.CFrame = CFrame.new(-13.3204937, 6.98912001, -23.6538086, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
441 | Part26.BottomSurface = Enum.SurfaceType.Smooth | |
442 | Part26.TopSurface = Enum.SurfaceType.Smooth | |
443 | Part26.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
444 | Part26.Position = Vector3.new(-13.3204937, 6.98912001, -23.6538086) | |
445 | Part26.Orientation = Vector3.new(0, 180, 0) | |
446 | Part26.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
447 | ObjectValue27.Name = "DamageCollider" | |
448 | ObjectValue27.Parent = Part26 | |
449 | Part28.Name = "VerticalStabilizer" | |
450 | Part28.Parent = Model21 | |
451 | Part28.BrickColor = BrickColor.new("Cyan") | |
452 | Part28.Rotation = Vector3.new(-180, 0, -90) | |
453 | Part28.Anchored = true | |
454 | Part28.Size = Vector3.new(3, 0.200000003, 2) | |
455 | Part28.CFrame = CFrame.new(-10.7206421, 9.38909626, -24.2536621, 0, 1, 0, 1, 0, 0, 0, 0, -1) | |
456 | Part28.BottomSurface = Enum.SurfaceType.Smooth | |
457 | Part28.TopSurface = Enum.SurfaceType.Smooth | |
458 | Part28.Color = Color3.new(0.0156863, 0.686275, 0.92549) | |
459 | Part28.Position = Vector3.new(-10.7206421, 9.38909626, -24.2536621) | |
460 | Part28.Orientation = Vector3.new(0, 180, 90) | |
461 | Part28.Color = Color3.new(0.0156863, 0.686275, 0.92549) | |
462 | ObjectValue29.Name = "DamageCollider" | |
463 | ObjectValue29.Parent = Part28 | |
464 | ObjectValue30.Name = "DamageCollider" | |
465 | ObjectValue30.Parent = mas | |
466 | Model31.Name = "Engine" | |
467 | Model31.Parent = Model1 | |
468 | Part32.Name = "EnginePart" | |
469 | Part32.Parent = Model31 | |
470 | Part32.Material = Enum.Material.SmoothPlastic | |
471 | Part32.BrickColor = BrickColor.new("Mid gray") | |
472 | Part32.Reflectance = 0.30000001192093 | |
473 | Part32.Rotation = Vector3.new(-180, 0, -180) | |
474 | Part32.Anchored = true | |
475 | Part32.Size = Vector3.new(0.599999905, 4, 1.80000007) | |
476 | Part32.CFrame = CFrame.new(-12.4202261, 7.38911104, -0.153810993, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
477 | Part32.BottomSurface = Enum.SurfaceType.Smooth | |
478 | Part32.TopSurface = Enum.SurfaceType.Smooth | |
479 | Part32.Color = Color3.new(0.803922, 0.803922, 0.803922) | |
480 | Part32.Position = Vector3.new(-12.4202261, 7.38911104, -0.153810993) | |
481 | Part32.Orientation = Vector3.new(0, 180, 0) | |
482 | Part32.Color = Color3.new(0.803922, 0.803922, 0.803922) | |
483 | ObjectValue33.Name = "DamageCollider" | |
484 | ObjectValue33.Parent = Part32 | |
485 | Part34.Name = "EnginePart" | |
486 | Part34.Parent = Model31 | |
487 | Part34.Material = Enum.Material.SmoothPlastic | |
488 | Part34.BrickColor = BrickColor.new("Mid gray") | |
489 | Part34.Reflectance = 0.30000001192093 | |
490 | Part34.Rotation = Vector3.new(-180, 0, -180) | |
491 | Part34.Anchored = true | |
492 | Part34.Size = Vector3.new(2.79999995, 0.600000024, 1.80000007) | |
493 | Part34.CFrame = CFrame.new(-10.7204599, 9.08911037, -0.153810993, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
494 | Part34.BottomSurface = Enum.SurfaceType.Smooth | |
495 | Part34.TopSurface = Enum.SurfaceType.Smooth | |
496 | Part34.Color = Color3.new(0.803922, 0.803922, 0.803922) | |
497 | Part34.Position = Vector3.new(-10.7204599, 9.08911037, -0.153810993) | |
498 | Part34.Orientation = Vector3.new(0, 180, 0) | |
499 | Part34.Color = Color3.new(0.803922, 0.803922, 0.803922) | |
500 | ObjectValue35.Name = "DamageCollider" | |
501 | ObjectValue35.Parent = Part34 | |
502 | Part36.Name = "EnginePart" | |
503 | Part36.Parent = Model31 | |
504 | Part36.Material = Enum.Material.SmoothPlastic | |
505 | Part36.BrickColor = BrickColor.new("Mid gray") | |
506 | Part36.Reflectance = 0.30000001192093 | |
507 | Part36.Rotation = Vector3.new(-180, 0, -180) | |
508 | Part36.Anchored = true | |
509 | Part36.Size = Vector3.new(2.79999995, 0.600000024, 1.80000007) | |
510 | Part36.CFrame = CFrame.new(-10.7204599, 5.68909883, -0.153810993, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
511 | Part36.BottomSurface = Enum.SurfaceType.Smooth | |
512 | Part36.TopSurface = Enum.SurfaceType.Smooth | |
513 | Part36.Color = Color3.new(0.803922, 0.803922, 0.803922) | |
514 | Part36.Position = Vector3.new(-10.7204599, 5.68909883, -0.153810993) | |
515 | Part36.Orientation = Vector3.new(0, 180, 0) | |
516 | Part36.Color = Color3.new(0.803922, 0.803922, 0.803922) | |
517 | ObjectValue37.Name = "DamageCollider" | |
518 | ObjectValue37.Parent = Part36 | |
519 | Part38.Name = "EngineMain" | |
520 | Part38.Parent = Model31 | |
521 | Part38.Material = Enum.Material.SmoothPlastic | |
522 | Part38.BrickColor = BrickColor.new("Mid gray") | |
523 | Part38.Reflectance = 0.30000001192093 | |
524 | Part38.Rotation = Vector3.new(-180, 0, -180) | |
525 | Part38.Anchored = true | |
526 | Part38.Size = Vector3.new(2.79999995, 2.80000019, 0.600000024) | |
527 | Part38.CFrame = CFrame.new(-10.7204599, 7.38911104, 0.246094003, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
528 | Part38.BottomSurface = Enum.SurfaceType.Smooth | |
529 | Part38.TopSurface = Enum.SurfaceType.Smooth | |
530 | Part38.Color = Color3.new(0.803922, 0.803922, 0.803922) | |
531 | Part38.Position = Vector3.new(-10.7204599, 7.38911104, 0.246094003) | |
532 | Part38.Orientation = Vector3.new(0, 180, 0) | |
533 | Part38.Color = Color3.new(0.803922, 0.803922, 0.803922) | |
534 | Sound39.Name = "Shutdown" | |
535 | Sound39.Parent = Part38 | |
536 | Sound39.SoundId = "rbxassetid://133922235" | |
537 | Sound40.Name = "Startup" | |
538 | Sound40.Parent = Part38 | |
539 | Sound40.SoundId = "rbxassetid://133859905" | |
540 | Sound41.Name = "Idle" | |
541 | Sound41.Parent = Part38 | |
542 | Sound41.SoundId = "rbxassetid://618990950" | |
543 | Sound41.Looped = true | |
544 | Sound42.Name = "LowThrottle" | |
545 | Sound42.Parent = Part38 | |
546 | Sound42.SoundId = "rbxassetid://618991005" | |
547 | Sound42.Looped = true | |
548 | Sound43.Name = "Flying" | |
549 | Sound43.Parent = Part38 | |
550 | Sound43.SoundId = "rbxassetid://618991252" | |
551 | Sound43.Looped = true | |
552 | Fire44.Parent = Part38 | |
553 | Fire44.Size = 20 | |
554 | Fire44.Color = Color3.new(0.92549, 0.545098, 0.27451) | |
555 | Fire44.Enabled = false | |
556 | Fire44.Heat = 25 | |
557 | Fire44.SecondaryColor = Color3.new(0.545098, 0.313726, 0.215686) | |
558 | Fire44.Color = Color3.new(0.92549, 0.545098, 0.27451) | |
559 | Smoke45.Parent = Part38 | |
560 | Smoke45.Size = 10 | |
561 | Smoke45.Color = Color3.new(0.384314, 0.384314, 0.384314) | |
562 | Smoke45.Enabled = false | |
563 | Smoke45.RiseVelocity = 10 | |
564 | Smoke45.Color = Color3.new(0.384314, 0.384314, 0.384314) | |
565 | Sound46.Name = "Explosion1" | |
566 | Sound46.Parent = Part38 | |
567 | Sound46.SoundId = "rbxassetid://413503439" | |
568 | Sound46.Volume = 1 | |
569 | Sound47.Name = "Explosion2" | |
570 | Sound47.Parent = Part38 | |
571 | Sound47.SoundId = "rbxassetid://157878578" | |
572 | Sound48.Name = "Explosion3" | |
573 | Sound48.Parent = Part38 | |
574 | Sound48.SoundId = "rbxassetid://165969964" | |
575 | Part49.Name = "EnginePart" | |
576 | Part49.Parent = Model31 | |
577 | Part49.Material = Enum.Material.SmoothPlastic | |
578 | Part49.BrickColor = BrickColor.new("Mid gray") | |
579 | Part49.Reflectance = 0.30000001192093 | |
580 | Part49.Rotation = Vector3.new(-180, 0, -180) | |
581 | Part49.Anchored = true | |
582 | Part49.Size = Vector3.new(0.599999905, 4, 1.80000007) | |
583 | Part49.CFrame = CFrame.new(-9.02026367, 7.38911104, -0.153933004, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
584 | Part49.BottomSurface = Enum.SurfaceType.Smooth | |
585 | Part49.TopSurface = Enum.SurfaceType.Smooth | |
586 | Part49.Color = Color3.new(0.803922, 0.803922, 0.803922) | |
587 | Part49.Position = Vector3.new(-9.02026367, 7.38911104, -0.153933004) | |
588 | Part49.Orientation = Vector3.new(0, 180, 0) | |
589 | Part49.Color = Color3.new(0.803922, 0.803922, 0.803922) | |
590 | ObjectValue50.Name = "DamageCollider" | |
591 | ObjectValue50.Parent = Part49 | |
592 | Part51.Name = "Nose" | |
593 | Part51.Parent = Model31 | |
594 | Part51.Transparency = 1 | |
595 | Part51.Rotation = Vector3.new(-180, 0, -180) | |
596 | Part51.Anchored = true | |
597 | Part51.Shape = Enum.PartType.Ball | |
598 | Part51.Size = Vector3.new(2, 2, 2) | |
599 | Part51.CFrame = CFrame.new(-10.7203379, 7.38911104, 1.04626298, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
600 | Part51.BottomSurface = Enum.SurfaceType.Smooth | |
601 | Part51.TopSurface = Enum.SurfaceType.Smooth | |
602 | Part51.Position = Vector3.new(-10.7203379, 7.38911104, 1.04626298) | |
603 | Part51.Orientation = Vector3.new(0, 180, 0) | |
604 | ObjectValue52.Name = "DamageCollider" | |
605 | ObjectValue52.Parent = Part51 | |
606 | Part53.Name = "TailSkid" | |
607 | Part53.Parent = Model1 | |
608 | Part53.Material = Enum.Material.Wood | |
609 | Part53.BrickColor = BrickColor.new("Brown") | |
610 | Part53.Rotation = Vector3.new(-150, 0, -180) | |
611 | Part53.Anchored = true | |
612 | Part53.Size = Vector3.new(0.200000003, 2.60000014, 0.200000003) | |
613 | Part53.CFrame = CFrame.new(-10.7203379, 5.9623208, -22.4538574, -1, 0, 0, 0, 0.866025388, 0.500000238, 0, 0.500000238, -0.866025388) | |
614 | Part53.BottomSurface = Enum.SurfaceType.Smooth | |
615 | Part53.TopSurface = Enum.SurfaceType.Smooth | |
616 | Part53.Color = Color3.new(0.486275, 0.360784, 0.27451) | |
617 | Part53.Position = Vector3.new(-10.7203379, 5.9623208, -22.4538574) | |
618 | Part53.Orientation = Vector3.new(-30, 180, 0) | |
619 | Part53.Color = Color3.new(0.486275, 0.360784, 0.27451) | |
620 | Script54.Name = "Welder" | |
621 | Script54.Parent = Model0 | |
622 | table.insert(cors,sandbox(Script54,function() | |
623 | -- Welder | |
624 | -- Crazyman32 | |
625 | -- January 18, 2017 | |
626 | ||
627 | --[[ | |
628 | ||
629 | Welds the plane together! Also creates special welds | |
630 | for animations, which are designated by Attachment | |
631 | objects named "AnimatedAttchment" within parts. | |
632 | ||
633 | Animations are done with a bit of trickery. Since I | |
634 | want to simply rotate the welds in order to rotate | |
635 | surface control parts, I came up with a design that | |
636 | creates two "joint" parts at the location of the | |
637 | AnimatedAttachment object. One of the joints is | |
638 | auto-welded to the primary part of the plane. The | |
639 | other joint is welded directly to the first joint. | |
640 | This second joint will contain the "animate" weld | |
641 | object that can simply be rotated to move the surface. | |
642 | Finally, the control surface itself is auto-welded | |
643 | to the second joint, so that moving the second joint | |
644 | will move the control surface. | |
645 | ||
646 | To break that paragraph down in steps: | |
647 | ||
648 | 1. Create 2 "joint" parts (J1 and J2), both at the location of AnimatedAttachment | |
649 | 2. Auto-weld J1 to the plane | |
650 | 3. Weld J2 directly to J1 | |
651 | 4. Auto-weld the control surface to J2 | |
652 | 5. Use the J2 weld to animate the control surface by setting it's C0 cframe property | |
653 | ||
654 | --]] | |
655 | ||
656 | ||
657 | ||
658 | local plane = script.Parent | |
659 | ||
660 | local readyToWeld = plane:WaitForChild("ReadyToWeld") | |
661 | while (not readyToWeld.Value) do wait() end | |
662 | readyToWeld:Destroy() | |
663 | readyToWeld = nil | |
664 | ||
665 | -- Don't weld any parts that have the following names in ignore table: | |
666 | local ignore = { | |
667 | ||
668 | -- Ignore the wheels because they use physics Hinges instead of welds: | |
669 | ["WheelLeft"] = true; | |
670 | ["WheelRight"] = true; | |
671 | ||
672 | } | |
673 | ||
674 | -- Set the "EngineMain" part as the PrimaryPart of the model: (super important for almost every other script in the system) | |
675 | local main = plane:WaitForChild("Functional"):WaitForChild("Engine"):WaitForChild("EngineMain") | |
676 | plane.PrimaryPart = main | |
677 | ||
678 | -- Putting all the welds into this folder: | |
679 | local welds = Instance.new("Folder", plane) | |
680 | welds.Name = "Welds" | |
681 | ||
682 | -- Putting all the animated welds into this folder: | |
683 | local animWelds = Instance.new("Folder", welds) | |
684 | animWelds.Name = "AnimatedWelds" | |
685 | ||
686 | -- Putting all the joints into this model: | |
687 | local joints = Instance.new("Model", plane) | |
688 | joints.Name = "Joints" | |
689 | ||
690 | -- Our Joint "prefab": | |
691 | local joint = Instance.new("Part") | |
692 | joint.Name = "Joint" | |
693 | joint.Anchored = true | |
694 | joint.CanCollide = false | |
695 | joint.Locked = true | |
696 | joint.Material = Enum.Material.SmoothPlastic | |
697 | joint.TopSurface = Enum.SurfaceType.Smooth | |
698 | joint.BottomSurface = Enum.SurfaceType.Smooth | |
699 | joint.Transparency = 1 | |
700 | joint.Size = Vector3.new(0.4, 0.4, 0.4) | |
701 | ||
702 | ||
703 | -- Autoweld 'p0' to 'p1': | |
704 | function AutoWeldTo(p0, p1) | |
705 | ||
706 | -- See ROBLOX Wiki page to understand how this works: | |
707 | -- http://wiki.roblox.com/index.php?title=Weld#Welding_together_two_existing_bricks | |
708 | ||
709 | local w = Instance.new("Weld", welds) | |
710 | w.Name = "PlaneWeld" | |
711 | w.Part0, w.Part1 = p0, p1 | |
712 | w.C0 = p0.CFrame:inverse() * p1.CFrame | |
713 | ||
714 | end | |
715 | ||
716 | ||
717 | -- Auto-weld the given part to the 'main' part of the plane: | |
718 | function AutoWeld(part) | |
719 | AutoWeldTo(part, main) | |
720 | end | |
721 | ||
722 | ||
723 | -- Weld all descendants of 'parent': | |
724 | function Weld(parent) | |
725 | if (parent == joints) then return end | |
726 | for _,child in pairs(parent:GetChildren()) do | |
727 | if (child:IsA("BasePart") and child ~= main) then | |
728 | ||
729 | local attachment = child:FindFirstChild("AnimatedAttachment") | |
730 | ||
731 | -- Weld animated parts: | |
732 | if (attachment) then | |
733 | ||
734 | local offset = attachment.Position | |
735 | ||
736 | -- Joint1: | |
737 | local j1 = joint:Clone() | |
738 | j1.Parent = joints | |
739 | -- Sorry, this is gross! It places the joint at the position of the attachment: | |
740 | j1.CFrame = child.CFrame * CFrame.new(offset.X, offset.Y, offset.Z) * CFrame.Angles(math.rad(attachment.Rotation.X), math.rad(attachment.Rotation.Y), math.rad(attachment.Rotation.Z)) | |
741 | ||
742 | -- Joint2: | |
743 | local j2 = j1:Clone() | |
744 | j2.Parent = joints | |
745 | ||
746 | -- The animated weld: | |
747 | local animWeld = Instance.new("Weld", animWelds) | |
748 | animWeld.Name = child.Name | |
749 | animWeld.Part0, animWeld.Part1 = j1, j2 | |
750 | ||
751 | AutoWeldTo(child, j2) | |
752 | AutoWeld(j1) | |
753 | j1.Anchored = false | |
754 | j2.Anchored = false | |
755 | attachment:Destroy() | |
756 | ||
757 | -- Weld non-ignored and non-animated parts directly to the plane: | |
758 | elseif (not ignore[child.Name]) then | |
759 | AutoWeld(child) | |
760 | end | |
761 | ||
762 | child.Anchored = false | |
763 | ||
764 | end | |
765 | Weld(child) | |
766 | end | |
767 | end | |
768 | ||
769 | ||
770 | Weld(plane) | |
771 | main.Anchored = false | |
772 | ||
773 | -- Mark as ready, so that the Controller script knows the plane is welded: | |
774 | local welded = Instance.new("ObjectValue") | |
775 | welded.Name = "Welded" | |
776 | welded.Parent = plane | |
777 | end)) | |
778 | Script55.Name = "Controller" | |
779 | Script55.Parent = Model0 | |
780 | table.insert(cors,sandbox(Script55,function() | |
781 | -- Controller | |
782 | -- Crazyman32 | |
783 | -- January 18, 2017 | |
784 | ||
785 | --[[ | |
786 | ||
787 | This script has 2 primary purposes: | |
788 | 1) Handle players entering/leaving the pilot seat | |
789 | 2) Run flight physics if no player is present | |
790 | ||
791 | When a player is flying the plane, the player's client | |
792 | handles the physics calculations. When the player leaves, | |
793 | the calculations need to be delegated back to the server, | |
794 | hence the 2nd purpose listed. | |
795 | ||
796 | e.g. If the player is flying the plane and then leaves | |
797 | the server, this script will pick up the physics | |
798 | and properly continue to simulate the aircraft. | |
799 | --]] | |
800 | ||
801 | ||
802 | local plane = script.Parent | |
803 | ||
804 | -- Wait for plane to be welded: | |
805 | plane:WaitForChild("Welded"):Destroy() | |
806 | ||
807 | local main = plane.PrimaryPart | |
808 | ||
809 | -- This is what powers the aircraft & is used by the Flyer module: | |
810 | local attachment = Instance.new("Attachment",main) | |
811 | local vector_force = Instance.new("VectorForce",main) | |
812 | vector_force.RelativeTo = Enum.ActuatorRelativeTo.Attachment0 | |
813 | vector_force.Attachment0 = attachment | |
814 | ||
815 | local functional = plane:WaitForChild("Functional") | |
816 | local seat = functional:WaitForChild("PilotSeat") | |
817 | ||
818 | local flyer = require(plane:WaitForChild("Flyer")) | |
819 | local localController = script:WaitForChild("LocalController") | |
820 | ||
821 | local dead = plane:WaitForChild("Dead") | |
822 | ||
823 | local pilot = nil | |
824 | local pilotController = nil | |
825 | ||
826 | local updateHandler | |
827 | ||
828 | function SetNetworkOwner(player) | |
829 | local function Scan(parent) | |
830 | for _,v in pairs(parent:GetChildren()) do | |
831 | if (v:IsA("BasePart")) then | |
832 | v:SetNetworkOwner(player) | |
833 | end | |
834 | Scan(v) | |
835 | end | |
836 | end | |
837 | Scan(plane) | |
838 | end | |
839 | ||
840 | -- Server-side plane physics updates: | |
841 | function Update() | |
842 | flyer:Update() | |
843 | --[[ | |
844 | if (not dead.Value) then | |
845 | flyer:UpdateControls() | |
846 | end | |
847 | ]] | |
848 | end | |
849 | ||
850 | function UpdateControls() | |
851 | if (not dead.Value) then | |
852 | flyer:UpdateControls() | |
853 | end | |
854 | end | |
855 | ||
856 | -- Reset flyer inputs: | |
857 | function ResetFlyer() | |
858 | flyer.Throttle = 0 | |
859 | flyer.BankInput = 0 | |
860 | flyer.PitchInput = 0 | |
861 | flyer.YawInput = 0 | |
862 | end | |
863 | ||
864 | -- Start server-side plane updates: | |
865 | function StartUpdating() | |
866 | if (updateHandler) then return end | |
867 | updateHandler = game:GetService("RunService").Heartbeat:Connect(Update) | |
868 | end | |
869 | ||
870 | -- Stop server-side plane updates: | |
871 | function StopUpdating() | |
872 | if (updateHandler) then | |
873 | updateHandler:Disconnect() | |
874 | updateHandler = nil | |
875 | end | |
876 | ResetFlyer() | |
877 | end | |
878 | ||
879 | function PilotExitedEvent(player, t, b, p, y) | |
880 | flyer.BankInput = b | |
881 | flyer.PitchInput = p | |
882 | flyer.YawInput = y | |
883 | flyer:ForceRealThrottle(t) | |
884 | if (t <= 0.52) then | |
885 | flyer.Throttle = 0 | |
886 | end | |
887 | end | |
888 | ||
889 | function PilotUpdatedEvent(player, name, ...) | |
890 | if (name == "inputs") then | |
891 | local inputs = {...} | |
892 | flyer.Throttle = inputs[1] | |
893 | flyer.BankInput = inputs[2] | |
894 | flyer.PitchInput = inputs[3] | |
895 | flyer.YawInput = inputs[4] | |
896 | end | |
897 | end | |
898 | ||
899 | -- Handle when a player enters the pilot seat: | |
900 | function PilotEntered(player) | |
901 | -- Delegate flight controls to the new pilot: | |
902 | StopUpdating() | |
903 | SetNetworkOwner(player) | |
904 | pilot = player | |
905 | pilotController = localController:Clone() | |
906 | pilotController.Parent = pilot.Backpack | |
907 | pilotController:WaitForChild("Plane").Value = plane | |
908 | pilotController:WaitForChild("Exited").OnServerEvent:Connect(PilotExitedEvent) | |
909 | pilotController:WaitForChild("Updated").OnServerEvent:Connect(PilotUpdatedEvent) | |
910 | end | |
911 | ||
912 | -- Handle when the pilot leaves the seat: | |
913 | function PilotLeft(onPlaneDeath) | |
914 | if (not pilot) then return end | |
915 | if (not onPlaneDeath) then | |
916 | seat.Disabled = true | |
917 | end | |
918 | -- Tell the client script to stop: | |
919 | pilotController.Exit.Value = true | |
920 | pilot = nil | |
921 | StartUpdating() | |
922 | -- Remove network ownership from the player: | |
923 | if (not onPlaneDeath) then | |
924 | SetNetworkOwner(nil) | |
925 | end | |
926 | delay(1, function() | |
927 | if (pilotController.Parent) then | |
928 | pilotController:Destroy() | |
929 | end | |
930 | pilotController = nil | |
931 | if (not seat.Occupant or not dead.Value) then | |
932 | seat.Disabled = false | |
933 | end | |
934 | end) | |
935 | end | |
936 | ||
937 | -- Track player entering/leaving pilot seat: | |
938 | function SeatChanged(property) | |
939 | if (property == "Occupant") then | |
940 | local humanoid = seat.Occupant | |
941 | if (humanoid) then | |
942 | local player = game.Players:GetPlayerFromCharacter(humanoid.Parent) | |
943 | if (player and not dead.Value) then | |
944 | PilotEntered(player) | |
945 | end | |
946 | else | |
947 | PilotLeft() | |
948 | end | |
949 | end | |
950 | end | |
951 | ||
952 | ||
953 | dead.Changed:Connect(function(v) | |
954 | if (v and pilot) then | |
955 | PilotLeft(true) | |
956 | end | |
957 | end) | |
958 | ||
959 | ||
960 | seat.Changed:Connect(SeatChanged) | |
961 | seat.Disabled = false | |
962 | StartUpdating() | |
963 | game:GetService("RunService").Heartbeat:Connect(UpdateControls) | |
964 | end)) | |
965 | LocalScript56.Name = "LocalController" | |
966 | LocalScript56.Parent = Script55 | |
967 | table.insert(cors,sandbox(LocalScript56,function() | |
968 | -- Local Controller | |
969 | -- Crazyman32 | |
970 | -- January 18, 2017 | |
971 | ||
972 | --[[ | |
973 | ||
974 | This script is given to the pilot of the plane and | |
975 | feeds user input to the Flyer module. The Flyer | |
976 | module is what is responsible for doing the actual | |
977 | heavy work of flying the plane. | |
978 | ||
979 | It can dynamically change the type of input used | |
980 | to control the plane. The supported controls are | |
981 | Keyboard, Mouse+Keyboard, Gamepad, and Mobile. | |
982 | ||
983 | --]] | |
984 | ||
985 | ||
986 | ||
987 | ||
988 | local IS_CONSOLE = game:GetService("GuiService"):IsTenFootInterface() | |
989 | local IS_MOBILE = game:GetService("UserInputService").TouchEnabled and not game:GetService("UserInputService").MouseEnabled and not IS_CONSOLE | |
990 | local modal | |
991 | ||
992 | local GAMEPAD_DEADZONE = 0.1 | |
993 | ||
994 | local PI = math.pi | |
995 | local ABS = math.abs | |
996 | ||
997 | -- Seconds between client sending server input updates: | |
998 | local SERVER_UPDATE_INTERVAL = 0.25 | |
999 | ||
1000 | -- Inputs: | |
1001 | local KEY_W = Enum.KeyCode.W | |
1002 | local KEY_A = Enum.KeyCode.A | |
1003 | local KEY_S = Enum.KeyCode.S | |
1004 | local KEY_D = Enum.KeyCode.D | |
1005 | local KEY_Q = Enum.KeyCode.Q | |
1006 | local KEY_E = Enum.KeyCode.E | |
1007 | local KEY_Z = Enum.KeyCode.Z | |
1008 | local KEY_X = Enum.KeyCode.X | |
1009 | local THUMBSTICK_1 = Enum.KeyCode.Thumbstick1 | |
1010 | local THUMBSTICK_2 = Enum.KeyCode.Thumbstick2 | |
1011 | local BUTTON_RB = Enum.KeyCode.ButtonR1 | |
1012 | local BUTTON_RT = Enum.KeyCode.ButtonR2 | |
1013 | local BUTTON_LB = Enum.KeyCode.ButtonL1 | |
1014 | local BUTTON_LT = Enum.KeyCode.ButtonL2 | |
1015 | local MOUSE_BUTTON_2 = Enum.UserInputType.MouseButton2 | |
1016 | ||
1017 | ||
1018 | local player = game.Players.LocalPlayer | |
1019 | ||
1020 | local plane = script:WaitForChild("Plane") | |
1021 | while (not plane.Value) do wait() end | |
1022 | plane = plane.Value | |
1023 | script.Plane:Destroy() | |
1024 | ||
1025 | local main = plane.PrimaryPart | |
1026 | ||
1027 | local exit = script:WaitForChild("Exit") | |
1028 | local updated = script:WaitForChild("Updated") | |
1029 | local flyer = require(plane:WaitForChild("Flyer")) | |
1030 | local camLock = require(script:WaitForChild("CamLock")) | |
1031 | local controls = require(script:WaitForChild("Controls")) | |
1032 | local keyboard = controls.Keyboard | |
1033 | local mouse = controls.Mouse | |
1034 | local gamepad = controls.Gamepad | |
1035 | local mobile = controls.Mobile | |
1036 | ||
1037 | local physicsUpdateHandle | |
1038 | local renderUpdateName = "PlaneRenderUpdate" | |
1039 | ||
1040 | local lastServerUpdate = 0 | |
1041 | local lastInputUpdate = tick() | |
1042 | ||
1043 | -- Dynamic input function based on user's controls: | |
1044 | local ReadInput = nil | |
1045 | ||
1046 | -- Keep track of viewport half-size: | |
1047 | local viewportHalf = game.Workspace.CurrentCamera.ViewportSize * 0.5 | |
1048 | game.Workspace.CurrentCamera.Changed:Connect(function() | |
1049 | viewportHalf = game.Workspace.CurrentCamera.ViewportSize * 0.5 | |
1050 | end) | |
1051 | ||
1052 | ||
1053 | -- Load proper GUI: | |
1054 | local gui = script:WaitForChild(IS_MOBILE and "PlaneMobileGui" or IS_CONSOLE and "PlaneConsoleGui" or "PlaneGui") | |
1055 | gui.Parent = player.PlayerGui | |
1056 | local guiController = require(gui:WaitForChild("GuiController")) | |
1057 | ||
1058 | ||
1059 | ||
1060 | -- Apply Gamepad Deadzone: | |
1061 | local function ApplyDeadzone(n) | |
1062 | if (ABS(n) < GAMEPAD_DEADZONE) then return 0 end | |
1063 | return (n + (n > 0 and -GAMEPAD_DEADZONE or GAMEPAD_DEADZONE)) / (1 - GAMEPAD_DEADZONE) | |
1064 | end | |
1065 | ||
1066 | ||
1067 | -- Gamepad Input: | |
1068 | local function ReadGamepadInput(dt) | |
1069 | ||
1070 | -- Get delta time: | |
1071 | local now = tick() | |
1072 | local dt = (now - lastInputUpdate) | |
1073 | lastInputUpdate = now | |
1074 | ||
1075 | -- Get gamepad inputs: | |
1076 | local thumbstick1 = gamepad:GetPosition(THUMBSTICK_1) | |
1077 | local thumbstick2 = gamepad:GetPosition(THUMBSTICK_2) | |
1078 | local lt = ApplyDeadzone(gamepad:GetPosition(BUTTON_LT).Z) | |
1079 | local rt = ApplyDeadzone(gamepad:GetPosition(BUTTON_RT).Z) | |
1080 | local lb = gamepad:IsDown(BUTTON_LB) | |
1081 | local rb = gamepad:IsDown(BUTTON_RB) | |
1082 | ||
1083 | -- Update control inputs: | |
1084 | flyer.BankInput = ApplyDeadzone(thumbstick2.X) | |
1085 | flyer.PitchInput = ApplyDeadzone(thumbstick2.Y) | |
1086 | flyer.YawInput = ((lb ~= rb) and (lb and -1 or 1) or 0) | |
1087 | do | |
1088 | local dir = -lt + rt | |
1089 | local t = flyer.Throttle + (dir * dt * 0.2) | |
1090 | t = (t < 0.5 and 0.5 or t > 1 and 1 or t) | |
1091 | flyer.Throttle = t | |
1092 | guiController:UpdateThrottle(t) | |
1093 | end | |
1094 | ||
1095 | -- Set camera rotation: | |
1096 | camLock.SetRotation( | |
1097 | -ApplyDeadzone(thumbstick1.X) * PI * 0.9, | |
1098 | ApplyDeadzone(thumbstick1.Y) * PI * 0.45 | |
1099 | ) | |
1100 | ||
1101 | end | |
1102 | ||
1103 | ||
1104 | -- Mobile Input: | |
1105 | local function ReadMobileInput() | |
1106 | ||
1107 | -- Poll to see if user wants to switch view: | |
1108 | if (guiController.SwitchView) then | |
1109 | guiController.SwitchView = false | |
1110 | camLock.SwitchView() | |
1111 | end | |
1112 | ||
1113 | -- Update control inputs: | |
1114 | flyer.BankInput = guiController.Bank | |
1115 | flyer.PitchInput = -guiController.Pitch | |
1116 | flyer.YawInput = guiController.Yaw | |
1117 | flyer.Throttle = 0.5 + (guiController.Throttle * 0.5) | |
1118 | ||
1119 | -- Set camera rotation: | |
1120 | camLock.SetMobileDeviceBank(mobile.DeviceBank) | |
1121 | camLock.SetRotation( | |
1122 | -guiController.ViewX * PI * 0.9, | |
1123 | guiController.ViewY * PI * 0.45 | |
1124 | ) | |
1125 | ||
1126 | -- Poll to see if player wants to exit the plane: | |
1127 | if (guiController.Exit) then | |
1128 | if (player.Character and player.Character:FindFirstChild("Humanoid")) then | |
1129 | player.Character.Humanoid.Jump = true | |
1130 | end | |
1131 | end | |
1132 | ||
1133 | end | |
1134 | ||
1135 | ||
1136 | -- Keyboard and Mouse Input: | |
1137 | local function ReadKeyboardAndMouseInput() | |
1138 | ||
1139 | -- Get delta time: | |
1140 | local now = tick() | |
1141 | local dt = (now - lastInputUpdate) | |
1142 | lastInputUpdate = now | |
1143 | ||
1144 | -- Declare & initialize new control inputs: | |
1145 | local bank, pitch, yaw, throttle = 0, 0, 0, 0 | |
1146 | ||
1147 | -- Mouse yoke: | |
1148 | if (guiController.UseMouse) then | |
1149 | -- Mouse and key inputs: | |
1150 | local mx = mouse.X | |
1151 | local my = mouse.Y | |
1152 | local w = keyboard:IsDown(KEY_W) | |
1153 | local a = keyboard:IsDown(KEY_A) | |
1154 | local s = keyboard:IsDown(KEY_S) | |
1155 | local d = keyboard:IsDown(KEY_D) | |
1156 | if (not mouse:IsDown(MOUSE_BUTTON_2)) then | |
1157 | -- Update bank and pitch based on mouse position on screen: | |
1158 | bank = (mx - viewportHalf.X) / viewportHalf.X | |
1159 | pitch = (my - viewportHalf.Y) / viewportHalf.Y | |
1160 | ||
1161 | --[[ UNCOMMENT this block to lock bank/pitch in last position when looking around: | |
1162 | else | |
1163 | bank = flyer.BankInput | |
1164 | pitch = flyer.PitchInput | |
1165 | ]] | |
1166 | ||
1167 | end | |
1168 | -- Update yaw and throttle: | |
1169 | yaw = ((a ~= d) and (d and 1 or -1) or 0) | |
1170 | throttle = ((w ~= s) and (w and 1 or -1) or 0) | |
1171 | ||
1172 | -- Keyboard yoke: | |
1173 | else | |
1174 | -- This is the prettiest chunk of code in the whole plane system: | |
1175 | ||
1176 | -- Key inputs: | |
1177 | local w = keyboard:IsDown(KEY_W) | |
1178 | local a = keyboard:IsDown(KEY_A) | |
1179 | local s = keyboard:IsDown(KEY_S) | |
1180 | local d = keyboard:IsDown(KEY_D) | |
1181 | local q = keyboard:IsDown(KEY_Q) | |
1182 | local e = keyboard:IsDown(KEY_E) | |
1183 | local z = keyboard:IsDown(KEY_Z) | |
1184 | local x = keyboard:IsDown(KEY_X) | |
1185 | ||
1186 | -- Update controls: | |
1187 | bank = ((a ~= d) and (d and 1 or -1) or 0) | |
1188 | pitch = ((w ~= s) and (s and 1 or -1) or 0) | |
1189 | yaw = ((q ~= e) and (e and 1 or -1) or 0) | |
1190 | throttle = ((z ~= x) and (x and 1 or -1) or 0) | |
1191 | ||
1192 | end | |
1193 | ||
1194 | -- Invert pitch if user requests: | |
1195 | if (guiController.InvertPitch) then | |
1196 | pitch = -pitch | |
1197 | end | |
1198 | ||
1199 | flyer.BankInput = bank | |
1200 | flyer.PitchInput = pitch | |
1201 | flyer.YawInput = yaw | |
1202 | ||
1203 | -- Update throttle: | |
1204 | if (throttle ~= 0) then | |
1205 | local t = flyer.Throttle + (throttle * dt * 0.2) | |
1206 | t = (t < 0.5 and 0.5 or t > 1 and 1 or t) | |
1207 | flyer.Throttle = t | |
1208 | guiController:UpdateThrottle(t) | |
1209 | end | |
1210 | ||
1211 | end | |
1212 | ||
1213 | ||
1214 | -- Heartbeat: | |
1215 | function PhysicsUpdate() | |
1216 | ||
1217 | ReadInput() | |
1218 | flyer:Update() | |
1219 | guiController:Update() | |
1220 | ||
1221 | -- Update server periodically with control inputs from pilot: (This allows replication of inputs to other clients) | |
1222 | local now = tick() | |
1223 | if ((now - lastServerUpdate) > SERVER_UPDATE_INTERVAL) then | |
1224 | lastServerUpdate = now | |
1225 | updated:FireServer("inputs", flyer.Throttle, flyer.BankInput, flyer.PitchInput, flyer.YawInput) | |
1226 | end | |
1227 | ||
1228 | end | |
1229 | ||
1230 | ||
1231 | -- RenderStep: | |
1232 | function RenderUpdate() | |
1233 | -- Update control animations and camera: | |
1234 | flyer:UpdateControls() | |
1235 | camLock.Update() | |
1236 | end | |
1237 | ||
1238 | ||
1239 | -- Keyboard Key Down: | |
1240 | function KeyDown(keyCode) | |
1241 | if (gamepad.IsConnected) then return end | |
1242 | if (keyCode == Enum.KeyCode.C) then | |
1243 | camLock.SwitchView(keyboard:IsDown(Enum.KeyCode.LeftShift) or keyboard:IsDown(Enum.KeyCode.RightShift)) | |
1244 | end | |
1245 | end | |
1246 | ||
1247 | ||
1248 | -- Gamepad Button Down: | |
1249 | function GamepadButtonDown(button) | |
1250 | if (button == Enum.KeyCode.ButtonR3) then | |
1251 | camLock.SwitchView() | |
1252 | end | |
1253 | end | |
1254 | ||
1255 | ||
1256 | -- Initialize client-side control of the aircraft: | |
1257 | function Init() | |
1258 | ||
1259 | camLock.Lock(plane) | |
1260 | guiController:Start(plane) | |
1261 | flyer.Throttle = 0.5 | |
1262 | ||
1263 | if (IS_MOBILE) then | |
1264 | -- Hide mobile controls: | |
1265 | modal = game:GetService("UserInputService").ModalEnabled | |
1266 | game:GetService("UserInputService").ModalEnabled = true | |
1267 | else | |
1268 | -- Listen for gamepad buttons on PC and console: | |
1269 | gamepad.ButtonDown:Connect(GamepadButtonDown) | |
1270 | end | |
1271 | ||
1272 | -- Listen for the plane to not exist: | |
1273 | plane.Changed:Connect(function(property) | |
1274 | if (property == "Parent" and not plane.Parent) then | |
1275 | exit.Value = true | |
1276 | end | |
1277 | end) | |
1278 | ||
1279 | -- If on PC (not console nor mobile): | |
1280 | if (not IS_MOBILE and not IS_CONSOLE) then | |
1281 | guiController:SetUsingGamepad(gamepad.IsConnected) | |
1282 | gamepad.Connected:Connect(function() | |
1283 | guiController:SetUsingGamepad(true) | |
1284 | ReadInput = ReadGamepadInput | |
1285 | end) | |
1286 | gamepad.Disconnected:Connect(function() | |
1287 | guiController:SetUsingGamepad(false) | |
1288 | ReadInput = ReadKeyboardAndMouseInput | |
1289 | end) | |
1290 | keyboard.KeyDown:Connect(KeyDown) | |
1291 | mouse.Moved:Connect(function(x, y, dx, dy) | |
1292 | if (guiController.UseMouse and mouse:IsDown(Enum.UserInputType.MouseButton2)) then | |
1293 | local rotH = -dx * 0.005 | |
1294 | local rotV = -dy * 0.005 | |
1295 | camLock.DeltaRotation(rotH, rotV) | |
1296 | end | |
1297 | end) | |
1298 | mouse.ButtonUp:Connect(function(button) | |
1299 | if (guiController.UseMouse and button == Enum.UserInputType.MouseButton2) then | |
1300 | camLock.ResetRotation() | |
1301 | end | |
1302 | end) | |
1303 | end | |
1304 | ||
1305 | -- Input function: | |
1306 | if (IS_CONSOLE) then | |
1307 | ReadInput = ReadGamepadInput | |
1308 | elseif (IS_MOBILE) then | |
1309 | ReadInput = ReadMobileInput | |
1310 | else | |
1311 | ReadInput = (gamepad.IsConnected and ReadGamepadInput or ReadKeyboardAndMouseInput) | |
1312 | end | |
1313 | ||
1314 | -- Start listeners for RenderUpdate and Heartbeat: | |
1315 | physicsUpdateHandle = game:GetService("RunService").Heartbeat:Connect(PhysicsUpdate) | |
1316 | game:GetService("RunService"):BindToRenderStep(renderUpdateName, Enum.RenderPriority.Camera.Value, RenderUpdate) | |
1317 | ||
1318 | flyer:Startup() | |
1319 | ||
1320 | end | |
1321 | ||
1322 | ||
1323 | -- Invoked when the player leaves the plane: | |
1324 | function Stop() | |
1325 | -- Shut down the flyer; disconnect handlers; reset camera; remove this script: | |
1326 | camLock.Unlock() | |
1327 | physicsUpdateHandle:Disconnect() | |
1328 | game:GetService("RunService"):UnbindFromRenderStep(renderUpdateName) | |
1329 | script.Exited:FireServer(flyer.Throttle, flyer.BankInput, flyer.PitchInput, flyer.YawInput) | |
1330 | if (gui) then | |
1331 | gui:Destroy() | |
1332 | end | |
1333 | if (IS_MOBILE) then | |
1334 | game:GetService("UserInputService").ModalEnabled = modal | |
1335 | end | |
1336 | guiController:Stop() | |
1337 | flyer:Shutdown() | |
1338 | wait(0.1) -- Arbitrary yield; probably not needed | |
1339 | script:Destroy() | |
1340 | end | |
1341 | ||
1342 | ||
1343 | -- The server-side Controller will switch 'exit' to 'true' when it | |
1344 | -- is time for this script to remove itself (typically when the | |
1345 | -- player leaves the pilot seat). | |
1346 | exit.Changed:Connect(function(v) | |
1347 | if (v) then | |
1348 | Stop() | |
1349 | end | |
1350 | end) | |
1351 | ||
1352 | Init() | |
1353 | end)) | |
1354 | ObjectValue57.Name = "Plane" | |
1355 | ObjectValue57.Parent = LocalScript56 | |
1356 | BoolValue58.Name = "Exit" | |
1357 | BoolValue58.Parent = LocalScript56 | |
1358 | RemoteEvent59.Name = "Exited" | |
1359 | RemoteEvent59.Parent = LocalScript56 | |
1360 | RemoteEvent60.Name = "Updated" | |
1361 | RemoteEvent60.Parent = LocalScript56 | |
1362 | ScreenGui61.Name = "PlaneConsoleGui" | |
1363 | ScreenGui61.Parent = LocalScript56 | |
1364 | Frame62.Name = "Throttle" | |
1365 | Frame62.Parent = ScreenGui61 | |
1366 | Frame62.Size = UDim2.new(0, 350, 0, -20) | |
1367 | Frame62.Position = UDim2.new(0, 80, 1, -40) | |
1368 | Frame62.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1369 | Frame62.BorderSizePixel = 0 | |
1370 | TextLabel63.Name = "Label" | |
1371 | TextLabel63.Parent = Frame62 | |
1372 | TextLabel63.Transparency = 1 | |
1373 | TextLabel63.Size = UDim2.new(1, 0, 0, -20) | |
1374 | TextLabel63.Text = "THROTTLE" | |
1375 | TextLabel63.Position = UDim2.new(0, 0, 0, -20) | |
1376 | TextLabel63.BackgroundColor3 = Color3.new(1, 1, 1) | |
1377 | TextLabel63.BackgroundTransparency = 1 | |
1378 | TextLabel63.Font = Enum.Font.SourceSans | |
1379 | TextLabel63.FontSize = Enum.FontSize.Size48 | |
1380 | TextLabel63.TextColor3 = Color3.new(1, 1, 1) | |
1381 | TextLabel63.TextStrokeTransparency = 0.80000001192093 | |
1382 | TextLabel63.TextWrapped = true | |
1383 | Frame64.Name = "Knob" | |
1384 | Frame64.Parent = Frame62 | |
1385 | Frame64.Size = UDim2.new(0, 20, 0, 30) | |
1386 | Frame64.Position = UDim2.new(0, 0, 0.5, -15) | |
1387 | Frame64.BackgroundColor3 = Color3.new(1, 1, 1) | |
1388 | Frame64.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1389 | Frame64.BorderSizePixel = 2 | |
1390 | Frame64.ZIndex = 2 | |
1391 | Frame65.Name = "Bar" | |
1392 | Frame65.Parent = Frame62 | |
1393 | Frame65.Size = UDim2.new(0, 0, 1, 0) | |
1394 | Frame65.BackgroundColor3 = Color3.new(1, 1, 1) | |
1395 | Frame65.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1396 | Frame65.BorderSizePixel = 2 | |
1397 | TextButton66.Name = "Grab" | |
1398 | TextButton66.Parent = Frame62 | |
1399 | TextButton66.Transparency = 1 | |
1400 | TextButton66.Size = UDim2.new(1, 20, 1, 30) | |
1401 | TextButton66.Text = "" | |
1402 | TextButton66.Position = UDim2.new(0, -10, 0, -15) | |
1403 | TextButton66.BackgroundColor3 = Color3.new(1, 0, 0) | |
1404 | TextButton66.BackgroundTransparency = 1 | |
1405 | TextButton66.ZIndex = 3 | |
1406 | TextButton66.Draggable = true | |
1407 | TextButton66.Font = Enum.Font.SourceSans | |
1408 | TextButton66.FontSize = Enum.FontSize.Size14 | |
1409 | TextLabel67.Name = "RT" | |
1410 | TextLabel67.Parent = Frame62 | |
1411 | TextLabel67.Transparency = 1 | |
1412 | TextLabel67.Size = UDim2.new(0, 0, 1, 0) | |
1413 | TextLabel67.Text = "RT" | |
1414 | TextLabel67.Position = UDim2.new(1, 10, 0, 0) | |
1415 | TextLabel67.BackgroundColor3 = Color3.new(1, 1, 1) | |
1416 | TextLabel67.BackgroundTransparency = 1 | |
1417 | TextLabel67.Font = Enum.Font.SourceSansBold | |
1418 | TextLabel67.FontSize = Enum.FontSize.Size48 | |
1419 | TextLabel67.TextColor3 = Color3.new(1, 1, 1) | |
1420 | TextLabel67.TextStrokeTransparency = 0.80000001192093 | |
1421 | TextLabel67.TextWrapped = true | |
1422 | TextLabel67.TextXAlignment = Enum.TextXAlignment.Left | |
1423 | TextLabel68.Name = "LT" | |
1424 | TextLabel68.Parent = Frame62 | |
1425 | TextLabel68.Transparency = 1 | |
1426 | TextLabel68.Size = UDim2.new(0, 0, 1, 0) | |
1427 | TextLabel68.Text = "LT" | |
1428 | TextLabel68.Position = UDim2.new(0, -10, 0, 0) | |
1429 | TextLabel68.BackgroundColor3 = Color3.new(1, 1, 1) | |
1430 | TextLabel68.BackgroundTransparency = 1 | |
1431 | TextLabel68.Font = Enum.Font.SourceSansBold | |
1432 | TextLabel68.FontSize = Enum.FontSize.Size48 | |
1433 | TextLabel68.TextColor3 = Color3.new(1, 1, 1) | |
1434 | TextLabel68.TextStrokeTransparency = 0.80000001192093 | |
1435 | TextLabel68.TextWrapped = true | |
1436 | TextLabel68.TextXAlignment = Enum.TextXAlignment.Right | |
1437 | Frame69.Name = "Speed" | |
1438 | Frame69.Parent = ScreenGui61 | |
1439 | Frame69.Size = UDim2.new(0, 200, 0, -40) | |
1440 | Frame69.Position = UDim2.new(0, 550, 1, -30) | |
1441 | Frame69.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1442 | Frame69.BorderSizePixel = 0 | |
1443 | TextLabel70.Name = "Label" | |
1444 | TextLabel70.Parent = Frame69 | |
1445 | TextLabel70.Transparency = 1 | |
1446 | TextLabel70.Size = UDim2.new(1, 0, 0, -20) | |
1447 | TextLabel70.Text = "SPEED" | |
1448 | TextLabel70.Position = UDim2.new(0, 0, 0, -10) | |
1449 | TextLabel70.BackgroundColor3 = Color3.new(1, 1, 1) | |
1450 | TextLabel70.BackgroundTransparency = 1 | |
1451 | TextLabel70.Font = Enum.Font.SourceSans | |
1452 | TextLabel70.FontSize = Enum.FontSize.Size48 | |
1453 | TextLabel70.TextColor3 = Color3.new(1, 1, 1) | |
1454 | TextLabel70.TextStrokeTransparency = 0.80000001192093 | |
1455 | TextLabel70.TextWrapped = true | |
1456 | TextLabel71.Name = "Amount" | |
1457 | TextLabel71.Parent = Frame69 | |
1458 | TextLabel71.Transparency = 1 | |
1459 | TextLabel71.Size = UDim2.new(1, 0, 1, 0) | |
1460 | TextLabel71.Text = "0" | |
1461 | TextLabel71.BackgroundColor3 = Color3.new(1, 1, 1) | |
1462 | TextLabel71.BackgroundTransparency = 1 | |
1463 | TextLabel71.Font = Enum.Font.Code | |
1464 | TextLabel71.FontSize = Enum.FontSize.Size14 | |
1465 | TextLabel71.TextColor3 = Color3.new(1, 1, 1) | |
1466 | TextLabel71.TextScaled = true | |
1467 | TextLabel71.TextWrapped = true | |
1468 | Frame72.Name = "Altitude" | |
1469 | Frame72.Parent = ScreenGui61 | |
1470 | Frame72.Size = UDim2.new(0, 200, 0, -40) | |
1471 | Frame72.Position = UDim2.new(0, 800, 1, -30) | |
1472 | Frame72.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1473 | Frame72.BorderSizePixel = 0 | |
1474 | TextLabel73.Name = "Label" | |
1475 | TextLabel73.Parent = Frame72 | |
1476 | TextLabel73.Transparency = 1 | |
1477 | TextLabel73.Size = UDim2.new(1, 0, 0, -20) | |
1478 | TextLabel73.Text = "ALTITUDE" | |
1479 | TextLabel73.Position = UDim2.new(0, 0, 0, -10) | |
1480 | TextLabel73.BackgroundColor3 = Color3.new(1, 1, 1) | |
1481 | TextLabel73.BackgroundTransparency = 1 | |
1482 | TextLabel73.Font = Enum.Font.SourceSans | |
1483 | TextLabel73.FontSize = Enum.FontSize.Size48 | |
1484 | TextLabel73.TextColor3 = Color3.new(1, 1, 1) | |
1485 | TextLabel73.TextStrokeTransparency = 0.80000001192093 | |
1486 | TextLabel73.TextWrapped = true | |
1487 | TextLabel74.Name = "Amount" | |
1488 | TextLabel74.Parent = Frame72 | |
1489 | TextLabel74.Transparency = 1 | |
1490 | TextLabel74.Size = UDim2.new(1, 0, 1, 0) | |
1491 | TextLabel74.Text = "0" | |
1492 | TextLabel74.BackgroundColor3 = Color3.new(1, 1, 1) | |
1493 | TextLabel74.BackgroundTransparency = 1 | |
1494 | TextLabel74.Font = Enum.Font.Code | |
1495 | TextLabel74.FontSize = Enum.FontSize.Size14 | |
1496 | TextLabel74.TextColor3 = Color3.new(1, 1, 1) | |
1497 | TextLabel74.TextScaled = true | |
1498 | TextLabel74.TextWrapped = true | |
1499 | ScreenGui75.Name = "PlaneGui" | |
1500 | ScreenGui75.Parent = LocalScript56 | |
1501 | Frame76.Name = "Throttle" | |
1502 | Frame76.Parent = ScreenGui75 | |
1503 | Frame76.Size = UDim2.new(0, 350, 0, -20) | |
1504 | Frame76.Position = UDim2.new(0, 80, 1, -40) | |
1505 | Frame76.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1506 | Frame76.BorderSizePixel = 0 | |
1507 | TextLabel77.Name = "Label" | |
1508 | TextLabel77.Parent = Frame76 | |
1509 | TextLabel77.Transparency = 1 | |
1510 | TextLabel77.Size = UDim2.new(1, 0, 0, -20) | |
1511 | TextLabel77.Text = "THROTTLE" | |
1512 | TextLabel77.Position = UDim2.new(0, 0, 0, -20) | |
1513 | TextLabel77.BackgroundColor3 = Color3.new(1, 1, 1) | |
1514 | TextLabel77.BackgroundTransparency = 1 | |
1515 | TextLabel77.Font = Enum.Font.SourceSans | |
1516 | TextLabel77.FontSize = Enum.FontSize.Size48 | |
1517 | TextLabel77.TextColor3 = Color3.new(1, 1, 1) | |
1518 | TextLabel77.TextStrokeTransparency = 0.80000001192093 | |
1519 | TextLabel77.TextWrapped = true | |
1520 | Frame78.Name = "Knob" | |
1521 | Frame78.Parent = Frame76 | |
1522 | Frame78.Size = UDim2.new(0, 20, 0, 30) | |
1523 | Frame78.Position = UDim2.new(0, 0, 0.5, -15) | |
1524 | Frame78.BackgroundColor3 = Color3.new(1, 1, 1) | |
1525 | Frame78.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1526 | Frame78.BorderSizePixel = 2 | |
1527 | Frame78.ZIndex = 2 | |
1528 | Frame79.Name = "Bar" | |
1529 | Frame79.Parent = Frame76 | |
1530 | Frame79.Size = UDim2.new(0, 0, 1, 0) | |
1531 | Frame79.BackgroundColor3 = Color3.new(1, 1, 1) | |
1532 | Frame79.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1533 | Frame79.BorderSizePixel = 2 | |
1534 | TextButton80.Name = "Grab" | |
1535 | TextButton80.Parent = Frame76 | |
1536 | TextButton80.Transparency = 1 | |
1537 | TextButton80.Size = UDim2.new(1, 20, 1, 30) | |
1538 | TextButton80.Text = "" | |
1539 | TextButton80.Position = UDim2.new(0, -10, 0, -15) | |
1540 | TextButton80.BackgroundColor3 = Color3.new(1, 0, 0) | |
1541 | TextButton80.BackgroundTransparency = 1 | |
1542 | TextButton80.ZIndex = 3 | |
1543 | TextButton80.Draggable = true | |
1544 | TextButton80.Font = Enum.Font.SourceSans | |
1545 | TextButton80.FontSize = Enum.FontSize.Size14 | |
1546 | TextLabel81.Name = "RT" | |
1547 | TextLabel81.Parent = Frame76 | |
1548 | TextLabel81.Transparency = 1 | |
1549 | TextLabel81.Size = UDim2.new(0, 0, 1, 0) | |
1550 | TextLabel81.Text = "RT" | |
1551 | TextLabel81.Position = UDim2.new(1, 10, 0, 0) | |
1552 | TextLabel81.BackgroundColor3 = Color3.new(1, 1, 1) | |
1553 | TextLabel81.BackgroundTransparency = 1 | |
1554 | TextLabel81.Font = Enum.Font.SourceSansBold | |
1555 | TextLabel81.FontSize = Enum.FontSize.Size48 | |
1556 | TextLabel81.TextColor3 = Color3.new(1, 1, 1) | |
1557 | TextLabel81.TextStrokeTransparency = 0.80000001192093 | |
1558 | TextLabel81.TextWrapped = true | |
1559 | TextLabel81.TextXAlignment = Enum.TextXAlignment.Left | |
1560 | TextLabel82.Name = "LT" | |
1561 | TextLabel82.Parent = Frame76 | |
1562 | TextLabel82.Transparency = 1 | |
1563 | TextLabel82.Size = UDim2.new(0, 0, 1, 0) | |
1564 | TextLabel82.Text = "LT" | |
1565 | TextLabel82.Position = UDim2.new(0, -10, 0, 0) | |
1566 | TextLabel82.BackgroundColor3 = Color3.new(1, 1, 1) | |
1567 | TextLabel82.BackgroundTransparency = 1 | |
1568 | TextLabel82.Font = Enum.Font.SourceSansBold | |
1569 | TextLabel82.FontSize = Enum.FontSize.Size48 | |
1570 | TextLabel82.TextColor3 = Color3.new(1, 1, 1) | |
1571 | TextLabel82.TextStrokeTransparency = 0.80000001192093 | |
1572 | TextLabel82.TextWrapped = true | |
1573 | TextLabel82.TextXAlignment = Enum.TextXAlignment.Right | |
1574 | Frame83.Name = "Speed" | |
1575 | Frame83.Parent = ScreenGui75 | |
1576 | Frame83.Size = UDim2.new(0, 200, 0, -40) | |
1577 | Frame83.Position = UDim2.new(0, 550, 1, -30) | |
1578 | Frame83.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1579 | Frame83.BorderSizePixel = 0 | |
1580 | TextLabel84.Name = "Label" | |
1581 | TextLabel84.Parent = Frame83 | |
1582 | TextLabel84.Transparency = 1 | |
1583 | TextLabel84.Size = UDim2.new(1, 0, 0, -20) | |
1584 | TextLabel84.Text = "SPEED" | |
1585 | TextLabel84.Position = UDim2.new(0, 0, 0, -10) | |
1586 | TextLabel84.BackgroundColor3 = Color3.new(1, 1, 1) | |
1587 | TextLabel84.BackgroundTransparency = 1 | |
1588 | TextLabel84.Font = Enum.Font.SourceSans | |
1589 | TextLabel84.FontSize = Enum.FontSize.Size48 | |
1590 | TextLabel84.TextColor3 = Color3.new(1, 1, 1) | |
1591 | TextLabel84.TextStrokeTransparency = 0.80000001192093 | |
1592 | TextLabel84.TextWrapped = true | |
1593 | TextLabel85.Name = "Amount" | |
1594 | TextLabel85.Parent = Frame83 | |
1595 | TextLabel85.Transparency = 1 | |
1596 | TextLabel85.Size = UDim2.new(1, 0, 1, 0) | |
1597 | TextLabel85.Text = "0" | |
1598 | TextLabel85.BackgroundColor3 = Color3.new(1, 1, 1) | |
1599 | TextLabel85.BackgroundTransparency = 1 | |
1600 | TextLabel85.Font = Enum.Font.Code | |
1601 | TextLabel85.FontSize = Enum.FontSize.Size14 | |
1602 | TextLabel85.TextColor3 = Color3.new(1, 1, 1) | |
1603 | TextLabel85.TextScaled = true | |
1604 | TextLabel85.TextWrapped = true | |
1605 | Frame86.Name = "Altitude" | |
1606 | Frame86.Parent = ScreenGui75 | |
1607 | Frame86.Size = UDim2.new(0, 200, 0, -40) | |
1608 | Frame86.Position = UDim2.new(0, 800, 1, -30) | |
1609 | Frame86.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1610 | Frame86.BorderSizePixel = 0 | |
1611 | TextLabel87.Name = "Label" | |
1612 | TextLabel87.Parent = Frame86 | |
1613 | TextLabel87.Transparency = 1 | |
1614 | TextLabel87.Size = UDim2.new(1, 0, 0, -20) | |
1615 | TextLabel87.Text = "ALTITUDE" | |
1616 | TextLabel87.Position = UDim2.new(0, 0, 0, -10) | |
1617 | TextLabel87.BackgroundColor3 = Color3.new(1, 1, 1) | |
1618 | TextLabel87.BackgroundTransparency = 1 | |
1619 | TextLabel87.Font = Enum.Font.SourceSans | |
1620 | TextLabel87.FontSize = Enum.FontSize.Size48 | |
1621 | TextLabel87.TextColor3 = Color3.new(1, 1, 1) | |
1622 | TextLabel87.TextStrokeTransparency = 0.80000001192093 | |
1623 | TextLabel87.TextWrapped = true | |
1624 | TextLabel88.Name = "Amount" | |
1625 | TextLabel88.Parent = Frame86 | |
1626 | TextLabel88.Transparency = 1 | |
1627 | TextLabel88.Size = UDim2.new(1, 0, 1, 0) | |
1628 | TextLabel88.Text = "0" | |
1629 | TextLabel88.BackgroundColor3 = Color3.new(1, 1, 1) | |
1630 | TextLabel88.BackgroundTransparency = 1 | |
1631 | TextLabel88.Font = Enum.Font.Code | |
1632 | TextLabel88.FontSize = Enum.FontSize.Size14 | |
1633 | TextLabel88.TextColor3 = Color3.new(1, 1, 1) | |
1634 | TextLabel88.TextScaled = true | |
1635 | TextLabel88.TextWrapped = true | |
1636 | TextButton89.Name = "ControlsButton" | |
1637 | TextButton89.Parent = ScreenGui75 | |
1638 | TextButton89.Size = UDim2.new(0, 200, 0, -40) | |
1639 | TextButton89.Text = "CONTROLS" | |
1640 | TextButton89.Position = UDim2.new(1, -230, 1, -30) | |
1641 | TextButton89.BackgroundColor3 = Color3.new(1, 1, 1) | |
1642 | TextButton89.BorderSizePixel = 0 | |
1643 | TextButton89.Font = Enum.Font.SourceSansBold | |
1644 | TextButton89.FontSize = Enum.FontSize.Size36 | |
1645 | TextButton89.TextColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1646 | Frame90.Name = "Controls" | |
1647 | Frame90.Parent = ScreenGui75 | |
1648 | Frame90.Size = UDim2.new(0, 400, 0, 300) | |
1649 | Frame90.Position = UDim2.new(0.5, 0, 0, 30) | |
1650 | Frame90.Active = true | |
1651 | Frame90.Visible = false | |
1652 | Frame90.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1653 | Frame90.Draggable = true | |
1654 | TextLabel91.Name = "Title" | |
1655 | TextLabel91.Parent = Frame90 | |
1656 | TextLabel91.Transparency = 1 | |
1657 | TextLabel91.Size = UDim2.new(1, 0, 0, 30) | |
1658 | TextLabel91.Text = "CONTROLS" | |
1659 | TextLabel91.BackgroundColor3 = Color3.new(1, 1, 1) | |
1660 | TextLabel91.BackgroundTransparency = 1 | |
1661 | TextLabel91.Font = Enum.Font.SourceSansBold | |
1662 | TextLabel91.FontSize = Enum.FontSize.Size36 | |
1663 | TextLabel91.TextColor3 = Color3.new(1, 1, 1) | |
1664 | TextButton92.Name = "Exit" | |
1665 | TextButton92.Parent = Frame90 | |
1666 | TextButton92.Size = UDim2.new(0, -30, 0, 30) | |
1667 | TextButton92.Text = "X" | |
1668 | TextButton92.Position = UDim2.new(1, 5, 0, -5) | |
1669 | TextButton92.BackgroundColor3 = Color3.new(1, 1, 1) | |
1670 | TextButton92.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1671 | TextButton92.BorderSizePixel = 2 | |
1672 | TextButton92.Font = Enum.Font.SourceSansBold | |
1673 | TextButton92.FontSize = Enum.FontSize.Size36 | |
1674 | TextButton92.TextColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
1675 | Frame93.Name = "ListKeyboardMouse" | |
1676 | Frame93.Parent = Frame90 | |
1677 | Frame93.Transparency = 1 | |
1678 | Frame93.Size = UDim2.new(1, -20, 1, -100) | |
1679 | Frame93.Position = UDim2.new(0, 10, 0, 40) | |
1680 | Frame93.Visible = false | |
1681 | Frame93.BackgroundColor3 = Color3.new(1, 1, 1) | |
1682 | Frame93.BackgroundTransparency = 1 | |
1683 | Frame94.Name = "Control01" | |
1684 | Frame94.Parent = Frame93 | |
1685 | Frame94.Transparency = 1 | |
1686 | Frame94.Size = UDim2.new(1, 0, 0, 30) | |
1687 | Frame94.BackgroundColor3 = Color3.new(1, 1, 1) | |
1688 | Frame94.BackgroundTransparency = 1 | |
1689 | TextLabel95.Name = "Label" | |
1690 | TextLabel95.Parent = Frame94 | |
1691 | TextLabel95.Transparency = 1 | |
1692 | TextLabel95.Size = UDim2.new(1, 0, 1, 0) | |
1693 | TextLabel95.Text = "Pitch & Roll" | |
1694 | TextLabel95.BackgroundColor3 = Color3.new(1, 1, 1) | |
1695 | TextLabel95.BackgroundTransparency = 1 | |
1696 | TextLabel95.Font = Enum.Font.SourceSans | |
1697 | TextLabel95.FontSize = Enum.FontSize.Size28 | |
1698 | TextLabel95.TextColor3 = Color3.new(1, 1, 1) | |
1699 | TextLabel95.TextXAlignment = Enum.TextXAlignment.Left | |
1700 | TextLabel96.Name = "Control" | |
1701 | TextLabel96.Parent = Frame94 | |
1702 | TextLabel96.Transparency = 1 | |
1703 | TextLabel96.Size = UDim2.new(1, 0, 1, 0) | |
1704 | TextLabel96.Text = "Mouse" | |
1705 | TextLabel96.BackgroundColor3 = Color3.new(1, 1, 1) | |
1706 | TextLabel96.BackgroundTransparency = 1 | |
1707 | TextLabel96.Font = Enum.Font.SourceSans | |
1708 | TextLabel96.FontSize = Enum.FontSize.Size28 | |
1709 | TextLabel96.TextColor3 = Color3.new(1, 1, 1) | |
1710 | TextLabel96.TextXAlignment = Enum.TextXAlignment.Right | |
1711 | Frame97.Name = "Divider" | |
1712 | Frame97.Parent = Frame94 | |
1713 | Frame97.Size = UDim2.new(1, 0, 0, 1) | |
1714 | Frame97.Position = UDim2.new(0, 0, 1, 0) | |
1715 | Frame97.BackgroundColor3 = Color3.new(0.470588, 0.470588, 0.470588) | |
1716 | Frame97.BorderSizePixel = 0 | |
1717 | Frame98.Name = "Control02" | |
1718 | Frame98.Parent = Frame93 | |
1719 | Frame98.Transparency = 1 | |
1720 | Frame98.Size = UDim2.new(1, 0, 0, 30) | |
1721 | Frame98.Position = UDim2.new(0, 0, 0, 30) | |
1722 | Frame98.BackgroundColor3 = Color3.new(1, 1, 1) | |
1723 | Frame98.BackgroundTransparency = 1 | |
1724 | TextLabel99.Name = "Label" | |
1725 | TextLabel99.Parent = Frame98 | |
1726 | TextLabel99.Transparency = 1 | |
1727 | TextLabel99.Size = UDim2.new(1, 0, 1, 0) | |
1728 | TextLabel99.Text = "Yaw (Rudder)" | |
1729 | TextLabel99.BackgroundColor3 = Color3.new(1, 1, 1) | |
1730 | TextLabel99.BackgroundTransparency = 1 | |
1731 | TextLabel99.Font = Enum.Font.SourceSans | |
1732 | TextLabel99.FontSize = Enum.FontSize.Size28 | |
1733 | TextLabel99.TextColor3 = Color3.new(1, 1, 1) | |
1734 | TextLabel99.TextXAlignment = Enum.TextXAlignment.Left | |
1735 | TextLabel100.Name = "Control" | |
1736 | TextLabel100.Parent = Frame98 | |
1737 | TextLabel100.Transparency = 1 | |
1738 | TextLabel100.Size = UDim2.new(1, 0, 1, 0) | |
1739 | TextLabel100.Text = "A & D" | |
1740 | TextLabel100.BackgroundColor3 = Color3.new(1, 1, 1) | |
1741 | TextLabel100.BackgroundTransparency = 1 | |
1742 | TextLabel100.Font = Enum.Font.SourceSans | |
1743 | TextLabel100.FontSize = Enum.FontSize.Size28 | |
1744 | TextLabel100.TextColor3 = Color3.new(1, 1, 1) | |
1745 | TextLabel100.TextXAlignment = Enum.TextXAlignment.Right | |
1746 | Frame101.Name = "Divider" | |
1747 | Frame101.Parent = Frame98 | |
1748 | Frame101.Size = UDim2.new(1, 0, 0, 1) | |
1749 | Frame101.Position = UDim2.new(0, 0, 1, 0) | |
1750 | Frame101.BackgroundColor3 = Color3.new(0.470588, 0.470588, 0.470588) | |
1751 | Frame101.BorderSizePixel = 0 | |
1752 | Frame102.Name = "Control03" | |
1753 | Frame102.Parent = Frame93 | |
1754 | Frame102.Transparency = 1 | |
1755 | Frame102.Size = UDim2.new(1, 0, 0, 30) | |
1756 | Frame102.Position = UDim2.new(0, 0, 0, 60) | |
1757 | Frame102.BackgroundColor3 = Color3.new(1, 1, 1) | |
1758 | Frame102.BackgroundTransparency = 1 | |
1759 | TextLabel103.Name = "Label" | |
1760 | TextLabel103.Parent = Frame102 | |
1761 | TextLabel103.Transparency = 1 | |
1762 | TextLabel103.Size = UDim2.new(1, 0, 1, 0) | |
1763 | TextLabel103.Text = "Throttle" | |
1764 | TextLabel103.BackgroundColor3 = Color3.new(1, 1, 1) | |
1765 | TextLabel103.BackgroundTransparency = 1 | |
1766 | TextLabel103.Font = Enum.Font.SourceSans | |
1767 | TextLabel103.FontSize = Enum.FontSize.Size28 | |
1768 | TextLabel103.TextColor3 = Color3.new(1, 1, 1) | |
1769 | TextLabel103.TextXAlignment = Enum.TextXAlignment.Left | |
1770 | TextLabel104.Name = "Control" | |
1771 | TextLabel104.Parent = Frame102 | |
1772 | TextLabel104.Transparency = 1 | |
1773 | TextLabel104.Size = UDim2.new(1, 0, 1, 0) | |
1774 | TextLabel104.Text = "W & S" | |
1775 | TextLabel104.BackgroundColor3 = Color3.new(1, 1, 1) | |
1776 | TextLabel104.BackgroundTransparency = 1 | |
1777 | TextLabel104.Font = Enum.Font.SourceSans | |
1778 | TextLabel104.FontSize = Enum.FontSize.Size28 | |
1779 | TextLabel104.TextColor3 = Color3.new(1, 1, 1) | |
1780 | TextLabel104.TextXAlignment = Enum.TextXAlignment.Right | |
1781 | Frame105.Name = "Divider" | |
1782 | Frame105.Parent = Frame102 | |
1783 | Frame105.Size = UDim2.new(1, 0, 0, 1) | |
1784 | Frame105.Position = UDim2.new(0, 0, 1, 0) | |
1785 | Frame105.BackgroundColor3 = Color3.new(0.470588, 0.470588, 0.470588) | |
1786 | Frame105.BorderSizePixel = 0 | |
1787 | Frame106.Name = "Control04" | |
1788 | Frame106.Parent = Frame93 | |
1789 | Frame106.Transparency = 1 | |
1790 | Frame106.Size = UDim2.new(1, 0, 0, 30) | |
1791 | Frame106.Position = UDim2.new(0, 0, 0, 90) | |
1792 | Frame106.BackgroundColor3 = Color3.new(1, 1, 1) | |
1793 | Frame106.BackgroundTransparency = 1 | |
1794 | TextLabel107.Name = "Label" | |
1795 | TextLabel107.Parent = Frame106 | |
1796 | TextLabel107.Transparency = 1 | |
1797 | TextLabel107.Size = UDim2.new(1, 0, 1, 0) | |
1798 | TextLabel107.Text = "Camera View" | |
1799 | TextLabel107.BackgroundColor3 = Color3.new(1, 1, 1) | |
1800 | TextLabel107.BackgroundTransparency = 1 | |
1801 | TextLabel107.Font = Enum.Font.SourceSans | |
1802 | TextLabel107.FontSize = Enum.FontSize.Size28 | |
1803 | TextLabel107.TextColor3 = Color3.new(1, 1, 1) | |
1804 | TextLabel107.TextXAlignment = Enum.TextXAlignment.Left | |
1805 | TextLabel108.Name = "Control" | |
1806 | TextLabel108.Parent = Frame106 | |
1807 | TextLabel108.Transparency = 1 | |
1808 | TextLabel108.Size = UDim2.new(1, 0, 1, 0) | |
1809 | TextLabel108.Text = "C" | |
1810 | TextLabel108.BackgroundColor3 = Color3.new(1, 1, 1) | |
1811 | TextLabel108.BackgroundTransparency = 1 | |
1812 | TextLabel108.Font = Enum.Font.SourceSans | |
1813 | TextLabel108.FontSize = Enum.FontSize.Size28 | |
1814 | TextLabel108.TextColor3 = Color3.new(1, 1, 1) | |
1815 | TextLabel108.TextXAlignment = Enum.TextXAlignment.Right | |
1816 | Frame109.Name = "Divider" | |
1817 | Frame109.Parent = Frame106 | |
1818 | Frame109.Size = UDim2.new(1, 0, 0, 1) | |
1819 | Frame109.Position = UDim2.new(0, 0, 1, 0) | |
1820 | Frame109.BackgroundColor3 = Color3.new(0.470588, 0.470588, 0.470588) | |
1821 | Frame109.BorderSizePixel = 0 | |
1822 | Frame110.Name = "MouseSwitch" | |
1823 | Frame110.Parent = Frame90 | |
1824 | Frame110.Transparency = 1 | |
1825 | Frame110.Size = UDim2.new(1, -20, 0, -40) | |
1826 | Frame110.Position = UDim2.new(0, 10, 1, -10) | |
1827 | Frame110.BackgroundColor3 = Color3.new(1, 1, 1) | |
1828 | Frame110.BackgroundTransparency = 1 | |
1829 | TextLabel111.Name = "Label" | |
1830 | TextLabel111.Parent = Frame110 | |
1831 | TextLabel111.Transparency = 1 | |
1832 | TextLabel111.Size = UDim2.new(1, 0, 1, 0) | |
1833 | TextLabel111.Text = "Use Mouse:" | |
1834 | TextLabel111.BackgroundColor3 = Color3.new(1, 1, 1) | |
1835 | TextLabel111.BackgroundTransparency = 1 | |
1836 | TextLabel111.Font = Enum.Font.SourceSans | |
1837 | TextLabel111.FontSize = Enum.FontSize.Size24 | |
1838 | TextLabel111.TextColor3 = Color3.new(1, 1, 1) | |
1839 | TextLabel111.TextXAlignment = Enum.TextXAlignment.Left | |
1840 | TextButton112.Name = "Switch" | |
1841 | TextButton112.Parent = Frame110 | |
1842 | TextButton112.Size = UDim2.new(-0.5, 0, 1, 0) | |
1843 | TextButton112.Text = "" | |
1844 | TextButton112.Position = UDim2.new(1, 0, 0, 0) | |
1845 | TextButton112.BackgroundColor3 = Color3.new(1, 1, 1) | |
1846 | TextButton112.BorderSizePixel = 0 | |
1847 | TextButton112.Font = Enum.Font.SourceSans | |
1848 | TextButton112.FontSize = Enum.FontSize.Size14 | |
1849 | TextButton112.TextTransparency = 1 | |
1850 | Frame113.Name = "Slider" | |
1851 | Frame113.Parent = TextButton112 | |
1852 | Frame113.Transparency = 1 | |
1853 | Frame113.Size = UDim2.new(0.5, 0, 1, 0) | |
1854 | Frame113.BackgroundColor3 = Color3.new(1, 1, 1) | |
1855 | Frame113.BackgroundTransparency = 1 | |
1856 | Frame113.BorderSizePixel = 0 | |
1857 | TextLabel114.Name = "Label" | |
1858 | TextLabel114.Parent = Frame113 | |
1859 | TextLabel114.Size = UDim2.new(1, -10, 1, -10) | |
1860 | TextLabel114.Text = "YES" | |
1861 | TextLabel114.Position = UDim2.new(0, 5, 0, 5) | |
1862 | TextLabel114.BackgroundColor3 = Color3.new(0.470588, 0.470588, 0.470588) | |
1863 | TextLabel114.BorderSizePixel = 0 | |
1864 | TextLabel114.Font = Enum.Font.SourceSansBold | |
1865 | TextLabel114.FontSize = Enum.FontSize.Size24 | |
1866 | TextLabel114.TextColor3 = Color3.new(1, 1, 1) | |
1867 | Frame115.Name = "ListKeyboard" | |
1868 | Frame115.Parent = Frame90 | |
1869 | Frame115.Transparency = 1 | |
1870 | Frame115.Size = UDim2.new(1, -20, 1, -100) | |
1871 | Frame115.Position = UDim2.new(0, 10, 0, 40) | |
1872 | Frame115.BackgroundColor3 = Color3.new(1, 1, 1) | |
1873 | Frame115.BackgroundTransparency = 1 | |
1874 | Frame116.Name = "Control01" | |
1875 | Frame116.Parent = Frame115 | |
1876 | Frame116.Transparency = 1 | |
1877 | Frame116.Size = UDim2.new(1, 0, 0, 30) | |
1878 | Frame116.BackgroundColor3 = Color3.new(1, 1, 1) | |
1879 | Frame116.BackgroundTransparency = 1 | |
1880 | TextLabel117.Name = "Label" | |
1881 | TextLabel117.Parent = Frame116 | |
1882 | TextLabel117.Transparency = 1 | |
1883 | TextLabel117.Size = UDim2.new(1, 0, 1, 0) | |
1884 | TextLabel117.Text = "Pitch & Roll" | |
1885 | TextLabel117.BackgroundColor3 = Color3.new(1, 1, 1) | |
1886 | TextLabel117.BackgroundTransparency = 1 | |
1887 | TextLabel117.Font = Enum.Font.SourceSans | |
1888 | TextLabel117.FontSize = Enum.FontSize.Size28 | |
1889 | TextLabel117.TextColor3 = Color3.new(1, 1, 1) | |
1890 | TextLabel117.TextXAlignment = Enum.TextXAlignment.Left | |
1891 | TextLabel118.Name = "Control" | |
1892 | TextLabel118.Parent = Frame116 | |
1893 | TextLabel118.Transparency = 1 | |
1894 | TextLabel118.Size = UDim2.new(1, 0, 1, 0) | |
1895 | TextLabel118.Text = "WASD" | |
1896 | TextLabel118.BackgroundColor3 = Color3.new(1, 1, 1) | |
1897 | TextLabel118.BackgroundTransparency = 1 | |
1898 | TextLabel118.Font = Enum.Font.SourceSans | |
1899 | TextLabel118.FontSize = Enum.FontSize.Size28 | |
1900 | TextLabel118.TextColor3 = Color3.new(1, 1, 1) | |
1901 | TextLabel118.TextXAlignment = Enum.TextXAlignment.Right | |
1902 | Frame119.Name = "Divider" | |
1903 | Frame119.Parent = Frame116 | |
1904 | Frame119.Size = UDim2.new(1, 0, 0, 1) | |
1905 | Frame119.Position = UDim2.new(0, 0, 1, 0) | |
1906 | Frame119.BackgroundColor3 = Color3.new(0.470588, 0.470588, 0.470588) | |
1907 | Frame119.BorderSizePixel = 0 | |
1908 | Frame120.Name = "Control02" | |
1909 | Frame120.Parent = Frame115 | |
1910 | Frame120.Transparency = 1 | |
1911 | Frame120.Size = UDim2.new(1, 0, 0, 30) | |
1912 | Frame120.Position = UDim2.new(0, 0, 0, 30) | |
1913 | Frame120.BackgroundColor3 = Color3.new(1, 1, 1) | |
1914 | Frame120.BackgroundTransparency = 1 | |
1915 | TextLabel121.Name = "Label" | |
1916 | TextLabel121.Parent = Frame120 | |
1917 | TextLabel121.Transparency = 1 | |
1918 | TextLabel121.Size = UDim2.new(1, 0, 1, 0) | |
1919 | TextLabel121.Text = "Yaw (Rudder)" | |
1920 | TextLabel121.BackgroundColor3 = Color3.new(1, 1, 1) | |
1921 | TextLabel121.BackgroundTransparency = 1 | |
1922 | TextLabel121.Font = Enum.Font.SourceSans | |
1923 | TextLabel121.FontSize = Enum.FontSize.Size28 | |
1924 | TextLabel121.TextColor3 = Color3.new(1, 1, 1) | |
1925 | TextLabel121.TextXAlignment = Enum.TextXAlignment.Left | |
1926 | TextLabel122.Name = "Control" | |
1927 | TextLabel122.Parent = Frame120 | |
1928 | TextLabel122.Transparency = 1 | |
1929 | TextLabel122.Size = UDim2.new(1, 0, 1, 0) | |
1930 | TextLabel122.Text = "Q & E" | |
1931 | TextLabel122.BackgroundColor3 = Color3.new(1, 1, 1) | |
1932 | TextLabel122.BackgroundTransparency = 1 | |
1933 | TextLabel122.Font = Enum.Font.SourceSans | |
1934 | TextLabel122.FontSize = Enum.FontSize.Size28 | |
1935 | TextLabel122.TextColor3 = Color3.new(1, 1, 1) | |
1936 | TextLabel122.TextXAlignment = Enum.TextXAlignment.Right | |
1937 | Frame123.Name = "Divider" | |
1938 | Frame123.Parent = Frame120 | |
1939 | Frame123.Size = UDim2.new(1, 0, 0, 1) | |
1940 | Frame123.Position = UDim2.new(0, 0, 1, 0) | |
1941 | Frame123.BackgroundColor3 = Color3.new(0.470588, 0.470588, 0.470588) | |
1942 | Frame123.BorderSizePixel = 0 | |
1943 | Frame124.Name = "Control03" | |
1944 | Frame124.Parent = Frame115 | |
1945 | Frame124.Transparency = 1 | |
1946 | Frame124.Size = UDim2.new(1, 0, 0, 30) | |
1947 | Frame124.Position = UDim2.new(0, 0, 0, 60) | |
1948 | Frame124.BackgroundColor3 = Color3.new(1, 1, 1) | |
1949 | Frame124.BackgroundTransparency = 1 | |
1950 | TextLabel125.Name = "Label" | |
1951 | TextLabel125.Parent = Frame124 | |
1952 | TextLabel125.Transparency = 1 | |
1953 | TextLabel125.Size = UDim2.new(1, 0, 1, 0) | |
1954 | TextLabel125.Text = "Throttle" | |
1955 | TextLabel125.BackgroundColor3 = Color3.new(1, 1, 1) | |
1956 | TextLabel125.BackgroundTransparency = 1 | |
1957 | TextLabel125.Font = Enum.Font.SourceSans | |
1958 | TextLabel125.FontSize = Enum.FontSize.Size28 | |
1959 | TextLabel125.TextColor3 = Color3.new(1, 1, 1) | |
1960 | TextLabel125.TextXAlignment = Enum.TextXAlignment.Left | |
1961 | TextLabel126.Name = "Control" | |
1962 | TextLabel126.Parent = Frame124 | |
1963 | TextLabel126.Transparency = 1 | |
1964 | TextLabel126.Size = UDim2.new(1, 0, 1, 0) | |
1965 | TextLabel126.Text = "Z & X" | |
1966 | TextLabel126.BackgroundColor3 = Color3.new(1, 1, 1) | |
1967 | TextLabel126.BackgroundTransparency = 1 | |
1968 | TextLabel126.Font = Enum.Font.SourceSans | |
1969 | TextLabel126.FontSize = Enum.FontSize.Size28 | |
1970 | TextLabel126.TextColor3 = Color3.new(1, 1, 1) | |
1971 | TextLabel126.TextXAlignment = Enum.TextXAlignment.Right | |
1972 | Frame127.Name = "Divider" | |
1973 | Frame127.Parent = Frame124 | |
1974 | Frame127.Size = UDim2.new(1, 0, 0, 1) | |
1975 | Frame127.Position = UDim2.new(0, 0, 1, 0) | |
1976 | Frame127.BackgroundColor3 = Color3.new(0.470588, 0.470588, 0.470588) | |
1977 | Frame127.BorderSizePixel = 0 | |
1978 | Frame128.Name = "Control04" | |
1979 | Frame128.Parent = Frame115 | |
1980 | Frame128.Transparency = 1 | |
1981 | Frame128.Size = UDim2.new(1, 0, 0, 30) | |
1982 | Frame128.Position = UDim2.new(0, 0, 0, 90) | |
1983 | Frame128.BackgroundColor3 = Color3.new(1, 1, 1) | |
1984 | Frame128.BackgroundTransparency = 1 | |
1985 | TextLabel129.Name = "Label" | |
1986 | TextLabel129.Parent = Frame128 | |
1987 | TextLabel129.Transparency = 1 | |
1988 | TextLabel129.Size = UDim2.new(1, 0, 1, 0) | |
1989 | TextLabel129.Text = "Camera View" | |
1990 | TextLabel129.BackgroundColor3 = Color3.new(1, 1, 1) | |
1991 | TextLabel129.BackgroundTransparency = 1 | |
1992 | TextLabel129.Font = Enum.Font.SourceSans | |
1993 | TextLabel129.FontSize = Enum.FontSize.Size28 | |
1994 | TextLabel129.TextColor3 = Color3.new(1, 1, 1) | |
1995 | TextLabel129.TextXAlignment = Enum.TextXAlignment.Left | |
1996 | TextLabel130.Name = "Control" | |
1997 | TextLabel130.Parent = Frame128 | |
1998 | TextLabel130.Transparency = 1 | |
1999 | TextLabel130.Size = UDim2.new(1, 0, 1, 0) | |
2000 | TextLabel130.Text = "C" | |
2001 | TextLabel130.BackgroundColor3 = Color3.new(1, 1, 1) | |
2002 | TextLabel130.BackgroundTransparency = 1 | |
2003 | TextLabel130.Font = Enum.Font.SourceSans | |
2004 | TextLabel130.FontSize = Enum.FontSize.Size28 | |
2005 | TextLabel130.TextColor3 = Color3.new(1, 1, 1) | |
2006 | TextLabel130.TextXAlignment = Enum.TextXAlignment.Right | |
2007 | Frame131.Name = "Divider" | |
2008 | Frame131.Parent = Frame128 | |
2009 | Frame131.Size = UDim2.new(1, 0, 0, 1) | |
2010 | Frame131.Position = UDim2.new(0, 0, 1, 0) | |
2011 | Frame131.BackgroundColor3 = Color3.new(0.470588, 0.470588, 0.470588) | |
2012 | Frame131.BorderSizePixel = 0 | |
2013 | Frame132.Name = "InvertSwitch" | |
2014 | Frame132.Parent = Frame90 | |
2015 | Frame132.Transparency = 1 | |
2016 | Frame132.Size = UDim2.new(1, -20, 0, -40) | |
2017 | Frame132.Position = UDim2.new(0, 10, 1, -60) | |
2018 | Frame132.BackgroundColor3 = Color3.new(1, 1, 1) | |
2019 | Frame132.BackgroundTransparency = 1 | |
2020 | TextLabel133.Name = "Label" | |
2021 | TextLabel133.Parent = Frame132 | |
2022 | TextLabel133.Transparency = 1 | |
2023 | TextLabel133.Size = UDim2.new(1, 0, 1, 0) | |
2024 | TextLabel133.Text = "Invert Pitch:" | |
2025 | TextLabel133.BackgroundColor3 = Color3.new(1, 1, 1) | |
2026 | TextLabel133.BackgroundTransparency = 1 | |
2027 | TextLabel133.Font = Enum.Font.SourceSans | |
2028 | TextLabel133.FontSize = Enum.FontSize.Size24 | |
2029 | TextLabel133.TextColor3 = Color3.new(1, 1, 1) | |
2030 | TextLabel133.TextXAlignment = Enum.TextXAlignment.Left | |
2031 | TextButton134.Name = "Switch" | |
2032 | TextButton134.Parent = Frame132 | |
2033 | TextButton134.Size = UDim2.new(-0.5, 0, 1, 0) | |
2034 | TextButton134.Text = "" | |
2035 | TextButton134.Position = UDim2.new(1, 0, 0, 0) | |
2036 | TextButton134.BackgroundColor3 = Color3.new(1, 1, 1) | |
2037 | TextButton134.BorderSizePixel = 0 | |
2038 | TextButton134.Font = Enum.Font.SourceSans | |
2039 | TextButton134.FontSize = Enum.FontSize.Size14 | |
2040 | TextButton134.TextTransparency = 1 | |
2041 | Frame135.Name = "Slider" | |
2042 | Frame135.Parent = TextButton134 | |
2043 | Frame135.Transparency = 1 | |
2044 | Frame135.Size = UDim2.new(0.5, 0, 1, 0) | |
2045 | Frame135.Position = UDim2.new(0.5, 0, 0, 0) | |
2046 | Frame135.BackgroundColor3 = Color3.new(1, 1, 1) | |
2047 | Frame135.BackgroundTransparency = 1 | |
2048 | Frame135.BorderSizePixel = 0 | |
2049 | TextLabel136.Name = "Label" | |
2050 | TextLabel136.Parent = Frame135 | |
2051 | TextLabel136.Size = UDim2.new(1, -10, 1, -10) | |
2052 | TextLabel136.Text = "NO" | |
2053 | TextLabel136.Position = UDim2.new(0, 5, 0, 5) | |
2054 | TextLabel136.BackgroundColor3 = Color3.new(0.470588, 0.470588, 0.470588) | |
2055 | TextLabel136.BorderSizePixel = 0 | |
2056 | TextLabel136.Font = Enum.Font.SourceSansBold | |
2057 | TextLabel136.FontSize = Enum.FontSize.Size24 | |
2058 | TextLabel136.TextColor3 = Color3.new(1, 1, 1) | |
2059 | ScreenGui137.Name = "PlaneMobileGui" | |
2060 | ScreenGui137.Parent = LocalScript56 | |
2061 | Frame138.Name = "Throttle" | |
2062 | Frame138.Parent = ScreenGui137 | |
2063 | Frame138.Transparency = 0.5 | |
2064 | Frame138.Size = UDim2.new(0, 200, 0, -10) | |
2065 | Frame138.Position = UDim2.new(0.5, 0, 1, -90) | |
2066 | Frame138.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
2067 | Frame138.BackgroundTransparency = 0.5 | |
2068 | Frame138.BorderSizePixel = 0 | |
2069 | TextLabel139.Name = "Label" | |
2070 | TextLabel139.Parent = Frame138 | |
2071 | TextLabel139.Transparency = 1 | |
2072 | TextLabel139.Size = UDim2.new(1, 0, 0, -20) | |
2073 | TextLabel139.Text = "THROTTLE" | |
2074 | TextLabel139.Position = UDim2.new(0, 0, 0, -13) | |
2075 | TextLabel139.BackgroundColor3 = Color3.new(1, 1, 1) | |
2076 | TextLabel139.BackgroundTransparency = 1 | |
2077 | TextLabel139.Font = Enum.Font.SourceSansBold | |
2078 | TextLabel139.FontSize = Enum.FontSize.Size24 | |
2079 | TextLabel139.TextColor3 = Color3.new(1, 1, 1) | |
2080 | TextLabel139.TextStrokeTransparency = 0.80000001192093 | |
2081 | Frame140.Name = "Knob" | |
2082 | Frame140.Parent = Frame138 | |
2083 | Frame140.Size = UDim2.new(0, 20, 0, 30) | |
2084 | Frame140.Position = UDim2.new(0, 0, 0.5, -15) | |
2085 | Frame140.BackgroundColor3 = Color3.new(1, 1, 1) | |
2086 | Frame140.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
2087 | Frame140.BorderSizePixel = 2 | |
2088 | Frame140.ZIndex = 2 | |
2089 | Frame141.Name = "Bar" | |
2090 | Frame141.Parent = Frame138 | |
2091 | Frame141.Size = UDim2.new(0, 0, 1, 0) | |
2092 | Frame141.BackgroundColor3 = Color3.new(1, 1, 1) | |
2093 | Frame141.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
2094 | Frame141.BorderSizePixel = 2 | |
2095 | TextButton142.Name = "Grab" | |
2096 | TextButton142.Parent = Frame138 | |
2097 | TextButton142.Transparency = 1 | |
2098 | TextButton142.Size = UDim2.new(1, 20, 1, 30) | |
2099 | TextButton142.Text = "" | |
2100 | TextButton142.Position = UDim2.new(0, -10, 0, -15) | |
2101 | TextButton142.BackgroundColor3 = Color3.new(1, 0, 0) | |
2102 | TextButton142.BackgroundTransparency = 1 | |
2103 | TextButton142.ZIndex = 3 | |
2104 | TextButton142.Font = Enum.Font.SourceSans | |
2105 | TextButton142.FontSize = Enum.FontSize.Size14 | |
2106 | Frame143.Name = "Speed" | |
2107 | Frame143.Parent = ScreenGui137 | |
2108 | Frame143.Transparency = 0.5 | |
2109 | Frame143.Size = UDim2.new(0, 100, 0, -30) | |
2110 | Frame143.Position = UDim2.new(0.5, -10, 1, -20) | |
2111 | Frame143.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
2112 | Frame143.BackgroundTransparency = 0.5 | |
2113 | Frame143.BorderSizePixel = 0 | |
2114 | TextLabel144.Name = "Label" | |
2115 | TextLabel144.Parent = Frame143 | |
2116 | TextLabel144.Transparency = 1 | |
2117 | TextLabel144.Size = UDim2.new(1, 0, 0, -20) | |
2118 | TextLabel144.Text = "SPEED" | |
2119 | TextLabel144.Position = UDim2.new(0, 0, 0, -3) | |
2120 | TextLabel144.BackgroundColor3 = Color3.new(1, 1, 1) | |
2121 | TextLabel144.BackgroundTransparency = 1 | |
2122 | TextLabel144.Font = Enum.Font.SourceSansBold | |
2123 | TextLabel144.FontSize = Enum.FontSize.Size24 | |
2124 | TextLabel144.TextColor3 = Color3.new(1, 1, 1) | |
2125 | TextLabel144.TextStrokeTransparency = 0.80000001192093 | |
2126 | TextLabel145.Name = "Amount" | |
2127 | TextLabel145.Parent = Frame143 | |
2128 | TextLabel145.Transparency = 1 | |
2129 | TextLabel145.Size = UDim2.new(1, 0, 1, 0) | |
2130 | TextLabel145.Text = "0" | |
2131 | TextLabel145.BackgroundColor3 = Color3.new(1, 1, 1) | |
2132 | TextLabel145.BackgroundTransparency = 1 | |
2133 | TextLabel145.Font = Enum.Font.Code | |
2134 | TextLabel145.FontSize = Enum.FontSize.Size14 | |
2135 | TextLabel145.TextColor3 = Color3.new(1, 1, 1) | |
2136 | TextLabel145.TextScaled = true | |
2137 | TextLabel145.TextWrapped = true | |
2138 | Frame146.Name = "Altitude" | |
2139 | Frame146.Parent = ScreenGui137 | |
2140 | Frame146.Transparency = 0.5 | |
2141 | Frame146.Size = UDim2.new(0, 100, 0, -30) | |
2142 | Frame146.Position = UDim2.new(0.5, 10, 1, -20) | |
2143 | Frame146.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
2144 | Frame146.BackgroundTransparency = 0.5 | |
2145 | Frame146.BorderSizePixel = 0 | |
2146 | TextLabel147.Name = "Label" | |
2147 | TextLabel147.Parent = Frame146 | |
2148 | TextLabel147.Transparency = 1 | |
2149 | TextLabel147.Size = UDim2.new(1, 0, 0, -20) | |
2150 | TextLabel147.Text = "ALTITUDE" | |
2151 | TextLabel147.Position = UDim2.new(0, 0, 0, -3) | |
2152 | TextLabel147.BackgroundColor3 = Color3.new(1, 1, 1) | |
2153 | TextLabel147.BackgroundTransparency = 1 | |
2154 | TextLabel147.Font = Enum.Font.SourceSansBold | |
2155 | TextLabel147.FontSize = Enum.FontSize.Size24 | |
2156 | TextLabel147.TextColor3 = Color3.new(1, 1, 1) | |
2157 | TextLabel147.TextStrokeTransparency = 0.80000001192093 | |
2158 | TextLabel148.Name = "Amount" | |
2159 | TextLabel148.Parent = Frame146 | |
2160 | TextLabel148.Transparency = 1 | |
2161 | TextLabel148.Size = UDim2.new(1, 0, 1, 0) | |
2162 | TextLabel148.Text = "0" | |
2163 | TextLabel148.BackgroundColor3 = Color3.new(1, 1, 1) | |
2164 | TextLabel148.BackgroundTransparency = 1 | |
2165 | TextLabel148.Font = Enum.Font.Code | |
2166 | TextLabel148.FontSize = Enum.FontSize.Size14 | |
2167 | TextLabel148.TextColor3 = Color3.new(1, 1, 1) | |
2168 | TextLabel148.TextScaled = true | |
2169 | TextLabel148.TextWrapped = true | |
2170 | Frame149.Name = "ThumbstickLeft" | |
2171 | Frame149.Parent = ScreenGui137 | |
2172 | Frame149.Transparency = 0.5 | |
2173 | Frame149.Size = UDim2.new(0, 120, 0, 120) | |
2174 | Frame149.Position = UDim2.new(0, 20, 1, -140) | |
2175 | Frame149.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
2176 | Frame149.BackgroundTransparency = 0.5 | |
2177 | Frame150.Name = "Stick" | |
2178 | Frame150.Parent = Frame149 | |
2179 | Frame150.Size = UDim2.new(0.300000012, 0, 0.300000012, 0) | |
2180 | Frame150.Position = UDim2.new(0.5, 0, 0.5, 0) | |
2181 | Frame150.BackgroundColor3 = Color3.new(1, 1, 1) | |
2182 | Frame150.BorderSizePixel = 0 | |
2183 | TextButton151.Name = "Button" | |
2184 | TextButton151.Parent = Frame149 | |
2185 | TextButton151.Transparency = 1 | |
2186 | TextButton151.Size = UDim2.new(1, 0, 1, 0) | |
2187 | TextButton151.Text = "" | |
2188 | TextButton151.Position = UDim2.new(0.5, 0, 0.5, 0) | |
2189 | TextButton151.BackgroundColor3 = Color3.new(1, 1, 1) | |
2190 | TextButton151.BackgroundTransparency = 1 | |
2191 | TextButton151.Font = Enum.Font.SourceSans | |
2192 | TextButton151.FontSize = Enum.FontSize.Size14 | |
2193 | TextButton151.TextTransparency = 1 | |
2194 | TextLabel152.Name = "Label" | |
2195 | TextLabel152.Parent = Frame149 | |
2196 | TextLabel152.Transparency = 1 | |
2197 | TextLabel152.Size = UDim2.new(1, 0, 0, -20) | |
2198 | TextLabel152.Text = "YAW" | |
2199 | TextLabel152.Position = UDim2.new(0, 0, 0, -3) | |
2200 | TextLabel152.BackgroundColor3 = Color3.new(1, 1, 1) | |
2201 | TextLabel152.BackgroundTransparency = 1 | |
2202 | TextLabel152.Font = Enum.Font.SourceSansBold | |
2203 | TextLabel152.FontSize = Enum.FontSize.Size24 | |
2204 | TextLabel152.TextColor3 = Color3.new(1, 1, 1) | |
2205 | TextLabel152.TextStrokeTransparency = 0.80000001192093 | |
2206 | Frame153.Name = "ThumbstickRight" | |
2207 | Frame153.Parent = ScreenGui137 | |
2208 | Frame153.Transparency = 0.5 | |
2209 | Frame153.Size = UDim2.new(0, 120, 0, 120) | |
2210 | Frame153.Position = UDim2.new(1, -140, 1, -140) | |
2211 | Frame153.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
2212 | Frame153.BackgroundTransparency = 0.5 | |
2213 | Frame154.Name = "Stick" | |
2214 | Frame154.Parent = Frame153 | |
2215 | Frame154.Size = UDim2.new(0.300000012, 0, 0.300000012, 0) | |
2216 | Frame154.Position = UDim2.new(0.5, 0, 0.5, 0) | |
2217 | Frame154.BackgroundColor3 = Color3.new(1, 1, 1) | |
2218 | Frame154.BorderSizePixel = 0 | |
2219 | TextButton155.Name = "Button" | |
2220 | TextButton155.Parent = Frame153 | |
2221 | TextButton155.Transparency = 1 | |
2222 | TextButton155.Size = UDim2.new(1, 0, 1, 0) | |
2223 | TextButton155.Text = "" | |
2224 | TextButton155.Position = UDim2.new(0.5, 0, 0.5, 0) | |
2225 | TextButton155.BackgroundColor3 = Color3.new(1, 1, 1) | |
2226 | TextButton155.BackgroundTransparency = 1 | |
2227 | TextButton155.Font = Enum.Font.SourceSans | |
2228 | TextButton155.FontSize = Enum.FontSize.Size14 | |
2229 | TextButton155.TextTransparency = 1 | |
2230 | TextLabel156.Name = "Label" | |
2231 | TextLabel156.Parent = Frame153 | |
2232 | TextLabel156.Transparency = 1 | |
2233 | TextLabel156.Size = UDim2.new(1, 0, 0, -20) | |
2234 | TextLabel156.Text = "PITCH & ROLL" | |
2235 | TextLabel156.Position = UDim2.new(0, 0, 0, -3) | |
2236 | TextLabel156.BackgroundColor3 = Color3.new(1, 1, 1) | |
2237 | TextLabel156.BackgroundTransparency = 1 | |
2238 | TextLabel156.Font = Enum.Font.SourceSansBold | |
2239 | TextLabel156.FontSize = Enum.FontSize.Size24 | |
2240 | TextLabel156.TextColor3 = Color3.new(1, 1, 1) | |
2241 | TextLabel156.TextStrokeTransparency = 0.80000001192093 | |
2242 | TextButton157.Name = "ChangeView" | |
2243 | TextButton157.Parent = ScreenGui137 | |
2244 | TextButton157.Transparency = 0.5 | |
2245 | TextButton157.Size = UDim2.new(0, -120, 0, -40) | |
2246 | TextButton157.Text = "VIEW" | |
2247 | TextButton157.Position = UDim2.new(1, -20, 1, -180) | |
2248 | TextButton157.BackgroundColor3 = Color3.new(1, 1, 1) | |
2249 | TextButton157.BackgroundTransparency = 0.5 | |
2250 | TextButton157.BorderSizePixel = 0 | |
2251 | TextButton157.Font = Enum.Font.SourceSans | |
2252 | TextButton157.FontSize = Enum.FontSize.Size14 | |
2253 | TextButton157.TextColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
2254 | TextButton157.TextScaled = true | |
2255 | TextButton157.TextWrapped = true | |
2256 | TextButton158.Name = "Exit" | |
2257 | TextButton158.Parent = ScreenGui137 | |
2258 | TextButton158.Transparency = 0.5 | |
2259 | TextButton158.Size = UDim2.new(0, -120, 0, 40) | |
2260 | TextButton158.Text = "EXIT" | |
2261 | TextButton158.Position = UDim2.new(1, -20, 0, 20) | |
2262 | TextButton158.BackgroundColor3 = Color3.new(1, 1, 1) | |
2263 | TextButton158.BackgroundTransparency = 0.5 | |
2264 | TextButton158.BorderSizePixel = 0 | |
2265 | TextButton158.Font = Enum.Font.SourceSans | |
2266 | TextButton158.FontSize = Enum.FontSize.Size14 | |
2267 | TextButton158.TextColor3 = Color3.new(0.156863, 0.156863, 0.156863) | |
2268 | TextButton158.TextScaled = true | |
2269 | TextButton158.TextWrapped = true | |
2270 | BoolValue159.Name = "ReadyToWeld" | |
2271 | BoolValue159.Parent = Model0 | |
2272 | Script160.Name = "Damage" | |
2273 | Script160.Parent = Model0 | |
2274 | table.insert(cors,sandbox(Script160,function() | |
2275 | local boomnum = math.random(1,3) | |
2276 | ||
2277 | -- Damage | |
2278 | -- Crazyman32 | |
2279 | -- January 19, 2017 | |
2280 | ||
2281 | --[[ | |
2282 | ||
2283 | This script handles simulating damage on the aircraft by | |
2284 | listening to objects that touch the aircraft. By measuring | |
2285 | the impact velocity (plane's velocity - other velocity), | |
2286 | we can try to subtract health from the plane. If the health | |
2287 | hits 0, the plane dies! | |
2288 | ||
2289 | To change the Max Health of the plane, change the MaxValue | |
2290 | of the Health object (it's a child of this script object). | |
2291 | The health will automatically be set to the MaxValue when | |
2292 | this script is executed. | |
2293 | ||
2294 | --]] | |
2295 | ||
2296 | ||
2297 | ||
2298 | local plane = script.Parent | |
2299 | while (not plane.PrimaryPart) do wait() end | |
2300 | local main = plane.PrimaryPart | |
2301 | ||
2302 | local seat = plane:WaitForChild("Functional"):WaitForChild("PilotSeat") | |
2303 | ||
2304 | local lookFor = "DamageCollider" | |
2305 | ||
2306 | local health = script:WaitForChild("Health") | |
2307 | health.Value = health.MaxValue | |
2308 | ||
2309 | -- Calculate damage when the magnitude of the | |
2310 | -- impact is within the range of these values: | |
2311 | local impactThresholdLow = 70 | |
2312 | local impactThresholdHigh = 500 | |
2313 | ||
2314 | -- Maximum possible damage from a single impact: (In other words, if the impact hits "impactThresholdHigh", then this much damage is done) | |
2315 | local maxDamage = 300 | |
2316 | ||
2317 | -- Is it dead? (Don't change!) | |
2318 | local dead = false | |
2319 | ||
2320 | -- When did it die? (Don't change!) | |
2321 | local deadAt = 0 | |
2322 | ||
2323 | -- Should the plane break into pieces next impact? (Don't change!) | |
2324 | local breakPlane = false | |
2325 | ||
2326 | local listeners = {} | |
2327 | ||
2328 | ||
2329 | function KillPlane() | |
2330 | breakPlane = true | |
2331 | -- Kill the pilot: | |
2332 | if (seat.Occupant) then | |
2333 | seat.Occupant.Health = 0 | |
2334 | -- Sorry pilot. Hopefully the game has respawning implemented. | |
2335 | end | |
2336 | main.Fire.Enabled = false | |
2337 | main.Smoke.Enabled = false | |
2338 | plane:BreakJoints() | |
2339 | -- Play explosion. BOOM: | |
2340 | if (main.Parent and main:FindFirstChild("Explosion1")) and main:FindFirstChild("Explosion2") and main:FindFirstChild("Explosion3") then | |
2341 | boomnum = math.random(1,3) | |
2342 | if boomnum == 1 then | |
2343 | main.Explosion1:Play() | |
2344 | elseif boomnum == 2 then | |
2345 | main.Explosion2:Play() | |
2346 | elseif boomnum == 3 then | |
2347 | main.Explosion3:Play() | |
2348 | end | |
2349 | end | |
2350 | end | |
2351 | ||
2352 | ||
2353 | -- Listen for impact damage on the given part: | |
2354 | function ListenForDamage(part) | |
2355 | ||
2356 | -- Classic debounce. If "true", then touches are "debounced", thus | |
2357 | -- any impacts when this is "true" will be ignored. It is only | |
2358 | -- set true for a fraction of a second after impacts: | |
2359 | local debounce = false | |
2360 | ||
2361 | local listener = part.Touched:Connect(function(toucher) | |
2362 | ||
2363 | if (debounce or toucher:IsDescendantOf(plane)) then return end | |
2364 | ||
2365 | -- Measure impact force: | |
2366 | local impactVelocity = (part.Velocity - toucher.Velocity).Magnitude | |
2367 | ||
2368 | if (impactVelocity > impactThresholdLow or dead) then | |
2369 | if (dead) then | |
2370 | ||
2371 | -- How long it's been since the plane died and this impact occurred: | |
2372 | local dur = (tick() - deadAt) | |
2373 | ||
2374 | -- My professor would yell at me for this "magic number". | |
2375 | -- Coding tip: Typically you shouldn't have random numbers floating around your code like this. | |
2376 | -- I'm going to not fix this just to teach you a lesson (and thanks for reading my crazy comments). | |
2377 | if (dur > 0.1 and not breakPlane) then | |
2378 | KillPlane() | |
2379 | end | |
2380 | ||
2381 | else | |
2382 | ||
2383 | -- Calculate how much damage should be done based on the impact thresholds and the max damage allowed per impact: | |
2384 | local damageRatio = (impactVelocity - impactThresholdLow) / (impactThresholdHigh - impactThresholdLow) | |
2385 | local damage = (maxDamage * damageRatio) | |
2386 | health.Value = (health.Value - damage) | |
2387 | debounce = true | |
2388 | ||
2389 | -- Somewhat arbitrary delay (at least the amount of time is arbitrary). | |
2390 | -- Don't allow any other damage until this delay function executes: | |
2391 | delay(0.25, function() | |
2392 | debounce = false | |
2393 | end) | |
2394 | ||
2395 | end | |
2396 | end | |
2397 | end) | |
2398 | ||
2399 | -- Store the listener! We will want to disconnect it at some point: | |
2400 | table.insert(listeners, listener) | |
2401 | ||
2402 | end | |
2403 | ||
2404 | ||
2405 | -- Called when the health reaches 0: | |
2406 | function OnDied() | |
2407 | dead = true | |
2408 | deadAt = tick() | |
2409 | plane.Dead.Value = true | |
2410 | main.Fire.Enabled = true | |
2411 | main.Smoke.Enabled = true | |
2412 | -- Wait a bit before forcing the plane to break into pieces: | |
2413 | delay(5, function() | |
2414 | if (not breakPlane) then | |
2415 | KillPlane() | |
2416 | end | |
2417 | -- Remove the plane after a little while: | |
2418 | wait(10) | |
2419 | plane:Destroy() | |
2420 | end) | |
2421 | end | |
2422 | ||
2423 | ||
2424 | -- Called when the health changes: | |
2425 | function HealthChanged(newHealth) | |
2426 | if (dead) then return end | |
2427 | if (newHealth <= health.MinValue) then | |
2428 | OnDied() | |
2429 | end | |
2430 | end | |
2431 | ||
2432 | ||
2433 | -- Recurse through the plane to find all the parts, then hook each | |
2434 | -- part up to listen for damage: | |
2435 | function ScanForParts(parent) | |
2436 | for _,v in pairs(parent:GetChildren()) do | |
2437 | if (v:IsA("BasePart") and v:FindFirstChild(lookFor)) then | |
2438 | ListenForDamage(v) | |
2439 | end | |
2440 | ScanForParts(v) | |
2441 | end | |
2442 | -- Fun fact: Recursive functions like this can be prone to "stack overflow" errors. | |
2443 | -- Tail-call functions would avoid this, but (as of Feb. 2017) tailcalling is removed from Lua in ROBLOX. | |
2444 | end | |
2445 | ||
2446 | ScanForParts(plane) | |
2447 | health.Changed:Connect(HealthChanged) | |
2448 | HealthChanged(health.Value) | |
2449 | end)) | |
2450 | BoolValue161.Name = "Dead" | |
2451 | BoolValue161.Parent = Model0 | |
2452 | Model162.Name = "Parts" | |
2453 | Model162.Parent = Model0 | |
2454 | Model163.Name = "WingStruts" | |
2455 | Model163.Parent = Model162 | |
2456 | ObjectValue164.Name = "DamageCollider" | |
2457 | ObjectValue164.Parent = mas | |
2458 | ObjectValue165.Name = "DamageCollider" | |
2459 | ObjectValue165.Parent = mas | |
2460 | Part166.Name = "WingStrut" | |
2461 | Part166.Parent = Model163 | |
2462 | Part166.Material = Enum.Material.Wood | |
2463 | Part166.BrickColor = BrickColor.new("Brown") | |
2464 | Part166.Rotation = Vector3.new(-180, 0, -180) | |
2465 | Part166.Anchored = true | |
2466 | Part166.Size = Vector3.new(0.200000003, 2, 0.600000024) | |
2467 | Part166.CFrame = CFrame.new(-8.82043362, 10.3890963, -2.75390601, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2468 | Part166.BottomSurface = Enum.SurfaceType.Smooth | |
2469 | Part166.TopSurface = Enum.SurfaceType.Smooth | |
2470 | Part166.Color = Color3.new(0.486275, 0.360784, 0.27451) | |
2471 | Part166.Position = Vector3.new(-8.82043362, 10.3890963, -2.75390601) | |
2472 | Part166.Orientation = Vector3.new(0, 180, 0) | |
2473 | Part166.Color = Color3.new(0.486275, 0.360784, 0.27451) | |
2474 | Part167.Name = "WingStrut" | |
2475 | Part167.Parent = Model163 | |
2476 | Part167.Material = Enum.Material.Wood | |
2477 | Part167.BrickColor = BrickColor.new("Brown") | |
2478 | Part167.Rotation = Vector3.new(-180, 0, -180) | |
2479 | Part167.Anchored = true | |
2480 | Part167.Size = Vector3.new(0.200000003, 2, 0.600000024) | |
2481 | Part167.CFrame = CFrame.new(-12.6203585, 10.3890963, -2.75402808, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2482 | Part167.BottomSurface = Enum.SurfaceType.Smooth | |
2483 | Part167.TopSurface = Enum.SurfaceType.Smooth | |
2484 | Part167.Color = Color3.new(0.486275, 0.360784, 0.27451) | |
2485 | Part167.Position = Vector3.new(-12.6203585, 10.3890963, -2.75402808) | |
2486 | Part167.Orientation = Vector3.new(0, 180, 0) | |
2487 | Part167.Color = Color3.new(0.486275, 0.360784, 0.27451) | |
2488 | Model168.Name = "Cockpit" | |
2489 | Model168.Parent = Model162 | |
2490 | Part169.Name = "CockpitPart" | |
2491 | Part169.Parent = Model168 | |
2492 | Part169.BrickColor = BrickColor.new("Grime") | |
2493 | Part169.Rotation = Vector3.new(-180, 0, -180) | |
2494 | Part169.Anchored = true | |
2495 | Part169.CanCollide = false | |
2496 | Part169.Size = Vector3.new(1, 1, 2) | |
2497 | Part169.CFrame = CFrame.new(-9.22021389, 6.88911581, -5.25378418, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2498 | Part169.BottomSurface = Enum.SurfaceType.Smooth | |
2499 | Part169.TopSurface = Enum.SurfaceType.Smooth | |
2500 | Part169.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2501 | Part169.Position = Vector3.new(-9.22021389, 6.88911581, -5.25378418) | |
2502 | Part169.Orientation = Vector3.new(0, 180, 0) | |
2503 | Part169.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2504 | Part170.Name = "CockpitPart" | |
2505 | Part170.Parent = Model168 | |
2506 | Part170.BrickColor = BrickColor.new("Grime") | |
2507 | Part170.Rotation = Vector3.new(-180, 0, -180) | |
2508 | Part170.Anchored = true | |
2509 | Part170.CanCollide = false | |
2510 | Part170.Size = Vector3.new(1, 1, 2) | |
2511 | Part170.CFrame = CFrame.new(-12.2203979, 6.88911581, -5.25366211, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2512 | Part170.BottomSurface = Enum.SurfaceType.Smooth | |
2513 | Part170.TopSurface = Enum.SurfaceType.Smooth | |
2514 | Part170.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2515 | Part170.Position = Vector3.new(-12.2203979, 6.88911581, -5.25366211) | |
2516 | Part170.Orientation = Vector3.new(0, 180, 0) | |
2517 | Part170.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2518 | Part171.Name = "CockpitPart" | |
2519 | Part171.Parent = Model168 | |
2520 | Part171.BrickColor = BrickColor.new("Grime") | |
2521 | Part171.Rotation = Vector3.new(-180, 0, -180) | |
2522 | Part171.Anchored = true | |
2523 | Part171.CanCollide = false | |
2524 | Part171.Size = Vector3.new(1, 2, 1) | |
2525 | Part171.CFrame = CFrame.new(-9.22045994, 7.38911104, -3.75378799, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2526 | Part171.BottomSurface = Enum.SurfaceType.Smooth | |
2527 | Part171.TopSurface = Enum.SurfaceType.Smooth | |
2528 | Part171.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2529 | Part171.Position = Vector3.new(-9.22045994, 7.38911104, -3.75378799) | |
2530 | Part171.Orientation = Vector3.new(0, 180, 0) | |
2531 | Part171.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2532 | Part172.Name = "CockpitPart" | |
2533 | Part172.Parent = Model168 | |
2534 | Part172.BrickColor = BrickColor.new("Grime") | |
2535 | Part172.Rotation = Vector3.new(-180, 0, -180) | |
2536 | Part172.Anchored = true | |
2537 | Part172.CanCollide = false | |
2538 | Part172.Size = Vector3.new(1, 2, 1) | |
2539 | Part172.CFrame = CFrame.new(-12.2204561, 7.38911104, -3.75390601, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2540 | Part172.BottomSurface = Enum.SurfaceType.Smooth | |
2541 | Part172.TopSurface = Enum.SurfaceType.Smooth | |
2542 | Part172.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2543 | Part172.Position = Vector3.new(-12.2204561, 7.38911104, -3.75390601) | |
2544 | Part172.Orientation = Vector3.new(0, 180, 0) | |
2545 | Part172.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2546 | Part173.Name = "CockpitPart" | |
2547 | Part173.Parent = Model168 | |
2548 | Part173.BrickColor = BrickColor.new("Grime") | |
2549 | Part173.Rotation = Vector3.new(-180, 0, -180) | |
2550 | Part173.Anchored = true | |
2551 | Part173.CanCollide = false | |
2552 | Part173.Size = Vector3.new(1, 2, 1) | |
2553 | Part173.CFrame = CFrame.new(-12.2204561, 7.38911104, -6.75390577, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2554 | Part173.BottomSurface = Enum.SurfaceType.Smooth | |
2555 | Part173.TopSurface = Enum.SurfaceType.Smooth | |
2556 | Part173.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2557 | Part173.Position = Vector3.new(-12.2204561, 7.38911104, -6.75390577) | |
2558 | Part173.Orientation = Vector3.new(0, 180, 0) | |
2559 | Part173.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2560 | Part174.Name = "CockpitPart" | |
2561 | Part174.Parent = Model168 | |
2562 | Part174.BrickColor = BrickColor.new("Grime") | |
2563 | Part174.Rotation = Vector3.new(-180, 0, -180) | |
2564 | Part174.Anchored = true | |
2565 | Part174.Size = Vector3.new(4, 1, 8.19999981) | |
2566 | Part174.CFrame = CFrame.new(-10.7204599, 5.88911295, -5.15380812, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2567 | Part174.BottomSurface = Enum.SurfaceType.Smooth | |
2568 | Part174.TopSurface = Enum.SurfaceType.Smooth | |
2569 | Part174.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2570 | Part174.Position = Vector3.new(-10.7204599, 5.88911295, -5.15380812) | |
2571 | Part174.Orientation = Vector3.new(0, 180, 0) | |
2572 | Part174.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2573 | Part175.Name = "CockpitPart" | |
2574 | Part175.Parent = Model168 | |
2575 | Part175.BrickColor = BrickColor.new("Grime") | |
2576 | Part175.Rotation = Vector3.new(-180, 0, -180) | |
2577 | Part175.Anchored = true | |
2578 | Part175.CanCollide = false | |
2579 | Part175.Size = Vector3.new(1, 2, 1) | |
2580 | Part175.CFrame = CFrame.new(-9.22052002, 7.38911104, -6.75378799, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2581 | Part175.BottomSurface = Enum.SurfaceType.Smooth | |
2582 | Part175.TopSurface = Enum.SurfaceType.Smooth | |
2583 | Part175.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2584 | Part175.Position = Vector3.new(-9.22052002, 7.38911104, -6.75378799) | |
2585 | Part175.Orientation = Vector3.new(0, 180, 0) | |
2586 | Part175.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2587 | Part176.Name = "CockpitPart" | |
2588 | Part176.Parent = Model168 | |
2589 | Part176.BrickColor = BrickColor.new("Grime") | |
2590 | Part176.Rotation = Vector3.new(-180, 0, -180) | |
2591 | Part176.Anchored = true | |
2592 | Part176.Size = Vector3.new(4, 3, 2.20000005) | |
2593 | Part176.CFrame = CFrame.new(-10.7204599, 7.88911295, -2.15381002, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2594 | Part176.BottomSurface = Enum.SurfaceType.Smooth | |
2595 | Part176.TopSurface = Enum.SurfaceType.Smooth | |
2596 | Part176.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2597 | Part176.Position = Vector3.new(-10.7204599, 7.88911295, -2.15381002) | |
2598 | Part176.Orientation = Vector3.new(0, 180, 0) | |
2599 | Part176.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2600 | Part177.Name = "CockpitPart" | |
2601 | Part177.Parent = Model168 | |
2602 | Part177.BrickColor = BrickColor.new("Grime") | |
2603 | Part177.Rotation = Vector3.new(-180, 0, -180) | |
2604 | Part177.Anchored = true | |
2605 | Part177.CanCollide = false | |
2606 | Part177.Size = Vector3.new(4, 3, 2) | |
2607 | Part177.CFrame = CFrame.new(-10.7204599, 7.88911295, -8.25342178, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2608 | Part177.BottomSurface = Enum.SurfaceType.Smooth | |
2609 | Part177.TopSurface = Enum.SurfaceType.Smooth | |
2610 | Part177.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2611 | Part177.Position = Vector3.new(-10.7204599, 7.88911295, -8.25342178) | |
2612 | Part177.Orientation = Vector3.new(0, 180, 0) | |
2613 | Part177.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2614 | ObjectValue178.Name = "DamageCollider" | |
2615 | ObjectValue178.Parent = Part177 | |
2616 | Part179.Name = "SeatBack" | |
2617 | Part179.Parent = Model168 | |
2618 | Part179.Material = Enum.Material.Fabric | |
2619 | Part179.BrickColor = BrickColor.new("Institutional white") | |
2620 | Part179.Rotation = Vector3.new(-180, 0, -180) | |
2621 | Part179.Anchored = true | |
2622 | Part179.CanCollide = false | |
2623 | Part179.Size = Vector3.new(2, 3, 0.399999976) | |
2624 | Part179.CFrame = CFrame.new(-10.72052, 7.88911295, -6.45385695, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2625 | Part179.BottomSurface = Enum.SurfaceType.Smooth | |
2626 | Part179.TopSurface = Enum.SurfaceType.Smooth | |
2627 | Part179.Color = Color3.new(0.972549, 0.972549, 0.972549) | |
2628 | Part179.Position = Vector3.new(-10.72052, 7.88911295, -6.45385695) | |
2629 | Part179.Orientation = Vector3.new(0, 180, 0) | |
2630 | Part179.Color = Color3.new(0.972549, 0.972549, 0.972549) | |
2631 | Model180.Name = "LandingGear" | |
2632 | Model180.Parent = Model162 | |
2633 | Attachment181.Name = "Attachment1" | |
2634 | Attachment181.Parent = mas | |
2635 | Attachment181.Rotation = Vector3.new(-180, 0, -180) | |
2636 | Attachment181.CFrame = CFrame.new(2.5, -1.29999995, -0.75, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2637 | Attachment181.Position = Vector3.new(2.5, -1.29999995, -0.75) | |
2638 | Attachment181.Axis = Vector3.new(-1, 0, 0) | |
2639 | Attachment181.Orientation = Vector3.new(-0, 180, 0) | |
2640 | Attachment182.Name = "Attachment1" | |
2641 | Attachment182.Parent = mas | |
2642 | Attachment182.CFrame = CFrame.new(-2.5, -1.29999995, -0.75, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
2643 | Attachment182.Position = Vector3.new(-2.5, -1.29999995, -0.75) | |
2644 | Part183.Name = "WheelLeft" | |
2645 | Part183.Parent = Model180 | |
2646 | Part183.Material = Enum.Material.Metal | |
2647 | Part183.BrickColor = BrickColor.new("Cyan") | |
2648 | Part183.Rotation = Vector3.new(-180, 0, -180) | |
2649 | Part183.Anchored = true | |
2650 | Part183.Shape = Enum.PartType.Cylinder | |
2651 | Part183.Size = Vector3.new(0.200000003, 3, 3) | |
2652 | Part183.CFrame = CFrame.new(-8.12054443, 2.88912702, -1.15356803, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2653 | Part183.BottomSurface = Enum.SurfaceType.Smooth | |
2654 | Part183.TopSurface = Enum.SurfaceType.Smooth | |
2655 | Part183.Color = Color3.new(0.0156863, 0.686275, 0.92549) | |
2656 | Part183.Position = Vector3.new(-8.12054443, 2.88912702, -1.15356803) | |
2657 | Part183.Orientation = Vector3.new(0, 180, 0) | |
2658 | Part183.Color = Color3.new(0.0156863, 0.686275, 0.92549) | |
2659 | Attachment184.Name = "Attachment0" | |
2660 | Attachment184.Parent = Part183 | |
2661 | Attachment184.CFrame = CFrame.new(0.100000001, 0, -0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
2662 | Attachment184.Position = Vector3.new(0.100000001, 0, -0) | |
2663 | HingeConstraint185.Parent = Part183 | |
2664 | HingeConstraint185.Attachment0 = Attachment184 | |
2665 | HingeConstraint185.Attachment1 = Attachment182 | |
2666 | Part186.Name = "WheelRight" | |
2667 | Part186.Parent = Model180 | |
2668 | Part186.Material = Enum.Material.Metal | |
2669 | Part186.BrickColor = BrickColor.new("Dusty Rose") | |
2670 | Part186.Rotation = Vector3.new(-180, 0, -180) | |
2671 | Part186.Anchored = true | |
2672 | Part186.Shape = Enum.PartType.Cylinder | |
2673 | Part186.Size = Vector3.new(0.200000003, 3, 3) | |
2674 | Part186.CFrame = CFrame.new(-13.3206758, 2.88912702, -1.15368795, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2675 | Part186.BottomSurface = Enum.SurfaceType.Smooth | |
2676 | Part186.TopSurface = Enum.SurfaceType.Smooth | |
2677 | Part186.Color = Color3.new(0.639216, 0.294118, 0.294118) | |
2678 | Part186.Position = Vector3.new(-13.3206758, 2.88912702, -1.15368795) | |
2679 | Part186.Orientation = Vector3.new(0, 180, 0) | |
2680 | Part186.Color = Color3.new(0.639216, 0.294118, 0.294118) | |
2681 | Attachment187.Name = "Attachment0" | |
2682 | Attachment187.Parent = Part186 | |
2683 | Attachment187.Rotation = Vector3.new(-180, 0, -180) | |
2684 | Attachment187.CFrame = CFrame.new(-0.100000001, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2685 | Attachment187.Position = Vector3.new(-0.100000001, 0, 0) | |
2686 | Attachment187.Axis = Vector3.new(-1, 0, 0) | |
2687 | Attachment187.Orientation = Vector3.new(-0, 180, 0) | |
2688 | HingeConstraint188.Parent = Part186 | |
2689 | HingeConstraint188.Attachment0 = Attachment187 | |
2690 | HingeConstraint188.Attachment1 = Attachment181 | |
2691 | Model189.Name = "Tail" | |
2692 | Model189.Parent = Model162 | |
2693 | Part190.Name = "TailSection" | |
2694 | Part190.Parent = Model189 | |
2695 | Part190.BrickColor = BrickColor.new("Grime") | |
2696 | Part190.Rotation = Vector3.new(-180, 0, -180) | |
2697 | Part190.Anchored = true | |
2698 | Part190.Size = Vector3.new(3, 3, 3) | |
2699 | Part190.CFrame = CFrame.new(-10.7204599, 7.38911104, -10.7539063, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2700 | Part190.BottomSurface = Enum.SurfaceType.Smooth | |
2701 | Part190.TopSurface = Enum.SurfaceType.Smooth | |
2702 | Part190.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2703 | Part190.Position = Vector3.new(-10.7204599, 7.38911104, -10.7539063) | |
2704 | Part190.Orientation = Vector3.new(0, 180, 0) | |
2705 | Part190.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2706 | ObjectValue191.Name = "DamageCollider" | |
2707 | ObjectValue191.Parent = Part190 | |
2708 | Part192.Name = "TailSection" | |
2709 | Part192.Parent = Model189 | |
2710 | Part192.BrickColor = BrickColor.new("Grime") | |
2711 | Part192.Rotation = Vector3.new(-180, 0, -180) | |
2712 | Part192.Anchored = true | |
2713 | Part192.Size = Vector3.new(2, 2, 3) | |
2714 | Part192.CFrame = CFrame.new(-10.7204599, 7.38911104, -13.7536621, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2715 | Part192.BottomSurface = Enum.SurfaceType.Smooth | |
2716 | Part192.TopSurface = Enum.SurfaceType.Smooth | |
2717 | Part192.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2718 | Part192.Position = Vector3.new(-10.7204599, 7.38911104, -13.7536621) | |
2719 | Part192.Orientation = Vector3.new(0, 180, 0) | |
2720 | Part192.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2721 | ObjectValue193.Name = "DamageCollider" | |
2722 | ObjectValue193.Parent = Part192 | |
2723 | Part194.Name = "TailSection" | |
2724 | Part194.Parent = Model189 | |
2725 | Part194.BrickColor = BrickColor.new("Grime") | |
2726 | Part194.Rotation = Vector3.new(-180, 0, -180) | |
2727 | Part194.Anchored = true | |
2728 | Part194.Size = Vector3.new(1, 1.39999998, 3) | |
2729 | Part194.CFrame = CFrame.new(-10.7204599, 7.38911104, -16.753788, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2730 | Part194.BottomSurface = Enum.SurfaceType.Smooth | |
2731 | Part194.TopSurface = Enum.SurfaceType.Smooth | |
2732 | Part194.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2733 | Part194.Position = Vector3.new(-10.7204599, 7.38911104, -16.753788) | |
2734 | Part194.Orientation = Vector3.new(0, 180, 0) | |
2735 | Part194.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2736 | ObjectValue195.Name = "DamageCollider" | |
2737 | ObjectValue195.Parent = Part194 | |
2738 | Part196.Name = "TailSection" | |
2739 | Part196.Parent = Model189 | |
2740 | Part196.BrickColor = BrickColor.new("Grime") | |
2741 | Part196.Rotation = Vector3.new(-180, 0, -180) | |
2742 | Part196.Anchored = true | |
2743 | Part196.Size = Vector3.new(0.400000006, 1, 7) | |
2744 | Part196.CFrame = CFrame.new(-10.7202759, 7.38911104, -21.7539063, -1, 0, 0, 0, 1, 0, 0, 0, -1) | |
2745 | Part196.BottomSurface = Enum.SurfaceType.Smooth | |
2746 | Part196.TopSurface = Enum.SurfaceType.Smooth | |
2747 | Part196.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2748 | Part196.Position = Vector3.new(-10.7202759, 7.38911104, -21.7539063) | |
2749 | Part196.Orientation = Vector3.new(0, 180, 0) | |
2750 | Part196.Color = Color3.new(0.498039, 0.556863, 0.392157) | |
2751 | ObjectValue197.Name = "DamageCollider" | |
2752 | ObjectValue197.Parent = Part196 | |
2753 | Part198.Name = "RegenButton" | |
2754 | Part198.Parent = Model0 | |
2755 | Part198.Material = Enum.Material.Wood | |
2756 | Part198.BrickColor = BrickColor.new("Dark orange") | |
2757 | Part198.Rotation = Vector3.new(-89.5499954, 87.5400009, 90.4499969) | |
2758 | Part198.Anchored = true | |
2759 | Part198.CanCollide = false | |
2760 | Part198.Size = Vector3.new(3, 1, 3) | |
2761 | Part198.CFrame = CFrame.new(16.6961555, 0.587297022, -21.0871582, -0.000336000085, -0.0429240167, 0.999078333, 0.0156080034, 0.998956501, 0.0429240279, -0.999878228, 0.0156080397, 0.000334308686) | |
2762 | Part198.BottomSurface = Enum.SurfaceType.Smooth | |
2763 | Part198.TopSurface = Enum.SurfaceType.Smooth | |
2764 | Part198.Color = Color3.new(0.627451, 0.372549, 0.207843) | |
2765 | Part198.Position = Vector3.new(16.6961555, 0.587297022, -21.0871582) | |
2766 | Part198.Orientation = Vector3.new(-2.46000004, 89.9799957, 0.899999976) | |
2767 | Part198.Color = Color3.new(0.627451, 0.372549, 0.207843) | |
2768 | SurfaceGui199.Parent = Part198 | |
2769 | SurfaceGui199.Face = Enum.NormalId.Top | |
2770 | SurfaceGui199.CanvasSize = Vector2.new(400, 400) | |
2771 | TextLabel200.Name = "Label" | |
2772 | TextLabel200.Parent = SurfaceGui199 | |
2773 | TextLabel200.Transparency = 1 | |
2774 | TextLabel200.Size = UDim2.new(1, 0, 1, 0) | |
2775 | TextLabel200.Text = "Touch to Spawn Plane" | |
2776 | TextLabel200.BackgroundColor3 = Color3.new(1, 1, 1) | |
2777 | TextLabel200.BackgroundTransparency = 1 | |
2778 | TextLabel200.Font = Enum.Font.SourceSans | |
2779 | TextLabel200.FontSize = Enum.FontSize.Size96 | |
2780 | TextLabel200.TextColor3 = Color3.new(1, 1, 1) | |
2781 | TextLabel200.TextWrapped = true | |
2782 | for i,v in pairs(mas:GetChildren()) do | |
2783 | v.Parent = workspace | |
2784 | pcall(function() v:MakeJoints() end) | |
2785 | end | |
2786 | mas:Destroy() | |
2787 | for i,v in pairs(cors) do | |
2788 | spawn(function() | |
2789 | pcall(v) | |
2790 | end) | |
2791 | end |