SHOW:
|
|
- or go back to the newest paste.
1 | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end | |
2 | local Player,game,owner = owner,game | |
3 | local RealPlayer = Player | |
4 | do | |
5 | print("FE Compatibility code by Mokiros") | |
6 | local rp = RealPlayer | |
7 | script.Parent = rp.Character | |
8 | ||
9 | --RemoteEvent for communicating | |
10 | local Event = Instance.new("RemoteEvent") | |
11 | Event.Name = "UserInput_Event" | |
12 | ||
13 | --Fake event to make stuff like Mouse.KeyDown work | |
14 | local function fakeEvent() | |
15 | local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end} | |
16 | t.connect = t.Connect | |
17 | return t | |
18 | end | |
19 | ||
20 | --Creating fake input objects with fake variables | |
21 | local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()} | |
22 | local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()} | |
23 | local CAS = {Actions={},BindAction=function(self,name,fun,touch,...) | |
24 | CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil | |
25 | end} | |
26 | --Merged 2 functions into one by checking amount of arguments | |
27 | CAS.UnbindAction = CAS.BindAction | |
28 | ||
29 | --This function will trigger the events that have been :Connect()'ed | |
30 | local function te(self,ev,...) | |
31 | local t = m[ev] | |
32 | if t and t._fakeEvent then | |
33 | for _,f in pairs(t.Functions) do | |
34 | f(...) | |
35 | end | |
36 | end | |
37 | end | |
38 | m.TrigEvent = te | |
39 | UIS.TrigEvent = te | |
40 | ||
41 | Event.OnServerEvent:Connect(function(plr,io) | |
42 | if plr~=rp then return end | |
43 | m.Target = io.Target | |
44 | m.Hit = io.Hit | |
45 | if not io.isMouse then | |
46 | local b = io.UserInputState == Enum.UserInputState.Begin | |
47 | if io.UserInputType == Enum.UserInputType.MouseButton1 then | |
48 | return m:TrigEvent(b and "Button1Down" or "Button1Up") | |
49 | end | |
50 | for _,t in pairs(CAS.Actions) do | |
51 | for _,k in pairs(t.Keys) do | |
52 | if k==io.KeyCode then | |
53 | t.Function(t.Name,io.UserInputState,io) | |
54 | end | |
55 | end | |
56 | end | |
57 | m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower()) | |
58 | UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false) | |
59 | end | |
60 | end) | |
61 | Event.Parent = NLS([==[ | |
62 | local Player = game:GetService("Players").LocalPlayer | |
63 | local Event = script:WaitForChild("UserInput_Event") | |
64 | ||
65 | local Mouse = Player:GetMouse() | |
66 | local UIS = game:GetService("UserInputService") | |
67 | local input = function(io,a) | |
68 | if a then return end | |
69 | --Since InputObject is a client-side instance, we create and pass table instead | |
70 | Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target}) | |
71 | end | |
72 | UIS.InputBegan:Connect(input) | |
73 | UIS.InputEnded:Connect(input) | |
74 | ||
75 | local h,t | |
76 | --Give the server mouse data 30 times every second, but only if the values changed | |
77 | --If player is not moving their mouse, client won't fire events | |
78 | while wait(1/30) do | |
79 | if h~=Mouse.Hit or t~=Mouse.Target then | |
80 | h,t=Mouse.Hit,Mouse.Target | |
81 | Event:FireServer({isMouse=true,Target=t,Hit=h}) | |
82 | end | |
83 | end]==],Player.Character) | |
84 | ||
85 | ----Sandboxed game object that allows the usage of client-side methods and services | |
86 | --Real game object | |
87 | local _rg = game | |
88 | ||
89 | --Metatable for fake service | |
90 | local fsmt = { | |
91 | __index = function(self,k) | |
92 | local s = rawget(self,"_RealService") | |
93 | if s then return s[k] end | |
94 | end, | |
95 | __newindex = function(self,k,v) | |
96 | local s = rawget(self,"_RealService") | |
97 | if s then s[k]=v end | |
98 | end, | |
99 | __call = function(self,...) | |
100 | local s = rawget(self,"_RealService") | |
101 | if s then return s(...) end | |
102 | end | |
103 | } | |
104 | local function FakeService(t,RealService) | |
105 | t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService | |
106 | return setmetatable(t,fsmt) | |
107 | end | |
108 | ||
109 | --Fake game object | |
110 | local g = { | |
111 | GetService = function(self,s) | |
112 | return self[s] | |
113 | end, | |
114 | Players = FakeService({ | |
115 | LocalPlayer = FakeService({GetMouse=function(self)return m end},Player) | |
116 | },"Players"), | |
117 | UserInputService = FakeService(UIS,"UserInputService"), | |
118 | ContextActionService = FakeService(CAS,"ContextActionService"), | |
119 | } | |
120 | rawset(g.Players,"localPlayer",g.Players.LocalPlayer) | |
121 | g.service = g.GetService | |
122 | ||
123 | g.RunService = FakeService({ | |
124 | RenderStepped = _rg:GetService("RunService").Heartbeat, | |
125 | BindToRenderStep = function(self,name,_,fun) | |
126 | ||
127 | end, | |
128 | UnbindFromRenderStep = function(self,name) | |
129 | self._btrs[name]:Disconnect() | |
130 | end, | |
131 | },"RunService") | |
132 | ||
133 | setmetatable(g,{ | |
134 | __index=function(self,s) | |
135 | return _rg:GetService(s) or typeof(_rg[s])=="function" | |
136 | and function(_,...)return _rg[s](_rg,...)end or _rg[s] | |
137 | end, | |
138 | __newindex = fsmt.__newindex, | |
139 | __call = fsmt.__call | |
140 | }) | |
141 | --Changing owner to fake player object to support owner:GetMouse() | |
142 | game,owner = g,g.Players.LocalPlayer | |
143 | end | |
144 | ||
145 | ||
146 | Player = owner | |
147 | - | -- script hair-- |
147 | + | ----//=================================\\ |
148 | ----|| SAZERENOS' ARTIFICIAL HEARTBEAT | |
149 | - | plr = Player |
149 | + | ----\\=================================// |
150 | - | part = nil |
150 | + | |
151 | - | bp = nil |
151 | + | |
152 | - | particles = nil |
152 | + | |
153 | ||
154 | - | local Character = plr.Character |
154 | + | |
155 | - | local char = plr.Character |
155 | + | |
156 | - | local hum = char:FindFirstChildOfClass'Humanoid' |
156 | + | frame = 1/60 |
157 | - | local hed = char.Head |
157 | + | |
158 | - | hed.face.Transparency = 1 |
158 | + | |
159 | - | local tors = char.Torso |
159 | + | |
160 | - | local ra = char["Right Arm"] |
160 | + | |
161 | - | local la = char["Left Arm"] |
161 | + | |
162 | - | local rl = char["Right Leg"] |
162 | + | |
163 | - | local ll = char["Left Leg"] |
163 | + | |
164 | - | local neck = tors["Neck"] |
164 | + | tf = tf + s |
165 | - | local mouse = plr:GetMouse() |
165 | + | if tf >= frame then |
166 | - | local RootCF = CFrame.fromEulerAnglesXYZ(-1.57, 0, 3.14) |
166 | + | if allowframeloss then |
167 | - | local RHCF = CFrame.fromEulerAnglesXYZ(0, 1.6, 0) |
167 | + | script.ArtificialHB:Fire() |
168 | - | local LHCF = CFrame.fromEulerAnglesXYZ(0, -1.6, 0) |
168 | + | lastframe = tick() |
169 | - | local maincolor = BrickColor.new("Institutional white") |
169 | + | |
170 | - | cam = game.Workspace.CurrentCamera |
170 | + | for i = 1, math.floor(tf / frame) do |
171 | - | CF = CFrame.new |
171 | + | script.ArtificialHB:Fire() |
172 | - | angles = CFrame.Angles |
172 | + | end |
173 | - | attack = false |
173 | + | lastframe = tick() |
174 | - | Euler = CFrame.fromEulerAnglesXYZ |
174 | + | |
175 | - | Rad = math.rad |
175 | + | if tossremainder then |
176 | - | IT = Instance.new |
176 | + | tf = 0 |
177 | - | BrickC = BrickColor.new |
177 | + | |
178 | - | Cos = math.cos |
178 | + | tf = tf - frame * math.floor(tf / frame) |
179 | - | Acos = math.acos |
179 | + | |
180 | - | Sin = math.sin |
180 | + | |
181 | - | Asin = math.asin |
181 | + | |
182 | - | Abs = math.abs |
182 | + | |
183 | - | Mrandom = math.random |
183 | + | |
184 | - | Floor = math.floor |
184 | + | |
185 | - | --script hair-- |
185 | + | function rswait(NUMBER) |
186 | - | if Player.Character:FindFirstChild("HSHair") == nil then |
186 | + | if NUMBER == 0 or NUMBER == nil then |
187 | - | if char:FindFirstChildOfClass("Accessory") ~= nil then |
187 | + | ArtificialHB.Event:wait() |
188 | - | repeat |
188 | + | else |
189 | - | wait(0.000000000000000000000000000001) |
189 | + | for i = 1, NUMBER do |
190 | - | char:FindFirstChildOfClass("Accessory"):Destroy() |
190 | + | ArtificialHB.Event:wait() |
191 | - | until char:FindFirstChildOfClass("Accessory") == nil |
191 | + | |
192 | end | |
193 | - | HSHair = IT("Model") |
193 | + | |
194 | - | HSHair.Parent = char |
194 | + | function swait(NUMBER) |
195 | - | HSHair.Name = "HSHair" |
195 | + | if NUMBER == 0 or NUMBER == nil then |
196 | - | RHe = IT("Part") |
196 | + | ArtificialHB.Event:wait() |
197 | - | RHe.Parent = HSHair |
197 | + | else |
198 | - | RHe.BrickColor = BrickColor.new("Really red") |
198 | + | for i = 1, NUMBER do |
199 | - | RHe.Locked = true |
199 | + | ArtificialHB.Event:wait() |
200 | - | RHe.CanCollide = false |
200 | + | |
201 | - | RHe.Transparency = 0 |
201 | + | |
202 | - | PMesh = IT("SpecialMesh") |
202 | + | |
203 | - | RHe.formFactor = "Symmetric" |
203 | + | |
204 | - | PMesh.MeshType = "FileMesh" |
204 | + | local p = Player |
205 | - | PMesh.MeshId = "rbxassetid://731023666" |
205 | + | local char = p.Character |
206 | - | PMesh.Scale = Vector3.new(0.200000003, 0.200000003, 0.170000002) |
206 | + | --from lost hope |
207 | - | PMesh.Parent = RHe |
207 | + | |
208 | - | local RWeld = IT("Weld") |
208 | + | local targetted = nil |
209 | - | RWeld.Parent = RHe |
209 | + | local Humanoid = char:FindFirstChildOfClass("Humanoid") |
210 | - | RWeld.Part0 = RHe |
210 | + | |
211 | - | RWeld.Part1 = hed |
211 | + | local mouse = p:GetMouse() |
212 | - | RWeld.C0 = CF(0, 2.5, 1) * angles(0, Rad(180), 0) |
212 | + | local larm = char:WaitForChild("Left Arm") |
213 | - | Mouse = mouse |
213 | + | local rarm = char:WaitForChild("Right Arm") |
214 | - | --end or hair script-- |
214 | + | local lleg = char:WaitForChild("Left Leg") |
215 | local rleg = char:WaitForChild("Right Leg") | |
216 | - | local RHe = plr.Character.HSHair.Part |
216 | + | local hed = char:WaitForChild("Head") |
217 | - | -- from death gun |
217 | + | local torso = char:WaitForChild("Torso") |
218 | - | local Weapon = IT("Folder", Character) |
218 | + | local root = char:WaitForChild("HumanoidRootPart") |
219 | - | Weapon.Name = "Weapon" |
219 | + | local hum = char:FindFirstChildOfClass("Humanoid") |
220 | - | local Effects = IT("Folder", Character) |
220 | + | --modify |
221 | - | Effects.Name = "Effects" |
221 | + | |
222 | - | local Weapon2 = IT("Folder",Character) |
222 | + | |
223 | - | Weapon2.Name = "Weapon2" |
223 | + | |
224 | - | IT = Instance.new |
224 | + | local function FindHumanoid(Part)local humanoid=nil if Part.Parent then if Part.Parent~=Player.Character and Part.Parent:FindFirstChildOfClass("Humanoid")~=nil then humanoid=Part.Parent:FindFirstChildOfClass("Humanoid")else if Part.Parent.Parent then if Part.Parent.Parent:FindFirstChildOfClass("Humanoid")and Part.Parent.Parent~=Player.Character then humanoid=Part.Parent.Parent:FindFirstChildOfClass("Humanoid")end end end end if humanoid==Humanoid then humanoid=nil end return humanoid end |
225 | - | CF = CFrame.new |
225 | + | Humanoid.Animator.Parent = nil |
226 | - | VT = Vector3.new |
226 | + | char.Animate.Parent = nil |
227 | - | RAD = math.rad |
227 | + | if char:FindFirstChild("Health")then char.Health.Parent = nil end |
228 | - | C3 = Color3.new |
228 | + | function CreateBeam(Parent,isReversed)local p=Instance.new("Beam",Parent)local a0=Instance.new("Attachment",Parent)local a1=Instance.new("Attachment",Parent)if isReversed then p.Attachment0=a1 p.Attachment1=a0 else p.Attachment0=a0 p.Attachment1=a1 end return a0,a1,p end |
229 | - | UD2 = UDim2.new |
229 | + | function CTE(Part)Part.Size=Vector3.new()Part.Transparency=1 Part.CanCollide=false Part.Anchored=true local j=Instance.new("BodyVelocity",Part)j.MaxForce=Vector3.new(1/0,1/0,1/0)j.Velocity=Vector3.new(0,0,0)end |
230 | - | BRICKC = BrickColor.new |
230 | + | function RingE(pos,siz,tim,dsiz,seg,wid,z,col,w)local IDK=.7 |
231 | - | ANGLES = CFrame.Angles |
231 | + | local p=Instance.new("Part",workspace)if col==nil then col=ColorSequence.new(Color3.new())end if z==nil then z=0 end |
232 | - | EULER = CFrame.fromEulerAnglesXYZ |
232 | + | CTE(p)p.CFrame=pos |
233 | - | COS = math.cos |
233 | + | local a0,a1,b=CreateBeam(p)a0.Position=Vector3.new(0,0,-dsiz)a1.Position=-a0.Position b.Texture="rbxassetid://1251856844"b.Color=col |
234 | - | ACOS = math.acos |
234 | + | local b2=Instance.new("Beam",b.Parent)b2.Attachment0=a1 b2.Attachment1=a0 b2.Texture="rbxassetid://1251856844"b2.Color=col |
235 | - | SIN = math.sin |
235 | + | b.CurveSize0=math.abs(a0.Position.Z)*2 *IDK b.CurveSize1=math.abs(a0.Position.Z)*2 *IDK b2.CurveSize0=-math.abs(a0.Position.Z)*2 *IDK b2.CurveSize1=math.abs(a0.Position.Z)*2 *IDK |
236 | - | ASIN = math.asin |
236 | + | b.Segments=seg b2.Segments=seg b.ZOffset=z b2.ZOffset=z b.Width0=wid b.Width1=wid b2.Width0=wid b2.Width1=wid spawn(function() |
237 | - | ABS = math.abs |
237 | + | for i=1,tim do if p.Parent then |
238 | - | MRANDOM = math.random |
238 | + | a0.Position=a0.Position-Vector3.new(0,0,siz)a1.Position=a1.Position+Vector3.new(0,0,siz)b.CurveSize0=(a1.Position.Z*2)*IDK b.CurveSize1=-(a1.Position.Z*2)*IDK |
239 | - | FLOOR = math.floor |
239 | + | b2.CurveSize0=-(a1.Position.Z*2)*IDK b2.CurveSize1=(a1.Position.Z*2)*IDK |
240 | - | Debris = game:GetService("Debris") |
240 | + | if w~=nil then b.Width0=b.Width0+w b.Width1=b.Width0 b2.Width0=b.Width0 b2.Width1=b.Width0 end b.Transparency=NumberSequence.new(i/tim)b2.Transparency=NumberSequence.new(i/tim)swait() |
241 | - | local Torso = tors |
241 | + | end end p:Destroy() |
242 | - | Animation_Speed = 1 --1 --def 3 |
242 | + | |
243 | - | Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60) |
243 | + | |
244 | - | local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) |
244 | + | CFuncs = { |
245 | - | local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) |
245 | + | ["Part"] = { |
246 | - | local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) |
246 | + | |
247 | - | local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) |
247 | + | local Part = Create("Part"){ |
248 | - | RightShoulder = Torso["Right Shoulder"] |
248 | + | |
249 | - | LeftShoulder = Torso["Left Shoulder"] |
249 | + | |
250 | - | RightHip = Torso["Right Hip"] |
250 | + | |
251 | - | LeftHip = Torso["Left Hip"] |
251 | + | |
252 | Locked = true, | |
253 | - | function CreateSoundp(ID, PARENT, VOLUME, PITCH) |
253 | + | |
254 | - | local NEWSOUND = nil |
254 | + | |
255 | - | coroutine.resume(coroutine.create(function() |
255 | + | |
256 | - | NEWSOUND = IT("Sound", PARENT) |
256 | + | Material = Material, |
257 | - | NEWSOUND.Volume = VOLUME |
257 | + | } |
258 | - | NEWSOUND.Pitch = PITCH |
258 | + | |
259 | - | NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID |
259 | + | |
260 | - | Swait() |
260 | + | end; |
261 | - | NEWSOUND:play() |
261 | + | }; |
262 | - | game:GetService("Debris"):AddItem(NEWSOUND, 10) |
262 | + | |
263 | - | end)) |
263 | + | ["Mesh"] = { |
264 | - | return NEWSOUND |
264 | + | |
265 | local Msh = Create(Mesh){ | |
266 | Parent = Part, | |
267 | - | function CreatePartp(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR) |
267 | + | |
268 | - | local NEWPART = IT("Part") |
268 | + | Scale = Scale, |
269 | - | NEWPART.formFactor = FORMFACTOR |
269 | + | } |
270 | - | NEWPART.Reflectance = REFLECTANCE |
270 | + | |
271 | - | NEWPART.Transparency = TRANSPARENCY |
271 | + | |
272 | - | NEWPART.CanCollide = false |
272 | + | |
273 | - | NEWPART.Locked = true |
273 | + | |
274 | - | NEWPART.Anchored = true |
274 | + | |
275 | - | if ANCHOR == false then |
275 | + | end; |
276 | - | NEWPART.Anchored = false |
276 | + | }; |
277 | ||
278 | - | NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR)) |
278 | + | ["Mesh"] = { |
279 | - | NEWPART.Name = NAME |
279 | + | |
280 | - | NEWPART.Size = SIZE |
280 | + | local Msh = Create(Mesh){ |
281 | - | NEWPART.Position = Torso.Position |
281 | + | |
282 | - | NEWPART.Material = MATERIAL |
282 | + | |
283 | - | NEWPART:BreakJoints() |
283 | + | Scale = Scale, |
284 | - | NEWPART.Parent = PARENT |
284 | + | } |
285 | - | return NEWPART |
285 | + | |
286 | Msh.MeshType = MeshType | |
287 | Msh.MeshId = MeshId | |
288 | - | function RayCast(Position, Direction, MaxDistance, IgnoreList) |
288 | + | |
289 | - | return game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(Position, Direction.unit * (MaxDistance or 999.999)), IgnoreList) |
289 | + | |
290 | end; | |
291 | - | function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS) |
291 | + | }; |
292 | - | return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS) |
292 | + | |
293 | ["Weld"] = { | |
294 | - | function CastProperRay(StartPos, EndPos, Distance, Ignore) |
294 | + | |
295 | - | local DIRECTION = CF(StartPos,EndPos).lookVector |
295 | + | local Weld = Create("Weld"){ |
296 | - | return Raycast(StartPos, DIRECTION, Distance, Ignore) |
296 | + | |
297 | Part0 = Part0, | |
298 | - | function SpawnTrail(FROM,TO,BIG) |
298 | + | |
299 | - | local TRAIL = Createpartp(3, Effects, "Neon", 0, 0.5, "Really red", "Trail", VT(0,0,0)) |
299 | + | |
300 | - | MakeFormd(TRAIL,"Cyl") |
300 | + | C1 = C1, |
301 | - | local DIST = (FROM - TO).Magnitude |
301 | + | } |
302 | - | if BIG == true then |
302 | + | |
303 | - | TRAIL.Size = VT(10,DIST,10) |
303 | + | end; |
304 | - | else |
304 | + | }; |
305 | - | TRAIL.Size = VT(0.25,DIST,0.25) |
305 | + | |
306 | ["Sound"] = { | |
307 | - | TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0)) |
307 | + | |
308 | - | coroutine.resume(coroutine.create(function() |
308 | + | |
309 | - | for i = 1, 5 do |
309 | + | local S = Create("Sound"){ |
310 | - | Swait() |
310 | + | |
311 | - | TRAIL.Transparency = TRAIL.Transparency + 0.1 |
311 | + | |
312 | SoundId = id, | |
313 | - | TRAIL:remove() |
313 | + | Parent = par or workspace, |
314 | - | end)) |
314 | + | } |
315 | wait() | |
316 | - | function WACKYEFFECT(Table) |
316 | + | |
317 | - | local TYPE = (Table.EffectType or "Sphere") |
317 | + | game:GetService("Debris"):AddItem(S, 6) |
318 | - | local SIZE = (Table.Size or VT(1,1,1)) |
318 | + | |
319 | - | local ENDSIZE = (Table.Size2 or VT(0,0,0)) |
319 | + | end; |
320 | - | local TRANSPARENCY = (Table.Transparency or 0) |
320 | + | }; |
321 | - | local ENDTRANSPARENCY = (Table.Transparency2 or 1) |
321 | + | |
322 | - | local CFRAME = (Table.CFrame or Torso.CFrame) |
322 | + | ["ParticleEmitter"] = { |
323 | - | local MOVEDIRECTION = (Table.MoveToPos or nil) |
323 | + | |
324 | - | local ROTATION1 = (Table.RotationX or 0) |
324 | + | local fp = Create("ParticleEmitter"){ |
325 | - | local ROTATION2 = (Table.RotationY or 0) |
325 | + | |
326 | - | local ROTATION3 = (Table.RotationZ or 0) |
326 | + | |
327 | - | local MATERIAL = (Table.Material or "Neon") |
327 | + | |
328 | - | local COLOR = (Table.Color or C3(0,255,0)) |
328 | + | |
329 | - | local TIME = (Table.Time or 45) |
329 | + | |
330 | - | local SOUNDID = (Table.SoundID or nil) |
330 | + | |
331 | - | local SOUNDPITCH = (Table.SoundPitch or nil) |
331 | + | |
332 | - | local SOUNDVOLUME = (Table.SoundVolume or nil) |
332 | + | |
333 | - | coroutine.resume(coroutine.create(function() |
333 | + | |
334 | - | local PLAYSSOUND = false |
334 | + | |
335 | - | local SOUND = nil |
335 | + | |
336 | - | local EFFECT = Createpartp(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true) |
336 | + | |
337 | - | if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then |
337 | + | |
338 | - | PLAYSSOUND = true |
338 | + | |
339 | - | SOUND = CreateSoundp(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false) |
339 | + | |
340 | Rotation = Rotation, | |
341 | - | EFFECT.Color = COLOR |
341 | + | |
342 | - | local MSH = nil |
342 | + | |
343 | - | if TYPE == "Sphere" then |
343 | + | VelocitySpread = VelocitySpread, |
344 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0)) |
344 | + | } |
345 | - | elseif TYPE == "Block" then |
345 | + | |
346 | - | MSH = IT("BlockMesh",EFFECT) |
346 | + | end; |
347 | - | MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X) |
347 | + | }; |
348 | - | elseif TYPE == "Wave" then |
348 | + | |
349 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8)) |
349 | + | CreateTemplate = { |
350 | - | elseif TYPE == "Ring" then |
350 | + | |
351 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0)) |
351 | + | }; |
352 | - | elseif TYPE == "Slash" then |
352 | + | |
353 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) |
353 | + | abss = Instance.new("BillboardGui",char) |
354 | - | elseif TYPE == "Round Slash" then |
354 | + | abss.Size = UDim2.new(10,0,10,0) |
355 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) |
355 | + | abss.Enabled = false |
356 | - | elseif TYPE == "Swirl" then |
356 | + | imgl = Instance.new("ImageLabel",abss) |
357 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0)) |
357 | + | imgl.Position = UDim2.new(0,0,0,0) |
358 | - | elseif TYPE == "Skull" then |
358 | + | imgl.Size = UDim2.new(1,0,1,0) |
359 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0)) |
359 | + | imgl.Image = "rbxassetid://711463989" |
360 | - | elseif TYPE == "Crystal" then |
360 | + | imgl.BackgroundTransparency = 1 |
361 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0)) |
361 | + | imgl.ImageColor3 = Color3.new(.9,0,0) |
362 | img2 = Instance.new("ImageLabel",abss) | |
363 | - | if MSH ~= nil then |
363 | + | img2.Position = UDim2.new(0,0,0,0) |
364 | - | local MOVESPEED = nil |
364 | + | img2.Size = UDim2.new(1,0,1,0) |
365 | - | if MOVEDIRECTION ~= nil then |
365 | + | img2.Image = "rbxassetid://711463989" |
366 | - | MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME |
366 | + | img2.BackgroundTransparency = 1 |
367 | img2.ImageColor3 = Color3.new(.9,0,0) | |
368 | - | local GROWTH = SIZE - ENDSIZE |
368 | + | |
369 | - | local TRANS = TRANSPARENCY - ENDTRANSPARENCY |
369 | + | function TargetSelect(person) |
370 | - | if TYPE == "Block" then |
370 | + | local dd=coroutine.wrap(function() |
371 | - | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) |
371 | + | if targetted ~= person then |
372 | - | else |
372 | + | targetted = person |
373 | - | EFFECT.CFrame = CFRAME |
373 | + | img2.Size = UDim2.new(1,0,1,0) |
374 | img2.ImageTransparency = 0 | |
375 | - | for LOOP = 1, TIME+1 do |
375 | + | img2.Position = UDim2.new(0,0,0,0) |
376 | - | Swait() |
376 | + | for i = 0, 2, 0.1 do |
377 | - | MSH.Scale = MSH.Scale - GROWTH/TIME |
377 | + | |
378 | - | if TYPE == "Wave" then |
378 | + | img2.Size = img2.Size + UDim2.new(.05,0,.05,0) |
379 | - | MSH.Offset = VT(0,0,-MSH.Scale.X/8) |
379 | + | img2.Position = img2.Position + UDim2.new(-.025,0,-.025,0) |
380 | img2.ImageTransparency = img2.ImageTransparency + 0.05 | |
381 | - | EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME |
381 | + | |
382 | - | if TYPE == "Block" then |
382 | + | |
383 | - | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) |
383 | + | |
384 | - | else |
384 | + | dd() |
385 | - | EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3)) |
385 | + | |
386 | function LockOn() | |
387 | - | if MOVEDIRECTION ~= nil then |
387 | + | local hum=FindHumanoid(Mouse.Target) |
388 | - | local ORI = EFFECT.Orientation |
388 | + | if hum then |
389 | - | EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED) |
389 | + | if hum.Parent:FindFirstChild("Head")and hum.Parent:FindFirstChild("HumanoidRootPart")then |
390 | - | EFFECT.Orientation = ORI |
390 | + | TargetSelect(hum.Parent) |
391 | print(hum.Parent.Name) | |
392 | CFuncs["Sound"].Create("rbxassetid://743521656", char, 1, .8) | |
393 | - | if PLAYSSOUND == false then |
393 | + | |
394 | - | EFFECT:remove() |
394 | + | |
395 | - | else |
395 | + | |
396 | - | SOUND.Stopped:Connect(function() |
396 | + | mouse.KeyDown:connect(function(key) |
397 | - | EFFECT:remove() |
397 | + | if key == "g" then |
398 | - | end) |
398 | + | if targetted then |
399 | if targetted.Name ~= "plytalent" then | |
400 | - | else |
400 | + | if targetted:FindFirstChild("Head")then end |
401 | - | if PLAYSSOUND == false then |
401 | + | targetted.Parent = nil |
402 | - | EFFECT:remove() |
402 | + | targetted = nil |
403 | - | else |
403 | + | |
404 | - | repeat Swait() until SOUND.Playing == false |
404 | + | |
405 | - | EFFECT:remove() |
405 | + | |
406 | if key == "x" then | |
407 | targetted = nil | |
408 | - | end)) |
408 | + | |
409 | if key == "f" then | |
410 | LockOn() | |
411 | end | |
412 | end) |