Jump to content

Turn custom map content from vehicles to objects


Recommended Posts

This was a little template or set of instructions I slapped together to turn everything in a custom building sqf from vehicles to objects. The aim of this was to increase performance in a server. I couldn't recall of any benefit to converting all of your sqf's to this method but would love some feedback if it does or not. 

 

Here it is!

 

 

Optomizer.txt

Link to comment
Share on other sites

Would make no difference. Objects, or at least most of them, like houses, cars, units etc are classed as vehicles. Changing the name of a variable does nothing except change the name of the variable. Even if that did do something, it explicitly says createVehicle next to each entry on that file apart from traders which are agents.

Link to comment
Share on other sites

I think he knows that, but what he is doing with these instructions is adding everything to one variable. So instead of having hundreds (_vehicle_1, _vehicle_2, _vehicle_3, etc.) of variables defined, you only have the one "_bldObj" variable. You'd assume (mother of all evil) there is a reason for defining everything in seperate unique variables but if there isn't then it might enhance server performance.

Link to comment
Share on other sites

That was a clearer explanation, if that is what the aim was here then it is a smart move. I've just recently started converting my mission.sqf file to a very different format to see if the is any difference in server performance, atleast during startup. I'm only about a 10th through convertin it but it's already remove nearly 15kb from the damn file size. If you're interested here's a peek at the files format.

private ['_create'];
// Agents.
_create = createAgent ["Soldier_MG_PKM_PMC", [8264.5371, 15495.855, 3.7374172], [], 0, "CAN_COLLIDE"];_create setDir 56.102802;_create setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0; this enableSimulation false;";
_create = createAgent ["GUE_Woodlander3", [8266.668, 15482.221, 0.10264076], [], 0, "CAN_COLLIDE"];_create setDir -141.76392;_create setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0; this enableSimulation false;";
_create = createAgent ["GUE_Woodlander2", [8254.9502, 15509.599, 0.23239325], [], 0, "CAN_COLLIDE"];_create setDir -170.64685;_create setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0; this enableSimulation false;";
_create = createAgent ["GUE_Worker2", [8262.3057, 15499.362, 3.5365536], [], 0, "CAN_COLLIDE"];_create setDir 415.11279;_create setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0; this enableSimulation false;";
_create = createAgent ["Damsel3", [8262.2666, 15499.865, 0.28269568], [], 0, "CAN_COLLIDE"];_create setDir -131.36397;_create setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0; this enableSimulation false;";
// Objects.
_create = createVehicle ["Base_WarfareBBarrier10xTall", [5144.4243, 4891.0884, 1.5258789e-005], [], 0, "CAN_COLLIDE"];_create setDir -10.86481;
_create = createVehicle ["Base_WarfareBBarrier10xTall", [5131.4575, 4883.353, -7.6293945e-006], [], 0, "CAN_COLLIDE"];_create setDir -51.442963;
_create = createVehicle ["Base_WarfareBBarrier10xTall", [5124.5112, 4870.2642, 1.5258789e-005], [], 0, "CAN_COLLIDE"];_create setDir 96.699509;
_create = createVehicle ["Base_WarfareBBarrier10xTall", [5124.6836, 4855.4883, 7.6293945e-006], [], 0, "CAN_COLLIDE"];_create setDir 80.989693;
_create = createVehicle ["Base_WarfareBBarrier10xTall", [5160.4229, 4856.936, -0.13439807], [], 0, "CAN_COLLIDE"];_create setDir -109.46175;
_create = createVehicle ["Base_WarfareBBarrier10xTall", [5133.7222, 4845.7305, 7.6293945e-006], [], 0, "CAN_COLLIDE"];_create setDir 7.034831;
_create = createVehicle ["Base_WarfareBBarrier10xTall", [5163.499, 4841.8394, 7.6293945e-006], [], 0, "CAN_COLLIDE"];_create setDir 82.773636;

I've not even tested it yet but I hope to soon, inquisitive about what effect it may have on the server and if it has no effect atleast it's nicer to look at! 1 line per object.

Link to comment
Share on other sites

Will give this a try when i get home.

A somewhat related (performance) question that i have is to do with the use of "setVehicleInit" in MP for the creation of agents or when adding buildings etc.

https://community.bistudio.com/wiki/setVehicleInit

 

For example:

_this setVehicleInit "this setvectorup [0,0,1]";

When adding custom buildings, will make sure the object stands straight upright. However from what i understood much use of this is not good for MP performance at all...?

Anyone know of any documentation related to this or care to share knowledge they have?

Link to comment
Share on other sites

Whilst on the subject of optimizing and objects. How about we create mission objects local on the client computer? I did the same thing with the markers that define safezone location and it seems less server objects = better server performance.

 

I've split up the mission.sqf into traders.sqf (stil server side) and mission_objects.sqf which is now in the mission pbo.

/dayz_server/mission/(MISSION)/traders.sqf

_unit = createAgent ["RU_Functionary1", [12946.349, 12766.593, 2.0980835e-005], [], 0, "CAN_COLLIDE];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 194.24156;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Woodlander1", [11471.179, 11361.226, -9.1552734e-005], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 250.1544;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["RU_WorkWoman1", [11463.931, 11351.671, 0.94462103], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 261.27719;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Rocker4", [11465.548, 11354.459], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 310.03851;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["RU_Citizen3", [11462.307, 11365.972, 3.0517578e-005], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 125.74001;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Dr_Annie_Baker_EP1", [11472.008, 11370.638], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 208.20467;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["TK_CIV_Takistani04_EP1", [6321.0005, 7794.4478, 0.98069924], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 359.64191;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Pilot_EP1", [6317.0498, 7797.918, -0.28563881], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 464.17493;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Rita_Ensler_EP1", [6310.7803, 7794.5054, 0.88001078], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir -114.43345;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Worker2", [12061.648, 12636.292, 0.020880492], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 19.92712;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["GUE_Soldier_MG", [1623.1722, 7797.7886, 0.25734121], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 274.59872;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["RU_Profiteer4", [6300.312, 7800.5874, -0.034530878], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir -49.359165;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Woodlander3", [6317.9883, 7789.3345, 3.0517578e-005], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir -130.79149;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["HouseWife1", [13468.382, 5439.5752, 2.8821261], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir -91.741302;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Doctor", [4059.437, 11660.436], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 24.266853;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Worker3", [4041.6206, 11668.891, 0.23954971], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 24.912832;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["CIV_EuroMan01_EP1", [4064.0681, 11680.065, -0.038146973], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 231.00745;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["RU_WorkWoman5", [4071.9915, 11676.731, 0.54440308], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 566.81744;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["TK_GUE_Soldier_5_EP1", [4054.218, 11664.668, -0.51617432], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 422.9967;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["CIV_EuroMan02_EP1", [4058.0457, 11678.723, 0.33944702], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 89.890854;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Dr_Hladik_EP1", [6314.0962, 7791.5308, 0.51730686], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 577.32629;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Profiteer4", [11449.484, 11341.03, -9.1552734e-005], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 34.525925;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["RU_Villager3", [7996.1021, 2899.0759, 0.6355527], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 86.85891;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Policeman", [6321.0439, 7781.0288], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 9.6638927;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Haris_Press_EP1", [9941.3555, 5448.8511, 1.52], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir -388.69434;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["CIV_EuroWoman01_EP1", [9894.2783, 5474.5215], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 152;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Citizen2_EP1", [9921.7402, 5430.4819], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 288;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Citizen3_EP1", [2019.4493, 2230.0376, 4.7683716e-007], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir -13.64339;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Citizen3_EP1", [9520.1191, 2005.2228, -7.1525574e-006], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir -100.14954;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Citizen3_EP1", [12047.988, 3436.0085, 3.2424927e-005], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir -15.060205;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Citizen3_EP1", [13368.405, 6612.4507, -4.0531158e-005], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 65.535774;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Citizen3_EP1", [12976.83, 10078.245, 8.1062317e-006], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 70.317215;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Citizen3_EP1", [5853.915, 2209.5505, 1.192], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 143.05965;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Citizen3_EP1", [6693.3413, 3010.5652, 1.4305115e-006], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 136.13403;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
_unit = createAgent ["Profiteer1", [8071.98, 3381.31, 2.57], [], 0, "CAN_COLLIDE"];
  {_unit removeMagazine _x;} count  magazines _unit;
  removeAllWeapons _unit;
  _unit switchMove "";
  _unit setDir 240;
  _unit setUnitAbility 0.60000002;
  _unit allowDammage false;
  _unit disableAI 'FSM';
  _unit disableAI 'MOVE';
  _unit disableAI 'AUTOTARGET';
  _unit disableAI 'TARGET';
  _unit setBehaviour 'CARELESS';
  _unit forceSpeed 0;
  _unit enableSimulation false;
// objcomp
_objcomp = [[8073.1211, 3378.5618], 642.56134, "BunkerMedium09"] call (compile (preprocessFileLineNumbers "ca\modules\dyno\data\scripts\objectmapper.sqf"));
processInitCommands;
(MISSION_PBO)/mission_objects.sqf

 

 

private["_obj"];
 
_obj = "Land_Toilet" createVehicleLocal [0,0,0];
_obj setDir 305.48679;
_obj setPos [11467.155, 11341.848];
_obj = "ClutterCutter_EP1" createVehicleLocal [0,0,0];
_obj setDir -7.4119859;
_obj setPos [11467.027, 11364.092];
_obj = "ClutterCutter_EP1" createVehicleLocal [0,0,0];
_obj setDir -7.4119859;
_obj setPos [11459.176, 11355.807];
_obj = "Land_Market_stalls_01_EP1" createVehicleLocal [0,0,0];
_obj setDir 485.22388;
_obj setPos [11466.341, 11354.129];
_obj = "Land_Barrel_water" createVehicleLocal [0,0,0];
_obj setDir -7.4119859;
_obj setPos [11461.964, 11350.411];
_obj = "LADAWreck" createVehicleLocal [0,0,0];
_obj setDir -157.55025;
_obj setPos [11446.667, 11339.981];
_obj = "AmmoCrates_NoInteractive_Large" createVehicleLocal [0,0,0];
_obj setDir 36.088291;
_obj setPos [11465.908, 11356.04];
_obj = "SmallTable" createVehicleLocal [0,0,0];
_obj setDir -49.904377;
_obj setPos [11462.709, 11365.512];
_obj = "Base_WarfareBBarrier10xTall" createVehicleLocal [0,0,0];
_obj setDir -54.695484;
_obj setPos [11468.974, 11348.18];
_obj = "Land_covering_hut_big_EP1" createVehicleLocal [0,0,0];
_obj setDir -48.673214;
_obj setPos [11462.838, 11365.436];
_obj = "Misc_palletsfoiled" createVehicleLocal [0,0,0];
_obj setDir 51.760998;
_obj setPos [11461.064, 11364.81];
_obj = "AmmoCrates_NoInteractive_Large" createVehicleLocal [0,0,0];
_obj setDir 43.500278;
_obj setPos [11463.023, 11367.06];
_obj = "Land_covering_hut_EP1" createVehicleLocal [0,0,0];
_obj setDir 209.26443;
_obj setPos [11471.802, 11370.016];
_obj = "Land_Campfire" createVehicleLocal [0,0,0];
_obj setPos [11469.859, 11367.099];
_obj = "C130J_wreck_EP1" createVehicleLocal [0,0,0];
_obj setDir 57.059044;
_obj setPos [3974.3894, 11601.295];
_obj = "Hhedgehog_concreteBig" createVehicleLocal [0,0,0];
_obj setDir -63.284313;
_obj setPos [4078.2883, 11649.253];
_obj = "ZavoraAnim" createVehicleLocal [0,0,0];
_obj setDir -60.360134;
_obj setPos [4084.1555, 11659.839];
_obj = "LADAWreck" createVehicleLocal [0,0,0];
_obj setDir 60.312458;
_obj setPos [4048.9612, 11667.128];
_obj = "T72Wreck" createVehicleLocal [0,0,0];
_obj setPos [3966.9878, 11639.222];
_obj = "T72WreckTurret" createVehicleLocal [0,0,0];
_obj setDir -99.873833;
_obj setPos [3993.5701, 11635.519];
_obj = "Mi8Wreck" createVehicleLocal [0,0,0];
_obj setPos [3993.9053, 11674.921];
_obj = "Sign_1L_Firstaid" createVehicleLocal [0,0,0];
_obj setDir 40.906422;
_obj setPos [6314.689, 7791.6929];
_obj = "Sign_Danger" createVehicleLocal [0,0,0];
_obj setDir 49.790733;
_obj setPos [4027.1787, 11657.261];
_obj = "Sign_Danger" createVehicleLocal [0,0,0];
_obj setPos [4057.9753, 11638.428];
_obj = "Sign_Danger" createVehicleLocal [0,0,0];
_obj setDir 35.04166;
_obj setPos [4042.5051, 11647.118];
_obj = "Sign_Danger" createVehicleLocal [0,0,0];
_obj setDir 26.150373;
_obj setPos [4019.4063, 11664.92];
_obj = "Land_fort_rampart" createVehicleLocal [0,0,0];
_obj setDir 201.85086;
_obj setPos [4051.1519, 11642.453];
_obj = "Land_fort_rampart" createVehicleLocal [0,0,0];
_obj setDir 219.74416;
_obj setPos [4034.2476, 11651.141];
_obj = "Land_fort_rampart" createVehicleLocal [0,0,0];
_obj setDir 226.36101;
_obj setPos [4021.0457, 11662.883];
_obj = "Hedgehog_EP1" createVehicleLocal [0,0,0];
_obj setPos [4025.1404, 11654.706];
_obj = "Hedgehog_EP1" createVehicleLocal [0,0,0];
_obj setPos [4039.8711, 11643.114];
_obj = "Hedgehog_EP1" createVehicleLocal [0,0,0];
_obj setPos [4012.9392, 11668.524];
_obj = "AmmoCrates_NoInteractive_Large" createVehicleLocal [0,0,0];
_obj setDir 72.342918;
_obj setPos [4062.6428, 11682.021];
_obj = "Misc_Backpackheap" createVehicleLocal [0,0,0];
_obj setDir 345.89008;
_obj setPos [4074.3342, 11676.928];
_obj = "Land_CamoNetVar_EAST" createVehicleLocal [0,0,0];
_obj setDir -6.4849606;
_obj setPos [4060.9595, 11680.576];
_obj = "Land_GuardShed" createVehicleLocal [0,0,0];
_obj setDir -67.0504;
_obj setPos [4086.96, 11659.943];
_obj = "UralWreck" createVehicleLocal [0,0,0];
_obj setDir 51.630379;
_obj setPos [3878.5791, 11678.632];
_obj = "Land_Bucket_EP1" createVehicleLocal [0,0,0];
_obj setDir 326.27802;
_obj setPos [4073.1187, 11679.04];
_obj = "WoodChair" createVehicleLocal [0,0,0];
_obj setDir 13.38733;
_obj setPos [4064.7173, 11680.602];
_obj = "Land_Pillow_EP1" createVehicleLocal [0,0,0];
_obj setDir 363.94629;
_obj setPos [4072.1333, 11677.803];
_obj = "FoldTable" createVehicleLocal [0,0,0];
_obj setDir 68.100845;
_obj setPos [4063.4116, 11679.616];
_obj = "FoldChair" createVehicleLocal [0,0,0];
_obj setDir -105.98519;
_obj setPos [4057.5093, 11678.485];
_obj = "FoldTable" createVehicleLocal [0,0,0];
_obj setDir -93.232597;
_obj setPos [4058.8311, 11678.623];
_obj = "Land_Misc_Well_C_EP1" createVehicleLocal [0,0,0];
_obj setDir -94.223312;
_obj setPos [4085.0645, 11669.402];
_obj = "Bunker_PMC" createVehicleLocal [0,0,0];
_obj setDir -73.730324;
_obj setPos [4025.1743, 11676.713];
_obj = "Land_Toilet" createVehicleLocal [0,0,0];
_obj setDir 13.455784;
_obj setPos [4027.1782, 11668.193];
_obj = "Land_Misc_IronPipes_EP1" createVehicleLocal [0,0,0];
_obj setPos [4059.2703, 11657.253];
_obj = "Land_Reservoir_EP1" createVehicleLocal [0,0,0];
_obj setDir 173.80089;
_obj setPos [4057.9426, 11660.814];
_obj = "Land_stand_meat_EP1" createVehicleLocal [0,0,0];
_obj setDir 291.43402;
_obj setPos [4073.5352, 11679.348];
_obj = "Land_stand_small_EP1" createVehicleLocal [0,0,0];
_obj setDir 381.98224;
_obj setPos [4071.7622, 11675.991];
_obj = "Land_tires_EP1" createVehicleLocal [0,0,0];
_obj setDir -37.201057;
_obj setPos [4052.7512, 11666.596];
_obj = "Land_transport_crates_EP1" createVehicleLocal [0,0,0];
_obj setDir 39.652706;
_obj setPos [4064.7468, 11682.927];
_obj = "ClutterCutter_EP1" createVehicleLocal [0,0,0];
_obj setPos [4054.3711, 11665.827];
_obj = "ClutterCutter_EP1" createVehicleLocal [0,0,0];
_obj setDir 1.0253659;
_obj setPos [4053.7493, 11671.434];
_obj = "Pile_of_wood" createVehicleLocal [0,0,0];
_obj setDir -297.9014;
_obj setPos [4052.1362, 11666.497];
_obj = "AmmoCrates_NoInteractive_Medium" createVehicleLocal [0,0,0];
_obj setDir -57.903767;
_obj setPos [4058.4089, 11680.73];
_obj = "Land_cages_EP1" createVehicleLocal [0,0,0];
_obj setDir 363.94629;
_obj setPos [4074.7046, 11681.784];
_obj = "Land_covering_hut_EP1" createVehicleLocal [0,0,0];
_obj setDir 207.60707;
_obj setPos [4074.146, 11679.42];
_obj = "Land_covering_hut_EP1" createVehicleLocal [0,0,0];
_obj setDir 387.25079;
_obj setPos [4072.7244, 11676.598];
_obj = "Land_Fire_barrel" createVehicleLocal [0,0,0];
_obj setDir -37.201057;
_obj setPos [4069.3713, 11677.529];
_obj = "SmallTable" createVehicleLocal [0,0,0];
_obj setDir 40.010624;
_obj setPos [6313.7319, 7790.9473];
_obj = "Land_Water_pipe_EP1" createVehicleLocal [0,0,0];
_obj setDir 252.18881;
_obj setPos [6314.9482, 7790.9653];
_obj = "Land_Table_EP1" createVehicleLocal [0,0,0];
_obj setDir -59.92321;
_obj setPos [4041.9973, 11669.914];
_obj = "Land_Cabinet_EP1" createVehicleLocal [0,0,0];
_obj setDir 128.33586;
_obj setPos [6314.9282, 7792.3154];
_obj = "Land_Crates_stack_EP1" createVehicleLocal [0,0,0];
_obj setDir 393.47345;
_obj setPos [4075.2336, 11678.565];
_obj = "Base_WarfareBBarrier10xTall" createVehicleLocal [0,0,0];
_obj setDir 35.687778;
_obj setPos [6316.4673, 7792.5254];
_obj = "MASH_EP1" createVehicleLocal [0,0,0];
_obj setDir 214.02074;
_obj setPos [6315.6763, 7841.8965];
_obj = "Camp_EP1" createVehicleLocal [0,0,0];
_obj setDir 574.57404;
_obj setPos [6330.9556, 7831.4258];
_obj = "Land_tent_east" createVehicleLocal [0,0,0];
_obj setDir 216.2215;
_obj setPos [6320.0742, 7797.5137];
_obj = "CampEast_EP1" createVehicleLocal [0,0,0];
_obj setDir -56.676376;
_obj setPos [6304.1455, 7843.9409];
_obj = "CampEast_EP1" createVehicleLocal [0,0,0];
_obj setDir 844.86273;
_obj setPos [6337.02, 7822.1895];
_obj = "Land_GuardShed" createVehicleLocal [0,0,0];
_obj setDir 127.54086;
_obj setPos [6300.7017, 7800.2729];
_obj = "Land_Fire_barrel" createVehicleLocal [0,0,0];
_obj setPos [6309.9814, 7800.6313];
_obj = "AmmoCrates_NoInteractive_Large" createVehicleLocal [0,0,0];
_obj setDir 211.38748;
_obj setPos [6321.2383, 7798.9302];
_obj = "Camp_EP1" createVehicleLocal [0,0,0];
_obj setDir 574.63867;
_obj setPos [6324.0571, 7836.3125];
_obj = "Land_covering_hut_big_EP1" createVehicleLocal [0,0,0];
_obj setDir 38.268478;
_obj setPos [6317.2676, 7788.2417];
_obj = "Rubbish1" createVehicleLocal [0,0,0];
_obj setDir -66.023567;
_obj setPos [4017.4268, 11670.082];
_obj = "Hedgehog_EP1" createVehicleLocal [0,0,0];
_obj setPos [4057.1663, 11635.8];
_obj = "Land_Toilet" createVehicleLocal [0,0,0];
_obj setDir 306.56555;
_obj setPos [6302.8491, 7793.8257];
_obj = "Misc_palletsfoiled" createVehicleLocal [0,0,0];
_obj setDir 16.434511;
_obj setPos [6319.2056, 7787.5439];
_obj = "Land_Fire_barrel" createVehicleLocal [0,0,0];
_obj setPos [6320.9531, 7787.0967];
_obj = "Land_transport_kiosk_EP1" createVehicleLocal [0,0,0];
_obj setDir 487.48059;
_obj setPos [6311.8315, 7793.1309];
_obj = "Fort_Crate_wood" createVehicleLocal [0,0,0];
_obj setDir 50.427696;
_obj setPos [6322.8394, 7791.6792];
_obj = "Land_transport_crates_EP1" createVehicleLocal [0,0,0];
_obj setDir 285.36954;
_obj setPos [6317.2295, 7803.6357];
_obj = "Info_Board_EP1" createVehicleLocal [0,0,0];
_obj setDir -55.524353;
_obj setPos [11457.569, 11360.669];
_obj = "Info_Board_EP1" createVehicleLocal [0,0,0];
_obj setDir 469.56882;
_obj setPos [4086.2542, 11662.404];
_obj = "Info_Board_EP1" createVehicleLocal [0,0,0];
_obj setDir 486.70212;
_obj setPos [6310.2837, 7797.7686];
_obj = "Land_Fire_barrel" createVehicleLocal [0,0,0];
_obj setPos [4358.5767, 2260.3745];
_obj = "Land_Fire_barrel" createVehicleLocal [0,0,0];
_obj setPos [13533.103, 6358.1616];
_obj = "HeliHEmpty" createVehicleLocal [0,0,0];
_obj setPos [7983.9741, 2890.6536];
_obj = "MASH_EP1" createVehicleLocal [0,0,0];
_obj setDir 207.76485;
_obj setPos [4836.6572, 2528.4377];
_obj = "Camp_EP1" createVehicleLocal [0,0,0];
_obj setDir 567.49945;
_obj setPos [4827.6084, 2532.1213];
_obj = "CampEast_EP1" createVehicleLocal [0,0,0];
_obj setDir 334.10687;
_obj setPos [4833.8086, 2508.781];
_obj = "Land_Fire_barrel" createVehicleLocal [0,0,0];
_obj setDir -6.2675123;
_obj setPos [4836.3447, 2519.4587];
_obj = "Camp_EP1" createVehicleLocal [0,0,0];
_obj setDir 574.28497;
_obj setPos [4845.7427, 2522.3279];
_obj = "Land_CamoNetB_EAST" createVehicleLocal [0,0,0];
_obj setDir 25.231472;
_obj setPos [12948.259, 12766.059];
_obj = "Misc_cargo_cont_net2" createVehicleLocal [0,0,0];
_obj setDir 122.42809;
_obj setPos [12948.999, 12771.618];
_obj = "Land_Barrel_water" createVehicleLocal [0,0,0];
_obj setPos [12946.395, 12769.803];
_obj = "Misc_cargo_cont_small" createVehicleLocal [0,0,0];
_obj setDir 0.041445225;
_obj setPos [12944.525, 12769.121];
_obj = "FoldTable" createVehicleLocal [0,0,0];
_obj setDir 6.6874695;
_obj setPos [12946.452, 12765.858];
_obj = "FoldChair" createVehicleLocal [0,0,0];
_obj setDir -31.554836;
_obj setPos [12946.147, 12768.145];
_obj = "RU_WarfareBUAVterminal" createVehicleLocal [0,0,0];
_obj setDir -24.982422;
_obj setPos [4052.8269, 11662.361];
_obj = "ASC_EU_LHVOld" createVehicleLocal [0,0,0];
_obj setDir 140.55763;
_obj setPos [4088.1907, 11661.583];
_obj = "ASC_EU_LHVOld" createVehicleLocal [0,0,0];
_obj setDir -179.85927;
_obj setPos [4060.8157, 11685.167];
_obj = "ASC_EU_LHVOld" createVehicleLocal [0,0,0];
_obj setDir 31.444944;
_obj setPos [4040.7114, 11668.369];
_obj = "ASC_EU_LHVOld" createVehicleLocal [0,0,0];
_obj setDir 368.31775;
_obj setPos [4057.0989, 11661.225];
_obj = "ASC_EU_LHVOld" createVehicleLocal [0,0,0];
_obj setDir 286.43555;
_obj setPos [6296.958, 7801.4048];
_obj = "ASC_EU_LHVOld" createVehicleLocal [0,0,0];
_obj setDir 838.61414;
_obj setPos [6317.2036, 7814.6909];
_obj = "ASC_EU_LHVOld" createVehicleLocal [0,0,0];
_obj setDir 190.09235;
_obj setPos [6314.8608, 7792.957];
_obj = "ASC_EU_LHVOld" createVehicleLocal [0,0,0];
_obj setDir 127.9906;
_obj setPos [11458.806, 11363.813];
_obj = "ASC_EU_LHVOld" createVehicleLocal [0,0,0];
_obj setDir 133.16025;
_obj setPos [11449.293, 11348.902];
_obj = "HeliHEmpty" createVehicleLocal [0,0,0];
_obj setPos [1617.7074, 7773.3115];
_obj = "HeliHEmpty" createVehicleLocal [0,0,0];
_obj setPos [12072.687, 12667.292];
_obj = "MAP_garaz_mala" createVehicleLocal [0,0,0];
_obj setDir 305.73865;
_obj setPos [6301.0474, 7798.4751];
_obj = "MAP_garaz_mala" createVehicleLocal [0,0,0];
_obj setDir 307.24384;
_obj setPos [6295.7153, 7791.561];
_obj = "HeliHEmpty" createVehicleLocal [0,0,0];
_obj setPos [6292.998, 7806.4375];
_obj = "FoldChair" createVehicleLocal [0,0,0];
_obj setDir 216.27287;
_obj setPos [12060.701, 12635.938];
_obj = "FoldTable" createVehicleLocal [0,0,0];
_obj setDir 17.306128;
_obj setPos [12061.653, 12636.994];
_obj = "HeliHEmpty" createVehicleLocal [0,0,0];
_obj setPos [13473.405, 5439.6479];
_obj = "HeliHEmpty" createVehicleLocal [0,0,0];
_obj setDir -6.2353768;
_obj setPos [4053.6313, 11671.396];
_obj = "MAP_garaz_mala" createVehicleLocal [0,0,0];
_obj setDir 21.845457;
_obj setPos [4036.7148, 11664.595];
_obj = "Sign_1L_Firstaid" createVehicleLocal [0,0,0];
_obj setDir 217.96779;
_obj setPos [4058.7043, 11660.961];
_obj = "Land_sunshade_EP1" createVehicleLocal [0,0,0];
_obj setPos [4059.8516, 11660.219];
_obj = "HeliHEmpty" createVehicleLocal [0,0,0];
_obj setDir -111.72584;
_obj setPos [11455.53, 11341.231];
_obj = "Base_WarfareBBarrier10xTall" createVehicleLocal [0,0,0];
_obj setDir 35.687778;
_obj setPos [6306.6904, 7787.5947];
_obj = "Base_WarfareBBarrier10xTall" createVehicleLocal [0,0,0];
_obj setDir 34.820972;
_obj setPos [6319.2407, 7778.6885];
_obj = "Land_CncBlock_D" createVehicleLocal [0,0,0];
_obj setDir 93.599457;
_obj setPos [6324.8804, 7781.7441];
_obj = "Land_CncBlock_D" createVehicleLocal [0,0,0];
_obj setDir 68.962952;
_obj setPos [6324.3003, 7785.7813];
_obj = "Base_WarfareBBarrier10xTall" createVehicleLocal [0,0,0];
_obj setDir 125.62857;
_obj setPos [6312.1953, 7810.5107];
_obj = "MAP_garaz_mala" createVehicleLocal [0,0,0];
_obj setDir 395.83041;
_obj setPos [11443.267, 11338.436];
_obj = "MAP_A_Castle_Bastion" createVehicleLocal [0,0,0];
_obj setDir 34.188072;
_obj setPos [11470.683, 11367.538];
_obj = "MAP_A_Castle_Gate" createVehicleLocal [0,0,0];
_obj setDir -54.45937;
_obj setPos [11447.629, 11358.183];
_obj = "MAP_A_Castle_Stairs_A" createVehicleLocal [0,0,0];
_obj setDir 31.414593;
_obj setPos [11435.725, 11352.75];
_obj = "MAP_A_Castle_Bastion" createVehicleLocal [0,0,0];
_obj setDir 215.50694;
_obj setPos [11449.215, 11335.983];
_obj = "Land_Bench_EP1" createVehicleLocal [0,0,0];
_obj setDir -59.041649;
_obj setPos [11472.618, 11371.762];
_obj = "Sign_1L_Firstaid" createVehicleLocal [0,0,0];
_obj setDir 33.089531;
_obj setPos [11473.339, 11369.769];
_obj = "Misc_cargo_cont_net1" createVehicleLocal [0,0,0];
_obj setPos [6323.252, 7780.0688];
_obj = "HeliHEmpty" createVehicleLocal [0,0,0];
_obj setDir -6.2353768;
_obj setPos [4037.304, 11673.5];
_obj = "Hhedgehog_concreteBig" createVehicleLocal [0,0,0];
_obj setDir -65.721718;
_obj setPos [4091.625, 11663.692];
_obj = "HeliHCivil" createVehicleLocal [0,0,0];
_obj setPos [12915.702, 12760.794];
_obj = "Concrete_Wall_EP1" createVehicleLocal [0,0,0];
_obj setDir 67.135719;
_obj setPos [6311.124, 7801.1855];
_obj = "Misc_concrete_High" createVehicleLocal [0,0,0];
_obj setDir -158.27872;
_obj setPos [6326.7847, 7793.499];
_obj = "PowGen_Big" createVehicleLocal [0,0,0];
_obj setDir -414.08893;
_obj setPos [6318.1919, 7806.4321];
_obj = "Land_BagFenceRound" createVehicleLocal [0,0,0];
_obj setDir 128.79018;
_obj setPos [6295.6436, 7804.3223];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -142.23015;
_obj setPos [13861.844, 11779.874];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -80.248177;
_obj setPos [13822.522, 11756.364];
_obj = "MAP_R2_RockTower" createVehicleLocal [0,0,0];
_obj setDir -211.84564;
_obj setPos [13831.841, 11778.499];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir 146.59256;
_obj setPos [13844.757, 11776, 11.779192];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -130.15675;
_obj setPos [13836.722, 11733.236];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -39.579979;
_obj setPos [13843.052, 11772.346];
_obj = "MAP_R2_Rock1" createVehicleLocal [0,0,0];
_obj setDir 57.314457;
_obj setPos [13848.191, 11705.276];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir 117.47377;
_obj setPos [13857, 11752.611, 11.892877];
_obj = "MAP_R2_RockTower" createVehicleLocal [0,0,0];
_obj setDir 81.740479;
_obj setPos [13867.87, 11753.702];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -89.869354;
_obj setPos [13827.892, 11722.244];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -217.70052;
_obj setPos [13880.992, 11792.832];
_obj = "MAP_R2_RockTower" createVehicleLocal [0,0,0];
_obj setPos [13827.258, 11770.918];
_obj = "MAP_R2_Rock1" createVehicleLocal [0,0,0];
_obj setDir 68.549126;
_obj setPos [13817.806, 11746.111];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -142.23015;
_obj setPos [13861.844, 11779.874];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -80.248177;
_obj setPos [13822.522, 11756.364];
_obj = "MAP_R2_RockTower" createVehicleLocal [0,0,0];
_obj setDir -211.84564;
_obj setPos [13831.841, 11778.499];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir 146.59256;
_obj setPos [13844.757, 11776, 11.779192];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -130.15675;
_obj setPos [13836.722, 11733.236];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -39.579979;
_obj setPos [13843.052, 11772.346];
_obj = "MAP_R2_Rock1" createVehicleLocal [0,0,0];
_obj setDir 57.314457;
_obj setPos [13848.191, 11705.276];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir 117.47377;
_obj setPos [13857, 11752.611, 11.892877];
_obj = "MAP_R2_RockTower" createVehicleLocal [0,0,0];
_obj setDir 81.740479;
_obj setPos [13867.87, 11753.702];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -89.869354;
_obj setPos [13827.892, 11722.244];
_obj = "MAP_R2_RockWall" createVehicleLocal [0,0,0];
_obj setDir -217.70052;
_obj setPos [13880.992, 11792.832];
_obj = "MAP_R2_RockTower" createVehicleLocal [0,0,0];
_obj setPos [13827.258, 11770.918];
_obj = "MAP_R2_Rock1" createVehicleLocal [0,0,0];
_obj setDir 68.549126;
_obj setPos [13817.806, 11746.111];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -3.4847393;
_obj setPos [2017.127, 2234.052];
_obj = "Old_bike_TK_CIV_EP1" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -1.9052525;
_obj setPos [2016.3324, 2234.0503];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -4.3299708;
_obj setPos [2015.6284, 2233.9507];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -186.09492;
_obj setPos [5844.5674, 2205.7986];
_obj = "Old_bike_TK_CIV_EP1" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir 171.95578;
_obj setPos [5843.856, 2205.6763];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -193.04565;
_obj setPos [5858.873, 2209.2131];
_obj = "Old_bike_TK_INS_EP1" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir 171.14833;
_obj setPos [5843.1328, 2205.4211, -1];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir 169.52;
_obj setPos [5842.3545, 2205.4436];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -162.24776;
_obj setPos [5857.4561, 2206.2332];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir 197.97243;
_obj setPos [5858.2798, 2206.3848];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir 169.74715;
_obj setPos [6697.8945, 3008.1719];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -184.46996;
_obj setPos [6698.4961, 3008.5449];
_obj = "Old_bike_TK_INS_EP1" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -53.567562;
_obj setPos [9515.4795, 2002.8501];
_obj = "Old_bike_TK_CIV_EP1" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -52.236019;
_obj setPos [9515.4541, 2001.9832];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir 3.3925533;
_obj setPos [9517.5156, 2005.6592];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -105.32744;
_obj setPos [12050.572, 3437.8838];
_obj = "MMT_Civ" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -108.12479;
_obj setPos [12050.867, 3437.0762];
_obj = "Old_bike_TK_INS_EP1" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -248.10735;
_obj setPos [13370.06, 6619.5703];
_obj = "Old_bike_TK_INS_EP1" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -247.73439;
_obj setPos [13370.319, 6620.2427];
_obj = "MMT_USMC" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -16.606133;
_obj setPos [13370.867, 6612.8164];
_obj = "MMT_USMC" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -245.84042;
_obj setPos [13370.604, 6620.9619];
_obj = "MMT_USMC" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -262.64703;
_obj setPos [12980.782, 10083.104];
_obj = "MMT_USMC" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -257.17966;
_obj setPos [12980.888, 10083.768];
_obj = "MMT_USMC" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -256.38861;
_obj setPos [12981.052, 10084.443];
_obj = "Old_bike_TK_INS_EP1" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -257.99188;
_obj setPos [12980.979, 10076.266];
_obj = "Old_bike_TK_INS_EP1" createVehicleLocal [0,0,0];
_obj setVehicleLock "LOCKED";
_obj setDir -257.5415;
_obj setPos [12981.125, 10077.023];
_obj = "FoldChair" createVehicleLocal [0,0,0];
_obj setDir -199.38173;
_obj setPos [12048.792, 3436.322];

Link to comment
Share on other sites

From what i understood is that mission sided buildings will not be recognized/registered by AI Units. (EMS, WAI etc.) I remember reading this somewhere, anyone know if true? However if you have a server without AI the only real downside would be the +kb's to the mission.  :P

 

Ah good one, yeah that would be logical. But quess it could be fixed by also spawning them as a local object on the server, that way it shouldn't have to pass any info about them through the network and you should still benefit from less network activity.

Link to comment
Share on other sites

If you want to spawn buildings clientside only you only need to add an extra few lines of code, just 1kb at most.

Rather than actually doing all the mission.sqf style spawning on the client, just create an array of buildings and positions server side and PV them to the client. Clientside, just wait for the variable then do some magic. Example-

Serverside-

biglistobuildings =
[
    ["thisbuilding",[xxx,yyy,zzz]],
    ["thisbuilding",[xxx,yyy,zzz]],
    ["thisbuilding",[xxx,yyy,zzz]],
    ["thisbuilding",[xxx,yyy,zzz]],
    ["thisbuilding",[xxx,yyy,zzz]]
];

publicVariable "biglistobuildings";

Clientside-

waitUntil {!isNil "biglistobuildings"};
{(_x select 0) createVehicleLocal (_x select 1)} forEach biglistobuildings;
biglistobuildings = nil;

Possibly also useful on servers running just missions, as they tend not to spawn so close to buildings you probably won't see the effects of the AI ignoring buildings. There would come a point though when PVing the array could be a burden if the array was GIGANTIC.

 

I was thinking of trying to mix this with a system where only buildings that are in direct view would be physical, any others would just be virtual.

Link to comment
Share on other sites

If you want to spawn buildings clientside only you only need to add an extra few lines of code, just 1kb at most.

Rather than actually doing all the mission.sqf style spawning on the client, just create an array of buildings and positions server side and PV them to the client. Clientside, just wait for the variable then do some magic. Example-

Serverside-

biglistobuildings =
[
    ["thisbuilding",[xxx,yyy,zzz]],
    ["thisbuilding",[xxx,yyy,zzz]],
    ["thisbuilding",[xxx,yyy,zzz]],
    ["thisbuilding",[xxx,yyy,zzz]],
    ["thisbuilding",[xxx,yyy,zzz]]
];

publicVariable "biglistobuildings";

Clientside-

waitUntil {!isNil "biglistobuildings"};
{(_x select 0) createVehicleLocal (_x select 1)} forEach biglistobuildings;
biglistobuildings = nil;

Possibly also useful on servers running just missions, as they tend not to spawn so close to buildings you probably won't see the effects of the AI ignoring buildings. There would come a point though when PVing the array could be a burden if the array was GIGANTIC.

 

I was thinking of trying to mix this with a system where only buildings that are in direct view would be physical, any others would just be virtual.

 

Pretty cheeky solution, like it!

 

--

 

Think the hard part about that is making sure the function that calculates whether or not to spawn a building is not resource intensive. You could start with something like this.

/* SERVER */

allobjects = [
    ["thisbuilding",[xxx,yyy,zzz]],
    ["thisbuilding",[xxx,yyy,zzz]],
    ["thisbuilding",[xxx,yyy,zzz]]
];

publicVariable "allobjects";

/* CLIENT */

private ["_spawned","_object"];

waitUntil{!isNil "allobjects"};

_spawned = [];

while{true} do {

    {
        if(player distance (_x select 1) < 1250) then {
            _object = (_x select 0) createVehicleLocal (_x select 1);
            _spawned set[count _spawned,_object];
        };
    } count allobjects;

    {
        if(player distance _x > 1250) then {
            _spawned set [_x,-1];
            deleteVehicle _x;
        };
    } count _spawned;

    uiSleep 1;

};
Link to comment
Share on other sites

I was originally thinking of a range system, but then I see a big flaw in it. If you were to be inside your base, the walls would be physical for you. But for the chap 1250m away with his Lapua they wouldn't be there and he could watch every move you make and potentially direct his team mates into advantageous assault positions. This means that whoever is inside their base is being punished through no fault of their own. On a PvE server this wouldn't make a blind bit of difference though. I suppose there is always the option of upping the range to past most servers draw distance. It would be great if there could be a way to only render (spawn) objects that are in line of sight only, the issue is doing it without draining the client computer.

 

EDIT: Think i've just thought of a way to do the line of sight thing, i'll give it a go! :D

EDIT2: So I managed to make a VERY primitive system that deals with objects in line of sight. Right now I'm just trying it with 8 wood walls build in an octagonal shape and it's working kinda alright. :D :D

Link to comment
Share on other sites

You might want to checkout the zombie_spawn.sqf file. It has some code in it that determines line of sight.

 

Still working on the object spawn stuff. This is what i got so far..

    private ["_spawned","_object","_objects"];

    waitUntil{!isNil "allobjects"};

    _objects = allobjects;
    _spawned = [];

    diag_log(_objects);

    alobjects = nil;

    while{true} do {

        {
            diag_log format["OBJECT %1 - DISTANCE TO PLAYER %2",_x,(player distance (_x select 1))];

            if(player distance (_x select 1) < 1250) then {
                _object = (_x select 0) createVehicleLocal (_x select 1);
                _object setDir (_x select 2);

                if(count _x > 3 && (_x select 3)) then {
                    _object setVehicleLock "LOCKED";
                };

                _spawned set[count _spawned,[_object,_x]];
                _objects set[_x,-1];
            };
        } count _objects;

        {
            if(player distance (_x select 0) > 1250) then {
                _spawned set[_x,-1];
                _objects set[count _objects, (_x select 1)];
                deleteVehicle (_x select 0);
            };
        } count _spawned;

        sleep 60; // TESTING
    };
 
Link to comment
Share on other sites

Looking good man!

So I just tried my LOS thing with 400 wood walls and things went all cray cray. It worked though, kind of, slighty. Just not good enough for server, more a proof of concept.

I was using hideObject to avoid having to process extra while using createVehicle. The issue I've really got is that you just cant work out what's in your LOS if the object is hidden or just doesn't exist. The other issue is that your FOV fluctuates throughout play time, with zooming in and out and such so it's basically impossible to know the exact values needed to work out what is in your LOS.

It did work kinda, but with servers being popular and having hundreds of objects you'd see things popping in and out which is just awful!

BI! Gimme a damn lineIntersects function that recognises hidden objects! Waaaaaaaaa

Link to comment
Share on other sites

So I started playing around with distance based 'popping' of objects and I found a nice way of doing it. I'm using hideObject with this, hoping it may save processing power because it doesn't have to perform all the basic init stuff that happens when creating a vehicle. I also implemented a bit of an "unfair-advantage-breaking" thing where if another player is near an object that is past your range the object will stay visible to prevent exploits. Not actually tried that anti-exploit bit yet, I'm only on my own on my dev server.

private ["_object"];
while {true} do {
    {
        if ((player distance _x) < 1250) then {
	    _x hideObject false;
	} else {
	    _object = _x;
	    {
	        if ((_x distance _object) < 150) exitWith {
		    _object hideObject false;
		};
		_object hideObject true;
	    } forEach playableUnits;
        };
    } forEach allObjects;
};

It'd be nice to see how efficient we could get this to run at high object counts. Something like this could be great for server performance. Maybe even transforming database stored buildables to this system. It'd allow people to build their monstrous bases without lagging everybody else too.

Link to comment
Share on other sites

True, well i got the other thingie working. Not sure about performance gains, but I'm not noticing any stutters..

 

    _objects = [
        ["Land_Toilet",[11467.155,11341.848,0],305.48679],
        ["ClutterCutter_EP1",[11467.027,11364.092,0],-7.4119859],
        ["ClutterCutter_EP1",[11459.176,11355.807,0],-7.4119859],
        ["Land_Market_stalls_01_EP1",[11466.341,11354.129,0],485.22388],
        ["Land_Barrel_water",[11461.964,11350.411,0],-7.4119859],
        ["LADAWreck",[11446.667,11339.981,0],-157.55025],
        ["AmmoCrates_NoInteractive_Large",[11465.908,11356.04,0],36.088291],
        ["SmallTable",[11462.709,11365.512,0],-49.904377],
        ["Base_WarfareBBarrier10xTall",[11468.974,11348.18,0],-54.695484],
        ["Land_covering_hut_big_EP1",[11462.838,11365.436,0],-48.673214],
        ["Misc_palletsfoiled",[11461.064,11364.81,0],51.760998],
        ["AmmoCrates_NoInteractive_Large",[11463.023,11367.06,0],43.500278],
        ["Land_covering_hut_EP1",[11471.802,11370.016,0],209.26443],
        ["Land_Campfire",[11469.859,11367.099,0],0],
        ["C130J_wreck_EP1",[3974.3894,11601.295,0],57.059044],
        ["Hhedgehog_concreteBig",[4078.2883,11649.253,0],-63.284313],
        ["ZavoraAnim",[4084.1555,11659.839,0],-60.360134],
        ["LADAWreck",[4048.9612,11667.128,0],60.312458],
        ["T72Wreck",[3966.9878,11639.222,0],0],
        ["T72WreckTurret",[3993.5701,11635.519,0],-99.873833],
        ["Mi8Wreck",[3993.9053,11674.921,0],0],
        ["Sign_1L_Firstaid",[6314.689,7791.6929,0],40.906422],
        ["Sign_Danger",[4027.1787,11657.261,0],49.790733],
        ["Sign_Danger",[4057.9753,11638.428,0],0],
        ["Sign_Danger",[4042.5051,11647.118,0],35.04166],
        ["Sign_Danger",[4019.4063,11664.92,0],26.150373],
        ["Land_fort_rampart",[4051.1519,11642.453,0],201.85086],
        ["Land_fort_rampart",[4034.2476,11651.141,0],219.74416],
        ["Land_fort_rampart",[4021.0457,11662.883,0],226.36101],
        ["Hedgehog_EP1",[4025.1404,11654.706,0],0],
        ["Hedgehog_EP1",[4039.8711,11643.114,0],0],
        ["Hedgehog_EP1",[4012.9392,11668.524,0],0],
        ["AmmoCrates_NoInteractive_Large",[4062.6428,11682.021,0],72.342918],
        ["Misc_Backpackheap",[4074.3342,11676.928,0],345.89008],
        ["Land_CamoNetVar_EAST",[4060.9595,11680.576,0],-6.4849606],
        ["Land_GuardShed",[4086.96,11659.943,0],-67.0504],
        ["UralWreck",[3878.5791,11678.632,0],51.630379],
        ["Land_Bucket_EP1",[4073.1187,11679.04,0],326.27802],
        ["WoodChair",[4064.7173,11680.602,0],13.38733],
        ["Land_Pillow_EP1",[4072.1333,11677.803,0],363.94629],
        ["FoldTable",[4063.4116,11679.616,0],68.100845],
        ["FoldChair",[4057.5093,11678.485,0],-105.98519],
        ["FoldTable",[4058.8311,11678.623,0],-93.232597],
        ["Land_Misc_Well_C_EP1",[4085.0645,11669.402,0],-94.223312],
        ["Bunker_PMC",[4025.1743,11676.713,0],-73.730324],
        ["Land_Toilet",[4027.1782,11668.193,0],13.455784],
        ["Land_Misc_IronPipes_EP1",[4059.2703,11657.253,0],0],
        ["Land_Reservoir_EP1",[4057.9426,11660.814,0],173.80089],
        ["Land_stand_meat_EP1",[4073.5352,11679.348,0],291.43402],
        ["Land_stand_small_EP1",[4071.7622,11675.991,0],381.98224],
        ["Land_tires_EP1",[4052.7512,11666.596,0],-37.201057],
        ["Land_transport_crates_EP1",[4064.7468,11682.927,0],39.652706],
        ["ClutterCutter_EP1",[4054.3711,11665.827,0],0],
        ["ClutterCutter_EP1",[4053.7493,11671.434,0],1.0253659],
        ["Pile_of_wood",[4052.1362,11666.497,0],-297.9014],
        ["AmmoCrates_NoInteractive_Medium",[4058.4089,11680.73,0],-57.903767],
        ["Land_cages_EP1",[4074.7046,11681.784,0],363.94629],
        ["Land_covering_hut_EP1",[4074.146,11679.42,0],207.60707],
        ["Land_covering_hut_EP1",[4072.7244,11676.598,0],387.25079],
        ["Land_Fire_barrel",[4069.3713,11677.529,0],-37.201057],
        ["SmallTable",[6313.7319,7790.9473,0],40.010624],
        ["Land_Water_pipe_EP1",[6314.9482,7790.9653,0],252.18881],
        ["Land_Table_EP1",[4041.9973,11669.914,0],-59.92321],
        ["Land_Cabinet_EP1",[6314.9282,7792.3154,0],128.33586],
        ["Land_Crates_stack_EP1",[4075.2336,11678.565,0],393.47345],
        ["Base_WarfareBBarrier10xTall",[6316.4673,7792.5254,0],35.687778],
        ["MASH_EP1",[6315.6763,7841.8965,0],214.02074],
        ["Camp_EP1",[6330.9556,7831.4258,0],574.57404],
        ["Land_tent_east",[6320.0742,7797.5137,0],216.2215],
        ["CampEast_EP1",[6304.1455,7843.9409,0],-56.676376],
        ["CampEast_EP1",[6337.02,7822.1895,0],844.86273],
        ["Land_GuardShed",[6300.7017,7800.2729,0],127.54086],
        ["Land_Fire_barrel",[6309.9814,7800.6313,0],0],
        ["AmmoCrates_NoInteractive_Large",[6321.2383,7798.9302,0],211.38748],
        ["Camp_EP1",[6324.0571,7836.3125,0],574.63867],
        ["Land_covering_hut_big_EP1",[6317.2676,7788.2417,0],38.268478],
        ["Rubbish1",[4017.4268,11670.082,0],-66.023567],
        ["Hedgehog_EP1",[4057.1663,11635.8,0],0],
        ["Land_Toilet",[6302.8491,7793.8257,0],306.56555],
        ["Misc_palletsfoiled",[6319.2056,7787.5439,0],16.434511],
        ["Land_Fire_barrel",[6320.9531,7787.0967,0],0],
        ["Land_transport_kiosk_EP1",[6311.8315,7793.1309,0],487.48059],
        ["Fort_Crate_wood",[6322.8394,7791.6792,0],50.427696],
        ["Land_transport_crates_EP1",[6317.2295,7803.6357,0],285.36954],
        ["Info_Board_EP1",[11457.569,11360.669,0],-55.524353],
        ["Info_Board_EP1",[4086.2542,11662.404,0],469.56882],
        ["Info_Board_EP1",[6310.2837,7797.7686,0],486.70212],
        ["Land_Fire_barrel",[4358.5767,2260.3745,0],0],
        ["Land_Fire_barrel",[13533.103,6358.1616,0],0],
        ["HeliHEmpty",[7983.9741,2890.6536,0],0],
        ["MASH_EP1",[4836.6572,2528.4377,0],207.76485],
        ["Camp_EP1",[4827.6084,2532.1213,0],567.49945],
        ["CampEast_EP1",[4833.8086,2508.781,0],334.10687],
        ["Land_Fire_barrel",[4836.3447,2519.4587,0],-6.2675123],
        ["Camp_EP1",[4845.7427,2522.3279,0],574.28497],
        ["Land_CamoNetB_EAST",[12948.259,12766.059,0],25.231472],
        ["Misc_cargo_cont_net2",[12948.999,12771.618,0],122.42809],
        ["Land_Barrel_water",[12946.395,12769.803,0],0],
        ["Misc_cargo_cont_small",[12944.525,12769.121,0],0.041445225],
        ["FoldTable",[12946.452,12765.858,0],6.6874695],
        ["FoldChair",[12946.147,12768.145,0],-31.554836],
        ["RU_WarfareBUAVterminal",[4052.8269,11662.361,0],-24.982422],
        ["ASC_EU_LHVOld",[4088.1907,11661.583,0],140.55763],
        ["ASC_EU_LHVOld",[4060.8157,11685.167,0],-179.85927],
        ["ASC_EU_LHVOld",[4040.7114,11668.369,0],31.444944],
        ["ASC_EU_LHVOld",[4057.0989,11661.225,0],368.31775],
        ["ASC_EU_LHVOld",[6296.958,7801.4048,0],286.43555],
        ["ASC_EU_LHVOld",[6317.2036,7814.6909,0],838.61414],
        ["ASC_EU_LHVOld",[6314.8608,7792.957,0],190.09235],
        ["ASC_EU_LHVOld",[11458.806,11363.813,0],127.9906],
        ["ASC_EU_LHVOld",[11449.293,11348.902,0],133.16025],
        ["HeliHEmpty",[1617.7074,7773.3115,0],0],
        ["HeliHEmpty",[12072.687,12667.292,0],0],
        ["MAP_garaz_mala",[6301.0474,7798.4751,0],305.73865],
        ["MAP_garaz_mala",[6295.7153,7791.561,0],307.24384],
        ["HeliHEmpty",[6292.998,7806.4375,0],0],
        ["FoldChair",[12060.701,12635.938,0],216.27287],
        ["FoldTable",[12061.653,12636.994,0],17.306128],
        ["HeliHEmpty",[13473.405,5439.6479,0],0],
        ["HeliHEmpty",[4053.6313,11671.396,0],-6.2353768],
        ["MAP_garaz_mala",[4036.7148,11664.595,0],21.845457],
        ["Sign_1L_Firstaid",[4058.7043,11660.961,0],217.96779],
        ["Land_sunshade_EP1",[4059.8516,11660.219,0],0],
        ["HeliHEmpty",[11455.53,11341.231,0],-111.72584],
        ["Base_WarfareBBarrier10xTall",[6306.6904,7787.5947,0],35.687778],
        ["Base_WarfareBBarrier10xTall",[6319.2407,7778.6885,0],34.820972],
        ["Land_CncBlock_D",[6324.8804,7781.7441,0],93.599457],
        ["Land_CncBlock_D",[6324.3003,7785.7813,0],68.962952],
        ["Base_WarfareBBarrier10xTall",[6312.1953,7810.5107,0],125.62857],
        ["MAP_garaz_mala",[11443.267,11338.436,0],395.83041],
        ["MAP_A_Castle_Bastion",[11470.683,11367.538,0],34.188072],
        ["MAP_A_Castle_Gate",[11447.629,11358.183,0],-54.45937],
        ["MAP_A_Castle_Stairs_A",[11435.725,11352.75,0],31.414593],
        ["MAP_A_Castle_Bastion",[11449.215,11335.983,0],215.50694],
        ["Land_Bench_EP1",[11472.618,11371.762,0],-59.041649],
        ["Sign_1L_Firstaid",[11473.339,11369.769,0],33.089531],
        ["Misc_cargo_cont_net1",[6323.252,7780.0688,0],0],
        ["HeliHEmpty",[4037.304,11673.5,0],-6.2353768],
        ["Hhedgehog_concreteBig",[4091.625,11663.692,0],-65.721718],
        ["HeliHCivil",[12915.702,12760.794,0],0],
        ["Concrete_Wall_EP1",[6311.124,7801.1855,0],67.135719],
        ["Misc_concrete_High",[6326.7847,7793.499,0],-158.27872],
        ["PowGen_Big",[6318.1919,7806.4321,0],-414.08893],
        ["Land_BagFenceRound",[6295.6436,7804.3223,0],128.79018],
        ["MAP_R2_RockWall",[13861.844,11779.874,0],-142.23015],
        ["MAP_R2_RockWall",[13822.522,11756.364,0],-80.248177],
        ["MAP_R2_RockTower",[13831.841,11778.499,0],-211.84564],
        ["MAP_R2_RockWall",[13844.757,11776,11.779192],146.59256],
        ["MAP_R2_RockWall",[13836.722,11733.236,0],-130.15675],
        ["MAP_R2_RockWall",[13843.052,11772.346,0],-39.579979],
        ["MAP_R2_Rock1",[13848.191,11705.276,0],57.314457],
        ["MAP_R2_RockWall",[13857,11752.611,11.892877],117.47377],
        ["MAP_R2_RockTower",[13867.87,11753.702,0],81.740479],
        ["MAP_R2_RockWall",[13827.892,11722.244,0],-89.869354],
        ["MAP_R2_RockWall",[13880.992,11792.832,0],-217.70052],
        ["MAP_R2_RockTower",[13827.258,11770.918,0],0],
        ["MAP_R2_Rock1",[13817.806,11746.111,0],68.549126],
        ["MAP_R2_RockWall",[13861.844,11779.874,0],-142.23015],
        ["MAP_R2_RockWall",[13822.522,11756.364,0],-80.248177],
        ["MAP_R2_RockTower",[13831.841,11778.499,0],-211.84564],
        ["MAP_R2_RockWall",[13844.757,11776,11.779192],146.59256],
        ["MAP_R2_RockWall",[13836.722,11733.236,0],-130.15675],
        ["MAP_R2_RockWall",[13843.052,11772.346,0],-39.579979],
        ["MAP_R2_Rock1",[13848.191,11705.276,0],57.314457],
        ["MAP_R2_RockWall",[13857,11752.611,11.892877],117.47377],
        ["MAP_R2_RockTower",[13867.87,11753.702,0],81.740479],
        ["MAP_R2_RockWall",[13827.892,11722.244,0],-89.869354],
        ["MAP_R2_RockWall",[13880.992,11792.832,0],-217.70052],
        ["MAP_R2_RockTower",[13827.258,11770.918,0],0],
        ["MAP_R2_Rock1",[13817.806,11746.111,0],68.549126],
        ["FoldChair",[12048.792,3436.322,0],-199.38173],
        ["MMT_Civ",[2017.127,2234.052,0],-3.4847393,true],
        ["MMT_Civ",[2015.6284,2233.9507,0],-4.3299708,true],
        ["MMT_Civ",[5844.5674,2205.7986,0],-186.09492,true],
        ["MMT_Civ",[5858.873,2209.2131,0],-193.04565,true],
        ["MMT_Civ",[5842.3545,2205.4436,0],169.52,true],
        ["MMT_Civ",[5857.4561,2206.2332,0],-162.24776,true],
        ["MMT_Civ",[5858.2798,2206.3848,0],197.97243,true],
        ["MMT_Civ",[6697.8945,3008.1719,0],169.74715,true],
        ["MMT_Civ",[6698.4961,3008.5449,0],-184.46996,true],
        ["MMT_Civ",[9517.5156,2005.6592,0],3.3925533,true],
        ["MMT_Civ",[12050.572,3437.8838,0],-105.32744,true],
        ["MMT_Civ",[12050.867,3437.0762,0],-108.12479,true],
        ["MMT_USMC",[13370.867,6612.8164,0],-16.606133,true],
        ["MMT_USMC",[13370.604,6620.9619,0],-245.84042,true],
        ["MMT_USMC",[12980.782,10083.104,0],-262.64703,true],
        ["MMT_USMC",[12980.888,10083.768,0],-257.17966,true],
        ["MMT_USMC",[12981.052,10084.443,0],-256.38861,true],
        ["Old_bike_TK_CIV_EP1",[2016.3324,2234.0503,0],-1.9052525,true],
        ["Old_bike_TK_CIV_EP1",[5843.856,2205.6763,0],171.95578,true],
        ["Old_bike_TK_INS_EP1",[5843.1328,2205.4211,0],171.14833,true],
        ["Old_bike_TK_INS_EP1",[9515.4795,2002.8501,0],-53.567562,true],
        ["Old_bike_TK_CIV_EP1",[9515.4541,2001.9832,0],-52.236019,true],
        ["Old_bike_TK_INS_EP1",[13370.06,6619.5703,0],-248.10735,true],
        ["Old_bike_TK_INS_EP1",[13370.319,6620.2427,0],-247.73439,true],
        ["Old_bike_TK_INS_EP1",[12980.979,10076.266,0],-257.99188,true],
        ["Old_bike_TK_INS_EP1",[12981.125,10077.023,0],-257.5415,true]
    ];
    _spawned = [];

    while{true} do {

        {

            if(player distance (_x select 1) < 2000) then {
                _object = (_x select 0) createVehicleLocal [0,0,0];
                _object setDir (_x select 2);
                _object setPos (_x select 1);

                if(count _x > 3 && (_x select 3)) then {
                    _object setVehicleLock "LOCKED";
                };

                _spawned set[count _spawned,[_object,_x]];
                _objects set[_forEachIndex,-1];
                _objects = _objects - [-1];
            };
        } forEach _objects;

        {
            if(player distance (_x select 0) > 2000) then {
                _spawned set[_forEachIndex,-1];
                _spawned = _spawned - [-1];
                _objects set[count _objects, (_x select 1)];
                deleteVehicle (_x select 0);
            };
        } forEach _spawned;

        sleep 5;
    };

Link to comment
Share on other sites

Okay made it a lot better now. Seems to be working perfectl. Going to convert all my map addons and see if it still works with 1000+ objects.

[] spawn {
    
    private ["_spawned","_object","_objects","_pos_player","_upd_range","_moved","_a","_r"];

    waitUntil{!isNil "allobjects"};

    _objects = allobjects;
    _spawned = [];
    _pos_player = [0,0,0];
    _upd_range = 200;

    while{true} do {

        _moved = _pos_player distance player;

        if(_moved > _upd_range) then { // Only update when player has moved at least _upd_range meters from his last saved position

            diag_log format["DYNAMIC OBJECTS: PLAYER HAS MOVED %1m, CHECKING FOR NEW/REMOVABLE OBJECTS",_moved];
            _pos_player = getPos player;

            _a = 0;
            _r = 0;

            {
                if(player distance (_x select 1) < 1500) then {
                    _object = (_x select 0) createVehicleLocal [0,0,0];
                    _object setDir (_x select 2);
                    _object setPos (_x select 1);

                    if(count _x > 3 && (_x select 3)) then {
                        _object setVehicleLock "LOCKED";
                    };

                    _a = _a + 1;

                    _spawned set[count _spawned,[_object,_x]];
                    _objects set[_forEachIndex,-1];
                };
            } forEach _objects;

            _objects = _objects - [-1];

            {
                if(player distance (_x select 0) > 1750) then {
                    _spawned set[_forEachIndex,-1];
                    _objects set[count _objects, (_x select 1)];
                    deleteVehicle (_x select 0);
                    _r = _r + 1;
                };
            } foreach _spawned;

            _spawned = _spawned - [-1];

            diag_log format["ADDED %1 OBJECTS - REMOVED %2 OBJECTS",_a,_r];

        } else {
            diag_log format["DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED %1m since last load",_moved];
        };

        if(_moved > _upd_range-(_upd_range/4)) then {
            sleep 2; // almost at the edge, updating faster
        } else {
            sleep 5;
        };

    };
    
};

Produces

"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 0.000179291m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 5.05452m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 5.05452m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 9.49233m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 9.49233m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 9.49233m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 35.9744m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 47.4656m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 47.4656m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 47.4656m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 78.8632m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 114.077m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 147.841m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 159.657m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 159.657m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 159.657m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 159.657m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 164.821m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 170.658m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 178.978m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 187.709m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 193.896m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 193.896m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 193.896m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 193.899m since last load"
"DYNAMIC OBJECTS: PLAYER HAS MOVED 201.089m, CHECKING FOR NEW/REMOVABLE OBJECTS"
"ADDED 0 OBJECTS - REMOVED 0 OBJECTS"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 7.11397m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 7.11397m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 32.4474m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 60.8295m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 65.109m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 65.109m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 65.109m since last load"
"DYNAMIC OBJECTS: PLAYER HAS MOVED 3168.36m, CHECKING FOR NEW/REMOVABLE OBJECTS" // --> TP TO BASH
"ADDED 28 OBJECTS - REMOVED 0 OBJECTS"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 2.40153m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 2.40153m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 2.40153m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 2.40153m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 2.40153m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 2.40153m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 8.47946m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 19.7517m since last load"
"DYNAMIC OBJECTS: PLAYER HAS MOVED 1107.81m, CHECKING FOR NEW/REMOVABLE OBJECTS" // --> TP AWAY FROM BASH (NOT FAR ENOUGH)
"ADDED 0 OBJECTS - REMOVED 0 OBJECTS"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 0m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 3.24934m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 7.20264m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 7.20264m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 7.20264m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 7.20264m since last load"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 7.20264m since last load"
"DYNAMIC OBJECTS: PLAYER HAS MOVED 1183.37m, CHECKING FOR NEW/REMOVABLE OBJECTS" // --> TP A BIT FURTHER (BASH OBJECTS GETTING REMOVED AGAIN)
"ADDED 0 OBJECTS - REMOVED 28 OBJECTS"
"DYNAMIC OBJECTS: PLAYER HAS ONLY MOVED 0m since last load"
Link to comment
Share on other sites

Not implemented on a live server yet. Converting all of my add-ons first (which takes forever since sublime is giving me a runaround with simple regexes :/)..

 

--

Actually i might just copy/paste the current array tons of times to simulate a greater load and do a ticktime diag to see how long each loop takes.

Link to comment
Share on other sites

Managed to trim down 600KB to 80KB (which even includes the default Epoch Chernarus objects) by redoing them.

 

---

 

So did some more work on this last night and this morning, managed to get it all working properly and it's pretty quick. Going to test it on our live server today. This is what i've done.

 

/dayz_server/mission/(map)/

 

1.) Replaced the mission.sqf file with objects.sqf and traders.sqf in my  folder.

 

mission.sqf

Build like this (example, most of the stuff removed)

"PVDZE_load_objects" addPublicVariableEventHandler {

    allObjects = [
        // CHERNARUS
        ["Land_Toilet",[11467.155,11341.848,0],305.48679],
        ["ClutterCutter_EP1",[11467.027,11364.092,0],-7.4119859],
        ["ClutterCutter_EP1",[11459.176,11355.807,0],-7.4119859],
        ["Land_Market_stalls_01_EP1",[11466.341,11354.129,0],485.22388],
        ["Land_Barrel_water",[11461.964,11350.411,0],-7.4119859],
        ["LADAWreck",[11446.667,11339.981,0],-157.55025],
        ["AmmoCrates_NoInteractive_Large",[11465.908,11356.04,0],36.088291],
        // OTMEL
        ["MAP_Ind_IlluminantTower",[11612.652,3262.8411,0],145.42014],
        ["MAP_Ind_IlluminantTower",[11685.693,3275.8567,0],161.90625],
        ["MAP_Ind_IlluminantTower",[11793.697,3285.0911,0],207.36856],
        ["MAP_Ind_IlluminantTower",[11502.676,3200.7322,0],145.42014],
        ["MAP_Ind_IlluminantTower",[11436.778,3160.4807,0],85.857452],
        // NEAF
        ["MAP_Ind_IlluminantTower",[11612.652,3262.8411,0],145.42014],
        ["MAP_Ind_IlluminantTower",[11685.693,3275.8567,0],161.90625],
        ["MAP_Ind_IlluminantTower",[11793.697,3285.0911,0],207.36856],
        ["MAP_Ind_IlluminantTower",[11502.676,3200.7322,0],145.42014],
        ["MAP_Ind_IlluminantTower",[11436.778,3160.4807,0],85.857452]
    ];

    owner (_this select 1) publicVariableClient "allObjects";
};
/MPMissions/(map)/init.sqf

2.) include them seperately inside the if (isServer) then

    _nil = execVM "\z\addons\dayz_server\missions\Epoch_Zombieland.Chernarus\objects.sqf";
    _nil = execVM "\z\addons\dayz_server\missions\Epoch_Zombieland.Chernarus\traders.sqf";
3.) add inside the if (!isDedicated) then { part

#include "init\client_init.sqf"
/MPMissions/(map)/init/client_init.sqf

4.) Create file and add this.

    [] spawn {

        private ["_objects","_total","_spawned","_upd_range","_pos_player","_object","_t","_moved","_a","_r"];

        PVDZE_load_objects = player;
        publicVariableServer "PVDZE_load_objects";

        waitUntil{!isNil "allObjects"};

        if(DZEdebug) then {    diag_log format["[DynObj] Receiving object from server took %1s",str (diag_tickTime - _t1)]; };

        waitUntil {!isNil "dayz_animalCheck"};

        _objects     = allObjects;
        allObjects     = nil;
        _total        = count _objects;
        _spawned     = [];
        _upd_range     = 300;
        _pos_player = getPos player;
        
        _t = diag_tickTime;
        {
            _object = (_x select 0) createVehicleLocal [0,0,0];
            _object setDir (_x select 2);
            _object setPos (_x select 1);

            if(count _x > 3 && (_x select 3)) then {
                _object setVehicleLock "LOCKED";
            };

            _spawned set[count _spawned,[_object,_x]];
        } count _objects;

        _objects = [];

        diag_log format["[DynObj] Initializing %2 objects in %1s ",str(diag_tickTime - _t),_total];

        while{alive player} do {

            _moved = _pos_player distance player;

            if(_moved > _upd_range) then { // Only update when player has moved at least _upd_range meters from his last saved position

                if(DZEdebug) then {
                    systemChat format["[DynObj] Player moved %1m since last cycle, checking for new/removable objects",_moved];

                     _t = diag_tickTime; // start timer for debug purposes
                    _a = 0; // keep track of how many objects added this cycle
                    _r = 0; // keep track of how many objects removed this cycle
                };

                _pos_player = getPos player;
                _i             = 0; // keep track of object index (outperforms forEach / _foreachIndex)

                {

                    if(player distance (_x select 1) < 1500) then {
                        _object = (_x select 0) createVehicleLocal [0,0,0];
                        _object setDir (_x select 2);
                        _object setPos (_x select 1);

                        if(count _x > 3 && (_x select 3)) then {
                            _object setVehicleLock "LOCKED";
                        };

                        if(DZEdebug) then { _a = _a + 1; };

                        _spawned set[count _spawned,[_object,_x]];
                        _objects set[_i,-1];
                    };
                    _i = _i + 1;
                } count _objects;

                _objects = _objects - [-1]; // remove added objects from objects array
                _i = 0;    // reset counter for use in spawned array

                {
                    if(player distance (_x select 0) > 1750) then {
                        _spawned set[_i,-1];
                        _objects set[count _objects, (_x select 1)];
                        deleteVehicle (_x select 0);
                        if(DZEdebug) then { _r = _r + 1; };
                    };
                    _i = _i + 1;
                } count _spawned;

                _spawned = _spawned - [-1];

                if(DZEdebug) then {
                    diag_log format["[DynObj] Added % objects - removed %2 objects - total active %3 - cycle took %4s",_a,_r,count _spawned,str (diag_tickTime - _t)];
                };

            } else {
                if(DZEdebug) then { diag_log format["[DynObj] Player moved %1m, not updating until %2m",_moved,_upd_range]; };
            };

            if(_moved > _upd_range-(_upd_range/4)) then {
                sleep 3; // almost at the edge, updating faster
            } else {
                sleep 6;
            };

        };
        
    };
Link to comment
Share on other sites

Mate this is great! That's a gigantic reduction in file size and it'll hopefully show good results on a live server. If it does show good performance differences on a live server you should definitely put this in it's own thread, I'm damn sure it'll be a big asset to many other servers.

Maybe it'd be worth it to NIL the allObjects variable at the end of the PV handler, may as well keep the array out of memory on the server until it's needed.

I also noticed you comment about how count + _i out performs forEach + _forEachIndex, is this true? I've never even thought to test them for any differences, usually just heading straight for the forEach format.

 

Just had a thought, how does this cope with high speed flight in aircraft, around 200+ speed?

Link to comment
Share on other sites

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
  • Advertisement
×
×
  • Create New...