Buymap function of a race userpanel dont work
I buy one map normally, but is not set to the next map
Some help?
function buyMap(thePlayer,mapName)
if mapIsAlreadySet == false then
if not (mapName == "") then
local playerCash = tonumber(loadPlayerData(thePlayer,"cash"))
if playerCash >= mapCost then
executeCommandHandler("pnfnsdhasd3w7432jhdsbw3ersdncsdir",thePlayer,mapName)
savePlayerData(thePlayer,"cash",playerCash-mapCost)
outputChatBox("#FFFFFFNextmap: "..getPlayerName(thePlayer).."#FFFFFF has bought a next map!",getRootElement(),255,255,255,true)
outputChatBox("#FFFFFFNextmap: #00BFFF"..mapName,getRootElement(),255,255,255,true)
mapIsAlreadySet = thePlayer
local oldmapbuys = loadPlayerData(thePlayer,"mapBuys")
savePlayerData(thePlayer,"mapBuys", oldmapbuys + 1)
CheckAchievement(thePlayer,13)
scoreboardRefresh(thePlayer)
else
outputChatBox("#FFFFFFYou don't have enough money to set a map!",thePlayer,255,255,255,true)
end
else
outputChatBox("#FFFFFFPlease select a map from the list first!",thePlayer,255,255,255,true)
end
else
outputChatBox("#FFFFFFA map is already set at the moment! Please try again later.",thePlayer,255,255,255,true)
end
end
function unbuyMap(thePlayer)
if mapIsAlreadySet ~= false then
if mapIsAlreadySet == thePlayer then
executeCommandHandler("pnfnsdhasd3w7432jhdsbw3ersdncsdir",thePlayer,nil)
local playerCash = tonumber(loadPlayerData(thePlayer,"cash"))
savePlayerData(thePlayer,"cash",playerCash+(mapCost/4)*3)
outputChatBox("#FFFFFFNextmap: "..getPlayerName(thePlayer).."#FFFFFF has unbought a next map!",getRootElement(),255,255,255,true)
mapIsAlreadySet = false
local oldmapbuys = loadPlayerData(thePlayer,"mapBuys")
savePlayerData(thePlayer,"mapBuys", oldmapbuys - 1)
CheckAchievement(thePlayer,13)
scoreboardRefresh(thePlayer)
else
outputChatBox("#FFFFFFYou didn't buy that map!",thePlayer,255,255,255,true)
end
else
outputChatBox("#FFFFFFNo map has been bought!",thePlayer,255,255,255,true)
end
end
function resetMapSetStatus()
mapIsAlreadySet = false
end
addEventHandler("onMapStarting",getRootElement(),resetMapSetStatus)
function getServerMaps (loadList,s)
local tableOut
if loadList then
tableOut = {}
-- local deletedMaps = {}
local gamemodes = {}
gamemodes = call(getResourceFromName("mapmanager"), "getGamemodes")
for id,gamemode in ipairs (gamemodes) do
tableOut[id] = {}
tableOut[id].name = getResourceInfo(gamemode, "name") or getResourceName(gamemode)
tableOut[id].resname = getResourceName(gamemode)
tableOut[id].maps = {}
local maps = call(getResourceFromName("mapmanager"), "getMapsCompatibleWithGamemode" , gamemode)
for _,map in ipairs (maps) do
table.insert(tableOut[id]["maps"] ,{name = getResourceInfo(map, "name") or getResourceName(map), resname = getResourceName(map)})
end
table.sort(tableOut[id]["maps"], sortCompareFunction)
end
table.sort((tableOut), sortCompareFunction)
table.insert(tableOut, {name = "no gamemode", resname = "no gamemode", maps = {}})
local countGmodes = #tableOut
local maps = call(getResourceFromName("mapmanager"), "getMapsCompatibleWithGamemode")
for id,map in ipairs (maps) do
-- if fileOpen(":"..getResourceName(map).."/deleted") then
-- table.insert(deletedMaps ,{name = getResourceInfo(map, "name") or getResourceName(map), resname = getResourceName(map)})
-- else
table.insert(tableOut[countGmodes]["maps"] ,{name = getResourceInfo(map, "name") or getResourceName(map), resname = getResourceName(map)})
-- end
end
-- table.sort(deletedMaps, sortCompareFunction)
table.sort(tableOut[countGmodes]["maps"], sortCompareFunction)
-- table.insert(tableOut, {name = "deleted maps", resname = "deleted maps", maps = {}})
-- local countGmodes = countGmodes + 1
-- tableOut[countGmodes]["maps"] = deletedMaps
end
local map = call(getResourceFromName("mapmanager"), "getRunningGamemodeMap")
local gamemode = call(getResourceFromName("mapmanager"), "getRunningGamemode")
gamemode = gamemode and getResourceName(gamemode) or "N/A"
map = map and getResourceName(map) or "N/A"
callClientFunction(loadList,"loadMaps", tableOut, gamemode, map, s)
end
function sortCompareFunction(s1, s2)
if type(s1) == "table" and type(s2) == "table" then
s1, s2 = s1.name, s2.name
end
s1, s2 = s1:lower(), s2:lower()
if s1 == s2 then
return false
end
local byte1, byte2 = string.byte(s1:sub(1,1)), string.byte(s2:sub(1,1))
if not byte1 then
return true
elseif not byte2 then
return false
elseif byte1 < byte2 then
return true
elseif byte1 == byte2 then
return sortCompareFunction(s1:sub(2), s2:sub(2))
else
return false
end
end