icey Posted May 8, 2014 Report Share Posted May 8, 2014 Hello guys, i have a problem with the loot spawn in my custom bases (military tents). There is no loot the whole time :( I use the Jon-C5 editor addon to create my bases and checked the mission.sqf. My problems are at some tents like "MAP_Stan" ... I read somewhere that u should fix it like "Land_Stan" but if i do this one the tents doesnt show up on the server. But i saw on a few other servers with the same tents that it works. Sorry for my english but ill hope somebody can help me :) Link to comment Share on other sites More sharing options...
icey Posted May 8, 2014 Author Report Share Posted May 8, 2014 hmmm no one :( ?! Link to comment Share on other sites More sharing options...
Wesley Posted May 8, 2014 Report Share Posted May 8, 2014 To have loot spawn in buildings you need to have those specific buildings listed in you cfgbuildingpos.hpp file. Here is a link to the Epoch Github file if you use standard loot files: https://github.com/vbawol/DayZ-Epoch/blob/master/SQF/dayz_code/Configs/CfgLoot/CfgBuildingLoot.hpp Typically if the name of a building is MAP_blahblahblah and you change it to Land_blahblahblah it will spawn loot. I typically use Notepad++ for this. That is the problem(and fix) 95% of the time. insertcoins 1 Link to comment Share on other sites More sharing options...
icey Posted May 8, 2014 Author Report Share Posted May 8, 2014 yeah i have allready this file on my server :) and my standard editor is notepad++ too.. hmm but if i change my tents called "MAP_MASH" (medical tent) to "Land_MASH" the tents doesnt show up on the server ... dont know why... but let me check the config file too maybe u have another idea because of the tents Link to comment Share on other sites More sharing options...
Darihon Posted May 8, 2014 Report Share Posted May 8, 2014 Name it 'MASH', should fix the problem. Link to comment Share on other sites More sharing options...
icey Posted May 8, 2014 Author Report Share Posted May 8, 2014 On 5/8/2014 at 6:27 PM, Wesley said: To have loot spawn in buildings you need to have those specific buildings listed in you cfgbuildingpos.hpp file. Here is a link to the Epoch Github file if you use standard loot files: https://github.com/vbawol/DayZ-Epoch/blob/master/SQF/dayz_code/Configs/CfgLoot/CfgBuildingLoot.hpp Typically if the name of a building is MAP_blahblahblah and you change it to Land_blahblahblah it will spawn loot. I typically use Notepad++ for this. That is the problem(and fix) 95% of the time. Where can i find the cfg ? in which folder on my server ?! :) Link to comment Share on other sites More sharing options...
icey Posted May 8, 2014 Author Report Share Posted May 8, 2014 On 5/8/2014 at 7:09 PM, Darryl said: Name it 'MASH', should fix the problem. Yes that fixed the problem but now every "MASH" and "STAN" is doubled and inside themselfs and at the wrong position and stuck each other ?! WTF How can i fix this ? If i check this in my 3D or 2D editor everything looks fine.. :( hmmm Link to comment Share on other sites More sharing options...
Wesley Posted May 9, 2014 Report Share Posted May 9, 2014 On 5/8/2014 at 7:34 PM, icey said: Where can i find the cfg ? in which folder on my server ?! :) / SQF / dayz_code / Configs / CfgLoot / Link to comment Share on other sites More sharing options...
Darihon Posted May 9, 2014 Report Share Posted May 9, 2014 Had that problem too, never found or had a solution to it, sorry bro. Link to comment Share on other sites More sharing options...
icey Posted May 9, 2014 Author Report Share Posted May 9, 2014 Hmmm that sux .. so i have to delte them again or without loot :/ but without loot they are pretty useless on the position i set them :( damn Link to comment Share on other sites More sharing options...
Darihon Posted May 9, 2014 Report Share Posted May 9, 2014 It's not only the MASH.. I had it on multiple buildings: barracks, firestations etc. Can you post your custom building.sqf and your server_monitor.sqf? I will take a look at it to see if u made a mistake, could be the cause too. Link to comment Share on other sites More sharing options...
icey Posted May 9, 2014 Author Report Share Posted May 9, 2014 My server_monitor.sqf private ["_nul","_result","_pos","_wsDone","_dir","_block","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_intentory","_hitPoints","_fuel","_damage","_key","_vehLimit","_hiveResponse","_objectCount","_codeCount","_data","_status","_val","_traderid","_retrader","_traderData","_id","_lockable","_debugMarkerPosition","_vehicle_0","_bQty","_vQty","_BuildingQueue","_objectQueue"]; dayz_versionNo = getText(configFile >> "CfgMods" >> "DayZ" >> "version"); dayz_hiveVersionNo = getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion"); waitUntil{initialized}; //means all the functions are now defined diag_log "HIVE: Starting"; waituntil{isNil "sm_done"}; // prevent server_monitor be called twice (bug during login of the first player) call compile preProcessFileLineNumbers "\z\addons\dayz_server\buildings\balotaAF.sqf"; call compile preProcessFileLineNumbers "\z\addons\dayz_server\buildings\camps.sqf"; // Custom Configs if(isnil "MaxVehicleLimit") then { MaxVehicleLimit = 50; }; if(isnil "MaxDynamicDebris") then { MaxDynamicDebris = 100; }; if(isnil "MaxAmmoBoxes") then { MaxAmmoBoxes = 3; }; if(isnil "MaxMineVeins") then { MaxMineVeins = 50; }; // Custon Configs End if (isServer and isNil "sm_done") then { serverVehicleCounter = []; _hiveResponse = []; for "_i" from 1 to 5 do { diag_log "HIVE: trying to get objects"; _key = format["CHILD:302:%1:", dayZ_instance]; _hiveResponse = _key call server_hiveReadWrite; if ((((isnil "_hiveResponse") || {(typeName _hiveResponse != "ARRAY")}) || {((typeName (_hiveResponse select 1)) != "SCALAR")})) then { diag_log ("HIVE: connection problem... HiveExt response:"+str(_hiveResponse)); _hiveResponse = ["",0]; } else { diag_log ("HIVE: found "+str(_hiveResponse select 1)+" objects" ); _i = 99; // break }; }; _BuildingQueue = []; _objectQueue = []; if ((_hiveResponse select 0) == "ObjectStreamStart") then { diag_log ("HIVE: Commence Object Streaming..."); _key = format["CHILD:302:%1:", dayZ_instance]; _objectCount = _hiveResponse select 1; _bQty = 0; _vQty = 0; for "_i" from 1 to _objectCount do { _hiveResponse = _key call server_hiveReadWriteLarge; //diag_log (format["HIVE dbg %1 %2", typeName _hiveResponse, _hiveResponse]); if ((_hiveResponse select 2) isKindOf "ModularItems") then { _BuildingQueue set [_bQty,_hiveResponse]; _bQty = _bQty + 1; } else { _objectQueue set [_vQty,_hiveResponse]; _vQty = _vQty + 1; }; }; diag_log ("HIVE: got " + str(_bQty) + " Epoch Objects and " + str(_vQty) + " Vehicles"); }; // # NOW SPAWN OBJECTS # _totalvehicles = 0; { _idKey = _x select 1; _type = _x select 2; _ownerID = _x select 3; _worldspace = _x select 4; _intentory = _x select 5; _hitPoints = _x select 6; _fuel = _x select 7; _damage = _x select 8; _dir = 0; _pos = [0,0,0]; _wsDone = false; if (count _worldspace >= 2) then { _dir = _worldspace select 0; if (count (_worldspace select 1) == 3) then { _pos = _worldspace select 1; _wsDone = true; } }; if (!_wsDone) then { if (count _worldspace >= 1) then { _dir = _worldspace select 0; }; _pos = [getMarkerPos "center",0,4000,10,0,2000,0] call BIS_fnc_findSafePos; if (count _pos < 3) then { _pos = [_pos select 0,_pos select 1,0]; }; diag_log ("MOVED OBJ: " + str(_idKey) + " of class " + _type + " to pos: " + str(_pos)); }; if (_damage < 1) then { //diag_log format["OBJ: %1 - %2", _idKey,_type]; //Create it _object = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"]; _object setVariable ["lastUpdate",time]; _object setVariable ["ObjectID", _idKey, true]; _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then { _lockable = getNumber(configFile >> "CfgVehicles" >> _type >> "lockable"); }; // fix for leading zero issues on safe codes after restart if (_lockable == 4) then { _codeCount = (count (toArray _ownerID)); if(_codeCount == 3) then { _ownerID = format["0%1", _ownerID]; }; if(_codeCount == 2) then { _ownerID = format["00%1", _ownerID]; }; if(_codeCount == 1) then { _ownerID = format["000%1", _ownerID]; }; }; if (_lockable == 3) then { _codeCount = (count (toArray _ownerID)); if(_codeCount == 2) then { _ownerID = format["0%1", _ownerID]; }; if(_codeCount == 1) then { _ownerID = format["00%1", _ownerID]; }; }; _object setVariable ["CharacterID", _ownerID, true]; clearWeaponCargoGlobal _object; clearMagazineCargoGlobal _object; // _object setVehicleAmmo DZE_vehicleAmmo; _object setdir _dir; _object setposATL _pos; _object setDamage _damage; if ((typeOf _object) in dayz_allowedObjects) then { if (DZE_GodModeBase) then { _object addEventHandler ["HandleDamage", {false}]; } else { _object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}]; }; // Test disabling simulation server side on buildables only. _object enableSimulation false; // used for inplace upgrades and lock/unlock of safe _object setVariable ["OEMPos", _pos, true]; }; if (count _intentory > 0) then { if (_type in DZE_LockedStorage) then { // Fill variables with loot _object setVariable ["WeaponCargo", (_intentory select 0)]; _object setVariable ["MagazineCargo", (_intentory select 1)]; _object setVariable ["BackpackCargo", (_intentory select 2)]; } else { //Add weapons _objWpnTypes = (_intentory select 0) select 0; _objWpnQty = (_intentory select 0) select 1; _countr = 0; { if(_x in (DZE_REPLACE_WEAPONS select 0)) then { _x = (DZE_REPLACE_WEAPONS select 1) select ((DZE_REPLACE_WEAPONS select 0) find _x); }; _isOK = isClass(configFile >> "CfgWeapons" >> _x); if (_isOK) then { _object addWeaponCargoGlobal [_x,(_objWpnQty select _countr)]; }; _countr = _countr + 1; } forEach _objWpnTypes; //Add Magazines _objWpnTypes = (_intentory select 1) select 0; _objWpnQty = (_intentory select 1) select 1; _countr = 0; { if (_x == "BoltSteel") then { _x = "WoodenArrow" }; // Convert BoltSteel to WoodenArrow if (_x == "ItemTent") then { _x = "ItemTentOld" }; _isOK = isClass(configFile >> "CfgMagazines" >> _x); if (_isOK) then { _object addMagazineCargoGlobal [_x,(_objWpnQty select _countr)]; }; _countr = _countr + 1; } forEach _objWpnTypes; //Add Backpacks _objWpnTypes = (_intentory select 2) select 0; _objWpnQty = (_intentory select 2) select 1; _countr = 0; { _isOK = isClass(configFile >> "CfgVehicles" >> _x); if (_isOK) then { _object addBackpackCargoGlobal [_x,(_objWpnQty select _countr)]; }; _countr = _countr + 1; } forEach _objWpnTypes; }; }; if (_object isKindOf "AllVehicles") then { { _selection = _x select 0; _dam = _x select 1; if (_selection in dayZ_explosiveParts and _dam > 0.8) then {_dam = 0.8}; [_object,_selection,_dam] call object_setFixServer; } forEach _hitpoints; _object setFuel _fuel; if (!((typeOf _object) in dayz_allowedObjects)) then { //_object setvelocity [0,0,1]; _object call fnc_veh_ResetEH; if(_ownerID != "0" and !(_object isKindOf "Bicycle")) then { _object setvehiclelock "locked"; }; _totalvehicles = _totalvehicles + 1; // total each vehicle serverVehicleCounter set [count serverVehicleCounter,_type]; }; }; //Monitor the object PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object]; }; } forEach (_BuildingQueue + _objectQueue); // # END SPAWN OBJECTS # // preload server traders menu data into cache if !(DZE_ConfigTrader) then { { // get tids _traderData = call compile format["menu_%1;",_x]; if(!isNil "_traderData") then { { _traderid = _x select 1; _retrader = []; _key = format["CHILD:399:%1:",_traderid]; _data = "HiveEXT" callExtension _key; //diag_log "HIVE: Request sent"; //Process result _result = call compile format ["%1",_data]; _status = _result select 0; if (_status == "ObjectStreamStart") then { _val = _result select 1; //Stream Objects //diag_log ("HIVE: Commence Menu Streaming..."); call compile format["ServerTcache_%1 = [];",_traderid]; for "_i" from 1 to _val do { _data = "HiveEXT" callExtension _key; _result = call compile format ["%1",_data]; call compile format["ServerTcache_%1 set [count ServerTcache_%1,%2]",_traderid,_result]; _retrader set [count _retrader,_result]; }; //diag_log ("HIVE: Streamed " + str(_val) + " objects"); }; } forEach (_traderData select 0); }; } forEach serverTraders; }; // spawn_vehicles _vehLimit = MaxVehicleLimit - _totalvehicles; if(_vehLimit > 0) then { diag_log ("HIVE: Spawning # of Vehicles: " + str(_vehLimit)); for "_x" from 1 to _vehLimit do { [] spawn spawn_vehicles; }; } else { diag_log "HIVE: Vehicle Spawn limit reached!"; }; // spawn_roadblocks diag_log ("HIVE: Spawning # of Debris: " + str(MaxDynamicDebris)); for "_x" from 1 to MaxDynamicDebris do { [] spawn spawn_roadblocks; }; // spawn_ammosupply at server start 1% of roadblocks diag_log ("HIVE: Spawning # of Ammo Boxes: " + str(MaxAmmoBoxes)); for "_x" from 1 to MaxAmmoBoxes do { [] spawn spawn_ammosupply; }; // call spawning mining veins diag_log ("HIVE: Spawning # of Veins: " + str(MaxMineVeins)); for "_x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapArea") then { dayz_MapArea = 10000; }; if(isnil "HeliCrashArea") then { HeliCrashArea = dayz_MapArea / 2; }; if(isnil "OldHeliCrash") then { OldHeliCrash = false; }; [] ExecVM "\z\addons\dayz_server\WAI\init.sqf"; [] ExecVM "\z\addons\dayz_server\EMS\DZMSInit.sqf"; allowConnection = true; // [_guaranteedLoot, _randomizedLoot, _frequency, _variance, _spawnChance, _spawnMarker, _spawnRadius, _spawnFire, _fadeFire] if(OldHeliCrash) then { _nul = [3, 4, (50 * 60), (15 * 60), 0.75, 'center', HeliCrashArea, true, false] spawn server_spawnCrashSite; }; if (isDedicated) then { // Epoch Events _id = [] spawn server_spawnEvents; // server cleanup [] spawn { private ["_id"]; sleep 200; //Sleep Lootcleanup, don't need directly cleanup on startup + fix some performance issues on serverstart waitUntil {!isNil "server_spawnCleanAnimals"}; _id = [] execFSM "\z\addons\dayz_server\system\server_cleanup.fsm"; }; // spawn debug box _debugMarkerPosition = getMarkerPos "respawn_west"; _debugMarkerPosition = [(_debugMarkerPosition select 0),(_debugMarkerPosition select 1),1]; _vehicle_0 = createVehicle ["DebugBox_DZ", _debugMarkerPosition, [], 0, "CAN_COLLIDE"]; _vehicle_0 setPos _debugMarkerPosition; _vehicle_0 setVariable ["ObjectID","1",true]; // max number of spawn markers if(isnil "spawnMarkerCount") then { spawnMarkerCount = 10; }; actualSpawnMarkerCount = 0; // count valid spawn marker positions for "_i" from 0 to spawnMarkerCount do { if (!([(getMarkerPos format["spawn%1", _i]), [0,0,0]] call BIS_fnc_areEqual)) then { actualSpawnMarkerCount = actualSpawnMarkerCount + 1; } else { // exit since we did not find any further markers _i = spawnMarkerCount + 99; }; }; diag_log format["Total Number of spawn locations %1", actualSpawnMarkerCount]; }; sm_done = true; publicVariable "sm_done"; }; And this is my small military camp if (isServer) then {; _vehicle_20 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4432.7266, 8276.3613, 3.0517578e-005], [], 0, "CAN_COLLIDE"]; _vehicle_20 = _this; _this setDir 29.453224; _this setPos [4432.7266, 8276.3613, 3.0517578e-005]; }; _vehicle_22 = objNull; if (true) then { _this = createVehicle ["MASH", [4466.3755, 8294.0986, -3.0517578e-005], [], 0, "CAN_COLLIDE"]; _vehicle_22 = _this; _this setDir 28.694061; _this setPos [4466.3755, 8294.0986, -3.0517578e-005]; }; _vehicle_23 = objNull; if (true) then { _this = createVehicle ["Stan", [4439.7729, 8277.9072, 3.0517578e-005], [], 0, "CAN_COLLIDE"]; _vehicle_23 = _this; _this setDir 29.854034; _this setPos [4439.7729, 8277.9072, 3.0517578e-005]; }; _vehicle_33 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4439.645, 8291.6768, -3.0517578e-005], [], 0, "CAN_COLLIDE"]; _vehicle_33 = _this; _this setDir -60.966434; _this setPos [4439.645, 8291.6768, -3.0517578e-005]; }; _vehicle_37 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4434.1367, 8281.8799, 6.1035156e-005], [], 0, "CAN_COLLIDE"]; _vehicle_37 = _this; _this setDir -60.610096; _this setPos [4434.1367, 8281.8799, 6.1035156e-005]; }; _vehicle_40 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4436.8804, 8286.8027], [], 0, "CAN_COLLIDE"]; _vehicle_40 = _this; _this setDir -60.610096; _this setPos [4436.8804, 8286.8027]; }; _vehicle_43 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4442.4004, 8296.5518, 3.0517578e-005], [], 0, "CAN_COLLIDE"]; _vehicle_43 = _this; _this setDir -60.161358; _this setPos [4442.4004, 8296.5518, 3.0517578e-005]; }; _vehicle_50 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4437.748, 8273.5811, -6.1035156e-005], [], 0, "CAN_COLLIDE"]; _vehicle_50 = _this; _this setDir 29.453224; _this setPos [4437.748, 8273.5811, -6.1035156e-005]; }; _vehicle_58 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4442.8223, 8270.7549, 6.1035156e-005], [], 0, "CAN_COLLIDE"]; _vehicle_58 = _this; _this setDir 29.453224; _this setPos [4442.8223, 8270.7549, 6.1035156e-005]; }; _vehicle_64 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4447.7837, 8267.9287], [], 0, "CAN_COLLIDE"]; _vehicle_64 = _this; _this setDir 29.453224; _this setPos [4447.7837, 8267.9287]; }; _vehicle_70 = objNull; if (true) then { _this = createVehicle ["Stan", [4452.1885, 8290.4072, 0.00015258789], [], 0, "CAN_COLLIDE"]; _vehicle_70 = _this; _this setDir -152.02747; _this setPos [4452.1885, 8290.4072, 0.00015258789]; }; _vehicle_72 = objNull; if (true) then { _this = createVehicle ["Stan", [4445.7671, 8294.0439, 6.1035156e-005], [], 0, "CAN_COLLIDE"]; _vehicle_72 = _this; _this setDir -151.48317; _this setPos [4445.7671, 8294.0439, 6.1035156e-005]; }; _vehicle_83 = objNull; if (true) then { _this = createVehicle ["Stan", [4459.144, 8286.5088, 3.0517578e-005], [], 0, "CAN_COLLIDE"]; _vehicle_83 = _this; _this setDir -151.37119; _this setPos [4459.144, 8286.5088, 3.0517578e-005]; }; _vehicle_89 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4445.6699, 8299.4443, 0.00018310547], [], 0, "CAN_COLLIDE"]; _vehicle_89 = _this; _this setDir 29.453224; _this setPos [4445.6699, 8299.4443, 0.00018310547]; }; _vehicle_90 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4450.7451, 8296.6387, 0.017150879], [], 0, "CAN_COLLIDE"]; _vehicle_90 = _this; _this setDir 29.453224; _this setPos [4450.7451, 8296.6387, 0.017150879]; }; _vehicle_91 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4455.7925, 8293.8486, -0.063720703], [], 0, "CAN_COLLIDE"]; _vehicle_91 = _this; _this setDir 29.453224; _this setPos [4455.7925, 8293.8486, -0.063720703]; }; _vehicle_92 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4460.8301, 8291.0479, -0.073791504], [], 0, "CAN_COLLIDE"]; _vehicle_92 = _this; _this setDir 29.453224; _this setPos [4460.8301, 8291.0479, -0.073791504]; }; _vehicle_98 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4431.3682, 8276.9355, 0.00015258789], [], 0, "CAN_COLLIDE"]; _vehicle_98 = _this; _this setDir -60.610096; _this setPos [4431.3682, 8276.9355, 0.00015258789]; }; _vehicle_101 = objNull; if (true) then { _this = createVehicle ["Stan", [4446.2983, 8274.207, 0.00012207031], [], 0, "CAN_COLLIDE"]; _vehicle_101 = _this; _this setDir 29.854034; _this setPos [4446.2983, 8274.207, 0.00012207031]; }; _vehicle_103 = objNull; if (true) then { _this = createVehicle ["Stan", [4452.73, 8270.5439, 6.1035156e-005], [], 0, "CAN_COLLIDE"]; _vehicle_103 = _this; _this setDir 29.854034; _this setPos [4452.73, 8270.5439, 6.1035156e-005]; }; _vehicle_110 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4445.2202, 8301.5371, 3.0517578e-005], [], 0, "CAN_COLLIDE"]; _vehicle_110 = _this; _this setDir -60.610096; _this setPos [4445.2202, 8301.5371, 3.0517578e-005]; }; _vehicle_111 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4447.9634, 8306.5537, 0.024078369], [], 0, "CAN_COLLIDE"]; _vehicle_111 = _this; _this setDir -60.610096; _this setPos [4447.9634, 8306.5537, 0.024078369]; }; _vehicle_112 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4450.6411, 8311.5693, 0.080993652], [], 0, "CAN_COLLIDE"]; _vehicle_112 = _this; _this setDir -61.436214; _this setPos [4450.6411, 8311.5693, 0.080993652]; }; _vehicle_113 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4453.2871, 8316.5391, 0.079559326], [], 0, "CAN_COLLIDE"]; _vehicle_113 = _this; _this setDir -60.966434; _this setPos [4453.2871, 8316.5391, 0.079559326]; }; _vehicle_114 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4455.9214, 8321.5205, 0.045715332], [], 0, "CAN_COLLIDE"]; _vehicle_114 = _this; _this setDir -60.161358; _this setPos [4455.9214, 8321.5205, 0.045715332]; }; _vehicle_124 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4474.2788, 8316.249, -3.0517578e-005], [], 0, "CAN_COLLIDE"]; _vehicle_124 = _this; _this setDir 29.453224; _this setPos [4474.2788, 8316.249, -3.0517578e-005]; }; _vehicle_125 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4469.418, 8319.0127, 0.094543457], [], 0, "CAN_COLLIDE"]; _vehicle_125 = _this; _this setDir 29.453224; _this setPos [4469.418, 8319.0127, 0.094543457]; }; _vehicle_126 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4464.3706, 8321.8027, 0.14837646], [], 0, "CAN_COLLIDE"]; _vehicle_126 = _this; _this setDir 29.453224; _this setPos [4464.3706, 8321.8027, 0.14837646]; }; _vehicle_127 = objNull; if (true) then { _this = createVehicle ["MAP_HBarrier5", [4459.2705, 8324.5664, 0.10379028], [], 0, "CAN_COLLIDE"]; _vehicle_127 = _this; _this setDir 29.453224; _this setPos [4459.2705, 8324.5664, 0.10379028]; }; _vehicle_140 = objNull; if (true) then { _this = createVehicle ["MASH", [4459.3711, 8297.7354, 9.1552734e-005], [], 0, "CAN_COLLIDE"]; _vehicle_140 = _this; _this setDir 28.694061; _this setPos [4459.3711, 8297.7354, 9.1552734e-005]; }; _vehicle_142 = objNull; if (true) then { _this = createVehicle ["MASH", [4452.3252, 8301.4199, -3.0517578e-005], [], 0, "CAN_COLLIDE"]; _vehicle_142 = _this; _this setDir 28.694061; _this setPos [4452.3252, 8301.4199, -3.0517578e-005]; }; _vehicle_145 = objNull; if (true) then { _this = createVehicle ["MASH", [4473.167, 8311.4033, 0.00021362305], [], 0, "CAN_COLLIDE"]; _vehicle_145 = _this; _this setDir -151.70218; _this setPos [4473.167, 8311.4033, 0.00021362305]; }; _vehicle_148 = objNull; if (true) then { _this = createVehicle ["MASH", [4466.2017, 8315.1758, 0.00012207031], [], 0, "CAN_COLLIDE"]; _vehicle_148 = _this; _this setDir -150.99092; _this setPos [4466.2017, 8315.1758, 0.00012207031]; }; _vehicle_150 = objNull; if (true) then { _this = createVehicle ["MASH", [4459.6362, 8318.8506, 6.1035156e-005], [], 0, "CAN_COLLIDE"]; _vehicle_150 = _this; _this setDir -151.29898; _this setPos [4459.6362, 8318.8506, 6.1035156e-005]; }; }; Link to comment Share on other sites More sharing options...
Darihon Posted May 10, 2014 Report Share Posted May 10, 2014 Sorry, my bad. Your Server_functions.sqf svp. And remove the ; at the start of your custommap.sqf So: if (isServer) then { Link to comment Share on other sites More sharing options...
icey Posted May 11, 2014 Author Report Share Posted May 11, 2014 hey. here is my server functions :) waituntil {!isnil "bis_fnc_init"}; BIS_MPF_remoteExecutionServer = { if ((_this select 1) select 2 == "JIPrequest") then { [nil,(_this select 1) select 0,"loc",rJIPEXEC,[any,any,"per","execVM","ca\Modules\Functions\init.sqf"]] call RE; }; }; /* Skaronator - secured better remoteExecServer BIS_MPF_remoteExecutionServer = { if ((_this select 1) select 2 == "JIPrequest") then { _playerObj = (_this select 1) select 0; remExField = [nil, nil, format ["";if !(isServer) then {[] execVM "ca\Modules\Functions\init.sqf";};""]]; (owner _playerObj) publicVariableClient "remExField"; }; };*/ BIS_Effects_Burn = {}; server_playerLogin = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf"; server_playerSetup = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSetup.sqf"; server_onPlayerDisconnect = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_onPlayerDisconnect.sqf"; server_updateObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf"; server_playerDied = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDied.sqf"; server_publishObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf"; server_deleteObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_deleteObj.sqf"; server_swapObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_swapObject.sqf"; server_publishVeh = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle.sqf"; server_publishVeh2 = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle2.sqf"; server_publishVeh3 = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle3.sqf"; server_tradeObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_tradeObject.sqf"; server_traders = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_traders.sqf"; server_playerSync = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf"; server_spawnCrashSite = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnCrashSite.sqf"; server_spawnEvents = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnEvent.sqf"; //server_weather = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_weather.sqf"; fnc_plyrHit = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fnc_plyrHit.sqf"; server_deaths = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.sqf"; server_maintainArea = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_maintainArea.sqf"; /* PVS/PVC - Skaronator */ server_sendToClient = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_sendToClient.sqf"; //onPlayerConnected {[_uid,_name] call server_onPlayerConnect;}; onPlayerDisconnected {[_uid,_name] call server_onPlayerDisconnect;}; server_updateNearbyObjects = { private["_pos"]; _pos = _this select 0; { [_x, "gear"] call server_updateObject; } forEach nearestObjects [_pos, dayz_updateObjects, 10]; }; server_handleZedSpawn = { private["_zed"]; _zed = _this select 0; _zed enableSimulation false; }; zombie_findOwner = { private["_unit"]; _unit = _this select 0; #ifdef DZE_SERVER_DEBUG diag_log ("CLEANUP: DELETE UNCONTROLLED ZOMBIE: " + (typeOf _unit) + " OF: " + str(_unit) ); #endif deleteVehicle _unit; }; vehicle_handleInteract = { private["_object"]; _object = _this select 0; needUpdate_objects = needUpdate_objects - [_object]; [_object, "all"] call server_updateObject; }; array_reduceSizeReverse = { private["_array","_count","_num","_newarray","_startnum","_index"]; _array = _this select 0; _newarray = []; _count = _this select 1; _num = count _array; if (_num > _count) then { _startnum = _num - 1; _index = _count - 1; for "_i" from 0 to _index do { _newarray set [(_index-_i),_array select (_startnum - _i)]; }; _array = _newarray; }; _array }; array_reduceSize = { private ["_array1","_array","_count","_num"]; _array1 = _this select 0; _array = _array1 - ["Hatchet_Swing","Machete_Swing","Fishing_Swing","sledge_swing","crowbar_swing","CSGAS"]; _count = _this select 1; _num = count _array; if (_num > _count) then { _array resize _count; }; _array }; object_handleServerKilled = { private["_unit","_objectID","_objectUID","_killer"]; _unit = _this select 0; _killer = _this select 1; _objectID = _unit getVariable ["ObjectID","0"]; _objectUID = _unit getVariable ["ObjectUID","0"]; [_objectID,_objectUID,_killer] call server_deleteObj; _unit removeAllMPEventHandlers "MPKilled"; _unit removeAllEventHandlers "Killed"; _unit removeAllEventHandlers "HandleDamage"; _unit removeAllEventHandlers "GetIn"; _unit removeAllEventHandlers "GetOut"; }; check_publishobject = { private["_allowed","_object","_playername"]; _object = _this select 0; _playername = _this select 1; _allowed = false; if ((typeOf _object) in dayz_allowedObjects) then { //diag_log format ["DEBUG: Object: %1 published by %2 is Safe",_object, _playername]; _allowed = true; }; _allowed }; //event Handlers eh_localCleanup = { private ["_object"]; _object = _this select 0; _object addEventHandler ["local", { if(_this select 1) then { private["_type","_unit"]; _unit = _this select 0; _type = typeOf _unit; _myGroupUnit = group _unit; _unit removeAllMPEventHandlers "mpkilled"; _unit removeAllMPEventHandlers "mphit"; _unit removeAllMPEventHandlers "mprespawn"; _unit removeAllEventHandlers "FiredNear"; _unit removeAllEventHandlers "HandleDamage"; _unit removeAllEventHandlers "Killed"; _unit removeAllEventHandlers "Fired"; _unit removeAllEventHandlers "GetOut"; _unit removeAllEventHandlers "GetIn"; _unit removeAllEventHandlers "Local"; clearVehicleInit _unit; deleteVehicle _unit; deleteGroup _myGroupUnit; //_unit = nil; diag_log ("CLEANUP: DELETED A " + str(_type) ); }; }]; }; server_hiveWrite = { private["_data"]; _data = "HiveExt" callExtension _this; }; server_hiveReadWrite = { private["_key","_resultArray","_data"]; _key = _this; _data = "HiveExt" callExtension _key; _resultArray = call compile format ["%1",_data]; _resultArray }; server_hiveReadWriteLarge = { private["_key","_resultArray","_data"]; _key = _this; _data = "HiveExt" callExtension _key; _resultArray = call compile _data; _resultArray }; server_checkIfTowed = { private ["_vehicle","_player","_attached"]; if (DZE_HeliLift) then { _vehicle = _this select 0; _player = _this select 2; _attached = _vehicle getVariable["attached",false]; if ((typeName _attached == "OBJECT")) then { _player action ["eject", _vehicle]; detach _vehicle; _vehicle setVariable["attached",false,true]; _attached setVariable["hasAttached",false,true]; }; }; }; server_characterSync = { private ["_characterID","_playerPos","_playerGear","_playerBackp","_medical","_currentState","_currentModel","_key"]; _characterID = _this select 0; _playerPos = _this select 1; _playerGear = _this select 2; _playerBackp = _this select 3; _medical = _this select 4; _currentState = _this select 5; _currentModel = _this select 6; _key = format["CHILD:201:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:",_characterID,_playerPos,_playerGear,_playerBackp,_medical,false,false,0,0,0,0,_currentState,0,0,_currentModel,0]; _key call server_hiveWrite; }; if(isnil "dayz_MapArea") then { dayz_MapArea = 10000; }; if(isnil "DynamicVehicleArea") then { DynamicVehicleArea = dayz_MapArea / 2; }; // Get all buildings and roads only once TODO: set variables to nil after done if nessicary MarkerPosition = getMarkerPos "center"; RoadList = MarkerPosition nearRoads DynamicVehicleArea; // Very taxing !!! but only on first startup BuildingList = []; { if (DZE_MissionLootTable) then { if (isClass (missionConfigFile >> "CfgBuildingLoot" >> (typeOf _x))) then { BuildingList set [count BuildingList,_x]; }; } else { if (isClass (configFile >> "CfgBuildingLoot" >> (typeOf _x))) then { BuildingList set [count BuildingList,_x]; }; }; } forEach (MarkerPosition nearObjects ["building",DynamicVehicleArea]); spawn_vehicles = { private ["_random","_lastIndex","_weights","_index","_vehicle","_velimit","_qty","_isAir","_isShip","_position","_dir","_istoomany","_veh","_objPosition","_marker","_iClass","_itemTypes","_cntWeights","_itemType","_num","_allCfgLoots"]; if (!isDedicated) exitWith { }; //Be sure the run this while {count AllowedVehiclesList > 0} do { // BIS_fnc_selectRandom replaced because the index may be needed to remove the element _index = floor random count AllowedVehiclesList; _random = AllowedVehiclesList select _index; _vehicle = _random select 0; _velimit = _random select 1; _qty = {_x == _vehicle} count serverVehicleCounter; // If under limit allow to proceed if (_qty <= _velimit) exitWith {}; // vehicle limit reached, remove vehicle from list // since elements cannot be removed from an array, overwrite it with the last element and cut the last element of (as long as order is not important) _lastIndex = (count AllowedVehiclesList) - 1; if (_lastIndex != _index) then { AllowedVehiclesList set [_index, AllowedVehiclesList select _lastIndex]; }; AllowedVehiclesList resize _lastIndex; }; if (count AllowedVehiclesList == 0) then { diag_log("DEBUG: unable to find suitable vehicle to spawn"); } else { // add vehicle to counter for next pass serverVehicleCounter set [count serverVehicleCounter,_vehicle]; // Find Vehicle Type to better control spawns _isAir = _vehicle isKindOf "Air"; _isShip = _vehicle isKindOf "Ship"; if(_isShip || _isAir) then { if(_isShip) then { // Spawn anywhere on coast on water waitUntil{!isNil "BIS_fnc_findSafePos"}; _position = [MarkerPosition,0,DynamicVehicleArea,10,1,2000,1] call BIS_fnc_findSafePos; //diag_log("DEBUG: spawning boat near coast " + str(_position)); } else { // Spawn air anywhere that is flat waitUntil{!isNil "BIS_fnc_findSafePos"}; _position = [MarkerPosition,0,DynamicVehicleArea,10,0,2000,0] call BIS_fnc_findSafePos; //diag_log("DEBUG: spawning air anywhere flat " + str(_position)); }; } else { // Spawn around buildings and 50% near roads if((random 1) > 0.5) then { waitUntil{!isNil "BIS_fnc_selectRandom"}; _position = RoadList call BIS_fnc_selectRandom; _position = _position modelToWorld [0,0,0]; waitUntil{!isNil "BIS_fnc_findSafePos"}; _position = [_position,0,10,10,0,2000,0] call BIS_fnc_findSafePos; //diag_log("DEBUG: spawning near road " + str(_position)); } else { waitUntil{!isNil "BIS_fnc_selectRandom"}; _position = BuildingList call BIS_fnc_selectRandom; _position = _position modelToWorld [0,0,0]; waitUntil{!isNil "BIS_fnc_findSafePos"}; _position = [_position,0,40,5,0,2000,0] call BIS_fnc_findSafePos; //diag_log("DEBUG: spawning around buildings " + str(_position)); }; }; // only proceed if two params otherwise BIS_fnc_findSafePos failed and may spawn in air if ((count _position) == 2) then { _dir = round(random 180); _istoomany = _position nearObjects ["AllVehicles",50]; if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many vehicles at " + str(_position)); }; //place vehicle _veh = createVehicle [_vehicle, _position, [], 0, "CAN_COLLIDE"]; _veh setdir _dir; _veh setpos _position; if(DZEdebug) then { _marker = createMarker [str(_position) , _position]; _marker setMarkerShape "ICON"; _marker setMarkerType "DOT"; _marker setMarkerText _vehicle; }; // Get position with ground _objPosition = getPosATL _veh; clearWeaponCargoGlobal _veh; clearMagazineCargoGlobal _veh; // _veh setVehicleAmmo DZE_vehicleAmmo; // Add 0-3 loots to vehicle using random cfgloots _num = floor(random 4); _allCfgLoots = ["trash","civilian","food","generic","medical","military","policeman","hunter","worker","clothes","militaryclothes","specialclothes","trash"]; for "_x" from 1 to _num do { _iClass = _allCfgLoots call BIS_fnc_selectRandom; _itemTypes = []; if (DZE_MissionLootTable) then { _itemTypes = ((getArray (missionConfigFile >> "cfgLoot" >> _iClass)) select 0); } else { _itemTypes = ((getArray (configFile >> "cfgLoot" >> _iClass)) select 0); }; _index = dayz_CLBase find _iClass; _weights = dayz_CLChances select _index; _cntWeights = count _weights; _index = floor(random _cntWeights); _index = _weights select _index; _itemType = _itemTypes select _index; _veh addMagazineCargoGlobal [_itemType,1]; //diag_log("DEBUG: spawed loot inside vehicle " + str(_itemType)); }; [_veh,[_dir,_objPosition],_vehicle,true,"0"] call server_publishVeh; }; }; }; spawn_ammosupply = { private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"]; if (isDedicated) then { _WreckList = ["Supply_Crate_DZE"]; waitUntil{!isNil "BIS_fnc_selectRandom"}; _position = RoadList call BIS_fnc_selectRandom; _position = _position modelToWorld [0,0,0]; waitUntil{!isNil "BIS_fnc_findSafePos"}; _position = [_position,5,20,5,0,2000,0] call BIS_fnc_findSafePos; if ((count _position) == 2) then { _istoomany = _position nearObjects ["All",5]; if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many at " + str(_position)); }; _spawnveh = _WreckList call BIS_fnc_selectRandom; if(DZEdebug) then { _marker = createMarker [str(_position) , _position]; _marker setMarkerShape "ICON"; _marker setMarkerType "DOT"; _marker setMarkerText str(_spawnveh); }; _veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"]; _veh enableSimulation false; _veh setDir round(random 360); _veh setpos _position; _veh setVariable ["ObjectID","1",true]; }; }; }; DZE_LocalRoadBlocks = []; spawn_roadblocks = { private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"]; _WreckList = ["SKODAWreck","HMMWVWreck","UralWreck","datsun01Wreck","hiluxWreck","datsun02Wreck","UAZWreck","Land_Misc_Garb_Heap_EP1","Fort_Barricade_EP1","Rubbish2"]; waitUntil{!isNil "BIS_fnc_selectRandom"}; if (isDedicated) then { _position = RoadList call BIS_fnc_selectRandom; _position = _position modelToWorld [0,0,0]; waitUntil{!isNil "BIS_fnc_findSafePos"}; _position = [_position,0,10,5,0,2000,0] call BIS_fnc_findSafePos; if ((count _position) == 2) then { // Get position with ground _istoomany = _position nearObjects ["All",5]; if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many at " + str(_position)); }; waitUntil{!isNil "BIS_fnc_selectRandom"}; _spawnveh = _WreckList call BIS_fnc_selectRandom; if(DZEdebug) then { _marker = createMarker [str(_position) , _position]; _marker setMarkerShape "ICON"; _marker setMarkerType "DOT"; _marker setMarkerText str(_spawnveh); }; _veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"]; _veh enableSimulation false; _veh setDir round(random 360); // Randomize placement a bit _veh setpos _position; _veh setVariable ["ObjectID","1",true]; }; }; }; spawn_mineveins = { private ["_position","_veh","_istoomany","_marker","_spawnveh","_positions"]; if (isDedicated) then { _position = [getMarkerPos "center",0,(HeliCrashArea*0.75),10,0,2000,0] call BIS_fnc_findSafePos; if ((count _position) == 2) then { _positions = selectBestPlaces [_position, 500, "(1 + forest) * (1 + hills) * (1 - houses) * (1 - sea)", 10, 5]; _position = (_positions call BIS_fnc_selectRandom) select 0; // Get position with ground _istoomany = _position nearObjects ["All",10]; if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many objects at " + str(_position)); }; if(isOnRoad _position) exitWith { diag_log("DEBUG VEIN: on road " + str(_position)); }; _spawnveh = ["Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Gold_Vein_DZE","Gold_Vein_DZE"] call BIS_fnc_selectRandom; if(DZEdebug) then { _marker = createMarker [str(_position) , _position]; _marker setMarkerShape "ICON"; _marker setMarkerType "DOT"; _marker setMarkerText str(_spawnveh); }; //diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position)); _veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"]; _veh enableSimulation false; // Randomize placement a bit _veh setDir round(random 360); _veh setpos _position; _veh setVariable ["ObjectID","1",true]; }; }; }; if(isnil "DynamicVehicleDamageLow") then { DynamicVehicleDamageLow = 0; }; if(isnil "DynamicVehicleDamageHigh") then { DynamicVehicleDamageHigh = 100; }; if(isnil "DynamicVehicleFuelLow") then { DynamicVehicleFuelLow = 0; }; if(isnil "DynamicVehicleFuelHigh") then { DynamicVehicleFuelHigh = 100; }; if(isnil "DZE_DiagFpsSlow") then { DZE_DiagFpsSlow = false; }; if(isnil "DZE_DiagFpsFast") then { DZE_DiagFpsFast = false; }; if(isnil "DZE_DiagVerbose") then { DZE_DiagVerbose = false; }; dze_diag_fps = { if(DZE_DiagVerbose) then { diag_log format["DEBUG FPS : %1 OBJECTS: %2 : PLAYERS: %3", diag_fps,(count (allMissionObjects "")),(playersNumber west)]; } else { diag_log format["DEBUG FPS : %1", diag_fps]; }; }; // Damage generator function generate_new_damage = { private ["_damage"]; _damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100; _damage; }; // Damage generator fuction generate_exp_damage = { private ["_damage"]; _damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100; // limit this to 85% since vehicle would blow up otherwise. //if(_damage >= 0.85) then { // _damage = 0.85; //}; _damage; }; server_getDiff = { private["_variable","_object","_vNew","_vOld","_result"]; _variable = _this select 0; _object = _this select 1; _vNew = _object getVariable[_variable,0]; _vOld = _object getVariable[(_variable + "_CHK"),_vNew]; _result = 0; if (_vNew < _vOld) then { //JIP issues _vNew = _vNew + _vOld; _object getVariable[(_variable + "_CHK"),_vNew]; } else { _result = _vNew - _vOld; _object setVariable[(_variable + "_CHK"),_vNew]; }; _result }; server_getDiff2 = { private["_variable","_object","_vNew","_vOld","_result"]; _variable = _this select 0; _object = _this select 1; _vNew = _object getVariable[_variable,0]; _vOld = _object getVariable[(_variable + "_CHK"),_vNew]; _result = _vNew - _vOld; _object setVariable[(_variable + "_CHK"),_vNew]; _result }; dayz_objectUID = { private["_position","_dir","_key","_object"]; _object = _this; _position = getPosATL _object; _dir = direction _object; _key = [_dir,_position] call dayz_objectUID2; _key }; dayz_objectUID2 = { private["_position","_dir","_key"]; _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x < 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } forEach _position; _key = _key + str(round(_dir)); _key }; dayz_objectUID3 = { private["_position","_dir","_key"]; _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x < 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } forEach _position; _key = _key + str(round(_dir + time)); _key }; dayz_recordLogin = { private["_key"]; _key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2]; _key call server_hiveWrite; }; dayz_perform_purge = { if(!isNull(_this)) then { _this removeAllMPEventHandlers "mpkilled"; _this removeAllMPEventHandlers "mphit"; _this removeAllMPEventHandlers "mprespawn"; _this removeAllEventHandlers "FiredNear"; _this removeAllEventHandlers "HandleDamage"; _this removeAllEventHandlers "Killed"; _this removeAllEventHandlers "Fired"; _this removeAllEventHandlers "GetOut"; _this removeAllEventHandlers "GetIn"; _this removeAllEventHandlers "Local"; clearVehicleInit _this; deleteVehicle _this; deleteGroup (group _this); }; }; dayz_perform_purge_player = { private ["_countr","_backpack","_backpackType","_backpackWpn","_backpackMag","_objWpnTypes","_objWpnQty","_location","_dir","_holder","_weapons","_magazines"]; diag_log ("Purging player: " + str(_this)); if(!isNull(_this)) then { _location = getPosATL _this; _dir = getDir _this; _holder = createVehicle ["GraveDZE", _location, [], 0, "CAN_COLLIDE"]; _holder setDir _dir; _holder setPosATL _location; _holder enableSimulation false; _weapons = weapons _this; _magazines = magazines _this; // find backpack if(!(isNull unitBackpack _this)) then { _backpack = unitBackpack _this; _backpackType = typeOf _backpack; _backpackWpn = getWeaponCargo _backpack; _backpackMag = getMagazineCargo _backpack; _holder addBackpackCargoGlobal [_backpackType,1]; // add items from backpack _objWpnTypes = _backpackWpn select 0; _objWpnQty = _backpackWpn select 1; _countr = 0; { _holder addWeaponCargoGlobal [_x,(_objWpnQty select _countr)]; _countr = _countr + 1; } forEach _objWpnTypes; // add backpack magazine items _objWpnTypes = _backpackMag select 0; _objWpnQty = _backpackMag select 1; _countr = 0; { _holder addMagazineCargoGlobal [_x,(_objWpnQty select _countr)]; _countr = _countr + 1; } forEach _objWpnTypes; }; }; // add weapons { _holder addWeaponCargoGlobal [_x, 1]; } forEach _weapons; // add mags { _holder addMagazineCargoGlobal [_x, 1]; } forEach _magazines; _this removeAllMPEventHandlers "mpkilled"; _this removeAllMPEventHandlers "mphit"; _this removeAllMPEventHandlers "mprespawn"; _this removeAllEventHandlers "FiredNear"; _this removeAllEventHandlers "HandleDamage"; _this removeAllEventHandlers "Killed"; _this removeAllEventHandlers "Fired"; _this removeAllEventHandlers "GetOut"; _this removeAllEventHandlers "GetIn"; _this removeAllEventHandlers "Local"; clearVehicleInit _this; deleteVehicle _this; deleteGroup (group _this); // _this = nil; }; dayz_removePlayerOnDisconnect = { if(!isNull(_this)) then { _this removeAllMPEventHandlers "mphit"; deleteVehicle _this; deleteGroup (group _this); }; }; server_timeSync = { //Send request private ["_hour","_minute","_date","_key","_result","_outcome"]; _key = "CHILD:307:"; _result = _key call server_hiveReadWrite; _outcome = _result select 0; if(_outcome == "PASS") then { _date = _result select 1; if(dayz_fullMoonNights) then { _hour = _date select 3; _minute = _date select 4; //Force full moon nights _date = [2013,8,3,_hour,_minute]; }; setDate _date; PVDZE_plr_SetDate = _date; publicVariable "PVDZE_plr_SetDate"; diag_log ("TIME SYNC: Local Time set to " + str(_date)); }; }; // must spawn these server_spawncleanDead = { private ["_deathTime","_delQtyZ","_delQtyP","_qty","_allDead"]; _allDead = allDead; _delQtyZ = 0; _delQtyP = 0; { if (local _x) then { if (_x isKindOf "zZombie_Base") then { _x call dayz_perform_purge; sleep 0.05; _delQtyZ = _delQtyZ + 1; } else { if (_x isKindOf "CAManBase") then { _deathTime = _x getVariable ["processedDeath", diag_tickTime]; if (diag_tickTime - _deathTime > 1800) then { _x call dayz_perform_purge_player; sleep 0.025; _delQtyP = _delQtyP + 1; }; }; }; }; sleep 0.025; } forEach _allDead; if (_delQtyZ > 0 or _delQtyP > 0) then { _qty = count _allDead; diag_log (format["CLEANUP: Deleted %1 players and %2 zombies out of %3 dead",_delQtyP,_delQtyZ,_qty]); }; }; server_cleanupGroups = { if (DZE_DYN_AntiStuck3rd > 3) then { DZE_DYN_GroupCleanup = nil; DZE_DYN_AntiStuck3rd = 0; }; if(!isNil "DZE_DYN_GroupCleanup") exitWith { DZE_DYN_AntiStuck3rd = DZE_DYN_AntiStuck3rd + 1;}; DZE_DYN_GroupCleanup = true; { if (count units _x == 0) then { deleteGroup _x; }; sleep 0.001; } forEach allGroups; DZE_DYN_GroupCleanup = nil; }; server_checkHackers = { if (DZE_DYN_AntiStuck2nd > 3) then { DZE_DYN_HackerCheck = nil; DZE_DYN_AntiStuck2nd = 0; }; if(!isNil "DZE_DYN_HackerCheck") exitWith { DZE_DYN_AntiStuck2nd = DZE_DYN_AntiStuck2nd + 1;}; DZE_DYN_HackerCheck = true; { if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle) && (vehicle _x getVariable ["MalSar",0] !=1)) then { diag_log ("CLEANUP: KILLING A HACKER " + (name _x) + " " + str(_x) + " IN " + (typeOf vehicle _x)); (vehicle _x) setDamage 1; _x setDamage 1; sleep 0.25; }; sleep 0.001; } forEach allUnits; DZE_DYN_HackerCheck = nil; }; server_spawnCleanFire = { private ["_delQtyFP","_qty","_delQtyNull","_missionFires"]; _missionFires = allMissionObjects "Land_Fire_DZ"; _delQtyFP = 0; { if (local _x) then { deleteVehicle _x; sleep 0.025; _delQtyFP = _delQtyFP + 1; }; sleep 0.001; } forEach _missionFires; if (_delQtyFP > 0) then { _qty = count _missionFires; diag_log (format["CLEANUP: Deleted %1 fireplaces out of %2",_delQtyNull,_qty]); }; }; server_spawnCleanLoot = { private ["_created","_delQty","_nearby","_age","_keep","_qty","_missionObjs","_dateNow"]; if (DZE_DYN_AntiStuck > 3) then { DZE_DYN_cleanLoot = nil; DZE_DYN_AntiStuck = 0; }; if(!isNil "DZE_DYN_cleanLoot") exitWith { DZE_DYN_AntiStuck = DZE_DYN_AntiStuck + 1;}; DZE_DYN_cleanLoot = true; _missionObjs = allMissionObjects "ReammoBox"; _delQty = 0; _dateNow = (DateToNumber date); { _keep = _x getVariable ["permaLoot",false]; if (!_keep) then { _created = _x getVariable ["created",-0.1]; if (_created == -0.1) then { _x setVariable ["created",_dateNow,false]; _created = _dateNow; } else { _age = (_dateNow - _created) * 525948; if (_age > 20) then { _nearby = {(isPlayer _x) and (alive _x)} count (_x nearEntities [["CAManBase","AllVehicles"], 130]); if (_nearby==0) then { deleteVehicle _x; sleep 0.025; _delQty = _delQty + 1; }; }; }; }; sleep 0.001; } forEach _missionObjs; if (_delQty > 0) then { _qty = count _missionObjs; diag_log (format["CLEANUP: Deleted %1 Loot Piles out of %2",_delQty,_qty]); }; DZE_DYN_cleanLoot = nil; }; server_spawnCleanAnimals = { private ["_pos","_delQtyAnimal","_qty","_missonAnimals","_nearby"]; _missonAnimals = entities "CAAnimalBase"; _delQtyAnimal = 0; { if (local _x) then { _x call dayz_perform_purge; sleep 0.05; _delQtyAnimal = _delQtyAnimal + 1; } else { if (!alive _x) then { _pos = getPosATL _x; if (count _pos > 0) then { _nearby = {(isPlayer _x) and (alive _x)} count (_pos nearEntities [["CAManBase","AllVehicles"], 130]); if (_nearby==0) then { _x call dayz_perform_purge; sleep 0.05; _delQtyAnimal = _delQtyAnimal + 1; }; }; }; }; sleep 0.001; } forEach _missonAnimals; if (_delQtyAnimal > 0) then { _qty = count _missonAnimals; diag_log (format["CLEANUP: Deleted %1 Animals out of %2",_delQtyAnimal,_qty]); }; }; server_getLocalObjVars = { private ["_player","_obj","_objectID","_objectUID","_weapons","_magazines","_backpacks"]; _player = _this select 0; _obj = _this select 1; _objectID = _obj getVariable["ObjectID","0"]; _objectUID = _obj getVariable["ObjectUID","0"]; _weapons = _obj getVariable ["WeaponCargo", false]; _magazines = _obj getVariable ["MagazineCargo", false]; _backpacks = _obj getVariable ["BackpackCargo", false]; PVDZE_localVarsResult = [_weapons,_magazines,_backpacks]; (owner _player) publicVariableClient "PVDZE_localVarsResult"; diag_log format["SAFE UNLOCKED: ID:%1 UID:%2 BY %3(%4)", _objectID, _objectUID, (name _player), (getPlayerUID _player)]; }; server_setLocalObjVars = { private ["_obj","_holder","_weapons","_magazines","_backpacks","_player","_objectID","_objectUID"]; _obj = _this select 0; _holder = _this select 1; _player = _this select 2; _objectID = _obj getVariable["ObjectID","0"]; _objectUID = _obj getVariable["ObjectUID","0"]; _weapons = getWeaponCargo _obj; _magazines = getMagazineCargo _obj; _backpacks = getBackpackCargo _obj; deleteVehicle _obj; _holder setVariable ["WeaponCargo", _weapons]; _holder setVariable ["MagazineCargo", _magazines]; _holder setVariable ["BackpackCargo", _backpacks]; diag_log format["SAFE LOCKED: ID:%1 UID:%2 BY %3(%4)", _objectID, _objectUID, (name _player), (getPlayerUID _player)]; }; Link to comment Share on other sites More sharing options...
icey Posted May 15, 2014 Author Report Share Posted May 15, 2014 nobody an idea ?! :( Link to comment Share on other sites More sharing options...
Darihon Posted May 15, 2014 Report Share Posted May 15, 2014 Sorry, forgot about this topic. How do you call the buildings? Using init.sqf, since I don't see them getting called in the server_functions. Link to comment Share on other sites More sharing options...
icey Posted May 15, 2014 Author Report Share Posted May 15, 2014 i packed the the file into my server.pbo folder buildings/camps.sqf and the call function is in my server_monitor.sqf private ["_nul","_result","_pos","_wsDone","_dir","_block","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_intentory","_hitPoints","_fuel","_damage","_key","_vehLimit","_hiveResponse","_objectCount","_codeCount","_data","_status","_val","_traderid","_retrader","_traderData","_id","_lockable","_debugMarkerPosition","_vehicle_0","_bQty","_vQty","_BuildingQueue","_objectQueue"]; dayz_versionNo = getText(configFile >> "CfgMods" >> "DayZ" >> "version"); dayz_hiveVersionNo = getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion"); waitUntil{initialized}; //means all the functions are now defined diag_log "HIVE: Starting"; waituntil{isNil "sm_done"}; // prevent server_monitor be called twice (bug during login of the first player) call compile preProcessFileLineNumbers "\z\addons\dayz_server\buildings\balotaAF.sqf"; call compile preProcessFileLineNumbers "\z\addons\dayz_server\buildings\camps.sqf"; Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now