Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How do I make a map changer?

Asked by 10 years ago

Please could you help me with this because i want to ake a fighting game and i need to change map every 20 mins

3 answers

Log in to vote
0
Answered by 10 years ago

This is actually easy. I use this with trains to spawn random trains to pass in railfanning games. I can give you a script to do exactly what you want it to do. All you have to do is make the maps, put the maps as separate models with particular names in Lighting, and put its exact name into the script. Then set your time for 20 minutes. (time is set in seconds though, so be careful with that.) If you do that right, every 20 minutes, the map will change, and a random map of your list will be chosen. Sometimes it'll repeat, but that's because it is totally random. Let me know if you would like the script.

Ad
Log in to vote
0
Answered by 10 years ago

You can make a table contains the map names like this: maps = {"map1", "map2", "map3"} all of they need to be in the same game's location (like workspace, lighting etc.)and then make a function that passes a variable into the table and get a random one, from there you put a wait(60 * 20) (second * minutes = minutes in seconds). There's an example:

maps = {"carentan", "yogga", "funny" } --Random names FTW!!!!
mapPath = game.Lighting--The maps location, usually is Lighting
local randomMap
function someRandomFunction()
    randomMap = maps [math.random(1, #maps)]
    local selRandomMap = randomMap:Clone().Parent = game.Workspace
    wait(60 * 20)
    randomMap = nil
    someRandomFunction()
end

If want the same code that I use then there you are:

_G.startGame = function()
    local serverdata = game.ServerStorage:FindFirstChild("ServerData")
    local prototype = serverdata:FindFirstChild("Prototype")
    prototype.Value = game.Players:GetChildren()[math.random(1, #game.Players:GetChildren())].Name
    changeStatusText("Starting game, the prototype is " .. prototype.Value)
    wait(2)
    changeStatusText("Loading map...")
    local randMap = maps[math.random(1, #maps)]
    local selMap = game.ServerStorage:FindFirstChild(randMap):Clone()
    selMap.Parent = game.Workspace
    wait(5)
    changeStatusText("The selected map is " .. selMap)
    wait(3)
    changeStatusText("Teleporting everyone to the map...")
    local spawns = {"1", "2", "3"}
    local enemySpawn = randMap.EnemySpawn
    [...]
end
Log in to vote
0
Answered by
Mauvn 100
10 years ago

This is a pretty long script but it helps!

map1 = game.Lighting:findFirstChild("MyMapName1") -- Change Here Your First Map Name.
map2 = game.Lighting:findFirstChild("MyMapName2") -- Change Here Too.
map3 = game.Lighting:findFirstChild("MyMapName3") --Same here
map4 = game.Lighting:findFirstChild("MyMapName4") --Same here
map5 = game.Lighting:findFirstChild("MyMapName5") --Same here
map6 = game.Lighting:findFirstChild("MyMapName6") --Same here
map7 = game.Lighting:findFirstChild("MyMapName7") --Same here
map8 = game.Lighting:findFirstChild("MyMapName8") --Same here
map9 = game.Lighting:findFirstChild("MyMapName9") --Same here
map10 = game.Lighting:findFirstChild("MyMapName10") --Same here
time = 300 -- This Is The Time When The Map Changes.
clone = map1:clone() --Dont Edit Anything.
clone2 = map2:clone()
clone3 = map3:clone()
clone4 = map4:clone()
clone5 = map5:clone()
clone6 = map6:clone()
clone7 = map7:clone()
clone8 = map8:clone()
clone9 = map9:clone()
clone10 = map10:clone()
wait()
map1:remove()
map2:remove()
map3:remove()
map4:remove()
map5:remove()
map6:remove()
map7:remove()
map8:remove()
map9:remove()
map10:remove()
while true do 
local map = clone:clone()
map.Parent = game.Workspace
wait(time)
map:remove()
local map = clone2:clone()
map.Parent = game.Workspace
wait(time)
map:remove()
local map = clone3:clone()
map.Parent = game.Workspace
wait(time)
map:remove() 
local map = clone4:clone()
map.Parent = game.Workspace
wait(time)
map:remove()
local map = clone5:clone()
map.Parent = game.Workspace
wait(time)
map:remove()
local map = clone6:clone()
map.Parent = game.Workspace
wait(time)
map:remove()
local map = clone7:clone()
map.Parent = game.Workspace
wait(time)
map:remove()
local map = clone8:clone()
map.Parent = game.Workspace
wait(time)
map:remove()
local map = clone9:clone()
map.Parent = game.Workspace
wait(time)
map:remove()
local map = clone10:clone()
map.Parent = game.Workspace
wait(time)
map:remove()
end 

Hope i helped! :)

Answer this question