Here are my scripts, plz tell me if u know how to improve them, thnx.
Tool = script.Parent
local arms = nil
local torso = nil
local weld33 = nil -- right arm
local weld55 = nil -- left arm
local welds = {}
local reloading = false
function ReloadSequence() -- this will be a pain in my blocky butt.
wait(.05)
weld33.C1 = CFrame.new(-0.75, -0.8, 0.35) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-15), 0)
wait(.05)
local mag2 = Instance.new("Part")
mag2.Size = Vector3.new(1,1,1)
mag2.BrickColor = BrickColor.new("Sand green")
mag2.Parent = game.Workspace
local magmesh2 = Instance.new("SpecialMesh")
magmesh2.Scale = Vector3.new(.6,.6,1.6)
magmesh2.MeshType = "Sphere"
magmesh2.Parent = mag2
local magweld = Instance.new("Weld")
leftarm = Tool.Parent["Left Arm"]
magweld.Parent = mag2
magweld.Part0 = mag2
magweld.Part1 = leftarm
magweld.C0 = CFrame.new(-1,0,0.3)
magweld.C0 = magweld.C0 * CFrame.fromEulerAnglesXYZ(0,0.6,1.6)
weld55.C1 = CFrame.new(-0.35, 1.5, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(260), -1.2, math.rad(-50))
wait(.1)
weld55.C1 = CFrame.new(-0.35, 1.5, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(270), -1, math.rad(-60))
wait(.1)
weld55.C1 = CFrame.new(-0.35, 1.5, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(280), -0.8, math.rad(-70))
wait(.1)
weld55.C1 = CFrame.new(-0.35, 1.5, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), -0.6, math.rad(-80))
wait(.1)
weld55.C1 = CFrame.new(-0.35, 1.5, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), -0.4, math.rad(-90))
wait(.1)
weld55.C1 = CFrame.new(-0.35, 1.5, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), -0.2, math.rad(-90))
wait(.1)
weld55.C1 = CFrame.new(-0.35, 1.5, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
wait(.1)
weld55.C1 = CFrame.new(-0.35, 1.5, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0.2, math.rad(-90))
Tool.Handle.Click:play()
wait(.1)
weld55.C1 = CFrame.new(-0.35, 1.1, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0.2, math.rad(-90))
mag2:remove()
Tool.R1.Transparency = 0
Tool.R2.Transparency = 0
Tool.R3.Transparency = 0
Tool.R4.Transparency = 0
Tool.R5.Transparency = 0
wait(0.3)
weld55.C1 = CFrame.new(-0.35, 1.2, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
weld33.C1 = CFrame.new(-0.75, -0.2, 0.35) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-15), 0)
end
function Reload()
if script.Parent.Ammo.Value < script.Parent.MaxAmmo.Value and reloading == false and script.Parent.StoredAmmo.Value >= 1 then
reloading = true
script.Parent.Ammo.Value = 0
Tool.Handle.Reload:play()
ReloadSequence()
-- ...
if script.Parent.StoredAmmo.Value >= script.Parent.MaxAmmo.Value then
script.Parent.Ammo.Value = script.Parent.MaxAmmo.Value
script.Parent.StoredAmmo.Value = script.Parent.StoredAmmo.Value - script.Parent.MaxAmmo.Value
script.Parent.Recoil.Value = 7.5
elseif script.Parent.StoredAmmo.Value < script.Parent.MaxAmmo.Value and script.Parent.StoredAmmo.Value >= 1 then
script.Parent.Ammo.Value = script.Parent.StoredAmmo.Value
script.Parent.StoredAmmo.Value = 0
script.Parent.Recoil.Value = 7.5
end
reloading = false
end
end
function Equip(mouse)
wait(0.01)
arms = {Tool.Parent:FindFirstChild("Left Arm"), Tool.Parent:FindFirstChild("Right Arm")}
torso = Tool.Parent:FindFirstChild("Torso")
if arms ~= nil and torso ~= nil then
local sh = {torso:FindFirstChild("Left Shoulder"), torso:FindFirstChild("Right Shoulder")}
if sh ~= nil then
local yes = true
if yes then
yes = false
sh[1].Part1 = nil
sh[2].Part1 = nil
falsearm1 = arms[1]:clone()
local mesh1 = Instance.new("BlockMesh")
mesh1.Scale = Vector3.new(.9,.9,.9)
mesh1.Parent = falsearm1
local armweld1 = Instance.new("Weld")
falsearm1.BrickColor = BrickColor.new(26)
falsearm1.Parent = Tool
armweld1.Parent = falsearm1
armweld1.Part0 = falsearm1
armweld1.Part1 = arms[1]
falsearm2 = arms[2]:clone()
local mesh2 = Instance.new("BlockMesh")
mesh2.Scale = Vector3.new(.9,.9,.9)
mesh2.Parent = falsearm2
local armweld2 = Instance.new("Weld")
falsearm2.BrickColor = BrickColor.new(26)
falsearm2.Parent = Tool
armweld2.Parent = falsearm2
armweld2.Part0 = falsearm2
armweld2.Part1 = arms[2]
local weld1 = Instance.new("Weld") -- left arm
weld55 = weld1
weld1.Part0 = torso
weld1.Parent = torso
weld1.Part1 = arms[1]
weld1.C1 = CFrame.new(-0.35, 1.2, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
welds[1] = weld1
local weld2 = Instance.new("Weld") -- right arm
weld33 = weld2
weld2.Part0 = torso
weld2.Parent = torso
weld2.Part1 = arms[2]
weld2.C1 = CFrame.new(-0.75, -0.2, 0.35) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-15), 0)
welds[2] = weld2
end
else
print("sh")
end
else
print("arms")
end
end
local legs = nil
local torso2 = nil
local welds2 = {}
local bodyforce = nil
function Unequip(mouse)
if arms ~= nil and torso ~= nil then
local sh = {torso:FindFirstChild("Left Shoulder"), torso:FindFirstChild("Right Shoulder")}
if sh ~= nil then
local yes = true
if yes then
yes = false
sh[1].Part1 = arms[1]
sh[2].Part1 = arms[2]
welds[1].Parent = nil
welds[2].Parent = nil
falsearm1:remove()
falsearm2:remove()
end
else
print("sh")
end
else
print("arms")
end
end
function fire(v)
Tool.Handle.Fire:play()
local vCharacter = Tool.Parent
local vPlayer = game.Players:playerFromCharacter(vCharacter)
local missile = Instance.new("Part")
local spawnPos = vCharacter.PrimaryPart.Position
spawnPos = spawnPos + (v * 8)
missile.Position = spawnPos
missile.Size = Vector3.new(1,1,2)
missile.Velocity = v * 400
missile.BrickColor = BrickColor.new(26)
missile.Shape = 0
missile.BottomSurface = 0
missile.TopSurface = 0
missile.Name = "Grenade"
missile.Elasticity = 0
missile.Reflectance = 0
missile.Friction = 0.9
Tool.Explosion:clone().Parent = missile
missile.BrickColor = BrickColor.new("Sand green")
local force = Instance.new("BodyForce")
force.force = Vector3.new(0,50,0)
force.Parent = missile
local mesh = Instance.new("SpecialMesh")
mesh.Scale = Vector3.new(.6,.6,.6)
mesh.MeshType = "Sphere"
mesh.Parent = missile
local new_script = script.Parent.GrenadeScript:clone()
new_script.Disabled = false
new_script.Parent = missile
local creator_tag = Instance.new("ObjectValue")
creator_tag.Value = vPlayer
creator_tag.Name = "creator"
creator_tag.Parent = missile
missile.Parent = game.Workspace
cam = game.Workspace.CurrentCamera
local cam_rot = cam.CoordinateFrame - cam.CoordinateFrame.p
local cam_scroll = (cam.CoordinateFrame.p - cam.Focus.p).magnitude
local ncf = CFrame.new(cam.Focus.p)*cam_rot*CFrame.fromEulerAnglesXYZ(0.33, 0, 0)
cam.CoordinateFrame = ncf*CFrame.new(0, 0, cam_scroll)
weld33.C1 = CFrame.new(-0.75, -0.4, 0.35) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-15), 0)
weld55.C1 = CFrame.new(-0.35, 1, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
Tool.Smoke.Smoke.Enabled = true
Tool.Smoke1.Smoke.Enabled = true
Tool.R1.Transparency = 1
Tool.R2.Transparency = 1
Tool.R3.Transparency = 1
Tool.R4.Transparency = 1
Tool.R5.Transparency = 1
wait(0.1)
weld33.C1 = CFrame.new(-0.75, -0.4, 0.35) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-15), 0)
weld55.C1 = CFrame.new(-0.35, 1, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
wait(0.1)
weld33.C1 = CFrame.new(-0.75, -0.2, 0.35) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-15), 0)
weld55.C1 = CFrame.new(-0.35, 1.2, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
wait(0.1)
Tool.Smoke.Smoke.Enabled = false
Tool.Smoke1.Smoke.Enabled = false
end
function KeyDownFunctions(key)
if key == "r" then
Reload()
end
end
Tool.Enabled = true
function onActivated()
if not Tool.Enabled then
return
end
Tool.Enabled = false
local character = Tool.Parent;
local humanoid = character.Humanoid
if humanoid == nil then
print("Humanoid not found")
return
end
local ammo = script.Parent.Ammo
local maxammo = script.Parent.MaxAmmo
if reloading == false and humanoid.Health >= 1 then
if ammo.Value >= 1 then
ammo.Value = ammo.Value - 1
local targetPos = humanoid.TargetPoint
local lookAt = (targetPos - character.Head.Position).unit
if script.Parent.Recoil.Value < 20 then
script.Parent.Recoil.Value = script.Parent.Recoil.Value + math.random(5,10)
end
fire(lookAt)
else
Reload()
end
end
Tool.Enabled = true
end
function onEquippedLocal(mouse)
if mouse == nil then
print("Mouse not found")
return
end
mouse.Icon = "rbxasset://textures\\GunCursor.png"
mouse.Button1Down:connect(function() onButton1Down(mouse) end)
mouse.KeyDown:connect(KeyDownFunctions)
while true do
wait()
script.Parent.Name = "RPG["..script.Parent.Ammo.Value.."]"
end
end
Tool.Equipped:connect(onEquippedLocal)
script.Parent.Activated:connect(onActivated)
Tool.Equipped:connect(Equip)
Tool.Unequipped:connect(Unequip)
local Tool = script.Parent
wut = Tool.Parent
function onEquipped(mouse2)
mouse2.KeyDown:connect(onkeyDown)
mouse = mouse2
end
function onkeyDown(key)
if key == "z" then
if not a then
Tool.Recoil.Value = 5
Tool.Aim.Value = 0.01
Tool.ZoomedIn.Value = true
Tool.Parent.Humanoid.WalkSpeed = 7
a=true
Tool.GripPos = Vector3.new(0, -0.1, 0.1)
wait(0.07)
Tool.GripPos = Vector3.new(0.1,-0.2,0.75)
wait(0.07)
Tool.GripPos = Vector3.new(0.2,-0.35,0.5)
wait(0.07)
Tool.GripPos = Vector3.new(0.3,-0.5,0.25)
else
Tool.ZoomedIn.Value = false
Tool.Recoil.Value = 7.5
Tool.Aim.Value = 15
Tool.Parent.Humanoid.WalkSpeed = 10
a=false
Tool.GripPos = Vector3.new(0.3,-0.5,0.25)
wait(0.07)
Tool.GripPos = Vector3.new(0.2,-0.35,0.5)
wait(0.07)
Tool.GripPos = Vector3.new(0.1,-0.2,0.75)
wait(0.07)
Tool.GripPos = Vector3.new(0, -0.1, 1)
end
end
end
script.Parent.Equipped:connect(onEquipped)
