The 1000th room lacks the exit, but all the previous 999 rooms have.
But how?
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
local door = require(script.Door)
local room = {}
local rooms = workspace.Rooms
room.info = require(script.RoomInfo)
room.lastTurnDirection = nil
room.random = Random.new()
local function GetRoomModelByName(roomName)
local RoomModel = rooms:FindFirstChild(roomName)
if not RoomModel then
error("No room called " .. roomName .. " exists!")
end
return RoomModel
end
function room.GetRandomRoom(prevRoom)
local totalRarity = 0
for i, info in pairs(room.info) do
totalRarity += info.Rarity
end
local randomRarity = room.random:NextNumber(0, totalRarity)
local currentRarity = 0
local randomRoom = nil
for i, info in pairs(room.info) do
currentRarity += info.Rarity
if randomRarity <= currentRarity then
randomRoom = GetRoomModelByName(i)
break
end
end
local direction = room.info[randomRoom.Name]["Direction"]
if (prevRoom.Name == randomRoom.Name)
or (direction and direction == room.lastTurnDirection)
then
return room.GetRandom(prevRoom)
else
if direction then
room.lastTurnDirection = direction
end
return randomRoom
end
end
function room.GenerateRoomByName(roomName, prevRoom, doorNumber)
local roomModel = GetRoomModelByName(roomName)
local roomClone = randomRoom:Clone()
roomClone.PrimaryPart = roomClone.Entrance
roomClone:PivotTo(prevRoom.Exit.CFrame)
local newDoor = door.New(prevRoom, doorNumber)
newRoom.Parent = workspace.GeneratedRooms
return roomClone
end
function room.GenerateRandomRoom(prevRoom, doorNumber)
local randomRoom = room.GetRandom(prevRoom)
return room.GenerateRoomByName(randomRoom.name, prevRoom, doorNumber)
end
function room.Generate(prevRoom, doorNumber)
local randomRoom = room.GetRandom(prevRoom)
if doorNumber == 1000 then
return room.GenerateRoomByName("1000thRoom", prevRoom, doorNumber) -- replace 1000thRoom with the room you want to use.
end
return room.GenerateRandomRoom(prevRoom, doorNumber)
end
return room
I used a bit of a boilerplate solution for generating the 1000th room. You should use a dictionary instead if you are planning to add more rooms.
This code should work with your current way of generating the rooms.
Forgot my namimg schemes. Just replace line 68 with this.
local randomRoom = room.GetRandomRoom(prevRoom)
Replace line 63 with this
local randomRoom = room.GetRandomRoom(prevRoom)
There’s some orange line under randomRoom
on line 50 and newRoom
on line 57.
and this error here:
edit the code pls
Ok, thanks for solving, to everyone who helped me. (i put the end room next to the 999th door and then the 1000th door leads to cluster II or the dark fun rooms.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.