0% acharam este documento útil (0 voto)
7 visualizações6 páginas

Sistema de Parry para Jogos Roblox

O documento é um script para um jogo que implementa um sistema de parry, permitindo que os jogadores defendam ataques de uma bola. Ele inclui funcionalidades como ajuste de distância do parry, previsão da posição da bola, e um sistema de notificação para interações com o usuário. Além disso, há um sistema de bypass de anticheat e integração com um servidor Discord.

Enviado por

rataohenry
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
7 visualizações6 páginas

Sistema de Parry para Jogos Roblox

O documento é um script para um jogo que implementa um sistema de parry, permitindo que os jogadores defendam ataques de uma bola. Ele inclui funcionalidades como ajuste de distância do parry, previsão da posição da bola, e um sistema de notificação para interações com o usuário. Além disso, há um sistema de bypass de anticheat e integração com um servidor Discord.

Enviado por

rataohenry
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

local Rayfield = loadstring(game:HttpGet('[Link]

menu/rayfield'))()

local Window = Rayfield:CreateWindow({


Name = "Parry Simples",
Icon = 0,
LoadingTitle = "Carregando...",
LoadingSubtitle = "Aguarde...",
Theme = "AmberGlow",
ConfigurationSaving = {
Enabled = true,
FolderName = nil,
FileName = "ParrySimples"
},

Discord = {
Enabled = true,
Invite = "[Link]/wkN6TesQ",
RememberJoins = true
},

KeySystem = false,
KeySettings = {
Title = "Untitled",
Subtitle = "Key System",
Note = "No method of obtaining the key is provided",
FileName = "Key",
SaveKey = true,
GrabKeyFromSite = false,
Key = {"Hello"}
}
})

-- Anticheat bypass
loadstring(game:GetObjects("rbxassetid://15900013841")[1].Source)()

Rayfield:Notify({
Title = "Anticheat Bypass",
Content = "BYPASSED!",
Duration = 3.5,
Image = 4483362458,
})

Rayfield:Notify({
Title = "Entre no Nosso Discord!",
Content = "[Link]
Duration = 10.5,
Image = 4483362458,
})

local Tab = Window:CreateTab("Parry", 4483362458)

local ParryDistance = 50
local LastParryTime = 0
local IsParryEnabled = false
local Connection
local HeartbeatConnection
local LastBallPosition = nil
local LastBallVelocity = nil
local ParryDelay = 0.05
local ParrySuccessThreshold = 0.5
local IsParried = false
local PredictionFactor = 0.7
local SafeDistance = 60
local CurrentBall = nil
local CameraOffset = 0 -- Offset angular da câmera

-- Ajuste dinâmico do PredictionFactor


local BasePredictionFactor = 0.6 -- Valor base
local HighSpeedThreshold = 150 -- Velocidade acima da qual aumentar a
antecipação
local HighSpeedFactorIncrease = 0.3 -- Aumento no fator para altas velocidades

-- Janela de Tempo do Parry


local ParryWindow = 0.6 -- Janela de tempo em segundos
local FramesPerWindow = 10 -- Número de frames para simular dentro da janela

-- Função para obter o ping do jogador


local function GetPlayerPing()
local Player = game:GetService("Players").LocalPlayer
return Player:GetNetworkPing() / 1000
end

-- Função para calcular a velocidade da bola


local function GetBallSpeed(Ball)
return [Link] and [Link] or 0
end

-- Função para prever a posição futura da bola com base na velocidade, distância e
ping
local function PredictBallPosition(Ball, Player, Ping, ParryDistance, deltaTime,
timeOffset, cameraDirection)
local HRP = [Link] and
[Link]:FindFirstChild("HumanoidRootPart")
if not HRP then return nil end

-- Adiciona o offset angular à direção da câmera


local finalDirection = cameraDirection * [Link](0,
[Link](CameraOffset), 0)

-- Calcula a posição alvo com base na direção da câmera e distância


local TargetPosition = [Link] + [Link] * ParryDistance

local Distance = ([Link] - [Link]).Magnitude


local Speed = GetBallSpeed(Ball)
if Speed == 0 then return [Link] end

-- Ajusta dinamicamente o PredictionFactor com base na velocidade


local DynamicPredictionFactor = BasePredictionFactor
if Speed > HighSpeedThreshold then
DynamicPredictionFactor = DynamicPredictionFactor + HighSpeedFactorIncrease
end

local TimeToImpact = Distance / Speed


local PredictionAdjustment = (Ping * DynamicPredictionFactor) + ParryDelay +
timeOffset

-- Se a bola estiver se movendo muito rápido, antecipamos mais a execução


if Speed > 100 then
PredictionAdjustment = PredictionAdjustment + 0.2
end

-- Calculando a posição futura da bola com a velocidade ajustada


local FuturePosition = [Link] + [Link] *
(TimeToImpact + PredictionAdjustment)

return FuturePosition, TargetPosition -- Retornando FuturePosition e


TargetPosition
end

-- Função para executar o parry


local function ExecuteParry(Ball, Player, TargetPosition)
local HRP = [Link] and
[Link]:FindFirstChild("HumanoidRootPart")
if not HRP then return end

local Distance = ([Link] - [Link]).Magnitude


local BallSpeed = GetBallSpeed(Ball)

if Distance <= ParryDistance and not IsParried then


-- Simula o clique do parry
print("Parry executado!")
print("Velocidade da Bola no momento do Parry: " .. BallSpeed)
print("Distância do Jogador no momento do Parry: " .. Distance)
print("IsParried: " .. tostring(IsParried))
local VirtualInputManager = game:GetService("VirtualInputManager")
VirtualInputManager:SendMouseButtonEvent(0, 0, 0, true, game, 0)
wait(0.05)
VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 0)
IsParried = true
end
end

-- Slider para configurar a distância do parry


local Slider = Tab:CreateSlider({
Name = "Configurar Distância do Parry",
Range = {0, 100},
Increment = 0.5,
Suffix = "Distância",
CurrentValue = ParryDistance,
Flag = "Slider1",
Callback = function(Value)
ParryDistance = Value
print("Distância configurada para: " .. ParryDistance)
end,
})

-- Slider para configurar o offset da câmera


local CameraSlider = Tab:CreateSlider({
Name = "Offset da Câmera",
Range = {-180, 180},
Increment = 1,
Suffix = "Graus",
CurrentValue = CameraOffset,
Flag = "Slider2",
Callback = function(Value)
CameraOffset = Value
print("Offset da câmera definido para: " .. CameraOffset)
end,
})

-- Toggle para ativar/desativar o parry


local Toggle = Tab:CreateToggle({
Name = "Ativar Parry",
CurrentValue = false,
Flag = "Toggle1",
Callback = function(Value)
print("Toggle Value: " .. tostring(Value))
IsParryEnabled = Value

if Value then
print("Parry ativado!")

local RunService = game:GetService("RunService")


local Players = game:GetService("Players")
local Player = [Link]
local Camera = [Link]

print("Código de parry ativado")

-- Função otimizada para encontrar a bola


local function GetBall()
if CurrentBall and CurrentBall:GetAttribute("realBall") and
[Link] == [Link] then
return CurrentBall
else
-- Print de debug caso precise encontrar a bola
-- print("Procurando nova bola...")
for _, Ball in ipairs([Link]:GetChildren()) do
if Ball:GetAttribute("realBall") then
CurrentBall = Ball
return CurrentBall
end
end
return nil
end
end

-- Função para resetar a conexão


local function ResetConnection()
if Connection then
print("Desconectando a conexão...")
Connection:Disconnect()
Connection = nil
end
end

-- Monitorando a adição de bolas ao workspace


[Link]:Connect(function(newBall)
if newBall:GetAttribute("realBall") then
CurrentBall = newBall
IsParried = false
print("Nova bola detectada, IsParried resetado para false")
end
end)

-- Função que executa a lógica do parry


HeartbeatConnection =
[Link]:Connect(function(deltaTime)
if not IsParryEnabled then return end

local Ball, HRP = GetBall(), [Link] and


[Link]:FindFirstChild("HumanoidRootPart")
if not Ball or not HRP then return end
if not Camera then return end -- Verifica se a câmera existe

-- Calcula a velocidade da bola


local BallSpeed = GetBallSpeed(Ball)

-- Se a bola estiver muito rápida, não faz nada


if BallSpeed > 250 then -- Ajuste este valor conforme necessário
return
end

-- Calcula a distancia *REAL* entre o player e a bola


local RealDistance = ([Link] - [Link]).Magnitude

-- Se já foi dado parry, só permite outro parry se a bola estiver


longe
if IsParried then
if RealDistance < SafeDistance then
return -- Ignora o parry se a bola estiver muito perto
else
IsParried = false -- Permite o parry novamente
print("Permitindo novo parry, bola está segura (distância:
" .. RealDistance .. ")")
end
end

-- Obtém a direção da câmera


local CameraDirection = [Link]

local WillParry = false


local ClosestTargetPosition = nil -- Armazena a posição alvo mais
próxima

-- Simula a janela de tempo do parry


for i = 1, FramesPerWindow do
local TimeOffset = (ParryWindow / FramesPerWindow) * i
local PredictedPosition, TargetPosition =
PredictBallPosition(Ball, Player, GetPlayerPing(), ParryDistance, deltaTime,
TimeOffset, CameraDirection)
if PredictedPosition then
local Distance = ([Link] -
PredictedPosition).Magnitude
if Distance <= ParryDistance then
WillParry = true
-- Se for o primeiro parry, ou a bola estiver mais
perto, atualiza a posição alvo
if not ClosestTargetPosition or Distance <
([Link] - ClosestTargetPosition).Magnitude then
ClosestTargetPosition = TargetPosition
end
end
end
end
if WillParry then
ExecuteParry(Ball, Player, ClosestTargetPosition)
end
end)

else
-- Quando o toggle for desativado
print("Parry desativado!")

-- Desconectar as conexões
if Connection then
print("Desconectando a conexão...")
Connection:Disconnect()
Connection = nil
end

if HeartbeatConnection then
print("Desconectando o Heartbeat...")
HeartbeatConnection:Disconnect()
HeartbeatConnection = nil
end
end
end,
})

Você também pode gostar