Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Есть ли скрипт на эту игру в роблоксе?

ЕгАрчик Знаток (468), на голосовании 9 месяцев назад
Голосование за лучший ответ
Инспектор Жопидý Оракул (88646) 10 месяцев назад
Да, для игры "Коридор 10" в Roblox существует скрипт, который позволяет генерировать бесконечный коридор.
Скрипт работает следующим образом:
1. Загружает префабы коридора из ReplicatedStorage. ReplicatedStorage - это место в Roblox, где хранятся модели, которые могут быть доступны всем игрокам в игре.
2. Создает два экземпляра префаба коридора. Один экземпляр помещается перед игроком, а другой - позади него.
3. Устанавливает позиции и ориентации экземпляров коридора. Позиция экземпляра перед игроком устанавливается так, чтобы он находился на расстоянии определенной длины коридора от игрока. Позиция экземпляра позади игрока устанавливается так, чтобы он находился на расстоянии определенной длины коридора от игрока.
4. Удаляет экземпляры коридора, которые находятся слишком далеко от игрока. Это делается для того, чтобы оптимизировать производительность игры.
Пример скрипта:
Lua
local players = game.Players

local function createCorridor()
-- Загрузить префаб коридора из ReplicatedStorage
local corridorPrefab = game.ReplicatedStorage:FindFirstChild("CorridorPrefab")

-- Создать два экземпляра префаба коридора
local corridor1 = corridorPrefab:Clone()
local corridor2 = corridorPrefab:Clone()

-- Установить позиции и ориентации экземпляров коридора
corridor1.Position = workspace.CurrentCamera.Position + workspace.CurrentCamera.LookVector * CORRIDOR_LENGTH
corridor2.Position = workspace.CurrentCamera.Position - workspace.CurrentCamera.LookVector * CORRIDOR_LENGTH

-- Добавить экземпляры коридора в мир
corridor1.Parent = workspace
corridor2.Parent = workspace

-- Удалить экземпляры коридора, которые находятся слишком далеко от игрока
for _, corridor in pairs(workspace:GetChildren()) do
if corridor:IsA("Model") and corridor.Name == "CorridorPrefab" then
local distance = (corridor.Position - workspace.CurrentCamera.Position).Magnitude
if distance > MAX_CORRIDOR_DISTANCE then
corridor:Destroy()
end
end
end
end

players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
character.HumanoidRootPart.Touched:Connect(function(part)
if part.Name == "CorridorTrigger" then
createCorridor()
end
end)
end)
end)
Этот скрипт можно улучшить несколькими способами:
• Добавить случайные элементы в коридор. Это можно сделать, например, добавив случайные повороты, изменения ширины коридора или размещение случайных объектов в коридоре.
• Добавить врагов в коридор. Врагов можно размещать в случайных местах в коридоре, и они могут атаковать игрока.
• Добавить бонусы в коридор. Бонусы можно размещать в случайных местах в коридоре, и они могут давать игроку преимущества, такие как дополнительное здоровье или дополнительная скорость.
Ссылки:
https://devforum.roblox.com/t/best-way-to-do-infinite-corridor/1887919
https://www.youtube.com/watch?v=4y9J0FAewLo
https://devforum.roblox.com/t/best-way-to-do-infinite-corridor/1887919
Похожие вопросы