Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

I was making a game, so after I tried it it doesn't work, please help?

Asked by 3 years ago

Hello!

I was making a gun for my game, it has 1 local script called front end and 1 script called back end, and I finished coding them, but for some reason it doesn't work, could someone tell me what made it not working?

The tool contains:

Local Script "Front End"

Script "Back End"

Remote Event "OnShoot"

Union "Handle"

Part "Shoot"

The Server Storage contains:

ParticleEmitter "BulletsEffect" (has an asset)

Part "Bullet"

Part "Hole"

The Replicated Storage contains:

Remote Event "RayCastEvent"

Here is the local script:

local tool = script.Parent
local maxammo = 1   
local ammo = maxammo
local reloading = false 
local UIS = game.GetService("UserInputService")

local remote = tool:WaitForChild("OnShoot")
local players = game:GetService("Players")
local client = players.LocalPlayer
local cursor = client:GetMouse()

local camera = game.Workspace.CurrentCamera
local anim = Instance.new("Animation")
local strplr = game:GetService("StarterPlayer")
anim.AnimationId = "rbxassetid://7156099342"
local track = "rbxassetid://7156099342"-- idle anim

local reloadanim = Instance.new("Animation")
reloadanim.AnimationId = "rbxassetid://7155833121"
local trackreload -- reload animation
tool.Activated:Connect(function()
    if ammo > 0 and not reloading then
        ammo = ammo - 1
        camera.CFrame = camera.CFrame * CFrame.Angles(0,math.rad(3),0)
        remote:FireServer(cursor.Hit.Position)
    else
        local sound = Instance.new("Sound", tool)
        sound.SoundId = "rbxassetid://132464034"
        sound.EmitterSize = 30
        sound:Play() -- plays the no ammo sound
    end
end)

tool.Equipped:Connect(function()
    local function reload()
        -- Sounds/Anims
        local sound = Instance.new("Sound",tool)
        sound.SoundId = "rbxassetid://4808446768"
        sound.EmitterSize = 30
        sound:Play()
        trackreload = script.Parent.Parent.Humanoid:LoadAnimation(reloadanim)
        trackreload.Priority = Enum.AnimationPriority.Movement -- The animation priority is movement
        trackreload.Looped = false
        track:Stop()
        trackreload:Play()

        -- Reload
        reloading = true
        wait(3)
        track:Play()
        ammo = maxammo -- fills the magazine
        reloading = false
    end
        UIS.InputBegan:Connect(function(Key)
        if Key.KeyCode == Enum.KeyCode.R and reloading == false and ammo ~= maxammo then
        reload()  
        end 
    end)
end)

tool.Unequipped:Connect(function()
    if track then
        track:Stop()
    end
end)

And here is the script:

local tool = script.Parent
local shoot_part = tool.WaitForChild("Shoot")
local remote = tool:WaitForChild("OnShoot")

local WorkSpace = game:GetService("Workspace")
local ServerStorage = game:GetService("ServerStorage")
local UIS = game:GetService("UserInputService")


remote.OnServerEvent:Connect(function(player,position)
    local sound = Instance.new("Sound")
    sound.SoundId = "rbxassetid://1590181673"
    sound.EmitterSize = 30
    sound:Play()
    local origin = shoot_part.Position
    local direction = (position - origin).Unit*300
    local result = WorkSpace:Raycast(origin, direction)

    local intersection = result and result.Position or origin + direction
    local distance  = (origin - intersection).Magnitude

    local particle_clone = ServerStorage.BulletEffect
    particle_clone.Parent = shoot_part

    local bullet_clone = ServerStorage.Bullet:Clone()
    bullet_clone.Size = Vector3.new(0.3,0.3,distance)
    bullet_clone.CFrame = CFrame.new(origin, intersection)*CFrame.new(0,0,-distance/2)
    bullet_clone.Parent = WorkSpace

    local hole_clone = ServerStorage.Hole:Clone()
    hole_clone.Size = Vector3.new(0.3,0.3,0.3)
    hole_clone.CFrame = CFrame.new(intersection)*CFrame.new(0,0,-intersection/2)
    hole_clone.Parent = WorkSpace

    if result then -- Checks the results of the ray
        local part = result.Instance 
        local humanoid = part.Parent:FindFirstChild("Humanoid") or part.Parent.Parent:FindFirstChild("Humanoid")
        local head = part.Parent:FindFirstChild("Humanoid") and part.Parent.Parent:FindFirstChild("Head")

        if head then 
            hole_clone:Destroy()
            humanoid:TakeDamage(200)
        end
        if humanoid then
            hole_clone:Destroy()
            humanoid:TakeDamage(50)
        end
    end

    wait(0.25)
    particle_clone:Destroy()
    bullet_clone:Destroy()
    wait(7)
    hole_clone:Destroy()
end)

Could someone tell me where is the error, are those scripts outdated and needs modifications?

Thanks in advance

Answer this question