Context resumee:
Problem:
The Touched event in the explosions and in the lightning stops working after a while. The more I move my character or the mouse the sooner it stops working, or sometimes after the skill hits my own char.
Also, the skill has no script that makes it not to damage the player casting, but somehow it started behaving like this in some point of the development, I don't know if with this i'm facing a bug or if it is just some normal behavior of animation called events (wouldn't want it different though).
local UIS = game:GetService("UserInputService") local Players = game:GetService("Players") local player = Players.LocalPlayer local character = player.Character if not character then character = game.Players.LocalPlayer.CharacterAdded:Wait() end local humanoid = character:WaitForChild("Humanoid") local mouse = player:GetMouse() local RemoteEvent = game.ReplicatedStorage.RemoteEvent -- storm: local StormCast = game.ReplicatedStorage.StormCast local StormCastTrack = humanoid:LoadAnimation(StormCast) local cooldown = false UIS.InputBegan:Connect(function(tecla) if tecla.KeyCode == Enum.KeyCode.E then if not cooldown then cooldown = true StormCastTrack:Play() else print("Raios em cooldown.") end connection1 = StormCastTrack:GetMarkerReachedSignal("BeforeEnd"):Connect(function() StormCastTrack.TimePosition = 1.05 end) connection2 = StormCastTrack:GetMarkerReachedSignal("SkyBlast"):Connect(function() RemoteEvent:FireServer("SkyBlast") local SkyBlast = game.ReplicatedStorage.SkyBlast local SkyBlast_C = SkyBlast:Clone() SkyBlast_C.Parent = game.Workspace SkyBlast_C.Position = Vector3.new(0,33,0)+ character.LowerTorso.Position local function fadeout() while SkyBlast_C.Transparency < 0.95 do SkyBlast_C.Transparency = SkyBlast_C.Transparency + 0.1 wait(0.01) end SkyBlast_C:Destroy() end fadeout() end) connection3 = StormCastTrack:GetMarkerReachedSignal("StartCasting"):Connect(function() while StormCastTrack.IsPlaying do RemoteEvent:FireServer("StormCast", mouse.hit) local r = math.random(0,150)/100 wait(r) end end) UIS.InputEnded:Connect(function(tecla) if tecla.KeyCode == Enum.KeyCode.E then connection1:disconnect() connection2:disconnect() connection3:disconnect() StormCastTrack:Stop() delay(2, function() if cooldown == true then cooldown = false end end) end end) end end)
local RemoteEvent = game.ReplicatedStorage.RemoteEvent local StormCast = game.ReplicatedStorage.StormCast RemoteEvent.OnServerEvent:Connect(function(player, request, dado) if request == "SkyBlast" then local character = player.Character local SkyBlast = game.ReplicatedStorage.SkyBlast local SkyBlast_CS = SkyBlast:Clone() SkyBlast_CS.Name = "SkyBlast_CS" SkyBlast_CS.Parent = game.Workspace SkyBlast_CS.Position = Vector3.new(0,33,0)+ character.LowerTorso.Position end local StormCast = game.ReplicatedStorage.StormCast if request == "StormCast" then local raio1 = game.ServerStorage.Raio1 local Raio1 = raio1:Clone() Raio1.Parent = workspace Raio1.Position = Vector3.new(dado.X,dado.Y + 29,dado.Z) + Vector3.new(math.random(-30,30)/10,0,math.random(-30,30)/10) Raio1.Orientation = Raio1.Orientation + Vector3.new(0, math.random(-175,175), 0) end end)
script.Parent.Touched:Connect(function(hit) if hit.Parent:FindFirstChild("Humanoid") and debounce == false then debounce = true hit.Parent.Humanoid:TakeDamage(5) delay(0.3, function(bounce)debounce = false end) end end) spawn(function(explodir) local boomC = boom:Clone() boomC.Parent = workspace boomC.Position = raio.Position - Vector3.new(0,29,0) end)
script.Parent.Touched:Connect(function(hit) if hit.Parent:FindFirstChild("Humanoid") and debounce == false then debounce = true hit.Parent.Humanoid:TakeDamage(5) delay(0.5, function(bounce)debounce = false end) end end)
Explosions are not base parts and they can't fire a touch event if you touch them.