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

How to fix this(No eror in the Out Put)?

Asked by
lamgogo 56
3 years ago
Edited 3 years ago

I created a sword and left it in ReplicatedStorage,It has a script to hit and I gave a Button to give the sword to player.But when I tried it out and got it, the sword couldn't hit anymore. In the sword i have a script(N?mal script):

--Rescripted by Luckymaxer --EUROCOW WAS HERE BECAUSE I MADE THE PARTICLES AND THEREFORE THIS ENTIRE SWORD PRETTY AND LOOK PRETTY WORDS AND I'D LIKE TO DEDICATE THIS TO MY FRIENDS AND HI LUCKYMAXER PLS FIX SFOTH SWORDS TY LOVE Y'ALl --Updated for R15 avatars by StarWars --Re-updated by TakeoHonorable

Tool = script.Parent Handle = Tool:WaitForChild("Handle")

function Create(ty) return function(data) local obj = Instance.new(ty) for k, v in pairs(data) do if type(k) == 'number' then v.Parent = obj else obj[k] = v end end return obj end end

local BaseUrl = "rbxassetid://"

Players = game:GetService("Players") Debris = game:GetService("Debris") RunService = game:GetService("RunService")

DamageValues = { BaseDamage = 3, SlashDamage = 7, LungeDamage = 12 }

--For R15 avatars Animations = { R15Slash = 522635514, R15Lunge = 522638767 }

Damage = DamageValues.BaseDamage

Grips = { Up = CFrame.new(0, 0, -1.70000005, 0, 0, 1, 1, 0, 0, 0, 1, 0), Out = CFrame.new(0, 0, -1.70000005, 0, 1, 0, 1, -0, 0, 0, 0, -1) }

Sounds = { Slash = Handle:WaitForChild("SwordSlash"), Lunge = Handle:WaitForChild("SwordLunge"), Unsheath = Handle:WaitForChild("Unsheath") }

ToolEquipped = false

--For Omega Rainbow Katana thumbnail to display a lot of particles. for i, v in pairs(Handle:GetChildren()) do if v:IsA("ParticleEmitter") then v.Rate = 20 end end

Tool.Grip = Grips.Up Tool.Enabled = true

function IsTeamMate(Player1, Player2) return (Player1 and Player2 and not Player1.Neutral and not Player2.Neutral and Player1.TeamColor == Player2.TeamColor) end

function TagHumanoid(humanoid, player) local Creator_Tag = Instance.new("ObjectValue") Creator_Tag.Name = "creator" Creator_Tag.Value = player Debris:AddItem(Creator_Tag, 2) Creator_Tag.Parent = humanoid end

function UntagHumanoid(humanoid) for i, v in pairs(humanoid:GetChildren()) do if v:IsA("ObjectValue") and v.Name == "creator" then v:Destroy() end end end

function Blow(Hit) if not Hit or not Hit.Parent or not CheckIfAlive() or not ToolEquipped then return end local RightArm = Character:FindFirstChild("Right Arm") or Character:FindFirstChild("RightHand") if not RightArm then return end local RightGrip = RightArm:FindFirstChild("RightGrip") if not RightGrip or (RightGrip.Part0 ~= Handle and RightGrip.Part1 ~= Handle) then return end local character = Hit.Parent if character == Character then return end local humanoid = character:FindFirstChildOfClass("Humanoid") if not humanoid or humanoid.Health == 0 then return end local player = Players:GetPlayerFromCharacter(character) if player and (player == Player or IsTeamMate(Player, player)) then return end UntagHumanoid(humanoid) TagHumanoid(humanoid, Player) humanoid:TakeDamage(Damage) end

function Attack() Damage = DamageValues.SlashDamage Sounds.Slash:Play()

if Humanoid then
    if Humanoid.RigType == Enum.HumanoidRigType.R6 then
        local Anim = Instance.new("StringValue")
        Anim.Name = "toolanim"
        Anim.Value = "Slash"
        Anim.Parent = Tool
    elseif Humanoid.RigType == Enum.HumanoidRigType.R15 then
        local Anim = Tool:FindFirstChild("R15Slash")
        if Anim then
            local Track = Humanoid:LoadAnimation(Anim)
            Track:Play(0)
        end
    end
end 

end

function Lunge() Damage = DamageValues.LungeDamage

Sounds.Lunge:Play()

if Humanoid then
    if Humanoid.RigType == Enum.HumanoidRigType.R6 then
        local Anim = Instance.new("StringValue")
        Anim.Name = "toolanim"
        Anim.Value = "Lunge"
        Anim.Parent = Tool
    elseif Humanoid.RigType == Enum.HumanoidRigType.R15 then
        local Anim = Tool:FindFirstChild("R15Lunge")
        if Anim then
            local Track = Humanoid:LoadAnimation(Anim)
            Track:Play(0)
        end
    end
end 
--[[
if CheckIfAlive() then
    local Force = Instance.new("BodyVelocity")
    Force.velocity = Vector3.new(0, 10, 0) 
    Force.maxForce = Vector3.new(0, 4000, 0)
    Debris:AddItem(Force, 0.4)
    Force.Parent = Torso
end
]]

wait(0.2)
Tool.Grip = Grips.Out
wait(0.6)
Tool.Grip = Grips.Up

Damage = DamageValues.SlashDamage

end

Tool.Enabled = true LastAttack = 0

function Activated() if not Tool.Enabled or not ToolEquipped or not CheckIfAlive() then return end Tool.Enabled = false local Tick = RunService.Stepped:wait() if (Tick - LastAttack < 0.2) then Lunge() else Attack() end LastAttack = Tick --wait(0.5) Damage = DamageValues.BaseDamage local SlashAnim = (Tool:FindFirstChild("R15Slash") or Create("Animation"){ Name = "R15Slash", AnimationId = BaseUrl .. Animations.R15Slash, Parent = Tool })

local LungeAnim = (Tool:FindFirstChild("R15Lunge") or Create("Animation"){
    Name = "R15Lunge",
    AnimationId = BaseUrl .. Animations.R15Lunge,
    Parent = Tool
})
Tool.Enabled = true

end

function CheckIfAlive() return (((Player and Player.Parent and Character and Character.Parent and Humanoid and Humanoid.Parent and Humanoid.Health > 0 and Torso and Torso.Parent) and true) or false) end

function Equipped() Character = Tool.Parent Player = Players:GetPlayerFromCharacter(Character) Humanoid = Character:FindFirstChildOfClass("Humanoid") Torso = Character:FindFirstChild("Torso") or Character:FindFirstChild("HumanoidRootPart") if not CheckIfAlive() then return end ToolEquipped = true Sounds.Unsheath:Play() end

function Unequipped() Tool.Grip = Grips.Up ToolEquipped = false end

Tool.Activated:Connect(Activated) Tool.Equipped:Connect(Equipped) Tool.Unequipped:Connect(Unequipped)

Connection = Handle.Touched:Connect(Blow)

and in the Button(local script):

local player = game.Players.LocalPlayer script.Parent.MouseButton1Click:Connect(function() if player:FindFirstChild("leaderstats").Cash.Value >= 20 then player.Backpack.WoodenSword:Destroy() end end) if player:FindFirstChild("leaderstats").Cash.Value < 20 then script.Parent.StoneScript.Disabled = true end

I REALY need you to help! (sory if the script not in the script box)

1 answer

Log in to vote
0
Answered by
cancle5 120
3 years ago
Edited 3 years ago

I can't really go through your script right now but I can give some tips to fix it.

First of all, I think weapons mostly have to run on the client since the server can't detect a lot.

Like the server can't find the local player since server scripts run for all players.

You should have an event after the player hits another player since the client can't kill other players.

Also, I already noticed 1 mistake at the end. You tried to find the local player through the server.

If you need more help in detail. DM me discord cancle5#0035

EDIT: Also, do you have a script to activate it??? Scripts can't run in ReplicatedStorage.

Ad

Answer this question