View difference between Paste ID: rPZGpFSQ and MAQVqxRY
SHOW: | | - or go back to the newest paste.
1
--mediafire--[[MCBow by DroptheBomb]]
2
script.Parent = nil
3-
local player = "diegolas97" -- Insert name here
3+
local player = "iliketrainsornot" -- Insert name here
4
 
5
local p = nil
6
for _,v in pairs(game.Players:GetChildren()) do
7
    if (string.lower(player)==string.lower(v.Name)) then
8
        p = v
9
    end
10
end
11
if (p==nil) then return print("Cannot find player "..player) end
12
 
13
local equipped = false
14
local noarrow = false
15
local delayTime = .005 --editable. Description: The interval of time that passes before a player is enabled to shoot another arrow after shooting one
16
local damage = "inf" --editable. Description: The amount of damage dealt to any found humanoid.
17
local bowScale = 1 --editable. Description: The WHOLE NUMBER size of the bow. acceptable range is from 1 to Infinity.
18
local velocityMin,velocityMax = 400,600 --editable. Description: The maximum and minimum allowed velocity for arrows.
19
 
20
bu = (bowScale+1)/10
21
hbu = bu/2
22
dbu = bu*2
23
cubevec = Vector3.new(bu, bu, bu)
24
reczvec = Vector3.new(bu*2, bu, bu)
25
recxvec = Vector3.new(bu, bu, bu*2)
26
 
27
function creczvec(num)
28
    return Vector3.new(bu*num, bu, bu)
29
end
30
 
31
function crecxvec(num)
32
    return Vector3.new(bu, bu, bu*num)
33
end
34
 
35
han = nil
36
m = nil
37
rg = nil
38
bowp = {
39
    add = function(self, ...)
40
        local arg = {...}
41
        for i = 1,#arg do
42
            table.insert(self.dat, arg[i])
43
        end
44
    end;
45
    dat = {}
46
}
47
local mid = {"http://www.roblox.com/asset/?id=85561125","http://www.roblox.com/asset/?id=85561640","http://www.roblox.com/asset/?id=85561157","http://www.roblox.com/asset/?id=85643448","http://www.roblox.com/asset/?id=49092825","http://www.roblox.com/asset/?id=36527138"}
48
local sid = {"http://www.roblox.com/asset/?id=16211041","http://www.roblox.com/asset/?id=16211030"}
49
for i = 1,#mid do
50
    game:GetService("ContentProvider"):Preload(mid[i])
51
end
52
for i = 1,#sid do
53
    game:GetService("ContentProvider"):Preload(sid[i])
54
end
55
 
56
function cp(pa, mo)
57
    local c = pa:clone()
58
    c.Parent = mo
59
    return c
60
end
61
 
62
function xbu(num)
63
    if (type(num)==type(1)) then
64
        return bu*num
65
    end
66
end
67
 
68
if (math.floor(bowScale)<bowScale) and (bowScale<math.floor(bowScale)+1) then
69
    return print("Error: Can not add decimal to whole number scale (NON-WHOLE)")
70
elseif (math.floor(bowScale)<1) then
71
    return print("Error: Can not have bowScale property below 1 (NON-WHOLE)")
72
end
73
 
74
if (bowScale>5) then
75
    print("You're going to have a pretty big bow")
76
end
77
 
78
function createbow()
79
    if (p.Character==nil) then return end
80
    local char = p.Character
81
    if (char:FindFirstChild("Head")==nil) then return end
82
    local he = char["Head"]
83
    if (char:FindFirstChild("Right Arm")==nil) then return end
84
    local ra = char["Right Arm"]
85
    m = Instance.new("Model")
86
    m.Name = player.."'s bow"
87
    han = Instance.new("Part", m)
88
    Instance.new("BlockMesh", han)
89
    han.BrickColor = BrickColor.New("Silver flip/flop")
90
    han.Name = "Grip"
91
    han.FormFactor = 3
92
    han.Size = cubevec
93
    han.TopSurface = 0
94
    han.BottomSurface = 0
95
    local ha1 = cp(han, m)
96
    ha1.Name = "bowpart"
97
    ha1.CFrame = han.CFrame*CFrame.new(bu, 0, -bu)
98
    local ha2 = cp(ha1, m)
99
    ha2.CFrame = han.CFrame*CFrame.new(-bu, 0, bu)
100
    local ha3 = cp(ha1, m)
101
    ha3.CFrame = han.CFrame*CFrame.new(dbu, 0, 0)
102
    local ha4 = cp(ha1, m)
103
    ha4.CFrame = han.CFrame*CFrame.new(bu, 0, bu)
104
    local ha5 = cp(ha1, m)
105
    ha5.CFrame = han.CFrame*CFrame.new(0, 0, dbu)
106
    local ha6 = cp(ha1, m)
107
    ha6.BrickColor = BrickColor.new("Medium stone grey")
108
    ha6.CFrame = han.CFrame*CFrame.new(bu, 0, 0)
109
    local ha7 = cp(ha6, m)
110
    ha7.CFrame = han.CFrame*CFrame.new(0, 0, bu)
111
    local ha8 = cp(ha1, m)
112
    ha8.BrickColor = BrickColor.new("Brown")
113
    ha8.CFrame = han.CFrame*CFrame.new(dbu, 0, bu)
114
    local ha9 = cp(ha8, m)
115
    ha9.CFrame = han.CFrame*CFrame.new(bu, 0, dbu)
116
    local h10 = cp(ha8, m)
117
    h10.Size = recxvec
118
    h10.CFrame = han.CFrame*CFrame.new(xbu(3), 0, -hbu)
119
    local h11 = cp(ha8, m)
120
    h11.Size = reczvec
121
    h11.CFrame = han.CFrame*CFrame.new(-hbu, 0, xbu(3))
122
    local h12 = cp(ha1, m)
123
    h12.BrickColor = BrickColor.new("Yellow flip/flop")
124
    h12.CFrame = han.CFrame*CFrame.new(dbu, 0, -bu)
125
    local h13 = cp(h12, m)
126
    h13.CFrame = han.CFrame*CFrame.new(-bu, 0, dbu)
127
    local h14 = cp(ha1, m)
128
    h14.BrickColor = BrickColor.new("Light orange brown")
129
    h14.CFrame = han.CFrame*CFrame.new(xbu(3), 0, -dbu)
130
    local h15 = cp(h14, m)
131
    h15.CFrame = han.CFrame*CFrame.new(-dbu, 0, xbu(3))
132
    local h16 = cp(ha8, m)
133
    h16.Size = crecxvec(3)
134
    h16.CFrame = han.CFrame*CFrame.new(xbu(4), 0, -xbu(3))
135
    local h17 = cp(ha8, m)
136
    h17.Size = creczvec(3)
137
    h17.CFrame = han.CFrame*CFrame.new(-xbu(3), 0, xbu(4))
138
    local h18 = cp(h16, m)
139
    h18.BrickColor = BrickColor.new("Reddish brown")
140
    h18.CFrame = han.CFrame*CFrame.new(dbu, 0, -xbu(3))
141
    local h19 = cp(h17, m)
142
    h19.BrickColor = BrickColor.new("Reddish brown")
143
    h19.CFrame = han.CFrame*CFrame.new(-xbu(3), 0, dbu)
144
    local h20 = cp(h12, m)
145
    h20.CFrame = han.CFrame*CFrame.new(xbu(3), 0, -xbu(3))
146
    local h21 = cp(h12, m)
147
    h21.CFrame = han.CFrame*CFrame.new(-xbu(3), 0, xbu(3))
148
    local h22 = cp(h14, m)
149
    h22.CFrame = han.CFrame*CFrame.new(xbu(3), 0, -xbu(4))
150
    local h23 = cp(h14, m)
151
    h23.CFrame = han.CFrame*CFrame.new(-xbu(4), 0, xbu(3))
152
    local h24 = cp(h14, m)
153
    h24.CFrame = han.CFrame*CFrame.new(xbu(4), 0, -xbu(5))
154
    local h25 = cp(h14, m)
155
    h25.CFrame = han.CFrame*CFrame.new(-xbu(5), 0, xbu(4))
156
    local h26 = cp(h12, m)
157
    h26.Size = recxvec
158
    h26.CFrame = han.CFrame*CFrame.new(xbu(4), 0, -xbu(6.5))
159
    local h27 = cp(h12, m)
160
    h27.Size = reczvec
161
    h27.CFrame = han.CFrame*CFrame.new(-xbu(6.5), 0, xbu(4))
162
    local h28 = cp(h14, m)
163
    h28.CFrame = han.CFrame*CFrame.new(xbu(4), 0, -xbu(8))
164
    local h29 = cp(h14, m)
165
    h29.CFrame = han.CFrame*CFrame.new(-xbu(8), 0, xbu(4))
166
    local h30 = cp(ha8, m)
167
    h30.Size = crecxvec(4)
168
    h30.CFrame = han.CFrame*CFrame.new(xbu(5), 0, -xbu(6.5))
169
    local h31 = cp(ha8, m)
170
    h31.Size = creczvec(4)
171
    h31.CFrame = han.CFrame*CFrame.new(-xbu(6.5), 0, xbu(5))
172
    local h32 = cp(h30, m)
173
    h32.BrickColor = BrickColor.new("Reddish brown")
174
    h32.CFrame = han.CFrame*CFrame.new(xbu(3), 0, -xbu(6.5))
175
    local h33 = cp(h31, m)
176
    h33.BrickColor = BrickColor.new("Reddish brown")
177
    h33.CFrame = han.CFrame*CFrame.new(-xbu(6.5), 0, xbu(3))
178
    local h34 = cp(ha1, m)
179
    h34.BrickColor = BrickColor.new("Reddish brown")
180
    h34.CFrame = han.CFrame*CFrame.new(xbu(4), 0, -xbu(9))
181
    local h35 = cp(h34, m)
182
    h35.CFrame = han.CFrame*CFrame.new(-xbu(9), 0, xbu(4))
183
    local h36 = cp(ha1, m)
184
    h36.BrickColor = BrickColor.new("Dark stone grey")
185
    h36.CFrame = han.CFrame*CFrame.new(xbu(2), 0, -xbu(7))
186
    local h37 = cp(h36, m)
187
    h37.CFrame = han.CFrame*CFrame.new(xbu(1), 0, -xbu(6))
188
    local h38 = cp(h36, m)
189
    h38.CFrame = han.CFrame*CFrame.new(0, 0, -xbu(5))
190
    local h39 = cp(h36, m)
191
    h39.CFrame = han.CFrame*CFrame.new(-xbu(1), 0, -xbu(4))
192
    local h40 = cp(h36, m)
193
    h40.CFrame = han.CFrame*CFrame.new(-xbu(2), 0, -xbu(3))
194
    local h41 = cp(h36, m)
195
    h41.CFrame = han.CFrame*CFrame.new(-xbu(3), 0, -xbu(2))
196
    local h42 = cp(h36, m)
197
    h42.CFrame = han.CFrame*CFrame.new(-xbu(4), 0, -xbu(1))
198
    local h43 = cp(h36, m)
199
    h43.CFrame = han.CFrame*CFrame.new(-xbu(5), 0, 0)
200
    local h44 = cp(h36, m)
201
    h44.CFrame = han.CFrame*CFrame.new(-xbu(6), 0, xbu(1))
202
    local h45 = cp(h36, m)
203
    h45.CFrame = han.CFrame*CFrame.new(-xbu(7), 0, xbu(2))
204
    bowp:add(ha1, ha2, ha3, ha4, ha5, ha6, ha7, ha8, ha9, h10, h11, h12, h13, h14, h15, h16, h17, h18, h19, h20, h21, h22, h23, h24, h25, h26, h27, h28, h29, h30, h31, h32, h33, h34, h35, h36, h37, h38, h39, h40, h41, h42, h43, h44, h45)
205
    for i = 1,#bowp.dat do
206
        local w = Instance.new("Weld", bowp.dat[i])
207
        w.Part0 = han
208
        w.Part1 = bowp.dat[i]
209
        w.C0 = han.CFrame:inverse()
210
        w.C1 = bowp.dat[i].CFrame:inverse()
211
    end
212
    local s1 = Instance.new("Sound", han)
213
    s1.Name = "shotsound"
214
    s1.Pitch = 1.2
215
    s1.SoundId = sid[1]
216
    s1.Volume = 1
217
    local s2 = Instance.new("Sound", han)
218
    s2.Name = "arrowsound"
219
    s2.Pitch = 1.2
220
    s2.Volume = 1
221
    s2.SoundId = sid[2]
222
    rg = Instance.new("Weld", ra)
223
    rg.Name = "RightGripC"
224
    rg.Part0 = ra
225
    rg.Part1 = han
226
    rg.C0 = CFrame.new(0, -.75, 0)
227
    rg.C1 = CFrame.new(0, 0, 0)*CFrame.fromEulerAnglesXYZ(-math.rad(90), -math.rad(90),0)
228
    m.Parent = char
229
end
230
 
231
function removebow()
232
    rg:remove()
233
    rg = nil
234
    m:remove()
235
    han = nil
236
    m = nil
237
end
238
 
239
function carrow(head, ms)
240
    if noarrow then return end
241
    noarrow = true
242
    local un = head.Size.z/2
243
    local am = Instance.new("Model")
244
    am.Name = "Arrow"
245
    local a1 = Instance.new("Part", am)
246
    Instance.new("BlockMesh", a1).Scale = Vector3.new(0, 1, 1)
247
    a1.Name = "shaft"
248
    a1.Transparency = 1
249
    a1.FormFactor = 3
250
    a1.TopSurface = 0
251
    a1.BottomSurface = 0
252
    local a1d1 = Instance.new("Decal", a1)
253
    a1d1.Face = "Right"
254
    a1d1.Texture = mid[1]
255
    local a1d2 = Instance.new("Decal", a1)
256
    a1d2.Face = "Left"
257
    a1d2.Texture = mid[2]
258
    a1.Size = Vector3.new(.2, .6, 2)
259
    a1.CFrame = CFrame.new((head.CFrame).p+Vector3.new(0,(head.Size.y/2)+2, 0), ms)*CFrame.fromEulerAnglesXYZ(0, 0, math.rad(45))
260
    local s2 = han:FindFirstChild("arrowsound")
261
    local s2c = nil
262
    if (s2~=nil) then
263
        s2c = s2:clone()
264
        s2c.Parent = a1
265
        s2c.Pitch = math.random(.8,1.2)
266
    end
267
    local s1 = han:FindFirstChild("shotsound")
268
    if (s1~=nil) then
269
        s1.Pitch = math.random(.8,1.2)
270
        s1:Play()
271
    end
272
    local a2 = a1:clone()
273
    a2.CFrame = a1.CFrame*CFrame.fromEulerAnglesXYZ(0, 0, -math.rad(90))
274
    local we = Instance.new("Weld", a2)
275
    we.Part0 = a1
276
    we.Part1 = a2
277
    we.C0 = a1.CFrame:inverse()
278
    we.C1 = a2.CFrame:inverse()
279
    a2.Parent = am
280
    local a3 = Instance.new("Part", am)
281
    Instance.new("BlockMesh", a3).Scale = Vector3.new(1, 1, 0)
282
    a3.Name = "back"
283
    a3.Transparency = 1
284
    a3.FormFactor = 3
285
    a3.TopSurface = 0
286
    a3.BottomSurface = 0
287
    local a3d = Instance.new("Decal", a3)
288
    a3d.Face = "Front"
289
    a3d.Texture = mid[3]
290
    local a3d = Instance.new("Decal", a3)
291
    a3d.Face = "Back"
292
    a3d.Texture = mid[3]
293
    a3.Size = Vector3.new(.6, .6, .2)
294
    a3.CFrame = a1.CFrame*CFrame.new(0, 0, .9)
295
    local w3 = Instance.new("Weld", a3)
296
    w3.Part0 = a1
297
    w3.Part1 = a3
298
    w3.C0 = a1.CFrame:inverse()
299
    w3.C1 = a3.CFrame:inverse()
300
    local alreadyhit = false
301
    con=a1.Touched:connect(function(hit)
302
        if (hit:IsDescendantOf(p.Character)) then return end
303
        if alreadyhit then
304
            con:disconnect()
305
            return
306
        end
307
        if hit.CanCollide then
308
            if (hit~=head) then
309
                if (hit.Parent~=workspace) then
310
                    for _,v in pairs(hit.Parent:GetChildren()) do
311
                        if (v:IsA("Humanoid")) then
312
                            if (v.Health<(damage+1)) then
313
                                hit.Parent:BreakJoints()
314
                                local tag1 = Instance.new("StringValue", v)
315
                                tag1.Name = "DamageTag"
316
                                tag1.Value = p.Name
317
                                local tag2 = Instance.new("StringValue", v)
318
                                tag2.Name = "WeaponTag"
319
                                tag2.Value = "Minecraft Bow"
320
                            else
321
                                v.Health = v.Health-damage
322
                                for i,w in pairs(hit.Parent:GetChildren()) do
323
                                    if (w:IsA("Part")) then
324
                                        for j = 1,6 do
325
                                            local nd = Instance.new("Decal", v)
326
                                            nd.Texture = mid[6]
327
                                            nd.Transparency = .5
328
                                            nd.Face = j-1
329
                                            coroutine.resume(coroutine.create(function()
330
                                                wait(.7)
331
                                                nd:remove()
332
                                            end))
333
                                        end
334
                                    end
335
                                end
336
                            end
337
                        end
338
                    end
339
                end
340
                a1.CFrame = CFrame.new((a1.CFrame).p, Vector3.new(a1.CFrame.x, hit.CFrame.y, a1.CFrame.z))
341
                local nw = Instance.new("Weld", a1)
342
                nw.Part0 = hit
343
                nw.Part1 = a1
344
                nw.C0 = hit.CFrame:inverse()
345
                nw.C1 = a1.CFrame:inverse()
346
                coroutine.resume(coroutine.create(function()
347
                    wait(10)
348
                    am:remove()
349
                end))
350
                if (s2c~=nil) then
351
                    s2c:Play()
352
                end
353
                alreadyhit = true
354
                con:disconnect()
355
            end
356
        end
357
    end)
358
    con2=a2.Touched:connect(function(hit)
359
        if (hit:IsDescendantOf(p.Character)) then return end
360
        if alreadyhit then
361
            con2:disconnect()
362
            return
363
        end
364
        if hit.CanCollide then
365
            if (hit~=head) then
366
                if (hit.Parent~=workspace) then
367
                    for _,v in pairs(hit.Parent:GetChildren()) do
368
                        if (v:IsA("Humanoid")) then
369
                            if (v.Health<(damage+1)) then
370
                                hit.Parent:BreakJoints()
371
                                local tag1 = Instance.new("StringValue", v)
372
                                tag1.Name = "DamageTag"
373
                                tag1.Value = p.Name
374
                                local tag2 = Instance.new("StringValue", v)
375
                                tag2.Name = "WeaponTag"
376
                                tag2.Value = "Minecraft Bow"
377
                            else
378
                                v.Health = v.Health-damage
379
                                for i,w in pairs(hit.Parent:GetChildren()) do
380
                                    if (w:IsA("Part")) then
381
                                        for j = 1,6 do
382
                                            local nd = Instance.new("Decal", w)
383
                                            nd.Texture = mid[6]
384
                                            nd.Transparency = .5
385
                                            nd.Face = j-1
386
                                            coroutine.resume(coroutine.create(function()
387
                                                wait(.7)
388
                                                nd:remove()
389
                                            end))
390
                                        end
391
                                    end
392
                                end
393
                            end
394
                        end
395
                    end
396
                end
397
                a1.CFrame = CFrame.new((a1.CFrame).p, Vector3.new(a1.CFrame.x, hit.CFrame.y, a1.CFrame.z))
398
                local nw = Instance.new("Weld", a1)
399
                nw.Part0 = hit
400
                nw.Part1 = a1
401
                nw.C0 = hit.CFrame:inverse()
402
                nw.C1 = a1.CFrame:inverse()
403
                coroutine.resume(coroutine.create(function()
404
                    wait(10)
405
                    am:remove()
406
                end))
407
                if (s2c~=nil) then
408
                    s2c:Play()
409
                end
410
                alreadyhit = true
411
                con2:disconnect()
412
            end
413
        end
414
    end)
415
    coroutine.resume(coroutine.create(function()
416
        wait(12)
417
        if not alreadyhit then
418
            alreadyhit = true
419
            am:remove()
420
        end
421
    end))
422
    local xr = math.random(velocityMin,velocityMax)
423
    a1.Velocity = a1.CFrame.lookVector*xr
424
    a2.Velocity = a1.CFrame.lookVector*xr
425
    a3.Velocity = a1.CFrame.lookVector*xr
426
    am.Parent = workspace
427
    coroutine.resume(coroutine.create(function()
428
        wait(delayTime)
429
        noarrow = false
430
    end))
431
end
432
 
433
local h = Instance.new("HopperBin", p["Backpack"])
434
h.Name = "MCBow"
435
h.TextureId = mid[5]
436
 
437
h.Selected:connect(function(mos)
438
    equipped = true
439
    mos.Icon = mid[4]
440
    local hed = p.Character:FindFirstChild("Head")
441
    if (hed==nil) then return end
442
    createbow()
443
    mos.Button1Down:connect(function()
444
        carrow(hed, mos.Hit.p)
445
    end)
446
    h.Deselected:connect(function()
447
        mos.Icon = "rbxasset://textures\\ArrowFarCursor.png"
448
    end)
449
end)
450
 
451
h.Deselected:connect(function()
452
    equipped = false
453
    removebow()
454
end)