Skip to content

SAUDI SCRIPT #1993

Description

@scripterman949

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")

local player = Players.LocalPlayer

--==================================================
-- الإعدادات
--==================================================

local ENABLED = false

local CLAIM_INTERVAL = 0.1
local CHECK_INTERVAL = 0.1

local SPEED = 500
local LIFT_HEIGHT = 100
local ACTIVATION_DISTANCE = 10

local moving = false
local minimized = false

--==================================================
-- الواجهة
--==================================================

local gui = Instance.new("ScreenGui")
gui.Name = "سكربت سعودي"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = player:WaitForChild("PlayerGui")

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 430, 0, 330)
frame.Position = UDim2.new(0.5, -215, 0.5, -165)
frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
frame.BorderSizePixel = 0
frame.Active = true
frame.Parent = gui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 12)
corner.Parent = frame

--==================================================
-- العنوان
--==================================================

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -120, 0, 45)
title.Position = UDim2.new(0, 15, 0, 5)
title.BackgroundTransparency = 1
title.Text = "سكربت"
title.TextColor3 = Color3.new(1, 1, 1)
title.TextSize = 22
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Left
title.Active = true
title.Parent = frame

--==================================================
-- زر الإغلاق
--==================================================

local close = Instance.new("TextButton")
close.Size = UDim2.new(0, 40, 0, 35)
close.Position = UDim2.new(1, -48, 0, 8)
close.Text = "X"
close.TextSize = 20
close.Font = Enum.Font.GothamBold
close.TextColor3 = Color3.new(1, 1, 1)
close.BackgroundColor3 = Color3.fromRGB(180, 45, 45)
close.BorderSizePixel = 0
close.Parent = frame

local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 7)
closeCorner.Parent = close

close.Activated:Connect(function()
ENABLED = false
gui:Destroy()
end)

--==================================================
-- زر التصغير
--==================================================

local minimize = Instance.new("TextButton")
minimize.Size = UDim2.new(0, 40, 0, 35)
minimize.Position = UDim2.new(1, -94, 0, 8)
minimize.Text = "-"
minimize.TextSize = 22
minimize.Font = Enum.Font.GothamBold
minimize.TextColor3 = Color3.new(1, 1, 1)
minimize.BackgroundColor3 = Color3.fromRGB(65, 65, 65)
minimize.BorderSizePixel = 0
minimize.Parent = frame

local minCorner = Instance.new("UICorner")
minCorner.CornerRadius = UDim.new(0, 7)
minCorner.Parent = minimize

local normalSize = frame.Size
local content = {}

local function addContent(obj)
table.insert(content, obj)
end

minimize.Activated:Connect(function()

minimized = not minimized

if minimized then

	frame.Size = UDim2.new(0, 430, 0, 55)
	minimize.Text = "+"

	for _, obj in ipairs(content) do
		obj.Visible = false
	end

else

	frame.Size = normalSize
	minimize.Text = "-"

	for _, obj in ipairs(content) do
		obj.Visible = true
	end

end

end)

--==================================================
-- السحب للكمبيوتر والجوال
--==================================================

local dragging = false
local dragStart
local startPos
local dragInput

local function updateDrag(input)

local delta = input.Position - dragStart

frame.Position = UDim2.new(
	startPos.X.Scale,
	startPos.X.Offset + delta.X,
	startPos.Y.Scale,
	startPos.Y.Offset + delta.Y
)

end

title.InputBegan:Connect(function(input)

if input.UserInputType == Enum.UserInputType.MouseButton1
	or input.UserInputType == Enum.UserInputType.Touch then

	dragging = true
	dragStart = input.Position
	startPos = frame.Position
	dragInput = input

end

end)

title.InputEnded:Connect(function(input)

if input == dragInput then
	dragging = false
	dragInput = nil
end

end)

UserInputService.InputChanged:Connect(function(input)

if dragging then

	if input.UserInputType == Enum.UserInputType.MouseMovement
		or input.UserInputType == Enum.UserInputType.Touch then

		updateDrag(input)

	end

end

end)

--==================================================
-- الحالة
--==================================================

local status = Instance.new("TextLabel")
status.Size = UDim2.new(1, -40, 0, 35)
status.Position = UDim2.new(0, 20, 0, 60)
status.BackgroundTransparency = 1
status.Text = "الحالة: متوقف"
status.TextColor3 = Color3.fromRGB(255, 80, 80)
status.TextSize = 18
status.Font = Enum.Font.GothamBold
status.Parent = frame

addContent(status)

--==================================================
-- تشغيل / إيقاف
--==================================================

local toggle = Instance.new("TextButton")
toggle.Size = UDim2.new(1, -40, 0, 45)
toggle.Position = UDim2.new(0, 20, 0, 95)
toggle.Text = "تشغيل"
toggle.TextSize = 20
toggle.Font = Enum.Font.GothamBold
toggle.TextColor3 = Color3.new(1, 1, 1)
toggle.BackgroundColor3 = Color3.fromRGB(150, 45, 45)
toggle.BorderSizePixel = 0
toggle.Parent = frame

addContent(toggle)

local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0, 8)
toggleCorner.Parent = toggle

local function updateGUI()

if ENABLED then

	toggle.Text = "إيقاف"
	toggle.BackgroundColor3 = Color3.fromRGB(45, 150, 70)

	status.Text = "الحالة: يعمل"
	status.TextColor3 = Color3.fromRGB(80, 255, 100)

else

	toggle.Text = "تشغيل"
	toggle.BackgroundColor3 = Color3.fromRGB(150, 45, 45)

	status.Text = "الحالة: متوقف"
	status.TextColor3 = Color3.fromRGB(255, 80, 80)

end

end

toggle.Activated:Connect(function()

ENABLED = not ENABLED
updateGUI()

end)

--==================================================
-- إنشاء الإعدادات
--==================================================

local function createSetting(name, value, y, callback)

local label = Instance.new("TextLabel")
label.Size = UDim2.new(0, 170, 0, 35)
label.Position = UDim2.new(0, 20, 0, y)
label.BackgroundTransparency = 1
label.Text = name
label.TextColor3 = Color3.new(1, 1, 1)
label.TextSize = 16
label.Font = Enum.Font.Gotham
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = frame

addContent(label)

local box = Instance.new("TextBox")
box.Size = UDim2.new(0, 190, 0, 35)
box.Position = UDim2.new(0, 210, 0, y)
box.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
box.TextColor3 = Color3.new(1, 1, 1)
box.Text = tostring(value)
box.TextSize = 16
box.Font = Enum.Font.Gotham
box.ClearTextOnFocus = false
box.Parent = frame

addContent(box)

local boxCorner = Instance.new("UICorner")
boxCorner.CornerRadius = UDim.new(0, 6)
boxCorner.Parent = box

box.FocusLost:Connect(function()

	local n = tonumber(box.Text)

	if n then
		callback(n)
	else
		box.Text = tostring(value)
	end

end)

end

createSetting("السرعة", SPEED, 150, function(v)
SPEED = math.max(1, v)
end)

createSetting("ارتفاع الرفع", LIFT_HEIGHT, 195, function(v)
LIFT_HEIGHT = math.max(0, v)
end)

createSetting("مسافة التفعيل", ACTIVATION_DISTANCE, 240, function(v)
ACTIVATION_DISTANCE = math.max(1, v)
end)

--==================================================
-- الحصول على الشخصية
--==================================================

local function getCharacter()

local character = player.Character

if not character then
	return
end

local humanoid = character:FindFirstChildOfClass("Humanoid")
local root = character:FindFirstChild("HumanoidRootPart")

if not humanoid or not root then
	return
end

return character, humanoid, root

end

--==================================================
-- الحصول على الهدف
--==================================================

local function getTrigger()

local boatStages = workspace:FindFirstChild("BoatStages")

if not boatStages then
	return
end

local normalStages = boatStages:FindFirstChild("NormalStages")

if not normalStages then
	return
end

local endStage = normalStages:FindFirstChild("TheEnd")

if not endStage then
	return
end

local chest = endStage:FindFirstChild("GoldenChest")

if not chest then
	return
end

return chest:FindFirstChild("Trigger")

end

--==================================================
-- حساب المسافة
--==================================================

local function getDistance()

local _, _, root = getCharacter()
local trigger = getTrigger()

if not root or not trigger then
	return math.huge
end

local a = Vector3.new(
	root.Position.X,
	0,
	root.Position.Z
)

local b = Vector3.new(
	trigger.Position.X,
	0,
	trigger.Position.Z
)

return (a - b).Magnitude

end

--==================================================
-- استلام المكافأة
--==================================================

local function claimReward()

if not ENABLED then
	return
end

pcall(function()

	local challenge = workspace
		:WaitForChild("Challenge")
		:WaitForChild("ChallengesScript")
		:WaitForChild("ChallengeResults")

	local resultsFrame = challenge:WaitForChild("Frame")
	local claimButton = resultsFrame:WaitForChild("ClaimButton")

	if claimButton:IsA("GuiButton") then
		claimButton:Activate()
	end

end)

end

--==================================================
-- الانتقال إلى الهدف
--==================================================

local function moveToTrigger()

if moving or not ENABLED then
	return
end

local character, humanoid, root = getCharacter()
local trigger = getTrigger()

if not character or not humanoid or not root or not trigger then
	return
end

if getDistance() <= ACTIVATION_DISTANCE then
	return
end

moving = true

-- رفع اللاعب
local targetY = root.Position.Y + LIFT_HEIGHT

while ENABLED and root.Parent do

	local current = root.Position
	local dy = targetY - current.Y

	if math.abs(dy) <= 0.5 then
		break
	end

	local dt = RunService.Heartbeat:Wait()
	local step = SPEED * dt

	local newY

	if math.abs(dy) <= step then
		newY = targetY
	else
		newY = current.Y + math.sign(dy) * step
	end

	root.CFrame = CFrame.new(
		current.X,
		newY,
		current.Z
	)

end

-- الحركة الأفقية
while ENABLED and root.Parent do

	local current = root.Position

	local target = Vector3.new(
		trigger.Position.X,
		targetY,
		trigger.Position.Z
	)

	local difference = target - current
	local distance = difference.Magnitude

	if distance <= 1 then
		break
	end

	local dt = RunService.Heartbeat:Wait()
	local step = math.min(SPEED * dt, distance)

	local newPosition =
		current + difference.Unit * step

	newPosition = Vector3.new(
		newPosition.X,
		targetY,
		newPosition.Z
	)

	root.CFrame = CFrame.new(newPosition)

end

-- النزول
if ENABLED and root.Parent then

	local targetY2 = trigger.Position.Y + 3

	while ENABLED and root.Parent do

		local current = root.Position
		local dy = targetY2 - current.Y

		if math.abs(dy) <= 0.5 then
			break
		end

		local dt = RunService.Heartbeat:Wait()
		local step = SPEED * dt

		local newY

		if math.abs(dy) <= step then
			newY = targetY2
		else
			newY = current.Y + math.sign(dy) * step
		end

		root.CFrame = CFrame.new(
			trigger.Position.X,
			newY,
			trigger.Position.Z
		)

	end

end

moving = false

end

--==================================================
-- حلقة استلام المكافأة
--==================================================

task.spawn(function()

while gui.Parent do

	if ENABLED then
		claimReward()
	end

	task.wait(CLAIM_INTERVAL)

end

end)

--==================================================
-- حلقة فحص المسافة
--==================================================

task.spawn(function()

while gui.Parent do

	if ENABLED and not moving then

		if getDistance() > ACTIVATION_DISTANCE then
			task.spawn(moveToTrigger)
		end

	end

	task.wait(CHECK_INTERVAL)

end

end)

updateGUI()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions