CCCPaste
task.wait(10)

local player = game:GetService("Players").LocalPlayer
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local VirtualInputManager = game:GetService("VirtualInputManager")
local TeleportService = game:GetService("TeleportService")

local ff = 21
local hh = 4
local speed = 60

-- Координаты для разных банков
local bank5 = {
    Vector3.new(14, 19, 862), Vector3.new(27, 19, 860), Vector3.new(40, 19, 926),
    Vector3.new(60, 19, 922), Vector3.new(103, 1, 914), Vector3.new(96, -13, 878),
    Vector3.new(91, -13, 856), Vector3.new(144, -8, 847), Vector3.new(159, -8, 844)
}
local bank7 = {
    Vector3.new(14, 19, 862), Vector3.new(27, 19, 860), Vector3.new(40, 19, 926),
    Vector3.new(60, 19, 922), Vector3.new(103, 1, 914), Vector3.new(90, 1, 845),
    Vector3.new(57, 0, 852), Vector3.new(48, 0, 800)
}
local bank4 = {
    Vector3.new(14, 19, 862), Vector3.new(27, 19, 860), Vector3.new(40, 19, 926),
    Vector3.new(60, 19, 922), Vector3.new(103, 1, 914), Vector3.new(97, 1, 876),
    Vector3.new(23, 1, 888)
}
local bankof1 = {
    Vector3.new(14, 19, 862), Vector3.new(27, 19, 860), Vector3.new(40, 19, 926),
    Vector3.new(60, 19, 922), Vector3.new(84, 28, 918), Vector3.new(70, 60, 838),
    Vector3.new(28, 60, 842), Vector3.new(30, 67, 852), Vector3.new(33, 60, 867),
    Vector3.new(41, 67, 866), Vector3.new(54, 60, 864), Vector3.new(56, 67, 877),
    Vector3.new(59, 60, 895), Vector3.new(50, 67, 896), Vector3.new(39, 60, 898),
    Vector3.new(42, 67, 911), Vector3.new(45, 60, 927), Vector3.new(53, 67, 925),
    Vector3.new(83, 60, 919)
}
local bank3 = {
    Vector3.new(14, 19, 862), Vector3.new(27, 19, 860), Vector3.new(40, 19, 926),
    Vector3.new(55, 17, 922), Vector3.new(57, -8, 922), Vector3.new(63, -8, 918),
    Vector3.new(190, -8, 900)
}
local bank8 = {
    Vector3.new(-729, 20, -5962), Vector3.new(-627, 20, -5998), Vector3.new(-588, 2, -6015),
    Vector3.new(-588, 2, -6015), Vector3.new(-612, 2, -5963), Vector3.new(-634, 3, -5954)
}
local bank9 = {
    Vector3.new(-728, 20, -5962), Vector3.new(-632, 20, -5995), Vector3.new(-628, -7, -5997),
    Vector3.new(-607, -6, -6006), Vector3.new(-575, -6, -5938), Vector3.new(-615, -6, -5921),
    Vector3.new(-631, -6, -5964)
}
local bank2 = {
    Vector3.new(-728, 20, -5962), Vector3.new(-632, 20, -5995), Vector3.new(-615, 10, -6003),
    Vector3.new(-602, 10, -6009), Vector3.new(-593, 0, -5987), Vector3.new(-585, 0, -5965),
    Vector3.new(-604, -8, -5959), Vector3.new(-628, -8, -5991), Vector3.new(-640, -8, -5964),
    Vector3.new(-675, -8, -5950)
}
local bank6 = {
    Vector3.new(-729, 20, -5962), Vector3.new(-627, 20, -5998), Vector3.new(-630, 1, -5998),
    Vector3.new(-731, 1, -5955)
}

-- Установка скорости ходьбы
RunService.RenderStepped:Connect(function()
    pcall(function()
        player.Character.Humanoid.WalkSpeed = 80
    end)
end)

-- Функция телепортации
function teleport(pos, speed, dis)
    local hrp = player.Character.HumanoidRootPart
    if hrp:FindFirstChild("Vel") then
        hrp.Vel:Destroy()
    end
    local vel = Instance.new("BodyVelocity", hrp)
    vel.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
    vel.Name = "Vel"
    vel.P = 0
    local d = (hrp.Position - pos).Magnitude
    local cood = pos
    repeat
        task.wait()
        vel.Velocity = CFrame.lookAt(hrp.Position, cood).LookVector * (d / d) * speed
    until (hrp.Position - pos).Magnitude < dis
    vel.Velocity = Vector3.new(0, 0, 0)
    task.wait(0.5)
    vel:Destroy()
end

-- Телепорты для входа в игру
teleport(player.Character.HumanoidRootPart.Position + Vector3.new(0, 200, 0), 300, 100)
teleport(Vector3.new(-1214, 220, -1321), 80, 10)
teleport(Vector3.new(-1214, 30, -1321), 300, 10)

-- Логика сидения и прыжка для взаимодействия
player.Character.Humanoid.Sit = true
task.wait(0.2)
player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
repeat
    VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.E, false, game)
    task.wait(0.05)
    VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.E, false, game)
until player.Character.Humanoid.Sit == true

-- Функция удаления препятствий
function remove()
    for _, v in pairs(workspace:GetChildren()) do
        if v.Name == "SlideDoor" then
            v:Destroy()
        end
    end
    for _, v in pairs(workspace.Banks:GetDescendants()) do
        if (v.Name == "BarbedWire" or v.Name == "Door") and v:IsA("Part") or
           (v:IsA("Part") and v:FindFirstChild("TouchInterest") and v.BrickColor == BrickColor.new("Dusty Rose")) or
           (v.Name == "Part" and v:FindFirstChild("TouchInterest")) then
            v.CanTouch = false
            v.CanCollide = false
            v.Transparency = 1
        end
        if v.Name == "SlideDoor" or v.Name == "SwingDoor" or v.Name == "Doors" or v.Name == "BankDoor" then
            for _, f in pairs(v:GetDescendants()) do
                if f:IsA("Part") or f:IsA("MeshPart") then
                    f.CanCollide = false
                    f.Transparency = 1
                end
            end
        end
    end
end

-- Флаги для событий
local plane = false
local train = false
local bank1 = false
local bank2 = false

-- Ожидание события
repeat
    task.wait()
    print(workspace.Banks.Bank.Extra.Sign.Decal.Transparency)
    if workspace:FindFirstChild("Plane") then
        plane = true
    end
    if workspace:FindFirstChild("Train") then
        train = true
    end
    if workspace.Banks.Bank.Extra.Sign.Decal.Transparency >= 0.7 then
        bank1 = true
    end
    if workspace.Banks.Bank2.Extra.Light.SurfaceLight.Enabled == true then
        bank2 = true
    end
until plane or train or bank1 or bank2

-- Функция реджойна
function rejoin()
    player:Kick("\nRejoining...")
    task.wait()
    TeleportService:Teleport(game.PlaceId, player)
end

-- Функция движения к точке с твином
local function moveToPoint(targetPos)
    local hrp = player.Character.HumanoidRootPart
    local distance = (targetPos - hrp.Position).Magnitude
    local time = distance / speed
    local tweenInfo = TweenInfo.new(time, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
    local tween = TweenService:Create(hrp, tweenInfo, {CFrame = CFrame.new(targetPos)})
    tween:Play()
    tween.Completed:Wait()
end

-- Функция для фарма банка (вперед и назад)
local function farmBank(points)
    for i = 1, #points do
        moveToPoint(points[i])
    end
    task.wait(ff)
    for i = #points, 1, -1 do
        moveToPoint(points[i])
    end
    task.wait(hh)
    rejoin()
end

-- Логика для bank1
if bank1 then
    teleport(player.Character.HumanoidRootPart.Position + Vector3.new(0, 200, 0), 4000, 100)
    teleport(Vector3.new(1, 219, 865), 600, 20)
    teleport(Vector3.new(1, 19, 865), 300, 20)
    task.wait(1)
    VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.E, false, game)
    task.wait(0.05)
    VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.E, false, game)
    remove()
    local layout = workspace.Banks.Bank.Layout
    if layout:FindFirstChild("05Underwater") then
        farmBank(bank5)
    elseif layout:FindFirstChild("07TheMint") then
        farmBank(bank7)
    elseif layout:FindFirstChild("04Remastered") then
        farmBank(bank4)
    elseif layout:FindFirstChild("01UpperManagement") then
        farmBank(bankof1)
    elseif layout:FindFirstChild("03Corridor") then
        farmBank(bank3)
    end
elseif bank2 then
    teleport(player.Character.HumanoidRootPart.Position + Vector3.new(0, 500, 0), 4000, 100)
    teleport(Vector3.new(-751, 520, -5954), 600, 20)
    teleport(Vector3.new(-751, 20, -5954), 300, 20)
    task.wait(1)
    VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.E, false, game)
    task.wait(0.05)
    VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.E, false, game)
    remove()
    local layout = workspace.Banks.Bank2.Layout
    if layout:FindFirstChild("08Deductions") then
        farmBank(bank8)
    elseif layout:FindFirstChild("09Presidential") then
        farmBank(bank9)
    elseif layout:FindFirstChild("02Basement") then
        farmBank(bank2)
    elseif layout:FindFirstChild("06TheBlueRoom") then
        farmBank(bank6)
    end
end

-- Если появился plane или train, реджойн
if plane or train then
    rejoin()
end