Jump to content

Need help with a map script code :D


Recommended Posts

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...