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

How to make a creator tag take the value of the player who dealt damage?

Asked by 4 years ago

I've got it to create a creator tag but I want the creator tag to have the value of the player who dealt it so that I can make an award script that awards the player for killing said thing.

Here's the script to the sword

local TOOL = script.Parent
local BLADE = TOOL.Blade
local HANDLE = TOOL.Handle
local ANIMS = {}
for index, CHILD in pairs(script:GetChildren()) do
    if CHILD.Name == "Slash" then
        table.insert(ANIMS,CHILD)
    end
end
local FIGHT = false
local FRIENDLYFIRE = TOOL.FriendlyFire
local IDLEANIM = nil
local TRAIL = BLADE.Trail
local PLAYER = game.Players.LocalPlayer


function Slash()
    if FIGHT == false then
        local HUM = TOOL.Parent:FindFirstChildOfClass("Humanoid")
        if HUM then
            TOOL.Slashing.Value = true
            BLADE.Swing.Pitch = math.random(8,12)/10
            BLADE.Swing:Play()
            TRAIL.Enabled = true
            local SHOUT = script.Grunt:Clone()
            SHOUT.Parent = HUM.Torso
            SHOUT:Play()
            SHOUT.Pitch = math.random(8,12)/10
            game:GetService("Debris"):AddItem(SHOUT,2)
            local BOD = Instance.new("BodyPosition",HUM.Torso)
            BOD.Position = HUM.Torso.CFrame * CFrame.new(0,0,-6).p
            BOD.P = 750
            BOD.D = 35
            BOD.MaxForce = BOD.MaxForce*25
            local ANIM = HUM:LoadAnimation(ANIMS[math.random(1,#ANIMS)])
            ANIM:Play()
            FIGHT = true
            local HIT = BLADE.Touched:Connect(function(TOUCHED)
                if TOUCHED.Parent:FindFirstChildOfClass("Humanoid") then
                    local HUM = TOUCHED.Parent:FindFirstChildOfClass("Humanoid")
                    local PASS = true
                    if game.Players:FindFirstChild(HUM.Parent.Name) and FRIENDLYFIRE.Value == false and TOUCHED.Parent:FindFirstChildOfClass("ForceField") == nil then
                        PASS = false
                    end
                    if PASS == true then
                        UntagHumanoid(HUM)
                        TagHumanoid(HUM,PLAYER)
                        HUM:TakeDamage(TOOL.Damage.Value)
                    end
                end
            end)
            ANIM.Stopped:Connect(function()
                TOOL.Slashing.Value = false
                BOD:Remove()
                TRAIL.Enabled = false
                HIT:Disconnect()
                wait()
                FIGHT = false
            end)
        end
    end
end

local Debris = game:GetService("Debris")

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

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

TOOL.Activated:Connect(function()
    Slash()
end)

TOOL.Equipped:Connect(function()
    local HUM = TOOL.Parent:FindFirstChildOfClass("Humanoid")
    if HUM and script:FindFirstChild("Idle") then
        IDLEANIM = HUM:LoadAnimation(script.Idle)
        IDLEANIM:Play()
    end
end)
TOOL.Unequipped:Connect(function()
    if IDLEANIM then
        IDLEANIM:Stop()
    end
end)

The award script

local hum = script.Parent.Humanoid
function dead()
    local tag = hum:FindFirstChild("creator")
    if tag.Value ~= "" then
        local leaderstats = tag.Value:FindFirstChild("leaderstats")
        leaderstats.Coins.Value = leaderstats.Coins.Value + 100
    end
end
hum.Died:Connect(dead)
0
You need to do the creator tag by the Server. NiniBlackJackQc 1562 — 4y
0
How would I do that? jackfrcsty 15 — 4y

1 answer

Log in to vote
0
Answered by 4 years ago

Figure it out

0
glad you figured it out royaltoe 5144 — 4y
Ad

Answer this question