Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Players = game:GetService("Players")
- local UserInputService = game:GetService("UserInputService")
- local RunService = game:GetService("RunService")
- local Debris = game:GetService("Debris")
- local LocalPlayer = Players.LocalPlayer
- local function getCharacter() return LocalPlayer.Character end
- -- Detect rig type
- local function getRigType()
- local hum = getCharacter():FindFirstChildOfClass("Humanoid")
- return hum and hum.RigType == Enum.HumanoidRigType.R15 and "R15" or "R6"
- end
- -- Play slam animation
- local function playSlamAnimation()
- local humanoid = getCharacter():FindFirstChildOfClass("Humanoid")
- if not humanoid then return end
- local anim = Instance.new("Animation")
- anim.AnimationId = getRigType() == "R15" and "rbxassetid://5432160495" or "rbxassetid://148840371" -- R15: Slam, R6: Punch
- local track = humanoid:LoadAnimation(anim)
- track:Play()
- Debris:AddItem(anim, 3)
- end
- -- Visual shockwave effect
- local function shockwaveEffect()
- local root = getCharacter():FindFirstChild("HumanoidRootPart")
- if not root then return end
- local shock = Instance.new("Part")
- shock.Shape = Enum.PartType.Cylinder
- shock.Anchored = true
- shock.CanCollide = false
- shock.Size = Vector3.new(1, 0.2, 1)
- shock.CFrame = root.CFrame * CFrame.Angles(math.rad(90), 0, 0)
- shock.Material = Enum.Material.Neon
- shock.BrickColor = BrickColor.new("Bright orange")
- shock.Parent = workspace
- local expand = shock:TweenSize(Vector3.new(50, 0.2, 50), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.5, false)
- game.Debris:AddItem(shock, 0.6)
- end
- -- Damage nearby players
- local function slamDamage()
- local root = getCharacter():FindFirstChild("HumanoidRootPart")
- if not root then return end
- for _, player in ipairs(Players:GetPlayers()) do
- if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Humanoid") and player.Character:FindFirstChild("HumanoidRootPart") then
- local distance = (root.Position - player.Character.HumanoidRootPart.Position).Magnitude
- if distance <= 25 then
- player.Character.Humanoid:TakeDamage(100)
- end
- end
- end
- end
- -- Slam action
- local isSlamming = false
- local function slamGround()
- if isSlamming or not getCharacter() then return end
- isSlamming = true
- playSlamAnimation()
- wait(0.2)
- shockwaveEffect()
- slamDamage()
- wait(1)
- isSlamming = false
- end
- -- Bind tap to slam
- local inputConn
- inputConn = UserInputService.TouchTap:Connect(function()
- slamGround()
- end)
- -- Auto-disable on death/reset
- LocalPlayer.CharacterAdded:Connect(function()
- if inputConn then inputConn:Disconnect() end
- end)
- -- Optional Notification
- pcall(function()
- game.StarterGui:SetCore("SendNotification", {
- Title = "🔥 Slam Ready",
- Text = "Tap anywhere to slam the ground!",
- Duration = 5
- })
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement