Fabioxps Posted October 1, 2013 Share Posted October 1, 2013 (edited) thank you Edited October 1, 2013 by Guest Link to comment
Discord Moderators Zango Posted October 1, 2013 Discord Moderators Share Posted October 1, 2013 Boy you sure done messed up that formatting Code snippets of such size might, for more convenience, be posted to pastebin.com instead. From what I understand, your function desLoadingMap does not destroy the map elements? It appears when you create the objects, you forget to reference them in the objects table. This is the same for the rest of your elements. For example, in your function LoadingMap. Line 16, you must reference your object. You must do this for the rest of the elements as well. function LoadingMap(meta2,obj,mark,pickup) bindKey("enter","down",killDMFunc) addEventHandler("onClientRender", root, renderFileDownload, true, "low-1") if fileExists("map.xml") then fileDelete("map.xml") end local newFile = fileCreate("map.xml") if newFile then fileWrite(newFile, meta2) fileClose(newFile) end for i, v in ipairs(obj) do local object = createObject(v.modelId, v.posX, v.posY, v.posZ, v.rotX, v.rotY, v.rotZ) if object then table.insert (objects, object) setElementInterior(object,v.interiorID) setElementDimension(object,v.dimension) if v.doublesided == "false" then setElementDoubleSided(object,false) end end end Link to comment
Fabioxps Posted October 2, 2013 Author Share Posted October 2, 2013 the map only loads once and is invisible for i, v in pairs(events) do _removeEventHandler(v.event, v.parent, v.func) end events = {} function desLoadingDM() for i, v in pairs(objects) do if isElement(v) then destroyElement(v) end end objects = {} for i, v in pairs(markers) do if isElement(v) then destroyElement(v) end end markers = {} for i, v in pairs(timers) do if isTimer(v) then killTimer(v) end end timers = {} for i, v in pairs(events) do _removeEventHandler(v.event, v.parent, v.func) end events = {} for i, v in pairs(colspheres) do if isElement(v) then destroyElement(v) end end colspheres = {} for i, v in pairs(sounds) do if isElement(v) then _stopSound(v) end end sounds = {} for i, v in pairs(commands) do _removeCommandHandler(v) end commands = {} for i, v in pairs(models) do engineRestoreModel(v) end models = {} for i, v in pairs(binds) do _unbindKey(v.key) end binds = {} dlFiles = 0 dlScripts = 0 loaded = false setTimer(function() triggerServerEvent("loadNewMapDM",root, loadNewMapDM) end,3000,1) end addEvent("desLoadingDM",true) _addEventHandler("desLoadingDM",root,desLoadingDM) --DM FABINHO SCRIPT TEST BUGS function loadNewMapDM() local newMap = coreServer:getRandomMap("DM") if newMap then if not getResourceFromName("deathmatch") then createResource("deathmatch") end if fileExists(":deathmatch/meta.xml") then fileDelete(":deathmatch/meta.xml") end local metaXML = xmlCreateFile(":deathmatch/meta.xml","meta") local metaXMLNode = xmlCreateChild(metaXML, "info") xmlNodeSetAttribute(metaXMLNode,"author","Fabinho") xmlNodeSetAttribute(metaXMLNode,"description","DM-Lobby Maploader") xmlNodeSetAttribute(metaXMLNode,"type","script") metaXMLNode = xmlCreateChild(metaXML, "min_mta_version") xmlNodeSetAttribute(metaXMLNode,"server","1.3.1") local scriptNode = xmlCreateChild(metaXML, "script") xmlNodeSetAttribute(scriptNode,"src","loader.lua") xmlNodeSetAttribute(scriptNode,"type","client") fileCopy("loader/dmloader.lua", ":deathmatch/loader.lua", true) local scriptNode = xmlCreateChild(metaXML, "script") xmlNodeSetAttribute(scriptNode,"src","loader_s.lua") xmlNodeSetAttribute(scriptNode,"type","server") if fileCopy("loader/dmloader_s.lua", ":deathmatch/loader_s.lua",true) then end xmlSaveFile(metaXML) xmlUnloadFile(metaXML) if fileExists(":deathmatch/map.xml") then fileDelete(":deathmatch/map.xml") end local mapXML = xmlCreateFile(":deathmatch/map.xml","meta") local metaXML = xmlLoadFile(":"..newMap.mapname.."/meta.xml") if metaXML then for i, m in ipairs(xmlNodeGetChildren(metaXML)) do local metaXMLName = xmlNodeGetName(m) ---Checks if the XMl-File is a .map file--- if metaXMLName == "map" then local mapPath = xmlNodeGetAttribute(m,"src") if mapPath and fileExists(":"..newMap.mapname.."/"..mapPath) then local mapFile = xmlLoadFile(":"..newMap.mapname.."/"..mapPath) if mapFile then for r, p in ipairs(xmlNodeGetChildren(mapFile)) do local objectType = xmlNodeGetName(p) if objectType == "spawnpoint" then table.insert(dmTable.Spawnpoints,{ modelID = tonumber(xmlNodeGetAttribute(p, "vehicle")), interiorID = tonumber(xmlNodeGetAttribute(p, "interior")), posX = tonumber(xmlNodeGetAttribute(p, "posX")), posY = tonumber(xmlNodeGetAttribute(p, "posY")), posZ = tonumber(xmlNodeGetAttribute(p, "posZ")), rotX = tonumber(xmlNodeGetAttribute(p, "rotX")), rotY = tonumber(xmlNodeGetAttribute(p, "rotY")), rotZ = tonumber(xmlNodeGetAttribute(p, "rotZ")), dimension = 1 }) elseif objectType == "object" then table.insert(dmTable.objects,{ modelId = tonumber(xmlNodeGetAttribute(p,"model")), interiorID = tonumber(xmlNodeGetAttribute(p, "interior")) or 0, posX = tonumber(xmlNodeGetAttribute(p,"posX")), posY = tonumber(xmlNodeGetAttribute(p,"posY")), posZ = tonumber(xmlNodeGetAttribute(p,"posZ")), rotX = tonumber(xmlNodeGetAttribute(p,"rotX")), rotY = tonumber(xmlNodeGetAttribute(p,"rotY")), rotZ = tonumber(xmlNodeGetAttribute(p,"rotZ")), doublesided = xmlNodeGetAttribute(p,"doublesided"), dimension = 1 }) elseif objectType == "marker" then table.insert(dmTable.marker,{ theType = xmlNodeGetAttribute(p, "type"), interiorID = tonumber(xmlNodeGetAttribute(p, "interior")), posX = tonumber(xmlNodeGetAttribute(p, "posX")), posY = tonumber(xmlNodeGetAttribute(p, "posY")), posZ = tonumber(xmlNodeGetAttribute(p, "posZ")), size = tonumber(xmlNodeGetAttribute(p, "size")), color = xmlNodeGetAttribute(p, "color"), dimension = 1 }) elseif objectType == "racepickup" then table.insert(dmTable.pickup,{ pickupType = xmlNodeGetAttribute(p, "type"), posX = tonumber(xmlNodeGetAttribute(p, "posX")), posY = tonumber(xmlNodeGetAttribute(p, "posY")), posZ = tonumber(xmlNodeGetAttribute(p, "posZ")), interiorID = tonumber(xmlNodeGetAttribute(p, "interior")), vehicle = tonumber(xmlNodeGetAttribute(p, "vehicle")) or false, dimension = 1 }) end end end xmlSaveFile(mapFile) xmlUnloadFile(mapFile) end ---Checks if the XML File is a Script File--- elseif metaXMLName == "script" then local scriptPath = xmlNodeGetAttribute(m,"src") fileCopy(":"..newMap.mapname.."/"..scriptPath, ":deathmatch/"..scriptPath,true) local scriptNode = xmlCreateChild(mapXML,"file") xmlNodeSetAttribute(scriptNode,"src",scriptPath) xmlNodeSetAttribute(scriptNode,"downloaded","false") ---Checks if the XMl File is a File--- elseif metaXMLName == "file" then local filePath = xmlNodeGetAttribute(m,"src") fileCopy(":"..newMap.mapname.."/"..filePath, ":deathmatch/"..filePath,true) local fileNode = xmlCreateChild(mapXML,"file") xmlNodeSetAttribute(fileNode,"src",filePath) xmlNodeSetAttribute(fileNode,"downloaded","false") end end end local xmlSettings = xmlFindChild ( metaXML, "settings", 0) local xmlChild = xmlCreateChild(mapXML, "settings") i = 0 while true do local xmlNode = xmlFindChild ( xmlSettings, "setting", i) if not xmlNode then break else mapNode = xmlCreateChild(xmlChild, "setting") xmlNodeSetAttribute(mapNode, "name", xmlNodeGetAttribute(xmlNode, "name")) xmlNodeSetAttribute(mapNode, "value", xmlNodeGetAttribute(xmlNode, "value")) i = i + 1 end end xmlSaveFile(mapXML) xmlUnloadFile(mapXML) xmlUnloadFile(metaXML) local file = fileOpen(":deathmatch/map.xml") local map = "" if file then --outputChatBox("OK") while not fileIsEOF(file) do map = map..""..fileRead(file,500) end end fileClose(file) mapDM = map dnsp = dmTable.Spawonpoints startResource(getResourceFromName("deathmatch")) end for i, p in ipairs(getGamemodePlayers("deathmatch")) do setUPDMPlayer(p,dmTable.Spawnpoints,dmTable.objects,dmTable.marker,dmTable.pickup) end end addEvent("loadNewMapDM",true) addEventHandler("loadNewMapDM",root, loadNewMapDM) function setUPDMPlayer(player,spawn,o,m,p) --outputChatBox(#spawn) if spawn then toggleControl(player,"vehicle_secondary_fire",true) toggleControl(player,"vehicle_primary_fire",false) local rand = math.random(tonumber(#spawn)) spawnPlayer(player,spawn[rand].posX,spawn[rand].posY,spawn[rand].posZ) setElementDimension(player,1) local vehicle = createVehicle(spawn[rand].modelID,spawn[rand].posX,spawn[rand].posY,spawn[rand].posZ,spawn[rand].rotX,spawn[rand].rotY,spawn[rand].rotZ) setElementDimension(vehicle,1) fadeCamera(player,true) setCameraTarget(player,player) setCameraTarget(player,vehicle) setElementFrozen(vehicle,true) warpPedIntoVehicle(player,vehicle) setElementData(vehicle,"DMVehicle",true) setElementData(player,"curVehicle",veh) setElementAlpha(player,255) setElementFrozen(player,false) setElementData(player,"ghostmode",true) end triggerLatentClientEvent(player,"loadMapDM",500000,false,root,mapDM,o,m,p) end addEvent("dmDownloadFinished",true) addEventHandler("dmDownloadFinished",getRootElement(),function(player) table.insert(readyDMPlayers,{ player = player }) startCountdownDM(player) end) function setPlayerDMWaitRound(player) if isDmMapRunning() then end end function startCountdownDM(player) triggerClientEvent(player,"startCountdown",root) setTimer(startRoundDM,3800,1,player) end function startRoundDM(player) setElementFrozen(getPedOccupiedVehicle(player),false) setElementData(player,"state","ready") --setElementData(player,"state","alive") end addEvent("killDMPlayer",true) addEventHandler("killDMPlayer",root,function() if isPedInVehicle(source) and getElementHealth(source) > 0 then if getElementData(source,"state") ~= "ready" then setTimer(function() destroyElement(getPedOccupiedVehicle(source)) killPed(source) end,10000,1) else destroyElement(getPedOccupiedVehicle(source)) killPed(source) end end triggerClientEvent(source,"desLoadingDM",root,desLoadingDM) end) Link to comment
Cadu12 Posted October 2, 2013 Share Posted October 2, 2013 Scripts aren't your, so we can't help. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now