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 | Tool0 = Instance.new("Tool") | |
20 | - | Script1 = Instance.new("Script") |
20 | + | Part1 = Instance.new("Part") |
21 | - | Part2 = Instance.new("Part") |
21 | + | SpecialMesh2 = Instance.new("SpecialMesh") |
22 | - | Sound3 = Instance.new("Sound") |
22 | + | Script3 = Instance.new("Script") |
23 | Sound4 = Instance.new("Sound") | |
24 | - | Sound5 = Instance.new("Sound") |
24 | + | Script5 = Instance.new("Script") |
25 | - | SpecialMesh6 = Instance.new("SpecialMesh") |
25 | + | Tool0.Name = "Gun" |
26 | - | Script7 = Instance.new("Script") |
26 | + | |
27 | - | Script8 = Instance.new("Script") |
27 | + | Tool0.GripForward = Vector3.new(0.014998313, 0, -0.999887586) |
28 | - | Script9 = Instance.new("Script") |
28 | + | Tool0.GripPos = Vector3.new(0, 0, 1) |
29 | - | Script10 = Instance.new("Script") |
29 | + | Tool0.GripRight = Vector3.new(0.89165622, 0.452515543, 0.0133748427) |
30 | - | ParticleEmitter11 = Instance.new("ParticleEmitter") |
30 | + | Tool0.GripUp = Vector3.new(-0.45246467, 0.891756594, -0.00678696996) |
31 | - | Tool0.Name = "Chainsaw" |
31 | + | Part1.Name = "Handle" |
32 | Part1.Parent = Tool0 | |
33 | - | Tool0.TextureId = "rbxassetid://1166197683" |
33 | + | Part1.Rotation = Vector3.new(-89.2299957, -0.389999986, -116.759995) |
34 | - | Tool0.GripPos = Vector3.new(0, 0, 1.5) |
34 | + | Part1.RotVelocity = Vector3.new(1, 1, 1) |
35 | - | Script1.Name = "SwordScript" |
35 | + | Part1.Size = Vector3.new(1, 1, 5) |
36 | - | Script1.Parent = Tool0 |
36 | + | Part1.CFrame = CFrame.new(-15.0473862, 6.09787512, -13.2487059, -0.450310409, 0.892846406, -0.00678965962, -0.0150141492, 3.12112206e-05, 0.999887347, 0.892745912, 0.45036158, 0.0133912731) |
37 | - | table.insert(cors,sandbox(Script1,function() |
37 | + | Part1.Position = Vector3.new(-15.0473862, 6.09787512, -13.2487059) |
38 | - | -------- OMG HAX |
38 | + | Part1.Orientation = Vector3.new(-89.1399994, -26.8899994, -89.8799973) |
39 | - | local game = game |
39 | + | SpecialMesh2.Parent = Part1 |
40 | SpecialMesh2.MeshId = "rbxassetid://625948113" | |
41 | SpecialMesh2.Scale = Vector3.new(0.300000012, 0.300000012, 0.300000012) | |
42 | SpecialMesh2.TextureId = "rbxassetid://625948238" | |
43 | SpecialMesh2.MeshType = Enum.MeshType.FileMesh | |
44 | - | local damage = 19 |
44 | + | SpecialMesh2.Scale = Vector3.new(0.300000012, 0.300000012, 0.300000012) |
45 | Script3.Name = "SoundScript" | |
46 | - | sword = script.Parent.Handle |
46 | + | Script3.Parent = Part1 |
47 | - | Tool = script.Parent |
47 | + | table.insert(cors,sandbox(Script3,function() |
48 | --Made by BLUEHHOOD-- | |
49 | - | function slice(hit) |
49 | + | |
50 | - | if (hit.Parent == nil) then return end -- happens when bullet hits sword |
50 | + | |
51 | while true do | |
52 | wait(0) | |
53 | script.Sound:Play(150558724)--Change this to the musicid you want. Also change the sound inside of the script.-- | |
54 | wait(70)--Change this to how long you want the music to play-- | |
55 | end | |
56 | end)) | |
57 | Sound4.Parent = Script3 | |
58 | - | local hum = vCharacter:findFirstChild("Humanoid") -- non-nil if tool held by a character |
58 | + | Sound4.SoundId = "rbxassetid://180955656" |
59 | - | if humanoid~=nil and humanoid ~= hum and hum ~= nil then |
59 | + | |
60 | - | tagHumanoid(humanoid, vPlayer) |
60 | + | Script5.Name = "SwordScript" |
61 | - | humanoid:TakeDamage(damage) |
61 | + | Script5.Parent = Part1 |
62 | - | wait(1) |
62 | + | table.insert(cors,sandbox(Script5,function() |
63 | - | untagHumanoid(humanoid) |
63 | + | --Fixed by ImGuestLie |
64 | ||
65 | antiTK = true | |
66 | ||
67 | - | function tagHumanoid(humanoid) |
67 | + | teamgroups = { |
68 | - | creator_tag = Instance.new("ObjectValue") |
68 | + | |
69 | --[[ HOW TO USE TEAMGROUPS: | |
70 | Put as many teams as you want in a table inside of teamgroups | |
71 | format for a teamcolor is BrickColor.new("TeamColor") | |
72 | type the EXACT teamcolor | |
73 | ||
74 | When a player is on a team in a teamgroup, and the person (s)he is trying to kill is also in the same teamgroup, | |
75 | the user will not get damaged. | |
76 | ||
77 | Basically this is like anti-TK but across multiple teams. | |
78 | --]] | |
79 | ||
80 | ||
81 | ||
82 | --Example of a teamgroup: | |
83 | --{ BrickColor.new("Bright red"), BrickColor.new("Bright blue") } | |
84 | - | firing = false |
84 | + | |
85 | ||
86 | } | |
87 | ||
88 | --END OF CONFIGURABLE OPTIONS-- | |
89 | ||
90 | r = game:service("RunService") | |
91 | - | character = Tool.Parent; |
91 | + | |
92 | function candamage(myteam,theirteam) | |
93 | if antiTK == true and myteam == theirteam then return false end | |
94 | for i,v in pairs(teamgroups) do | |
95 | local ismyteam = false | |
96 | local istheirteam = false | |
97 | for _,v in pairs(teamgroups[i]) do | |
98 | if v == myteam then ismyteam = true end | |
99 | - | player = game.Players:findFirstChild(character.Name) |
99 | + | if v == theirteam then istheirteam = true end |
100 | end | |
101 | - | if Tool.Handle:findFirstChild("Startup") ~= nil then |
101 | + | if ismyteam == true and istheirteam == true then |
102 | - | Tool.Handle.Startup:play() |
102 | + | return false |
103 | end | |
104 | end | |
105 | return true | |
106 | - | firing = true |
106 | + | |
107 | - | connection = script.Parent.Handle.Touched:connect(blow) |
107 | + | |
108 | - | Tool.Handle.attack:play() |
108 | + | local acceptableparts = { |
109 | - | Tool.Handle.idle:stop() |
109 | + | "Head"; "Left Arm"; "Left Leg"; "Right Arm"; "Right Leg"; "Torso"; |
110 | - | while firing do -- hold down the mouse button for a continuous attack |
110 | + | |
111 | ||
112 | - | Tool.Enabled = false |
112 | + | function matches(partname) |
113 | - | wait(.25) |
113 | + | for i,v in pairs(acceptableparts) do |
114 | if partname == v then | |
115 | - | Tool.Handle.attack:stop() |
115 | + | return true |
116 | - | Tool.Handle.idle:play() |
116 | + | |
117 | - | connection:disconnect() |
117 | + | |
118 | return false | |
119 | end | |
120 | ||
121 | - | function onDeactivated() |
121 | + | local damage = 5 |
122 | - | firing = false |
122 | + | |
123 | function blow(hit) | |
124 | if (hit.Parent == nil) then return end | |
125 | - | function onEquipped() --gotta start the sounds! |
125 | + | |
126 | - | Tool.Handle.idle:play() |
126 | + | if matches(hit.Name) then |
127 | - | Tool.Handle.start:play() |
127 | + | |
128 | local humanoid = hit.Parent:findFirstChild("Humanoid") | |
129 | local vCharacter = Tool.Parent | |
130 | local vPlayer = game.Players:playerFromCharacter(vCharacter) | |
131 | local hum = vCharacter:findFirstChild("Humanoid") | |
132 | - | script.Parent.Deactivated:connect(onDeactivated) |
132 | + | if humanoid and humanoid ~= hum and hum then |
133 | -- final check, make sure sword is in-hand | |
134 | local guygettingsliced = game.Players:GetPlayerFromCharacter(hit.Parent) --OH LOOK, here's an edit | |
135 | local right_arm = vCharacter:FindFirstChild("Right Arm") | |
136 | if (right_arm) then | |
137 | local joint = right_arm:FindFirstChild("RightGrip") | |
138 | - | Part2.Name = "Handle" |
138 | + | if (joint and (joint.Part0 == sword or joint.Part1 == sword)) then |
139 | - | Part2.Parent = Tool0 |
139 | + | if guygettingsliced then --If he's a player |
140 | - | Part2.Material = Enum.Material.SmoothPlastic |
140 | + | if candamage(vPlayer.TeamColor, guygettingsliced.TeamColor) == true then |
141 | - | Part2.BrickColor = BrickColor.new("Dark stone grey") |
141 | + | tagHumanoid(humanoid, vPlayer) |
142 | - | Part2.Reflectance = 0.40000000596046 |
142 | + | humanoid:TakeDamage(damage) |
143 | - | Part2.Rotation = Vector3.new(-90, 56, 90) |
143 | + | wait(1) |
144 | - | Part2.FormFactor = Enum.FormFactor.Plate |
144 | + | untagHumanoid(humanoid) |
145 | - | Part2.Size = Vector3.new(1, 0.800000012, 4) |
145 | + | end |
146 | - | Part2.CFrame = CFrame.new(-6.00945282, 1.45000994, -11.5, 0, -0.559192896, 0.829037607, 0, 0.829037607, 0.559192896, -1, 0, 0) |
146 | + | else --If he's not a player (AI, shop, etc) |
147 | - | Part2.BottomSurface = Enum.SurfaceType.Smooth |
147 | + | tagHumanoid(humanoid, vPlayer) |
148 | - | Part2.TopSurface = Enum.SurfaceType.Smooth |
148 | + | humanoid:TakeDamage(damage) |
149 | - | Part2.Color = Color3.new(0.388235, 0.372549, 0.384314) |
149 | + | wait(1) |
150 | - | Part2.Position = Vector3.new(-6.00945282, 1.45000994, -11.5) |
150 | + | untagHumanoid(humanoid) |
151 | - | Part2.Orientation = Vector3.new(-34, 90, 0) |
151 | + | end |
152 | - | Part2.Color = Color3.new(0.388235, 0.372549, 0.384314) |
152 | + | |
153 | - | Sound3.Name = "idle" |
153 | + | |
154 | - | Sound3.Parent = Part2 |
154 | + | |
155 | - | Sound3.SoundId = "http://www.roblox.com/asset/?id=2766581" |
155 | + | |
156 | - | Sound3.Volume = 1 |
156 | + | |
157 | - | Sound3.Looped = true |
157 | + | |
158 | - | Sound4.Name = "attack" |
158 | + | |
159 | - | Sound4.Parent = Part2 |
159 | + | |
160 | - | Sound4.SoundId = "http://www.roblox.com/asset/?id=161420059" |
160 | + | |
161 | function tagHumanoid(humanoid, player) | |
162 | - | Sound5.Name = "start" |
162 | + | local creator_tag = Instance.new("ObjectValue") |
163 | - | Sound5.Parent = Part2 |
163 | + | |
164 | - | Sound5.SoundId = "rbxassetid://258741207" |
164 | + | |
165 | - | Sound5.Volume = 2 |
165 | + | |
166 | - | SpecialMesh6.Name = "KnifeMesh" |
166 | + | |
167 | - | SpecialMesh6.Parent = Part2 |
167 | + | |
168 | - | SpecialMesh6.MeshId = "rbxassetid://536945307" |
168 | + | |
169 | - | SpecialMesh6.Offset = Vector3.new(0, -0.200000003, 0) |
169 | + | |
170 | - | SpecialMesh6.Scale = Vector3.new(0.111000001, 0.111000001, 0.111000001) |
170 | + | |
171 | - | SpecialMesh6.TextureId = "rbxassetid://536945378" |
171 | + | |
172 | - | SpecialMesh6.MeshType = Enum.MeshType.FileMesh |
172 | + | |
173 | - | SpecialMesh6.Scale = Vector3.new(0.111000001, 0.111000001, 0.111000001) |
173 | + | |
174 | - | Script7.Name = "Entry" |
174 | + | |
175 | - | Script7.Parent = mas |
175 | + | |
176 | - | table.insert(cors,sandbox(Script7,function() |
176 | + | |
177 | - | function enter(plyr) |
177 | + | |
178 | - | plyr.CharacterAdded:connect(function() |
178 | + | function attack() |
179 | - | print("Corpsifying...") |
179 | + | damage = slash_damage |
180 | - | local scrip = script.Corpse:clone() |
180 | + | SlashSound:play() |
181 | - | scrip.Disabled = false |
181 | + | local anim = Instance.new("StringValue") |
182 | - | scrip.Parent = plyr.Character |
182 | + | anim.Name = "toolanim" |
183 | - | end) |
183 | + | anim.Value = "Slash" |
184 | anim.Parent = Tool | |
185 | end | |
186 | - | game.Players.PlayerAdded:connect(enter) |
186 | + | |
187 | - | for i, v in pairs(game.Players:GetChildren()) do |
187 | + | function lunge() |
188 | - | repeat wait() until v.Character |
188 | + | damage = lunge_damage |
189 | - | if v.Character:findFirstChild("Corpse") == nil then |
189 | + | |
190 | - | local scrip = script.Corpse:clone() |
190 | + | LungeSound:play() |
191 | - | scrip.Disabled = false |
191 | + | |
192 | - | scrip.Parent = v.Character |
192 | + | local anim = Instance.new("StringValue") |
193 | - | enter(v) |
193 | + | anim.Name = "toolanim" |
194 | anim.Value = "Lunge" | |
195 | anim.Parent = Tool | |
196 | ||
197 | ||
198 | - | Script8.Name = "Corpse" |
198 | + | force = Instance.new("BodyVelocity") |
199 | - | Script8.Parent = Script7 |
199 | + | force.velocity = Vector3.new(0,10,0) --Tool.Parent.Torso.CFrame.lookVector * 80 |
200 | - | Script8.Disabled = true |
200 | + | force.maxForce = Vector3.new(0,2900,0) |
201 | - | table.insert(cors,sandbox(Script8,function() |
201 | + | force.Parent = Tool.Parent.Torso |
202 | - | Character = script.Parent |
202 | + | wait(.25) |
203 | - | Humanoid = Character.Humanoid |
203 | + | swordOut() |
204 | - | Torso = Character.Torso |
204 | + | wait(.25) |
205 | force.Parent = nil | |
206 | - | function OnDeath() |
206 | + | wait(.5) |
207 | - | print("Death") |
207 | + | swordUp() |
208 | - | local cleaner = script:findFirstChild("BodyCleanup") |
208 | + | |
209 | - | cleaner.Parent = nil |
209 | + | damage = slash_damage |
210 | - | cleaner.Disabled = false |
210 | + | |
211 | - | Character.archivable = true |
211 | + | |
212 | - | oldCharacter = Character |
212 | + | function swordUp() |
213 | - | Humanoid.MaxHealth = 0 |
213 | + | Tool.GripForward = Vector3.new(-1,0,0) |
214 | - | for i,v in pairs(oldCharacter.Head:GetChildren()) do |
214 | + | Tool.GripRight = Vector3.new(0,1,0) |
215 | - | if v:IsA("Sound") then |
215 | + | Tool.GripUp = Vector3.new(0,0,1) |
216 | - | v:Remove() |
216 | + | |
217 | ||
218 | function swordOut() | |
219 | - | Character = Character:Clone() |
219 | + | Tool.GripForward = Vector3.new(0,0,1) |
220 | - | Character.Parent = workspace |
220 | + | Tool.GripRight = Vector3.new(0,-1,0) |
221 | - | Character.Name = "" |
221 | + | Tool.GripUp = Vector3.new(-1,0,0) |
222 | - | Character:findFirstChild("Corpse"):Remove() |
222 | + | |
223 | - | for i,v in pairs(oldCharacter:GetChildren()) do |
223 | + | |
224 | - | if v:IsA("BasePart") then |
224 | + | function swordAcross() |
225 | - | v.CanCollide = false |
225 | + | -- parry |
226 | - | v.Transparency = 1 |
226 | + | |
227 | ||
228 | ||
229 | - | Humanoid.Parent = nil |
229 | + | Tool.Enabled = true |
230 | - | cleaner.Parent = Character |
230 | + | local last_attack = 0 |
231 | - | Torso = Character:findFirstChild("Torso") |
231 | + | |
232 | - | if Torso then |
232 | + | |
233 | - | local Head = Character:FindFirstChild("Head") |
233 | + | |
234 | - | if Head then |
234 | + | |
235 | - | local Neck = Instance.new("Weld") |
235 | + | |
236 | - | Neck.Name = "Neck" |
236 | + | |
237 | - | Neck.Part0 = Torso |
237 | + | |
238 | - | Neck.Part1 = Head |
238 | + | |
239 | - | Neck.C0 = CFrame.new(0, 1.5, 0) |
239 | + | local character = Tool.Parent; |
240 | - | Neck.C1 = CFrame.new() |
240 | + | |
241 | - | Neck.Parent = Torso |
241 | + | |
242 | print("Humanoid not found") | |
243 | - | local Limb = Character:FindFirstChild("Right Arm") |
243 | + | |
244 | - | if Limb then |
244 | + | |
245 | ||
246 | - | Limb.CFrame = Torso.CFrame * CFrame.new(1.5, 0, 0) |
246 | + | t = r.Stepped:wait() |
247 | - | local Joint = Instance.new("Glue") |
247 | + | |
248 | - | Joint.Name = "RightShoulder" |
248 | + | if (t - last_attack < .2) then |
249 | - | Joint.Part0 = Torso |
249 | + | lunge() |
250 | - | Joint.Part1 = Limb |
250 | + | |
251 | - | Joint.C0 = CFrame.new(1.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) |
251 | + | attack() |
252 | - | Joint.C1 = CFrame.new(-0, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) |
252 | + | |
253 | - | Joint.Parent = Torso |
253 | + | |
254 | last_attack = t | |
255 | - | local B = Instance.new("Part") |
255 | + | |
256 | - | B.TopSurface = 0 |
256 | + | --wait(.5) |
257 | - | B.BottomSurface = 0 |
257 | + | |
258 | - | B.formFactor = "Symmetric" |
258 | + | |
259 | - | B.Size = Vector3.new(1, 1, 1) |
259 | + | |
260 | - | B.Transparency = 1 |
260 | + | |
261 | - | B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0) |
261 | + | |
262 | - | B.Parent = Character |
262 | + | |
263 | - | local W = Instance.new("Weld") |
263 | + | |
264 | - | W.Part0 = Limb |
264 | + | |
265 | - | W.Part1 = B |
265 | + | connection = sword.Touched:connect(blow) |
266 | - | W.C0 = CFrame.new(0, -0.5, 0) |
266 | + | |
267 | - | W.Parent = Limb |
267 | + | |
268 | ||
269 | end)) | |
270 | - | local Limb = Character:FindFirstChild("Left Arm") |
270 | + | |
271 | - | if Limb then |
271 | + | |
272 | pcall(function() v:MakeJoints() end) | |
273 | - | Limb.CFrame = Torso.CFrame * CFrame.new(-1.5, 0, 0) |
273 | + | |
274 | - | local Joint = Instance.new("Glue") |
274 | + | |
275 | - | Joint.Name = "LeftShoulder" |
275 | + | |
276 | - | Joint.Part0 = Torso |
276 | + | |
277 | - | Joint.Part1 = Limb |
277 | + | |
278 | - | Joint.C0 = CFrame.new(-1.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
278 | + | |
279 | - | Joint.C1 = CFrame.new(0, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
279 | + |