danuixas Posted July 1, 2015 Share Posted July 1, 2015 Hello i tried scene2res converter but when i try to lounch it i get alot of errors at first i get that its smth a nil value with this : engineStreamingSetProperty( "infiniteStreaming", true ); wanted to ask is there possible to make this code simple and replacing models without all these complicating scripts that are inside ? -- Compiled by Scene2Res, a MTA:SA GTA III engine map importer local streamerMemory=0; local cached={}; local resourceQueue={}; local textureCache = {}; local streamedObjects = {}; local pModels = {}; --engineStreamingSetProperty( "infiniteStreaming", false ); engineStreamingSetProperty( "nodeStealing", false ); engineSetAsynchronousLoadingEnabled( true ); debug.sethook(nil); local function getResourceSize(path) if not (fileExists(path)) then return 0; end; local file = fileOpen(path); local size = fileGetSize(file) fileClose(file); return size; end local function requestTexture(model, path) local txd = textureCache[path]; if not (txd) then local size = getResourceSize(path); if (size == 0) then return false; end if ( streamerMemory + size > 367001600 ) then outputDebugString("out of streaming memory! ("..path..")"); return false; end txd = engineLoadTXD(path); if not (txd) then return false; end textureCache[path] = txd; streamerMemory = streamerMemory + size; end return txd; end local function loadResources(model, size) if not (model.impTxd) then engineImportTXD(model.txd, model.id); model.impTxd = true; end if not (model.model) then model.model = engineLoadDFF(model.model_file, model.id, true); if not (model.model) then return false; end; end if not (model.col_file) then if not (model.super) then return false; end local superModel = pModels[model.super]; if (superModel) then model.col = superModel.col; end else model.col = engineLoadCOL(model.col_file, 0); if not (model.col) then return false; end end cached[model.id] = { model = model, size = size }; resourceQueue[model.id] = nil; streamerMemory = streamerMemory + size; return true; end local function freeResources(model) local cache = cached[model.id]; if not (cache) then return true; end if (model.col_file) then destroyElement(model.col); end destroyElement(model.model); model.model = nil; model.col = nil; cached[model.id] = nil; streamerMemory = streamerMemory - cache.size; return true; end local function cacheResources(model) if (resourceQueue[model.id]) then return false; end if (cached[model.id]) then return true; end local size = getResourceSize(model.model_file); if (model.col_file) then size = size + getResourceSize(model.col_file); end if ( streamerMemory + size > 367001600 ) then outputDebugString("streamer memory limit reached... queueing request!"); resourceQueue[model.id] = { size = size, model = model }; return false; end return loadResources(model, size); end local function loadModel(model) if (model.loaded) then return true; end if (model.super) then local superModel = pModels[model.super]; if (superModel) then if not (loadModel(superModel)) then return false; end end end if not (cacheResources(model)) then return false; end if not (model.model) or not (model.col) then return false; end local successModelReplace = engineReplaceModel(model.model, model.id); local successCOLReplace = false; if (successModelReplace) then successCOLReplace = engineReplaceCOL(model.col, model.id); end if not (successModelReplace) or not (successCOLReplace) then if (successModelReplace) then engineRestoreModel(model.id); end if (successCOLReplace) then engineRestoreCOL(model.id); end return false; end model.loaded = true; return true; end local function freeModel(model) if not (model.loaded) then return true; end engineRestoreModel(model.id); engineRestoreCOL(model.id); model.loaded = false; if (model.super) then return freeModel(pModels[model.super]); end end local function modelStreamOut (id) local pModel = pModels[id]; if not (pModel) then return end; if (pModel.lodID) then return true; end freeModel(pModel); end local function modelStreamIn (id) local pModel = pModels[id]; if not (pModel) then return end; if (pModel.lodID) then return true; end if not (loadModel(pModel)) then for m,n in ipairs(getElementsByType("object", resourceRoot)) do if (getElementModel(n) == pModel.id) then setElementInterior(n, 255); setElementCollisionsEnabled(n, false); end end else for m,n in ipairs(getElementsByType("object", resourceRoot)) do if (getElementModel(n) == pModel.id) then setElementInterior(n, 0); setElementCollisionsEnabled(n, true); end end end end function loadModels () local pModel, pTXD, pColl, pTable; pTable={ { 6351, "lodseabed001", "seabed", 800, 6282 }, { 6354, "lodseabed002", "seabed", 800, 6172 }, { 6355, "lodseabed003", "seabed", 800, 6173 }, { 6356, "lodseabed004", "seabed", 800, 6174 }, { 6358, "lodseabed005", "seabed", 800, 6175 }, { 6359, "lodseabed006", "seabed", 800, 6176 }, { 6360, "lodseabed007", "seabed", 800, 6177 }, { 6361, "lodseabed008", "seabed", 800, 6178 }, { 6364, "lodseabed009", "seabed", 800, 6179 }, { 6365, "lodseabed010", "seabed", 800, 6180 }, { 6366, "lodseabed011", "seabed", 800, 6181 }, { 6367, "lodseabed012", "seabed", 800, 6182 }, { 6368, "lodseabed013", "seabed", 800, 6183 }, { 6369, "lodseabed015", "seabed", 800, 6185 }, { 6371, "lodseabed019", "seabed", 800, 6186 }, { 6373, "lodseabed020", "seabed", 800, 6187 }, { 6374, "lodseabed021", "seabed", 800, 6188 }, { 6375, "lodseabed022", "seabed", 800, 6189 }, { 6376, "lodseabed023", "seabed", 800, 6190 }, { 6377, "lodseabed024", "seabed", 800, 6191 }, { 6378, "lodseabed026", "seabed", 800, 6197 }, { 6379, "lodseabed027", "seabed", 800, 6198 }, { 6380, "lodseabed028", "seabed", 800, 6199 }, { 6381, "lodseabed029", "seabed", 800, 6200 }, { 6382, "lodseabed030", "seabed", 800, 6201 }, { 6383, "lodseabed031", "seabed", 800, 6202 }, { 6384, "lodseabed032", "seabed", 800, 6203 }, { 6387, "lodseabed033", "seabed", 800, 6205 }, { 6388, "lodseabed034", "seabed", 800, 6206 }, { 6389, "lodseabed035", "seabed", 800, 6207 }, { 6390, "lodseabed036", "seabed", 800, 6208 }, { 6391, "lodseabed037", "seabed", 800, 6211 }, { 6392, "lodseabed038", "seabed", 800, 6212 }, { 6394, "lodseabed039", "seabed", 800, 6213 }, { 6395, "lodseabed040", "seabed", 800, 6215 }, { 6396, "lodseabed041", "seabed", 800, 6216 }, { 6398, "lodseabed042", "seabed", 800, 6217 }, { 6401, "lodseabed043", "seabed", 800, 6218 }, { 6402, "lodseabed044", "seabed", 800, 6219 }, { 6404, "lodseabed045", "seabed", 800, 6220 }, { 6406, "lodseabed046", "seabed", 800, 6221 }, { 6408, "lodseabed047", "seabed", 800, 6222 }, { 6409, "lodseabed048", "seabed", 800, 6223 }, { 6410, "lodseabed049", "seabed", 800, 6224 }, { 6414, "lodseabed050", "seabed", 800, 6225 }, { 6415, "lodseabed051", "seabed", 800, 6226 }, { 6416, "lodseabed052", "seabed", 800, 6227 }, { 6417, "lodseabed053", "seabed", 800, 6228 }, { 6418, "lodseabed054", "seabed", 800, 6229 }, { 6419, "lodseabed055", "seabed", 800, 6230 }, { 6420, "lodseabed056", "seabed", 800, 6231 }, { 6422, "lodseabed057", "seabed", 800, 6232 }, { 6423, "lodseabed058", "seabed", 800, 6233 }, { 6424, "lodseabed059", "seabed", 800, 6234 }, { 6425, "lodseabed060", "seabed", 800, 6235 }, { 6426, "lodseabed061", "seabed", 800, 6236 }, { 6427, "lodseabed062", "seabed", 800, 6238 }, { 6428, "lodseabed063", "seabed", 800, 6239 }, { 6429, "lodseabed064", "seabed", 800, 6240 }, { 6432, "lodseabed065", "seabed", 800, 6241 }, { 6433, "lodseabed066", "seabed", 800, 6242 }, { 6434, "lodseabed067", "seabed", 800, 6243 }, { 6435, "lodseabed068", "seabed", 800, 6244 }, { 6437, "lodseabed069", "seabed", 800, 6245 }, { 6438, "lodseabed070", "seabed", 800, 6246 }, { 6439, "lodseabed071", "seabed", 800, 6247 }, { 6440, "lodseabed072", "seabed", 800, 6248 }, { 6441, "lodseabed073", "seabed", 800, 6249 }, { 6442, "lodseabed074", "seabed", 800, 6250 }, { 6443, "lodseabed075", "seabed", 800, 6251 }, { 6445, "lodseabed076", "seabed", 800, 6252 }, { 6446, "lodseabed077", "seabed", 800, 6253 }, { 6447, "lodseabed078", "seabed", 800, 6255 }, { 6448, "lodseabed079", "seabed", 800, 6256 }, { 6449, "lodseabed080", "seabed", 800, 6280 }, { 6450, "lodseabed081", "seabed", 800, 6171 }, { 6452, "lodseabed083", "seabed", 800, 6283 }, { 6453, "lodseabed084", "seabed", 800, 6287 }, { 6454, "lodseabed085", "seabed", 800, 6288 }, { 6455, "lodseabed086", "seabed", 800, 6290 }, { 6456, "lodseabed087", "seabed", 800, 6291 }, { 6459, "lodseabed088", "seabed", 800, 6292 }, { 6460, "lodseabed089", "seabed", 800, 6293 }, { 6462, "lodseabed090", "seabed", 800, 6294 }, { 6463, "lodseabed091", "seabed", 800, 6296 }, { 6464, "lodseabed092", "seabed", 800, 6298 }, { 6465, "lodseabed093", "seabed", 800, 6299 }, { 6467, "lodseabed094", "seabed", 800, 6300 }, { 6468, "lodseabed095", "seabed", 800, 6301 }, { 6469, "lodseabed096", "seabed", 800, 6302 }, { 6470, "lodseabed097", "seabed", 800, 6303 }, { 6471, "lodseabed098", "seabed", 800, 6304 }, { 6472, "lodseabed099", "seabed", 800, 6305 }, { 6473, "lodseabed107", "seabed", 800, 6307 }, { 6474, "lodseabed108", "seabed", 800, 6308 }, { 6475, "lodseabed109", "seabed", 800, 6309 }, { 6476, "lodseabed110", "seabed", 800, 6310 }, { 6477, "lodseabed111", "seabed", 800, 6311 }, { 6478, "lodseabed112", "seabed", 800, 6312 }, { 6479, "lodseabed113", "seabed", 800, 6313 }, { 6480, "lodseabed114", "seabed", 800, 6314 }, { 6481, "lodseabed115", "seabed", 800, 6315 }, { 6482, "lodseabed116", "seabed", 800, 6316 }, { 6483, "lodseabed121", "seabed", 800, 6317 }, { 6485, "lodseabed124", "seabed", 800, 6320 }, { 6486, "lodseabed125", "seabed", 800, 6321 }, { 6487, "lodseabed126", "seabed", 800, 6322 }, { 6488, "lodseabed127", "seabed", 800, 6323 }, { 6490, "lodseabed128", "seabed", 800, 6324 }, { 6491, "lodseabed130", "seabed", 800, 6325 }, { 6492, "lodseabed131", "seabed", 800, 6326 }, { 6493, "lodseabed133", "seabed", 800, 6328 }, { 6494, "lodseabed134", "seabed", 800, 6329 }, { 6495, "lodseabed135", "seabed", 800, 6330 }, { 6496, "lodseabed136", "seabed", 800, 6331 }, { 6497, "lodseabed137", "seabed", 800, 6332 }, { 6498, "lodseabed138", "seabed", 800, 6333 }, { 6500, "lodseabed139", "seabed", 800, 6334 }, { 6501, "lodseabed140", "seabed", 800, 6335 }, { 6502, "lodseabed141", "seabed", 800, 6336 }, { 6503, "lodseabed143", "seabed", 800, 6338 }, { 6504, "lodseabed144", "seabed", 800, 6339 }, { 6505, "lodseabed145", "seabed", 800, 6340 }, { 6506, "lodseabed146", "seabed", 800, 6341 }, { 6507, "lodseabed147", "seabed", 800, 6342 }, { 6508, "lodseabed148", "seabed", 800, 6343 }, { 6509, "lodseabed149", "seabed", 800, 6345 }, { 6510, "lodseabed151", "seabed", 800, 6347 }, { 6879, "lodseabeds01", "seabed", 800, 6306 }, { 6880, "lodseabeds02", "seabed", 800, 6337 }, { 6881, "lodseabeds03", "seabed", 800, 6184 }, { 6882, "lodseabeds04", "seabed", 800, 6318 }, { 6883, "lodseabed027bb", "seabed", 800, 6884 }, { 6885, "loduntwland30b", "seabed", 800, 6327 }, { 6887, "lodseabed025", "seabed", 800, 6886 }, { 6888, "lodroadscoast02", "seabed", 800, 6346 }, { 6890, "lodseabed017", "seabed", 800, 6889 }, { 6892, "lodseabed082", "seabed", 800, 6891 } }; for m,n in ipairs(pTable) do pModels[n[1]] = { id = n[1], name = n[2], txd = requestTexture(false, "textures/"..n[3]..".txd"), lod = n[4] / 5, super = n[5] }; pModelEntry = pModels[n[1]]; pModelEntry.model_file = "models/"..n[2]..".dff"; engineSetModelLODDistance(n[1], n[4] / 5); end pTable={ { model=3996, model_file="elecfence_BAR", txd_file="elecfence_BAR", coll_file="elecfence_BAR", lod=200 }, { model=3995, model_file="gate_autoL", txd_file="gategen", coll_file="gate_autoL", lod=200 }, { model=6171, model_file="sbsbedlaw2", txd_file="seabed", coll_file="sbsbedlaw2", lod=299, lodID=6450 }, { model=6172, model_file="sbsbed4law2", txd_file="seabed", coll_file="sbsbed4law2", lod=299, lodID=6354 }, { model=6173, model_file="sbsbed5law2", txd_file="seabed", coll_file="sbsbed5law2", lod=299, lodID=6355 }, { model=6174, model_file="sbsbed8law2", txd_file="seabed", coll_file="sbsbed8law2", lod=299, lodID=6356 }, { model=6175, model_file="sbsbed9law2", txd_file="seabed", coll_file="sbsbed9law2", lod=299, lodID=6358 }, { model=6176, model_file="sbsbed1law2", txd_file="seabed", coll_file="sbsbed1law2", lod=299, lodID=6359 }, { model=6177, model_file="sbsbed3law2", txd_file="seabed", coll_file="sbsbed3law2", lod=299, lodID=6360 }, { model=6178, model_file="sbsbed6law2", txd_file="seabed", coll_file="sbsbed6law2", lod=299, lodID=6361 }, { model=6179, model_file="sbsbed7law2", txd_file="seabed", coll_file="sbsbed7law2", lod=299, lodID=6364 }, { model=6180, model_file="sbsbed91law2", txd_file="seabed", coll_file="sbsbed91law2", lod=299, lodID=6365 }, { model=6181, model_file="sbcne_seafloor01", txd_file="seabed", coll_file="sbcne_seafloor01", lod=299, lodID=6366 }, { model=6182, model_file="sbcne_seafloor02", txd_file="seabed", coll_file="sbcne_seafloor02", lod=299, lodID=6367 }, { model=6183, model_file="sbcne_seafloor03", txd_file="seabed", coll_file="sbcne_seafloor03", lod=299, lodID=6368 }, { model=6184, model_file="sbcne_seafloor05", txd_file="seabed", coll_file="sbcne_seafloor05", lod=299, lodID=6881 }, { model=6185, model_file="sbCE_groundPALO09", txd_file="seabed", coll_file="sbCE_groundPALO09", lod=299, lodID=6369 }, { model=6186, model_file="sbcne_seafloor04", txd_file="seabed", coll_file="sbcne_seafloor04", lod=299, lodID=6371 }, { model=6187, model_file="sbcne_seafloor06", txd_file="seabed", coll_file="sbcne_seafloor06", lod=299, lodID=6373 }, { model=6188, model_file="sbseabed_sfe03", txd_file="seabed", coll_file="sbseabed_sfe03", lod=299, lodID=6374 }, { model=6189, model_file="sbseabed_sfe05", txd_file="seabed", coll_file="sbseabed_sfe05", lod=299, lodID=6375 }, { model=6190, model_file="sbseabed_sfe01", txd_file="seabed", coll_file="sbseabed_sfe01", lod=299, lodID=6376 }, { model=6191, model_file="sbseabed_sfe69", txd_file="seabed", coll_file="sbseabed_sfe69", lod=299, lodID=6377 }, { model=6197, model_file="sbseabed_SFN02", txd_file="seabed", coll_file="sbseabed_SFN02", lod=299, lodID=6378 }, { model=6198, model_file="sbseabed_SFN03", txd_file="seabed", coll_file="sbseabed_SFN03", lod=299, lodID=6379 }, { model=6199, model_file="sbseabed_SFNcunt", txd_file="seabed", coll_file="sbseabed_SFNcunt", lod=299, lodID=6380 }, { model=6200, model_file="sbseabed1_SFW", txd_file="seabed", coll_file="sbseabed1_SFW", lod=299, lodID=6381 }, { model=6201, model_file="sbseabed2_SFW", txd_file="seabed", coll_file="sbseabed2_SFW", lod=299, lodID=6382 }, { model=6202, model_file="sbseabed6_SFW", txd_file="seabed", coll_file="sbseabed6_SFW", lod=299, lodID=6383 }, { model=6203, model_file="sbseabed2_las2", txd_file="seabed", coll_file="sbseabed2_las2", lod=299, lodID=6384 }, { model=6205, model_file="sbseabed3_las20", txd_file="seabed", coll_file="sbseabed3_las20", lod=299, lodID=6387 }, { model=6206, model_file="sbseabed1_las2", txd_file="seabed", coll_file="sbseabed1_las2", lod=299, lodID=6388 }, { model=6207, model_file="sbseabed5_las2", txd_file="seabed", coll_file="sbseabed5_las2", lod=299, lodID=6389 }, { model=6208, model_file="sbseabed6las2", txd_file="seabed", coll_file="sbseabed6las2", lod=299, lodID=6390 }, { model=6211, model_file="sbseabed8_las2", txd_file="seabed", coll_file="sbseabed8_las2", lod=299, lodID=6391 }, { model=6212, model_file="sbseabed7_las2", txd_file="seabed", coll_file="sbseabed7_las2", lod=299, lodID=6392 }, { model=6213, model_file="sbseabed86_las2", txd_file="seabed", coll_file="sbseabed86_las2", lod=299, lodID=6394 }, { model=6215, model_file="sbseabed9_las20", txd_file="seabed", coll_file="sbseabed9_las20", lod=299, lodID=6395 }, { model=6216, model_file="sbseabed91_las2", txd_file="seabed", coll_file="sbseabed91_las2", lod=299, lodID=6396 }, { model=6217, model_file="sbseabed93_LAS", txd_file="seabed", coll_file="sbseabed93_LAS", lod=299, lodID=6398 }, { model=6218, model_file="sbseabed92_LAS", txd_file="seabed", coll_file="sbseabed92_LAS", lod=299, lodID=6401 }, { model=6219, model_file="sbseabed94_LAS", txd_file="seabed", coll_file="sbseabed94_LAS", lod=299, lodID=6402 }, { model=6220, model_file="sbseabed95_LAS", txd_file="seabed", coll_file="sbseabed95_LAS", lod=299, lodID=6404 }, { model=6221, model_file="sbseabed96_LAS", txd_file="seabed", coll_file="sbseabed96_LAS", lod=299, lodID=6406 }, { model=6222, model_file="sbseabed97_LAS", txd_file="seabed", coll_file="sbseabed97_LAS", lod=299, lodID=6408 }, { model=6223, model_file="sbseabed99_LAS", txd_file="seabed", coll_file="sbseabed99_LAS", lod=299, lodID=6409 }, { model=6224, model_file="sbseabed98_LAS", txd_file="seabed", coll_file="sbseabed98_LAS", lod=299, lodID=6410 }, { model=6225, model_file="sbseabed81_LAS", txd_file="seabed", coll_file="sbseabed81_LAS", lod=299, lodID=6414 }, { model=6226, model_file="sbseabed85_LAS", txd_file="seabed", coll_file="sbseabed85_LAS", lod=299, lodID=6415 }, { model=6227, model_file="sbseabed84_LAS", txd_file="seabed", coll_file="sbseabed84_LAS", lod=299, lodID=6416 }, { model=6228, model_file="sbseabed83_LAS", txd_file="seabed", coll_file="sbseabed83_LAS", lod=299, lodID=6417 }, { model=6229, model_file="sbseabed82_LAS", txd_file="seabed", coll_file="sbseabed82_LAS", lod=299, lodID=6418 }, { model=6230, model_file="sbcs_landbit_46", txd_file="seabed", coll_file="sbcs_landbit_46", lod=299, lodID=6419 }, { model=6231, model_file="sbcs_landbit_54", txd_file="seabed", coll_file="sbcs_landbit_54", lod=299, lodID=6420 }, { model=6232, model_file="sbcs_landbit_63", txd_file="seabed", coll_file="sbcs_landbit_63", lod=299, lodID=6422 }, { model=6233, model_file="sbcs_landbit_72", txd_file="seabed", coll_file="sbcs_landbit_72", lod=299, lodID=6423 }, { model=6234, model_file="sbcs_landbit_77", txd_file="seabed", coll_file="sbcs_landbit_77", lod=299, lodID=6424 }, { model=6235, model_file="sbcs_landbit_78", txd_file="seabed", coll_file="sbcs_landbit_78", lod=299, lodID=6425 }, { model=6236, model_file="sbcs_seabit_new", txd_file="seabed", coll_file="sbcs_seabit_new", lod=299, lodID=6426 }, { model=6238, model_file="sbcs_seabit1_new", txd_file="seabed", coll_file="sbcs_seabit1_new", lod=299, lodID=6427 }, { model=6239, model_file="sbcs_seabit2_new", txd_file="seabed", coll_file="sbcs_seabit2_new", lod=299, lodID=6428 }, { model=6240, model_file="sbcs_seabit3_new", txd_file="seabedcs", coll_file="sbcs_seabit3_new", lod=299, lodID=6429 }, { model=6241, model_file="sbcs_seabit4_new", txd_file="seabedcs", coll_file="sbcs_seabit4_new", lod=299, lodID=6432 }, { model=6242, model_file="sbcs_seabit5_new", txd_file="seabedcs", coll_file="sbcs_seabit5_new", lod=299, lodID=6433 }, { model=6243, model_file="sbcs_seabit6_new", txd_file="seabed", coll_file="sbcs_seabit6_new", lod=299, lodID=6434 }, { model=6244, model_file="sbcs_seabit7_new", txd_file="seabed", coll_file="sbcs_seabit7_new", lod=299, lodID=6435 }, { model=6245, model_file="sbcs_seabit8_new", txd_file="seabed", coll_file="sbcs_seabit8_new", lod=299, lodID=6437 }, { model=6246, model_file="sbcs_seabit9_new", txd_file="seabed", coll_file="sbcs_seabit9_new", lod=299, lodID=6438 }, { model=6247, model_file="sbcs_seabit11_new", txd_file="seabed", coll_file="sbcs_seabit11_new", lod=299, lodID=6439 }, { model=6248, model_file="sbcs_seabit10_new", txd_file="seabed", coll_file="sbcs_seabit10_new", lod=299, lodID=6440 }, { model=6249, model_file="sbcs_seabit12_new", txd_file="seabed", coll_file="sbcs_seabit12_new", lod=299, lodID=6441 }, { model=6250, model_file="sbcs_seabit13_new", txd_file="seabed", coll_file="sbcs_seabit13_new", lod=299, lodID=6442 }, { model=6251, model_file="sbcs_seabit14_new", txd_file="seabed", coll_file="sbcs_seabit14_new", lod=299, lodID=6443 }, { model=6252, model_file="sbcs_seabit15_new", txd_file="seabed", coll_file="sbcs_seabit15_new", lod=299, lodID=6445 }, { model=6253, model_file="sbcs_seabit16_new", txd_file="seabed", coll_file="sbcs_seabit16_new", lod=299, lodID=6446 }, { model=6255, model_file="sbcs_seabit17_new", txd_file="seabed", coll_file="sbcs_seabit17_new", lod=299, lodID=6447 }, { model=6256, model_file="sbseabed_CN01", txd_file="seabed", coll_file="sbseabed_CN01", lod=299, lodID=6448 }, { model=6280, model_file="sbseabed_CN03", txd_file="seabed", coll_file="sbseabed_CN03", lod=299, lodID=6449 }, { model=6282, model_file="sbseabed_CN04", txd_file="seabed", coll_file="sbseabed_CN04", lod=299, lodID=6351 }, { model=6283, model_file="sbcn_seafloor03", txd_file="seabed", coll_file="sbcn_seafloor03", lod=299, lodID=6452 }, { model=6287, model_file="sbcn_seafloor04", txd_file="seabed", coll_file="sbcn_seafloor04", lod=299, lodID=6453 }, { model=6288, model_file="sbcn_seafloor01", txd_file="seabed", coll_file="sbcn_seafloor01", lod=299, lodID=6454 }, { model=6290, model_file="sbcn_seafloor05", txd_file="seabed", coll_file="sbcn_seafloor05", lod=299, lodID=6455 }, { model=6291, model_file="sbcn_seafloor06", txd_file="seabed", coll_file="sbcn_seafloor06", lod=299, lodID=6456 }, { model=6292, model_file="sbcn_seafloor07", txd_file="seabed", coll_file="sbcn_seafloor07", lod=299, lodID=6459 }, { model=6293, model_file="sbxseabed_CN02", txd_file="seabed", coll_file="sbxseabed_CN02", lod=299, lodID=6460 }, { model=6294, model_file="sbxseabed_CN05", txd_file="seabed", coll_file="sbxseabed_CN05", lod=299, lodID=6462 }, { model=6296, model_file="sbxseabed_CN06", txd_file="seabed", coll_file="sbxseabed_CN06", lod=299, lodID=6463 }, { model=6298, model_file="sbxseabed_CN07", txd_file="seabed", coll_file="sbxseabed_CN07", lod=299, lodID=6464 }, { model=6299, model_file="sbcn_seafloor08", txd_file="seabed", coll_file="sbcn_seafloor08", lod=299, lodID=6465 }, { model=6300, model_file="sbcn_seafloor09", txd_file="seabed", coll_file="sbcn_seafloor09", lod=299, lodID=6467 }, { model=6301, model_file="sbcn_seafloor10", txd_file="seabed", coll_file="sbcn_seafloor10", lod=299, lodID=6468 }, { model=6302, model_file="sbcn2_seafloor01", txd_file="seabed", coll_file="sbcn2_seafloor01", lod=299, lodID=6469 }, { model=6303, model_file="sbcn2_seafloor02", txd_file="seabed", coll_file="sbcn2_seafloor02", lod=299, lodID=6470 }, { model=6304, model_file="sbcn2_seafloor03", txd_file="seabed", coll_file="sbcn2_seafloor03", lod=299, lodID=6471 }, { model=6305, model_file="sbcn2_seafloor04", txd_file="seabed", coll_file="sbcn2_seafloor04", lod=299, lodID=6472 }, { model=6306, model_file="sbvgsEseafloor03", txd_file="seabed", coll_file="sbvgsEseafloor03", lod=299, lodID=6879 }, { model=6307, model_file="sbseabed_05_SFSe", txd_file="seabed", coll_file="sbseabed_05_SFSe", lod=299, lodID=6473 }, { model=6308, model_file="sbseabed_10_SFSe", txd_file="seabed", coll_file="sbseabed_10_SFSe", lod=299, lodID=6474 }, { model=6309, model_file="sbseabed_09_SFSe", txd_file="seabed", coll_file="sbseabed_09_SFSe", lod=299, lodID=6475 }, { model=6310, model_file="sbseabed_08_SFSe", txd_file="seabed", coll_file="sbseabed_08_SFSe", lod=299, lodID=6476 }, { model=6311, model_file="sbseabed_07_SFSe", txd_file="seabed", coll_file="sbseabed_07_SFSe", lod=299, lodID=6477 }, { model=6312, model_file="sbseabed_11_SFSe", txd_file="seabed", coll_file="sbseabed_11_SFSe", lod=299, lodID=6478 }, { model=6313, model_file="sbseabed_03_SFSe", txd_file="seabed", coll_file="sbseabed_03_SFSe", lod=299, lodID=6479 }, { model=6314, model_file="sbseabed_02_SFSe", txd_file="seabed", coll_file="sbseabed_02_SFSe", lod=299, lodID=6480 }, { model=6315, model_file="sbseabed_01_SFSe", txd_file="seabed", coll_file="sbseabed_01_SFSe", lod=299, lodID=6481 }, { model=6316, model_file="sbseabed01_LAW", txd_file="seabed", coll_file="sbseabed01_LAW", lod=299, lodID=6482 }, { model=6317, model_file="sbvgsSseafloor05", txd_file="seabed", coll_file="sbvgsSseafloor05", lod=299, lodID=6483 }, { model=6318, model_file="sbvgsSseafloor04", txd_file="seabed", coll_file="sbvgsSseafloor04", lod=299, lodID=6882 }, { model=6320, model_file="sbcw_seabed02", txd_file="seabed", coll_file="sbcw_seabed02", lod=299, lodID=6485 }, { model=6321, model_file="sbcw_seabed03", txd_file="seabed", coll_file="sbcw_seabed03", lod=299, lodID=6486 }, { model=6322, model_file="sbcw_seabed04", txd_file="seabed", coll_file="sbcw_seabed04", lod=299, lodID=6487 }, { model=6323, model_file="sbcw_seabed05", txd_file="seabed", coll_file="sbcw_seabed05", lod=299, lodID=6488 }, { model=6324, model_file="sbcw_seabed06", txd_file="seabedcs", coll_file="sbcw_seabed06", lod=299, lodID=6490 }, { model=6325, model_file="sbcuntwland27b", txd_file="seabed", coll_file="sbcuntwland27b", lod=299, lodID=6491 }, { model=6326, model_file="sbcuntwland28b", txd_file="seabed", coll_file="sbcuntwland28b", lod=299, lodID=6492 }, { model=6327, model_file="sbcuntwland30b", txd_file="seabed", coll_file="sbcuntwland30b", lod=299, lodID=6885 }, { model=6328, model_file="sbcuntwland43b", txd_file="seabedcs", coll_file="sbcuntwland43b", lod=299, lodID=6493 }, { model=6329, model_file="sbcuntwland44b", txd_file="seabedcs", coll_file="sbcuntwland44b", lod=299, lodID=6494 }, { model=6330, model_file="sbcuntwland28bb", txd_file="seabed", coll_file="sbcuntwland28bb", lod=299, lodID=6495 }, { model=6331, model_file="sbcuntwland30bb", txd_file="seabed", coll_file="sbcuntwland30bb", lod=299, lodID=6496 }, { model=6332, model_file="sbObject01", txd_file="seabedcs", coll_file="sbObject01", lod=299, lodID=6497 }, { model=6333, model_file="sbObject02", txd_file="seabedcs", coll_file="sbObject02", lod=299, lodID=6498 }, { model=6334, model_file="sbObject03", txd_file="seabed", coll_file="sbObject03", lod=299, lodID=6500 }, { model=6335, model_file="sbObject04", txd_file="seabed", coll_file="sbObject04", lod=299, lodID=6501 }, { model=6336, model_file="sbObject05", txd_file="seabed", coll_file="sbObject05", lod=299, lodID=6502 }, { model=6337, model_file="sbObject06", txd_file="seabed", coll_file="sbObject06", lod=299, lodID=6880 }, { model=6338, model_file="sbObject07", txd_file="seabed", coll_file="sbObject07", lod=299, lodID=6503 }, { model=6339, model_file="sbObject08", txd_file="seabed", coll_file="sbObject08", lod=299, lodID=6504 }, { model=6340, model_file="sbObject09", txd_file="seabed", coll_file="sbObject09", lod=299, lodID=6505 }, { model=6341, model_file="sbObject10", txd_file="seabed", coll_file="sbObject10", lod=299, lodID=6506 }, { model=6342, model_file="sbObject11", txd_file="seabed", coll_file="sbObject11", lod=299, lodID=6507 }, { model=6343, model_file="sbObject12", txd_file="seabed", coll_file="sbObject12", lod=299, lodID=6508 }, { model=6345, model_file="beach04_sv", txd_file="seabed", coll_file="beach04_sv", lod=299, lodID=6509 }, { model=6346, model_file="sv_roadscoast01", txd_file="seabed", coll_file="sv_roadscoast01", lod=299, lodID=6888 }, { model=6347, model_file="beach04b_sv", txd_file="seabed", coll_file="beach04b_sv", lod=299, lodID=6510 }, { model=6884, model_file="sbseabed_SFN03bb", txd_file="seabed", coll_file="sbseabed_SFN03bb", lod=299, lodID=6883 }, { model=6886, model_file="sbseabed_SFN01", txd_file="seabed", coll_file="sbseabed_SFN01", lod=299, lodID=6887 }, { model=6889, model_file="sbCE_grndPALCST05", txd_file="seabed", coll_file="sbCE_grndPALCST05", lod=299, lodID=6890 }, { model=6891, model_file="sbcn_seafloor02", txd_file="seabed", coll_file="sbcn_seafloor02", lod=299, lodID=6892 } }; local n,m; for n,m in ipairs(pTable) do pModels[m.model] = { id = m.model, name = m.model_file, txd = requestTexture(false, "textures/"..m.txd_file..".txd"), lod = m.lod, lodID = m.lodID }; pModelEntry = pModels[m.model]; pModelEntry.model_file="models/"..m.model_file..".dff"; pModelEntry.col_file="coll/"..m.coll_file..".col"; engineSetModelLODDistance(m.model, m.lod); if (m.lodID) then for j,k in ipairs(getElementsByType("object", resourceRoot)) do if (getElementModel(k) == m.model) then local x, y, z = getElementPosition(k); local rx, ry, rz = getElementRotation(k); setLowLODElement(k, createObject(m.lodID, x, y, z, rx, ry, rz, true)); end end end end end loadModels(); for m,n in pairs(pModels) do if (engineIsModelBeingUsed(m)) then modelStreamIn(m); end end addEventHandler("onClientModelRequest", root, function(id) modelStreamIn(id); end ); addEventHandler("onClientModelFree", root, function(id) modelStreamOut(id); end ); local function getBiggestCacheObject() local obj; local size = 0; for m,n in pairs(cached) do if (size < n.size) and not (n.model.loaded) then size = n.size; obj = n.model; end end return obj, size; end addEventHandler("onClientRender", root, function() local _,request = ({ pairs(resourceQueue) })[1]( resourceQueue ); if not (request) then return true; end; while ( streamerMemory + request.size > 367001600 ) do local cacheObj = getBiggestCacheObject(); if not (cacheObj) then outputDebugString("waiting for cache objects..."); return true; end freeResources(cacheObj); end resourceQueue[request.model.id] = nil; local model = request.model; if not (loadModel(model)) then return false; end for m,n in ipairs(getElementsByType("object", resourceRoot)) do if (getElementModel(n) == model.id) then setElementInterior(n, 0); setElementCollisionsEnabled(n, true); end end end ); addCommandHandler("mcollect", function() outputDebugString("collecting map garbage..."); for m,n in pairs(cached) do if (n.model.loaded == false) then freeResources(n.model); end end collectgarbage(); end ); addCommandHandler("mapmem", function() outputChatBox("streamer memory: "..streamerMemory.." out of 367001600"); end ); collectgarbage("collect"); 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