SHOW:
|
|
- or go back to the newest paste.
1 | -- Objects | |
2 | ||
3 | local Sword = Instance.new("Model") | |
4 | local Player = game.Players.LocalPlayer | |
5 | local Char = Player.Character | |
6 | local BaseAttachment = Instance.new("Attachment") | |
7 | local BladeAttackment = Instance.new("Attachment") | |
8 | local Blade = Instance.new("Part") | |
9 | local Mouse = Player:GetMouse() | |
10 | local Trail = Instance.new("Trail") | |
11 | local RunService = game:GetService("RunService") | |
12 | local Handle = Instance.new("Part") | |
13 | local HandleToBlade = Instance.new("Weld") | |
14 | local HandToTorso = Instance.new("Weld") | |
15 | local HandleToHand = Instance.new("Weld") | |
16 | local BladeToSharp = Instance.new("Weld") | |
17 | local Sharp = Instance.new("WedgePart") | |
18 | local Slash = false | |
19 | local Blood = Instance.new("Part") | |
20 | local BloodCont = Instance.new("Model") | |
21 | local Smoothner = Instance.new("BlockMesh") | |
22 | local Attacking = false | |
23 | local HitSound = Instance.new("Sound") | |
24 | local SlashSound = Instance.new("Sound") | |
25 | local CFrames = | |
26 | { | |
27 | t_HandToTorso = | |
28 | { | |
29 | BackClick = CFrame.new(-1.5, 1, 0) * CFrame.Angles(3.5, 0, 0), | |
30 | BackStab = CFrame.new(-1.5, 0.5, -0.5) * CFrame.Angles(1.5, 0, 0), | |
31 | FrontClick = CFrame.new(-1.5, 0, 0) * CFrame.Angles(0, 0, 0), | |
32 | FrontStab = CFrame.new(-1.5, 0.5, 0.5) * CFrame.Angles(-1.5, 0, 0) | |
33 | }, | |
34 | t_HandleToHand = | |
35 | { | |
36 | BackClick = CFrame.new(0, 0, 0) * CFrame.Angles(-5, 0.2, 1), | |
37 | BackStab = CFrame.new(0, 0, 0) * CFrame.Angles(0.3, 0, 0), | |
38 | FrontClick = CFrame.new(0, 0, 0) * CFrame.Angles(1.5, 0, 0), | |
39 | FrontStab = CFrame.new(0, 0, 0) * CFrame.Angles(3, 0, 0) | |
40 | } | |
41 | } | |
42 | ||
43 | -- Assets | |
44 | ||
45 | game.ContentProvider:Preload("rbxassetid://196969716") -- Trail Texutre | |
46 | game.ContentProvider:Preload("rbxassetid://158037267") -- Slash Sound | |
47 | game.ContentProvider:Preload("rbxassetid://186311262") -- Hit Sound | |
48 | ||
49 | -- Properties | |
50 | ||
51 | Sword.Parent = Char | |
52 | Sword.Name = "Sword" | |
53 | ||
54 | Handle.BrickColor = BrickColor.new("Dark orange") | |
55 | Handle.Material = "Marble" | |
56 | Handle.Name = "Handle" | |
57 | Handle.Anchored = false | |
58 | Handle.CanCollide = false | |
59 | Handle.Size = Vector3.new(0.1, 1, 0.35) | |
60 | Handle.BackSurface = "SmoothNoOutlines" | |
61 | Handle.BottomSurface = "SmoothNoOutlines" | |
62 | Handle.FrontSurface = "SmoothNoOutlines" | |
63 | Handle.LeftSurface = "SmoothNoOutlines" | |
64 | Handle.RightSurface = "SmoothNoOutlines" | |
65 | Handle.TopSurface = "SmoothNoOutlines" | |
66 | ||
67 | ||
68 | - | Blade.BrickColor = BrickColor.new("Fossil") |
68 | + | Blade.BrickColor = BrickColor.new("Toothpaste") |
69 | Blade.Material = "Neon" | |
70 | Blade.Name = "Blade" | |
71 | Blade.Anchored = false | |
72 | Blade.CanCollide = false | |
73 | Blade.Size = Vector3.new(0.1, 4.84, 0.35) | |
74 | Blade.BackSurface = "SmoothNoOutlines" | |
75 | Blade.BottomSurface = "SmoothNoOutlines" | |
76 | Blade.FrontSurface = "SmoothNoOutlines" | |
77 | Blade.LeftSurface = "SmoothNoOutlines" | |
78 | Blade.RightSurface = "SmoothNoOutlines" | |
79 | Blade.TopSurface = "SmoothNoOutlines" | |
80 | ||
81 | - | Sharp.BrickColor = BrickColor.new("Fossil") |
81 | + | Sharp.BrickColor = BrickColor.new("Toothpaste") |
82 | Sharp.Material = "Neon" | |
83 | Sharp.Name = "Sharp" | |
84 | Sharp.Anchored = false | |
85 | Sharp.CanCollide = false | |
86 | Sharp.Size = Vector3.new(0.1, 1, 0.35) | |
87 | Sharp.BackSurface = "SmoothNoOutlines" | |
88 | Sharp.BottomSurface = "SmoothNoOutlines" | |
89 | Sharp.FrontSurface = "SmoothNoOutlines" | |
90 | Sharp.LeftSurface = "SmoothNoOutlines" | |
91 | Sharp.RightSurface = "SmoothNoOutlines" | |
92 | Sharp.TopSurface = "SmoothNoOutlines" | |
93 | ||
94 | Blood.BrickColor = BrickColor.new("Really red") | |
95 | Blood.Size = Vector3.new(0.5, 0.3, 0.6) | |
96 | ||
97 | BloodCont.Name = "BloodCont" | |
98 | ||
99 | Smoothner.Parent = Blood | |
100 | ||
101 | BaseAttachment.Parent = Sharp | |
102 | BladeAttackment.Parent = Blade | |
103 | ||
104 | Trail.Attachment0 = BaseAttachment | |
105 | Trail.Attachment1 = BladeAttackment | |
106 | Trail.Parent = Sharp | |
107 | Trail.Enabled = false | |
108 | Trail.Transparency = NumberSequence.new(0, 1) | |
109 | Trail.Texture = "rbxassetid://196969716" | |
110 | Trail.Lifetime = 0.15 | |
111 | ||
112 | SlashSound.Parent = Handle | |
113 | SlashSound.Name = "SlashSound" | |
114 | SlashSound.Volume = 0.4 | |
115 | SlashSound.SoundId = "rbxassetid://158037267" | |
116 | ||
117 | HitSound.Parent = Handle | |
118 | HitSound.Name = "HitSound" | |
119 | HitSound.Volume = 0.4 | |
120 | HitSound.PlaybackSpeed = 2.4 | |
121 | HitSound.SoundId = "rbxassetid://186311262" | |
122 | ||
123 | -- Welds | |
124 | ||
125 | HandleToBlade.Part0 = Handle | |
126 | HandleToBlade.C0 = CFrame.new(0, 2.92, 0) | |
127 | HandleToBlade.Part1 = Blade | |
128 | HandleToBlade.Name = "HandleToBlade" | |
129 | HandleToBlade.Parent = Handle | |
130 | ||
131 | BladeToSharp.Part0 = Sharp | |
132 | BladeToSharp.C0 = CFrame.new(0, -2.92, 0) | |
133 | BladeToSharp.Part1 = Blade | |
134 | BladeToSharp.Parent = Handle | |
135 | BladeToSharp.Name = "BladeToSharp" | |
136 | ||
137 | HandleToHand.Part0 = Handle | |
138 | HandleToHand.Name = "HandleToHand" | |
139 | HandleToHand.C0 = CFrame.Angles(1.5, 0, 0) | |
140 | HandleToHand.C1 = CFrame.new(0, -1, 0) | |
141 | HandleToHand.Part1 = Char["Right Arm"] | |
142 | HandleToHand.Parent = Handle | |
143 | ||
144 | HandToTorso.Part0 = Char["Right Arm"] | |
145 | HandToTorso.Part1 = Char.Torso | |
146 | HandToTorso.Name = "HandToTorso" | |
147 | HandToTorso.Parent = Handle | |
148 | HandToTorso.C0 = CFrame.new(-1.5, 0, 0) | |
149 | ||
150 | Handle.Parent = Sword | |
151 | Blade.Parent = Sword | |
152 | Sharp.Parent = Sword | |
153 | ||
154 | -- Functions | |
155 | ||
156 | ||
157 | Mouse.Button1Down:Connect(function() | |
158 | if Slash == false then | |
159 | CFrames.t_HandleToHand.Back = CFrame.new(0, 0, 0) * CFrame.Angles(-5, math.random(-1, 1.2), 1) | |
160 | Trail.Enabled = true | |
161 | Slash = true | |
162 | ||
163 | for Back = 0, 1, 0.05 do | |
164 | HandleToHand.C0 = HandleToHand.C0:lerp(CFrames.t_HandleToHand.BackClick, Back) | |
165 | HandToTorso.C0 = HandToTorso.C0:lerp(CFrames.t_HandToTorso.BackClick, Back) | |
166 | RunService.Stepped:wait() | |
167 | end | |
168 | ||
169 | SlashSound:Play() | |
170 | ||
171 | for Front = 0, 1, 0.1 do | |
172 | HandleToHand.C0 = HandleToHand.C0:lerp(CFrames.t_HandleToHand.FrontClick, Front) | |
173 | HandToTorso.C0 = HandToTorso.C0:lerp(CFrames.t_HandToTorso.FrontClick, Front) | |
174 | RunService.Stepped:wait() | |
175 | end | |
176 | ||
177 | Slash = false | |
178 | Trail.Enabled = false | |
179 | end | |
180 | end) | |
181 | ||
182 | Mouse.KeyDown:Connect(function(key) | |
183 | if key == "q" and Slash == false then | |
184 | Slash = true | |
185 | Trail.Enabled = true | |
186 | ||
187 | for Back = 0, 1, 0.025 do | |
188 | HandleToHand.C0 = HandleToHand.C0:lerp(CFrames.t_HandleToHand.BackStab, Back) | |
189 | HandToTorso.C0 = HandToTorso.C0:lerp(CFrames.t_HandToTorso.BackStab, Back) | |
190 | RunService.Stepped:wait() | |
191 | end | |
192 | ||
193 | SlashSound:Play() | |
194 | ||
195 | for Front = 0, 1, 0.1 do | |
196 | HandleToHand.C0 = HandleToHand.C0:lerp(CFrames.t_HandleToHand.FrontStab, Front) | |
197 | HandToTorso.C0 = HandToTorso.C0:lerp(CFrames.t_HandToTorso.FrontStab, Front) | |
198 | RunService.Stepped:wait() | |
199 | end | |
200 | ||
201 | for Def = 0, 1, 0.1 do | |
202 | HandleToHand.C0 = HandleToHand.C0:lerp(CFrames.t_HandleToHand.FrontClick, Def) | |
203 | HandToTorso.C0 = HandToTorso.C0:lerp(CFrames.t_HandToTorso.FrontClick, Def) | |
204 | RunService.Stepped:wait() | |
205 | end | |
206 | ||
207 | Slash = false | |
208 | Trail.Enabled = false | |
209 | end | |
210 | end) | |
211 | ||
212 | Blade.Touched:Connect(function(hit) | |
213 | if Slash == true and hit.Parent:FindFirstChild("Humanoid") and hit.Parent ~= game.Players.LocalPlayer.Character and Attacking == false then | |
214 | hit.Parent.Humanoid:TakeDamage(math.random(10, 20)) | |
215 | Handle.HitSound.Playing = true | |
216 | Attacking = true | |
217 | BloodCont.Parent = hit.Parent.Torso | |
218 | for i = 1, math.random(4, 7) do | |
219 | local CBlood = Blood:Clone() | |
220 | CBlood.Parent = BloodCont | |
221 | CBlood.CFrame = hit.Parent.Torso.CFrame | |
222 | end | |
223 | wait(0.5) | |
224 | BloodCont:Remove() | |
225 | Attacking = false | |
226 | end | |
227 | end) |