how do I fix a nil value in tool? at line 47
local updateInterval = .4
local currentColor = 1
local colors = {26, 21}
local Tool = script.Parent
local damage = 1
local ticksound = Instance.new("Sound")
ticksound.SoundId = "rbxasset://sounds\\clickfast.wav"
ticksound.Parent = script.Parent
function update()
updateInterval = updateInterval * .9
script.Parent.BrickColor = BrickColor.new(colors[currentColor])
currentColor = currentColor + 1
if (currentColor > 2) then currentColor = 1 end
end
function blowUp()
local sound = Instance.new("Sound")
sound.SoundId = "rbxasset://sounds\\Rocket shot.wav"
sound.Parent = script.Parent
sound.Volume = 1
sound:play()
local explosion = Instance.new("Explosion")
explosion.BlastRadius = 12
explosion.BlastPressure = 0 -- these are really wussy units
-- find instigator tag
local creator = script.Parent:findFirstChild("creator")
if creator ~= nil then
explosion.Hit:connect(function(part, distance) onPlayerBlownUp(part, distance, creator) end)
end
explosion.Position = script.Parent.Position
explosion.Parent = game.Workspace
script.Parent.Transparency = 1
end
function onPlayerBlownUp(part, distance, creator)
if part.Name == "Head" then
local humanoid = part.Parent.Human
local vCharacter=Tool.Parent
local vPlayer=game.Players:playerFromCharacter(vCharacter)
local crit = math.random(1,100)
local crithit = 20
local MinDamageValue = (VPlayer.Data.Power.Value/2)
local MaxDamageValue = (VPlayer.Data.Power.Value*4)
local Damage = math.random(MinDamageValue,MaxDamageValue*(255-humanoid.Parent.EnemySettings.Defend.Value-1)/256)+1
if crit >= crithit then
Damage = Damage * 2
end
humanoid.Health = humanoid.Health - Damage
local part = Instance.new("BillboardGui")
part.Size = UDim2.new(0,50,0,100)
part.StudsOffset = Vector3.new(0,2,0)
part.MaxDistance = 50
local part2 = Instance.new("TextLabel")
local dt = game.ReplicatedStorage.DynamicText:Clone()
part2.Font = "Cartoon"
part2.FontSize = "Size24"
part2.TextStrokeTransparency = 0
part2.Size = UDim2.new(1,0,1,0)
part2.Position = UDim2.new(0,0,0,0)
part2.BackgroundTransparency = 1
part2.Parent = part
dt.Parent = part2
dt.Disabled = false
part.Parent = humanoid.Parent.Head
part.Adornee = part.Parent
if (Damage <= 0) then
part2.TextColor3 = Color3.new(0,0.5,1)
part2.Text = "Miss!"
else
part2.TextColor3 = Color3.new(1,1,1)
if crit <= crithit then
part2.TextColor3 = Color3.new(1,1,0)
part2.FontSize = "Size36"
part2.Text = ""..Damage.."!"
else
part2.Text = ""..Damage..""
end
end
wait(5)
part:remove()
tagHumanoid(humanoid, creator)
end
end
function tagHumanoid(humanoid, creator)
-- tag does not need to expire iff all explosions lethal
if creator ~= nil then
local new_tag = creator:clone()
new_tag.Parent = humanoid
end
end
function untagHumanoid(humanoid)
if humanoid ~= nil then
local tag = humanoid:findFirstChild("creator")
if tag ~= nil then
tag.Parent = nil
end
end
end
while updateInterval > .1 do
wait(updateInterval)
update()
ticksound:play()
end
blowUp()
wait(2)
script.Parent:remove()
