This commit is contained in:
tachdo012-bot 2026-01-13 11:21:01 +08:00 committed by GitHub
commit 6edf40aca1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

225
Saikytiteo Normal file
View file

@ -0,0 +1,225 @@
-- StarterPlayerScripts/SaikytiteoAutoParry.lua
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
-- ====== SERVER LOGIC ======
if RunService:IsServer() then
local DEFAULT_REACTION = 0.03
local MAX_HITBOX_DISTANCE = 4
local ATTACK_FLAG = "IsAttacking"
local HITBOX_NAME = "Hitbox"
local AutoParryState = {}
local PlayerReaction = {}
Players.PlayerAdded:Connect(function(plr)
AutoParryState[plr] = false
PlayerReaction[plr] = DEFAULT_REACTION
plr.CharacterAdded:Connect(function(char)
local remote = Instance.new("RemoteEvent")
remote.Name = "ParryRemote"
remote.Parent = char
local toggleEvent = Instance.new("RemoteEvent")
toggleEvent.Name = "AutoParryToggle"
toggleEvent.Parent = plr:WaitForChild("PlayerGui")
toggleEvent.OnServerEvent:Connect(function(p, state, reaction)
if p == plr then
AutoParryState[p] = state
if reaction then PlayerReaction[p] = reaction end
end
end)
end)
end)
local function IncomingPerfectHit(targetPlayer)
local char = targetPlayer.Character
if not char or not char:FindFirstChild("HumanoidRootPart") then return false end
local hrp = char.HumanoidRootPart
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= targetPlayer then
local aChar = plr.Character
if aChar and aChar:FindFirstChild(ATTACK_FLAG) then
if aChar[ATTACK_FLAG].Value then
local hitbox = aChar:FindFirstChild(HITBOX_NAME)
if hitbox then
local dist = (hitbox.Position - hrp.Position).Magnitude
if dist <= MAX_HITBOX_DISTANCE then
return true
end
end
end
end
end
end
return false
end
RunService.Heartbeat:Connect(function()
for plr, enabled in pairs(AutoParryState) do
if enabled and plr.Character then
local char = plr.Character
local remote = char:FindFirstChild("ParryRemote")
if remote and IncomingPerfectHit(plr) then
task.spawn(function()
task.wait(PlayerReaction[plr] or DEFAULT_REACTION)
remote:Fire("StartParryPerfect")
end)
end
end
end
end)
return
end
-- ====== CLIENT LOGIC ======
local char = player.Character or player.CharacterAdded:Wait()
local remote = char:FindFirstChild("ParryRemote") or Instance.new("RemoteEvent")
remote.Name = "ParryRemote"
remote.Parent = char
remote.OnClientEvent:Connect(function(action)
if action == "StartParryPerfect" then
print("PERFECT AUTO PARRY!")
-- Thêm flash, âm thanh, animation ở đây nếu muốn
end
end)
-- ====== GUI “Saikytiteo” ======
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.ResetOnSpawn = false
ScreenGui.Name = "SaikytiteoAutoParryMenu"
ScreenGui.Parent = player:WaitForChild("PlayerGui")
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0, 250, 0, 150)
Frame.Position = UDim2.new(0.05,0,0.2,0)
Frame.BackgroundColor3 = Color3.fromRGB(30,30,30)
Frame.BorderSizePixel = 0
Frame.Parent = ScreenGui
Frame.Active = true
Frame.Draggable = true
Frame.ClipsDescendants = true
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1,0,0,28)
Title.BackgroundTransparency = 1
Title.Text = "Saikytiteo"
Title.TextColor3 = Color3.fromRGB(255,255,255)
Title.TextSize = 24
Title.Font = Enum.Font.GothamBold
Title.Parent = Frame
local ToggleButton = Instance.new("TextButton")
ToggleButton.Size = UDim2.new(0,200,0,50)
ToggleButton.Position = UDim2.new(0,25,0,40)
ToggleButton.BackgroundColor3 = Color3.fromRGB(180,50,50)
ToggleButton.Text = "OFF"
ToggleButton.TextColor3 = Color3.fromRGB(255,255,255)
ToggleButton.TextSize = 22
ToggleButton.Font = Enum.Font.GothamBold
ToggleButton.Parent = Frame
ToggleButton.AutoButtonColor = true
ToggleButton.BorderSizePixel = 0
ToggleButton.CornerRadius = UDim.new(0,10)
local SliderLabel = Instance.new("TextLabel")
SliderLabel.Size = UDim2.new(1,0,0,20)
SliderLabel.Position = UDim2.new(0,0,0,100)
SliderLabel.BackgroundTransparency = 1
SliderLabel.Text = "Reaction Time"
SliderLabel.TextColor3 = Color3.fromRGB(255,255,255)
SliderLabel.Font = Enum.Font.Gotham
SliderLabel.TextSize = 16
SliderLabel.Parent = Frame
local SliderBar = Instance.new("Frame")
SliderBar.Size = UDim2.new(0,200,0,20)
SliderBar.Position = UDim2.new(0,25,0,120)
SliderBar.BackgroundColor3 = Color3.fromRGB(70,70,70)
SliderBar.BorderSizePixel = 0
SliderBar.Parent = Frame
SliderBar.CornerRadius = UDim.new(0,10)
local Handle = Instance.new("Frame")
Handle.Size = UDim2.new(0,20,1,0)
Handle.Position = UDim2.new(0.5,0,0,0)
Handle.BackgroundColor3 = Color3.fromRGB(200,200,200)
Handle.BorderSizePixel = 0
Handle.Parent = SliderBar
Handle.CornerRadius = UDim.new(0,10)
local dragging = false
local reactionTime = 0.03
Handle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true end
end)
Handle.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local x = math.clamp(input.Position.X - SliderBar.AbsolutePosition.X,0,SliderBar.AbsoluteSize.X)
Handle.Position = UDim2.new(0, x, 0, 0)
reactionTime = 0.01 + (0.05 * (1 - x/SliderBar.AbsoluteSize.X))
end
end)
-- Nút thu nhỏ
local MiniButton = Instance.new("TextButton")
MiniButton.Size = UDim2.new(0,40,0,40)
MiniButton.Position = UDim2.new(1, -45, 0, 5)
MiniButton.BackgroundColor3 = Color3.fromRGB(50,50,50)
MiniButton.TextColor3 = Color3.fromRGB(255,255,255)
MiniButton.Text = "S"
MiniButton.Font = Enum.Font.GothamBold
MiniButton.TextSize = 24
MiniButton.Parent = Frame
MiniButton.Visible = true
local isMinimized = false
MiniButton.MouseButton1Click:Connect(function()
if not isMinimized then
-- Thu nhỏ
Frame.Size = UDim2.new(0, 60, 0, 40)
Title.Visible = false
ToggleButton.Visible = false
SliderLabel.Visible = false
SliderBar.Visible = false
Handle.Visible = false
isMinimized = true
else
-- Mở lại
Frame.Size = UDim2.new(0, 250, 0, 150)
Title.Visible = true
ToggleButton.Visible = true
SliderLabel.Visible = true
SliderBar.Visible = true
Handle.Visible = true
isMinimized = false
end
end)
-- RemoteEvent để gửi ON/OFF và reaction time
local toggleRemote = ScreenGui:FindFirstChild("AutoParryToggle") or Instance.new("RemoteEvent")
toggleRemote.Name = "AutoParryToggle"
toggleRemote.Parent = ScreenGui
local isOn = false
ToggleButton.MouseButton1Click:Connect(function()
isOn = not isOn
if isOn then
ToggleButton.BackgroundColor3 = Color3.fromRGB(40,180,60)
ToggleButton.Text = "ON"
else
ToggleButton.BackgroundColor3 = Color3.fromRGB(180,50,50)
ToggleButton.Text = "OFF"
end
toggleRemote:FireServer(isOn, reactionTime)
end)