local Players = game:GetService("Players") local player = Players.LocalPlayer ------------------------------------------------- -- VARIABLES ------------------------------------------------- local character local humanoid ------------------------------------------------- -- FUNCION PARA CONECTAR NUEVO PERSONAJE ------------------------------------------------- local function setupCharacter(char) character = char humanoid = character:WaitForChild("Humanoid") end -- Conectar cuando aparece personaje player.CharacterAdded:Connect(setupCharacter) -- Si ya existe al iniciar if player.Character then setupCharacter(player.Character) end ------------------------------------------------- -- GUI ------------------------------------------------- local screenGui = Instance.new("ScreenGui") screenGui.Name = "JumpButtonGui" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") local button = Instance.new("TextButton") button.Size = UDim2.new(0, 120, 0, 120) button.Position = UDim2.new(0.5, -60, 0.7, 0) button.BackgroundColor3 = Color3.fromRGB(0, 170, 255) button.Text = "Jump" button.TextScaled = true button.TextColor3 = Color3.new(1,1,1) button.Parent = screenGui button.Active = true button.AnchorPoint = Vector2.new(0.5,0.5) local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(1,0) corner.Parent = button ------------------------------------------------- -- FUNCION SALTO (NO EN EL AIRE) ------------------------------------------------- local function jump() if not humanoid then return end -- Solo si está tocando el suelo if humanoid.FloorMaterial ~= Enum.Material.Air then humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end button.MouseButton1Click:Connect(jump) ------------------------------------------------- -- SISTEMA ARRASTRAR (PC + MÓVIL) ------------------------------------------------- local dragging = false local dragStart local startPos button.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = button.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) button.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then if dragging then local delta = input.Position - dragStart button.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end end)