RimBlock Posted July 26, 2014 Author Report Share Posted July 26, 2014 Also, i got everything working, but when the server restarts it all get deleted, do i need to do something in mysql? Check post and #453 above. If those do not help then I am going to need a few more details. Link to comment Share on other sites More sharing options...
RimBlock Posted July 26, 2014 Author Report Share Posted July 26, 2014 RimBlock! Why did you update all the files in the repo :( Now i don't know which ones to check to get mine to the latest :P Playing with the Git software to get proper branching and tagging. v2.2.4 -> v2.2.5: Only Vault_pitch.sqf modified. Diffmerge the folders will also work ;) . If you have an older version then let me know and I will try to let you know which files were amended. Link to comment Share on other sites More sharing options...
f3cuk Posted July 26, 2014 Report Share Posted July 26, 2014 Playing with the Git software to get proper branching and tagging. v2.2.4 -> v2.2.5: Only Vault_pitch.sqf modified. Diffmerge the folders will also work ;) . If you have an older version then let me know and I will try to let you know which files were amended. Nah its okay, i'll figure it out. I'll just read the thread from the last date i did any changes to the files. I think i was on 224. Link to comment Share on other sites More sharing options...
Link Posted July 26, 2014 Report Share Posted July 26, 2014 If the "/vilayercodecustom/dayz_epoch" folder has the OAserver.exe in it then it should be fine but I am guessing there may be something with the Vilayer setup that is not 100% compatible. Maybe others using this mod with Vilayer may be able to better advise. Another option is to put the server_monitor.sqf in to your@DayZ_Epoch_Server/dayz_server.pbo and leave the path as it originally was. Okay I got the server monitor linked up correctly, the issue im now having is that when a player places a safe and tries to unlock it, it simply doesn't work. Also when a player tries to upgrade a wall by their plot plot it says it isn't within 30 metres of range. After restart the plot pole disappears also and so does objects around it (except for safe). I have many problems with this. Here is my RPT Log # value 23:44:53 Warning Message: No entry '.ammo'. 23:44:53 Warning Message: '/' is not a value 23:44:55 Error in expression < compile format ["%1",_data]; _status = _result select 0; if (_status == "Objec> 23:44:55 Error position: <_result select 0; if (_status == "Objec> 23:44:55 Error Undefined variable in expression: _result 23:44:55 File z\addons\dayz_server\custom\APlotForLifev2.2.1\server_monitor.sqf, line 293 23:44:56 "HIVE: Spawning # of Vehicles: 5" Here is my server_monitor file private ["_nul","_result","_pos","_wsDone","_dir","_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","_superkey","_shutdown","_res","_hiveLoaded"]; dayz_versionNo = getText(configFile >> "CfgMods" >> "DayZ" >> "version"); dayz_hiveVersionNo = getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion"); _hiveLoaded = false; 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) // 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 && 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 { if ((_hiveResponse select 1) == "Instance already initialized") then { _superkey = profileNamespace getVariable "SUPERKEY"; _shutdown = format["CHILD:400:%1:", _superkey]; _res = _shutdown call server_hiveReadWrite; diag_log ("HIVE: attempt to kill.. HiveExt response:"+str(_res)); } else { 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 { // save superkey profileNamespace setVariable ["SUPERKEY",(_hiveResponse select 2)]; _hiveLoaded = true; 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)); }; // Realign characterID to OwnerPUID - need to force save though. if (count _worldspace < 3) then { _worldspace set [count _worldspace, "0"]; }; _ownerPUID = _worldspace select 2; // diag_log format["Server_monitor: [ObjectID = %1] [ClassID = %2] [_ownerPUID = %3]", _idKey, _type, _ownerPUID]; 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]; _object setVariable ["OwnerPUID", _ownerPUID, 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 && 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),true]; _object setVariable ["MagazineCargo", (_intentory select 1),true]; _object setVariable ["BackpackCargo", (_intentory select 2),true]; } 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; } count _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; } count _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; } count _objWpnTypes; }; }; if (_object isKindOf "AllVehicles") then { { _selection = _x select 0; _dam = _x select 1; if (_selection in dayZ_explosiveParts && _dam > 0.8) then {_dam = 0.8}; [_object,_selection,_dam] call object_setFixServer; } count _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"; _object setVariable ["R3F_LOG_disabled",true,true]; }; _totalvehicles = _totalvehicles + 1; // total each vehicle serverVehicleCounter set [count serverVehicleCounter,_type]; }; }; //Monitor the object PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object]; }; } count (_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; }; if (_hiveLoaded) then { // 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; }; // [_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]; endLoadingScreen; }; [] ExecVM "\z\addons\dayz_server\EMS\DZMSInit.sqf"; allowConnection = true; [] ExecVM "\z\addons\dayz_server\WAI\init.sqf"; allowConnection = true; sm_done = true; publicVariable "sm_done"; }; Line 293 is the following line //Process result _result = call compile format ["%1",_data]; _status = _result select 0; I have _result added as a private variable at the top of the file inside of the array like you have. My friend on my server placed down a plot pole however it didn't save to the database, he built a wall and a safe but only the safe appears in the database sql, this is what it looks like; It seems to me none of the objects are saving to the database, that's why they are disappearing after restart. Objects like the safe that are saving aren't saving the players steam ID into the World space coordinates. I have all the files setup correctly, what's the most common methods for resolving this problem with your script? Here's my other scripts as part of the feature as well as their directory location so you van correct me if I have done anything wrong; init.sql (/missions/epoch.chernarus/init.sqf) /* For DayZ Epoch Addons Credits: Jetski Yanahui by Kol9yN, Zakat, Gerasimow9, YuraPetrov, zGuba, A.Karagod, IceBreakr, Sahbazz */ startLoadingScreen ["","RscDisplayLoadCustom"]; cutText ["","BLACK OUT"]; enableSaving [false, false]; //REALLY IMPORTANT VALUES dayZ_instance = 11; //The instance dayzHiveRequest = []; initialized = false; dayz_previousID = 0; dayz_spawnselection = 1; // DayZ Spawnselection / 1 = enabled // 0 = disabled, No current spawn limits. DZE_R3F_WEIGHT = false; //disable greeting menu player setVariable ["BIS_noCoreConversations", true]; //disable radio messages to be heard and shown in the left lower corner of the screen enableRadio false; // May prevent "how are you civillian?" messages from NPC enableSentences false; // DayZ Epoch config spawnShoremode = 1; // Default = 1 (on shore) spawnArea= 1500; // Default = 1500 DZE_customloot = true; DZE_MissionLootTable = true; MaxVehicleLimit = 300; // Default = 50 MaxDynamicDebris = 500; // Default = 100 dayz_MapArea = 14000; // Default = 10000 dayz_maxLocalZombies = 30; // Default = 30 // Default Loadout DefaultMagazines = ["15Rnd_9x19_M9SD","15Rnd_9x19_M9SD","FoodCanBakedBeans","ItemWatterBottle","ItemBandage","ItemBandage","ItemBloodbag","ItemPainkiller"]; DefaultWeapons = ["M9SD","ItemMap","ItemCompass","ItemToolbox","ItemFlashlight","Binocular"]; DefaultBackpack = "DZ_ALICE_Pack_EP1"; DefaultBackpackWeapon = ""; dayz_paraSpawn = false; dayz_minpos = -1; dayz_maxpos = 16000; dayz_sellDistance_vehicle = 10; dayz_sellDistance_boat = 30; dayz_sellDistance_air = 40; dayz_maxAnimals = 5; // Default: 8 dayz_tameDogs = true; DynamicVehicleDamageLow = 0; // Default: 0 DynamicVehicleDamageHigh = 100; // Default: 100 DZE_BuildOnRoads = false; // Default: False DZE_SelfTransfuse = true; // Self Bloodbag DZE_BuildingLimit = 600; DZE_HeliLift = true; DZE_AllowForceSave = true; DZE_ForceNameTags = false; DZE_ForceNameTagsOff = true; EpochEvents = [["any","any","any","any",30,"crash_spawner"],["any","any","any","any",0,"crash_spawner"],["any","any","any","any",15,"supply_drop"]]; dayz_fullMoonNights = true; //Load in compiled functions call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf"; //Initilize the Variables (IMPORTANT: Must happen very early) progressLoadingScreen 0.1; call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf"; //Initilize the publicVariable event handlers progressLoadingScreen 0.2; call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf"; //Functions used by CLIENT for medical progressLoadingScreen 0.4; call compile preprocessFileLineNumbers "custom\compiles.sqf"; call compile preprocessFileLineNumbers "Recover_Skin\compiles.sqf"; // Recover Skins COMPILES call compile preprocessFileLineNumbers "addons\bike\init.sqf"; call compile preprocessFileLineNumbers "custom\snap_build\compiles.sqf"; //Compile custom compiles progressLoadingScreen 0.5; call compile preprocessFileLineNumbers "server_traders.sqf"; //Compile trader configs progressLoadingScreen 1.0; "filmic" setToneMappingParams [0.153, 0.357, 0.231, 0.1573, 0.011, 3.750, 6, 4]; setToneMapping "Filmic"; if (isServer) then { call compile preprocessFileLineNumbers "\z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\dynamic_vehicle.sqf"; //Compile vehicle configs // Add trader citys _nil = [] execVM "\z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\mission.sqf"; //diag_log text "APlotForLife"; //_serverMonitor = [] execVM "\z\addons\dayz_code\system\server_monitor.sqf"; _serverMonitor = [] execVM "\z\addons\dayz_server\custom\APlotForLifev2.2.1\server_monitor.sqf"; //diag_log format["[_serverMonitor: %1]",_serverMonitor]; }; if (!isDedicated) then { [] execVM "compile\Server_WelcomeCredits.sqf"; //Conduct map operations 0 fadeSound 0; waitUntil {!isNil "dayz_loadScreenMsg"}; dayz_loadScreenMsg = (localize "STR_AUTHENTICATING"); execVM "service_point\service_point.sqf"; // VEHICLE SERVER POINTS //Run the player monitor _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}]; _playerMonitor = [] execVM "dayz_code\system\player_monitor.sqf"; //Lights //[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf"; if (isNil 'debugMonitor') then { debugMonitor = true; _nill = execvm "custom\debug_monitor.sqf"; }; }; //Start Dynamic Weather execVM "\z\addons\dayz_code\external\DynamicWeatherEffects.sqf"; #include "\z\addons\dayz_code\system\BIS_Effects\init.sqf" [] execVM 'safezones\safezones.sqf'; [] execVM "custom\custom_markers.sqf"; // CUSTOM MAP MARKERS [] execVM "sectorfng\sectorfng_init.sqf"; //SECTOR FNG [] execVM "R3F_ARTY_AND_LOG\init.sqf"; // TOW AND LIFTING compiles.sql (/missions/epoch.chernarus/custom/compiles.sqf) /* FUNCTION COMPILES */ //Player only if (!isDedicated) then { "filmic" setToneMappingParams [0.07, 0.31, 0.23, 0.37, 0.011, 3.750, 6, 4]; setToneMapping "Filmic"; BIS_Effects_Burn = compile preprocessFile "\ca\Data\ParticleEffects\SCRIPTS\destruction\burn.sqf"; player_zombieCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieCheck.sqf"; //Run on a players computer, checks if the player is near a zombie player_zombieAttack = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieAttack.sqf"; //Run on a players computer, causes a nearby zombie to attack them fnc_usec_damageActions = compile preprocessFileLineNumbers "custom\PlotForLifev2\fn_damageActions.sqf"; //Checks which actions for nearby casualty fnc_inAngleSector = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_inAngleSector.sqf"; //Checks which actions for nearby casualty fnc_usec_selfActions = compile preprocessFileLineNumbers "custom\PlotForLifev2\fn_selfActions.sqf"; //Checks which actions for self fnc_usec_unconscious = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_unconscious.sqf"; player_temp_calculation = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_temperatur.sqf"; //Temperatur System //TeeChange player_weaponFiredNear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_weaponFiredNear.sqf"; player_animalCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_animalCheck.sqf"; player_spawnCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnCheck.sqf"; player_dumpBackpack = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_dumpBackpack.sqf"; building_spawnLoot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\building_spawnLoot.sqf"; building_spawnZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\building_spawnZombies.sqf"; dayz_spaceInterrupt = compile preprocessFileLineNumbers "custom\dayz_spaceInterrupt.sqf"; player_fired = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_fired.sqf"; //Runs when player fires. Alerts nearby Zeds depending on calibre && audial rating player_harvest = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_harvest.sqf"; player_packTent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_packTent.sqf"; player_packTent = compile preprocessFileLineNumbers "custom\PlotForLifev2\player_packTent.sqf"; player_packVault = compile preprocessFileLineNumbers "custom\PlotForLifev2\player_packVault.sqf"; player_removeObject = compile preprocessFileLineNumbers "custom\PlotForLifev2\remove.sqf"; player_removeNearby = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_removeNearby.sqf"; player_removeTankTrap = { //Object Array, Range, Error Message (@Skaronator) [["Hedgehog_DZ"], 1,"STR_EPOCH_ACTIONS_14"] call player_removeNearby; }; player_removeNet = { [["DesertLargeCamoNet","ForestCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ"], 5,"str_epoch_player_8"] call player_removeNearby; }; player_login = { private ["_unit","_detail"]; _unit = _this select 0; _detail = _this select 1; if(_unit == getPlayerUID player) then { player setVariable["publish",_detail]; }; }; player_unlockDoor = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_unlockDoor.sqf"; player_changeCombo = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_changeCombo.sqf"; player_lockVault = compile preprocessFileLineNumbers "custom\PlotForLifev2\player_lockVault.sqf"; player_updateGui = compile preprocessFileLineNumbers "custom\PlotForLifev2\player_updateGui.sqf"; player_crossbowBolt = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_crossbowBolt.sqf"; player_music = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_music.sqf"; //Used to generate ambient music player_death = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_death.sqf"; player_switchModel = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_switchModel.sqf"; player_checkStealth = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_checkStealth.sqf"; world_sunRise = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_sunRise.sqf"; world_surfaceNoise = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_surfaceNoise.sqf"; player_humanityMorph = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_humanityMorph.sqf"; player_throwObject = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_throwObject.sqf"; player_alertZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_alertZombies.sqf"; player_fireMonitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\fire_monitor.sqf"; fn_gearMenuChecks = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_gearMenuChecks.sqf"; //Objects object_roadFlare = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_roadFlare.sqf"; object_setpitchbank = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_setpitchbank.sqf"; object_monitorGear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_monitorGear.sqf"; local_roadDebris = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_roadDebris.sqf"; //Zombies zombie_findTargetAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_findTargetAgent.sqf"; zombie_loiter = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_loiter.sqf"; //Server compile, used for loiter behaviour zombie_generate = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_generate.sqf"; //Server compile, used for loiter behaviour wild_spawnZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\wild_spawnZombies.sqf"; //Server compile, used for loiter behaviour pz_attack = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\pzombie\pz_attack.sqf"; dog_findTargetAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\dog_findTargetAgent.sqf"; //actions player_countmagazines = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_countmagazines.sqf"; player_addToolbelt = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_addToolbelt.sqf"; player_copyKey = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_copyKey.sqf"; player_reloadMag = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_reloadMags.sqf"; player_loadCrate = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_loadCrate.sqf"; player_craftItem = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_craftItem.sqf"; player_tentPitch = compile preprocessFileLineNumbers "custom\PlotForLifev2\tent_pitch.sqf"; player_vaultPitch = compile preprocessFileLineNumbers "custom\PlotForLifev2\vault_pitch.sqf"; player_drink = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_drink.sqf"; player_eat = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_eat.sqf"; player_useMeds = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_useMeds.sqf"; player_fillWater = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\water_fill.sqf"; player_makeFire = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_makefire.sqf"; player_harvestPlant = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_harvestPlant.sqf"; player_goFishing = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_goFishing.sqf"; player_build = compile preprocessFileLineNumbers "custom\PlotForLifev2\player_build.sqf"; player_wearClothes = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_wearClothes.sqf"; object_pickup = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\object_pickup.sqf"; player_flipvehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_flipvehicle.sqf"; player_sleep = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_sleep.sqf"; player_antiWall = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_antiWall.sqf"; player_deathBoard = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\list_playerDeathsAlt.sqf"; player_plotPreview = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_showPlotRadius.sqf"; player_upgradeVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_upgradeVehicle.sqf"; //ui player_selectSlot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_selectSlot.sqf"; player_gearSync = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_gearSync.sqf"; player_gearSet = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_gearSet.sqf"; ui_changeDisplay = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_changeDisplay.sqf"; ui_gear_sound = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_gear_sound.sqf"; //System player_monitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_monitor.sqf"; player_spawn_1 = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_spawn_1.sqf"; player_spawn_2 = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_spawn_2.sqf"; onPreloadStarted "dayz_preloadFinished = false;"; onPreloadFinished "dayz_preloadFinished = true;"; // helper functions player_hasTools = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_hasTools.sqf"; player_checkItems = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_checkItems.sqf"; player_removeItems = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_removeItems.sqf"; //Trader ["Trader City Name",false,"enter"] - Trader City Name | Show Message | "enter" || "leave" player_traderCity = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderCity.sqf"; // combination of check && remove items player_checkAndRemoveItems = { private ["_items","_b"]; _items = _this; _b = _items call player_checkItems; if (_b) then { _b = _items call player_removeItems; }; _b }; dayz_HungerThirst = { dayz_hunger = dayz_hunger + (_this select 0); dayz_thirst = dayz_thirst + (_this select 1); }; epoch_totalCurrency = { // total currency _total_currency = 0; { _part = (configFile >> "CfgMagazines" >> _x); _worth = (_part >> "worth"); if isNumber (_worth) then { _total_currency = _total_currency + getNumber(_worth); }; } count (magazines player); _total_currency }; epoch_itemCost = { _trade_total = 0; { _part_in_configClass = configFile >> "CfgMagazines" >> (_x select 0); if (isClass (_part_in_configClass)) then { _part_inWorth = (_part_in_configClass >> "worth"); if isNumber (_part_inWorth) then { _trade_total = _trade_total + (getNumber(_part_inWorth) * (_x select 1)); }; }; } count _this; //diag_log format["DEBUG TRADER ITEMCOST: %1", _this]; _trade_total }; epoch_returnChange = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\epoch_returnChange.sqf"; // usage [["partinclassname",4]] call epoch_returnChange; dayz_losChance = { private["_agent","_maxDis","_dis","_val","_maxExp","_myExp"]; _agent = _this select 0; _dis = _this select 1; _maxDis = _this select 2; // diag_log ("VAL: " + str(_this)); _val = (_maxDis - _dis) max 0; _maxExp = ((exp 2) * _maxDis); _myExp = ((exp 2) * (_val)) / _maxExp; _myExp = _myExp * 0.7; _myExp }; ui_initDisplay = { private["_control","_ctrlBleed","_display","_ctrlFracture","_ctrlDogFood","_ctrlDogWater","_ctrlDogWaterBorder", "_ctrlDogFoodBorder"]; disableSerialization; _display = uiNamespace getVariable 'DAYZ_GUI_display'; _control = _display displayCtrl 1204; _control ctrlShow false; if (!r_player_injured) then { _ctrlBleed = _display displayCtrl 1303; _ctrlBleed ctrlShow false; }; if (!r_fracture_legs && !r_fracture_arms) then { _ctrlFracture = _display displayCtrl 1203; _ctrlFracture ctrlShow false; }; _ctrlDogFoodBorder = _display displayCtrl 1501; _ctrlDogFoodBorder ctrlShow false; _ctrlDogFood = _display displayCtrl 1701; _ctrlDogFood ctrlShow false; _ctrlDogWaterBorder = _display displayCtrl 1502; _ctrlDogWaterBorder ctrlShow false; _ctrlDogWater = _display displayCtrl 1702; _ctrlDogWater ctrlShow false }; dayz_losCheck = { private["_target","_agent","_cantSee"]; _target = _this select 0; // PUT THE PLAYER IN FIRST ARGUMENT!!!! _agent = _this select 1; _cantSee = true; if (!isNull _target) then { _tPos = visiblePositionASL _target; _zPos = visiblePositionASL _agent; _tPos set [2,(_tPos select 2)+1]; _zPos set [2,(_zPos select 2)+1]; if ((count _tPos > 0) && (count _zPos > 0)) then { _cantSee = terrainIntersectASL [_tPos, _zPos]; if (!_cantSee) then { _cantSee = lineIntersects [_tPos, _zPos, _agent, vehicle _target]; }; }; }; _cantSee }; dayz_equipCheck = { private ["_empty", "_needed","_diff","_success"]; _config = _this; _empty = [player] call BIS_fnc_invSlotsEmpty; _needed = [_config] call BIS_fnc_invSlotType; _diff = [_empty,_needed] call BIS_fnc_vectorDiff; _success = true; { if (_x > 0) then {_success = false}; } count _diff; hint format["Config: %5\nEmpty: %1\nNeeded: %2\nDiff: %3\nSuccess: %4",_empty,_needed,_diff,_success,_config]; _success }; vehicle_gear_count = { private["_counter"]; _counter = 0; { _counter = _counter + _x; } count _this; _counter }; player_tagFriendlyMsg = { if(player == (_this select 0)) then { cutText[(localize "str_epoch_player_2"),"PLAIN DOWN"]; }; }; player_serverModelChange = { private["_object","_model"]; _object = _this select 0; _model = _this select 1; if (_object == player) then { _model call player_switchModel; }; }; player_guiControlFlash = { private["_control"]; _control = _this; if (ctrlShown _control) then { _control ctrlShow false; } else { _control ctrlShow true; }; }; gearDialog_create = { private ["_i","_dialog"]; if (!isNull (findDisplay 106)) then { (findDisplay 106) closeDisplay 0; }; openMap false; closeDialog 0; if (gear_done) then {sleep 0.001;}; player action ["Gear", player]; if (gear_done) then {sleep 0.001;}; _dialog = findDisplay 106; _i = 0; while {isNull _dialog} do {//DO NOT CHANGE TO A FOR LOOP! _i = _i + 1; _dialog = findDisplay 106; if (gear_done) then {sleep 0.001;}; if (_i in [100,200,299]) then { closeDialog 0; player action ["Gear", player]; }; if (_i > 300) exitWith {}; }; if (gear_done) then {sleep 0.001;}; _dialog = findDisplay 106; if ((parseNumber(_this select 0)) != 0) then { ctrlActivate (_dialog displayCtrl 157); if (gear_done) then { waitUntil {ctrlShown (_dialog displayCtrl 159)}; sleep 0.001; }; }; _dialog }; gear_ui_offMenu = { private["_control","_parent","_menu"]; disableSerialization; _control = _this select 0; _parent = findDisplay 106; if (!(_this select 3)) then { for "_i" from 0 to 9 do { _menu = _parent displayCtrl (1600 + _i); _menu ctrlShow false; }; _grpPos = ctrlPosition _control; _grpPos set [3,0]; _control ctrlSetPosition _grpPos; _control ctrlShow false; _control ctrlCommit 0; }; }; dze_surrender_off = { player setVariable ["DZE_Surrendered", false, true]; DZE_Surrender = false; }; gear_ui_init = { private["_control","_parent","_menu","_dspl","_grpPos"]; disableSerialization; _parent = findDisplay 106; _control = _parent displayCtrl 6902; for "_i" from 0 to 9 do { _menu = _parent displayCtrl (1600 + _i); _menu ctrlShow false; }; _grpPos = ctrlPosition _control; _grpPos set [3,0]; _control ctrlSetPosition _grpPos; _control ctrlShow false; _control ctrlCommit 0; }; dayz_eyeDir = { private["_vval","_vdir"]; _vval = (eyeDirection _this); _vdir = (_vval select 0) atan2 (_vval select 1); if (_vdir < 0) then {_vdir = 360 + _vdir}; _vdir }; DZE_getModelName = { _objInfo = toArray(str(_this)); _lenInfo = count _objInfo - 1; _objName = []; _i = 0; // determine where the object name starts { if (58 == _objInfo select _i) exitWith {}; _i = _i + 1; } count _objInfo; _i = _i + 2; // skip the ": " part for "_k" from _i to _lenInfo do { _objName set [(count _objName), (_objInfo select _k)]; }; _objName = toLower(toString(_objName)); _objName }; dze_isnearest_player = { private ["_notClosest","_playerDistance","_nearPlayers","_obj","_playerNear"]; if(!isNull _this) then { _nearPlayers = _this nearEntities ["CAManBase", 12]; _playerNear = ({isPlayer _x} count _nearPlayers) > 1; _notClosest = false; if (_playerNear) then { // check if another player is closer _playerDistance = player distance _this; { if (_playerDistance > (_x distance _this)) exitWith { _notClosest = true; }; } count _nearPlayers; }; } else { _notClosest = false; }; _notClosest }; // trader menu code if (DZE_ConfigTrader) then { call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuConfig.sqf"; }else{ call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuHive.sqf"; }; // recent murders menu code call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_murderMenu.sqf"; //This is still needed but the fsm should terminate if any errors pop up. [] spawn { private["_timeOut","_display","_control1","_control2"]; disableSerialization; _timeOut = 0; dayz_loadScreenMsg = ""; diag_log "DEBUG: loadscreen guard started."; _display = uiNameSpace getVariable "BIS_loadingScreen"; if (!isNil "_display") then { _control1 = _display displayctrl 8400; _control2 = _display displayctrl 102; }; if (!isNil "dayz_DisplayGenderSelect") then { waitUntil {!dayz_DisplayGenderSelect}; }; // 120 sec timeout (12000 * 0.01) while { _timeOut < 12000 } do { if (dayz_clientPreload && dayz_authed) exitWith { diag_log "PLOGIN: Login loop completed!"; }; if (!isNil "_display") then { if ( isNull _display ) then { waitUntil { !dialog; }; startLoadingScreen ["","RscDisplayLoadCustom"]; _display = uiNameSpace getVariable "BIS_loadingScreen"; _control1 = _display displayctrl 8400; _control2 = _display displayctrl 102; }; if ( dayz_loadScreenMsg != "" ) then { _control1 ctrlSetText dayz_loadScreenMsg; dayz_loadScreenMsg = ""; }; _control2 ctrlSetText format["%1",round(_timeOut*0.01)]; }; _timeOut = _timeOut + 1; if (_timeOut >= 12000) then { 1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"]; sleep 10; endLoadingScreen; endMission "END1"; }; sleep 0.01; }; }; dayz_meleeMagazineCheck = { private["_meleeNum","_magType"]; _magType = ([] + getArray (configFile >> "CfgWeapons" >> _wpnType >> "magazines")) select 0; _meleeNum = ({_x == _magType} count magazines player); if (_meleeNum < 1) then { player addMagazine _magType; }; }; dayz_originalPlayer = player; progressLoadingScreen 0.8; }; //Both BIS_fnc_selectRandom = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_selectRandom.sqf"; BIS_fnc_vectorAdd = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_vectorAdd.sqf"; BIS_fnc_halo = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_halo.sqf"; BIS_fnc_findNestedElement = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_findNestedElement.sqf"; BIS_fnc_param = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_param.sqf"; fnc_buildWeightedArray = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_buildWeightedArray.sqf"; //Checks which actions for nearby casualty fnc_usec_damageVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandlerVehicle.sqf"; //Event handler run on damage // object_vehicleKilled = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_vehicleKilled.sqf"; //Event handler run on damage object_setHitServer = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setHitServer.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles) object_setFixServer = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setFixServer.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles) object_getHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_getHit.sqf"; //gets the hit value for a HitPoint (i.e. HitLegs) against the selection (i.e. "legs"), returns the value object_setHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setHit.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles) object_processHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_processHit.sqf"; //process the hit in the REVO damage system (records && sets hit) object_delLocal = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_delLocal.sqf"; // object_cargoCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_cargoCheck.sqf"; //Run by the player || server to monitor changes in cargo contents fnc_usec_damageHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf"; //Event handler run on damage fnc_veh_ResetEH = compile preprocessFileLineNumbers "\z\addons\dayz_code\init\veh_ResetEH.sqf"; //Initialize vehicle // Vehicle damage fix vehicle_handleDamage = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleDamage.sqf"; vehicle_handleKilled = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleKilled.sqf"; //fnc_vehicleEventHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\init\vehicle_init.sqf"; //Initialize vehicle fnc_inString = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_inString.sqf"; fnc_isInsideBuilding = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding.sqf"; //_isInside = [_unit,_building] call fnc_isInsideBuilding; fnc_isInsideBuilding2 = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding2.sqf"; //_isInside = [_unit,_building] call fnc_isInsideBuilding2; fnc_isInsideBuilding3 = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding3.sqf"; //_isInside = [_unit,_building] call fnc_isInsideBuilding3; dayz_zombieSpeak = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_speak.sqf"; //Used to generate random speech for a unit vehicle_getHitpoints = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_getHitpoints.sqf"; local_gutObject = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_gutObject.sqf"; //Generated on the server (|| local to unit) when gutting an object local_lockUnlock = compile preprocessFileLineNumbers "custom\local_lockUnlock.sqf"; //When vehicle is local to unit perform locking vehicle local_gutObjectZ = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_gutObjectZ.sqf"; //Generated on the server (|| local to unit) when gutting an object local_zombieDamage = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandlerZ.sqf"; //Generated by the client who created a zombie to track damage local_eventKill = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_eventKill.sqf"; //Generated when something is killed //player_weaponCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_weaponCheck.sqf"; //Run by the player || server to monitor whether they have picked up a new weapon curTimeStr = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_curTimeStr.sqf"; player_medBandage = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medBandaged.sqf"; player_medInject = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medInject.sqf"; player_medEpi = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medEpi.sqf"; player_medTransfuse = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medTransfuse.sqf"; player_medMorphine = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medMorphine.sqf"; player_breaklegs = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medBreakLegs.sqf"; player_medPainkiller = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medPainkiller.sqf"; world_isDay = {if ((daytime < (24 - dayz_sunRise)) && (daytime > dayz_sunRise)) then {true} else {false}}; player_humanityChange = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_humanityChange.sqf"; spawn_loot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\spawn_loot.sqf"; spawn_loot_small = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\spawn_loot_small.sqf"; // player_projectileNear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_projectileNear.sqf"; FNC_GetSetPos = { //DO NOT USE IF YOU NEED ANGLE COMPENSATION!!!! private "_pos"; _thingy = _this select 0; _pos = getPosASL _thingy; if (surfaceIsWater _pos) then { _thingy setPosASL _pos; } else { _thingy setPosATL (ASLToATL _pos); }; }; FNC_GetPos = { private "_pos"; if (isNil {_this select 0}) exitWith {[0,0,0]}; _thingy = _this select 0; _pos = getPosASL _thingy; if !(surfaceIsWater _pos) then { _pos = ASLToATL _pos; }; _pos }; local_setFuel = { private["_qty","_vehicle"]; _vehicle = _this select 0; _qty = _this select 1; _vehicle setFuel _qty; }; zombie_initialize = { private ["_unit","_position"]; _unit = _this select 0; if (isServer) then { _unit addEventHandler ["local", {_this call zombie_findOwner}]; }; _id = _unit addeventhandler["HandleDamage", { _this call local_zombieDamage }]; _id = _unit addeventhandler["Killed", { [_this, "zombieKills"] call local_eventKill }]; }; dayz_EjectPlayer = { // check if player in vehicle private ["_noDriver","_vehicle","_inVehicle"]; _vehicle = vehicle player; _inVehicle = (_vehicle != player); if(_inVehicle) then { _noDriver = ((_vehicle emptyPositions "driver") > 0); if (_noDriver && (speed _vehicle) != 0) then { player action [ "eject", _vehicle]; }; }; }; player_sumMedical = { private["_character","_wounds","_legs","_arms","_medical"]; _character = _this; _wounds = []; if (_character getVariable["USEC_injured",false]) then { { if (_character getVariable[_x,false]) then { _wounds set [count _wounds,_x]; }; } count USEC_typeOfWounds; }; _legs = _character getVariable ["hit_legs",0]; _arms = _character getVariable ["hit_arms",0]; _medical = [ _character getVariable["USEC_isDead",false], _character getVariable["NORRN_unconscious", false], _character getVariable["USEC_infected",false], _character getVariable["USEC_injured",false], _character getVariable["USEC_inPain",false], _character getVariable["USEC_isCardiac",false], _character getVariable["USEC_lowBlood",false], _character getVariable["USEC_BloodQty",12000], _wounds, [_legs,_arms], _character getVariable["unconsciousTime",0], _character getVariable["messing",[0,0]] ]; _medical }; //Server Only if (isServer) then { call compile preprocessFileLineNumbers "\z\addons\dayz_server\init\server_functions.sqf"; } else { eh_localCleanup = {}; }; initialized = true; The rest of the files are located in /missions/epoch.chernarus/custom/PlotForLifev2 like so; Let me know if you see any problems, if you think it's related to one of the files uploaded where I haven't posted the code then let me know and I will post it. Thank you. Link to comment Share on other sites More sharing options...
Storm Posted July 27, 2014 Report Share Posted July 27, 2014 What do you mean "lose their poles' ?. Do they vanish or are they not seen as the owner or something else ?. They are not seen as the owner upon server restart. It works fine after death, but soon as a server restarts happens the owner loses his plot pole. The owner can also still turn on boundaries as well, but can't building anything. Link to comment Share on other sites More sharing options...
RimBlock Posted July 27, 2014 Author Report Share Posted July 27, 2014 They are not seen as the owner upon server restart. It works fine after death, but soon as a server restarts happens the owner loses his plot pole. The owner can also still turn on boundaries as well, but can't building anything. Check post Most likely you are not saving the ownership values correctly or your server_monitor.sqf is not correctly linked so it is not reading the ownership values from the DB on server start ( see post ) Link to comment Share on other sites More sharing options...
RimBlock Posted July 27, 2014 Author Report Share Posted July 27, 2014 Okay I got the server monitor linked up correctly, the issue im now having is that when a player places a safe and tries to unlock it, it simply doesn't work. Also when a player tries to upgrade a wall by their plot plot it says it isn't within 30 metres of range. After restart the plot pole disappears also and so does objects around it (except for safe). I have many problems with this. Here is my RPT Log 1. Looks like you have probably changed the server_monitor.sqf file as I do not get this error. Download the latest vbersion from the GitHub and use the windiff software (link available from the "Tools for admins" link in my sig below) to compare your with the known good version. 2. Check your player_build.sqf (see post ) <-- Really need to put that in a FAQ section on the first page it seems. Link to comment Share on other sites More sharing options...
Storm Posted July 27, 2014 Report Share Posted July 27, 2014 1. Looks like you have probably changed the server_monitor.sqf file as I do not get this error. Download the latest vbersion from the GitHub and use the windiff software (link available from the "Tools for admins" link in my sig below) to compare your with the known good version. 2. Check your player_build.sqf (see post ) <-- Really need to put that in a FAQ section on the first page it seems. Thanks. I believe it was the server monitor. Link to comment Share on other sites More sharing options...
Link Posted July 27, 2014 Report Share Posted July 27, 2014 1. Looks like you have probably changed the server_monitor.sqf file as I do not get this error. Download the latest vbersion from the GitHub and use the windiff software (link available from the "Tools for admins" link in my sig below) to compare your with the known good version. 2. Check your player_build.sqf (see post ) <-- Really need to put that in a FAQ section on the first page it seems. My server monitor is exactly the same as yours as shown below; private ["_nul","_result","_pos","_wsDone","_dir","_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","_superkey","_shutdown","_res","_hiveLoaded"]; dayz_versionNo = getText(configFile >> "CfgMods" >> "DayZ" >> "version"); dayz_hiveVersionNo = getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion"); _hiveLoaded = false; 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) // 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 && 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 { if ((_hiveResponse select 1) == "Instance already initialized") then { _superkey = profileNamespace getVariable "SUPERKEY"; _shutdown = format["CHILD:400:%1:", _superkey]; _res = _shutdown call server_hiveReadWrite; diag_log ("HIVE: attempt to kill.. HiveExt response:"+str(_res)); } else { 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 { // save superkey profileNamespace setVariable ["SUPERKEY",(_hiveResponse select 2)]; _hiveLoaded = true; 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)); }; // Realign characterID to OwnerPUID - need to force save though. if (count _worldspace < 3) then { _worldspace set [count _worldspace, "0"]; }; _ownerPUID = _worldspace select 2; // diag_log format["Server_monitor: [ObjectID = %1] [ClassID = %2] [_ownerPUID = %3]", _idKey, _type, _ownerPUID]; 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]; _object setVariable ["OwnerPUID", _ownerPUID, 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 && 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),true]; _object setVariable ["MagazineCargo", (_intentory select 1),true]; _object setVariable ["BackpackCargo", (_intentory select 2),true]; } 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; } count _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; } count _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; } count _objWpnTypes; }; }; if (_object isKindOf "AllVehicles") then { { _selection = _x select 0; _dam = _x select 1; if (_selection in dayZ_explosiveParts && _dam > 0.8) then {_dam = 0.8}; [_object,_selection,_dam] call object_setFixServer; } count _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"; _object setVariable ["R3F_LOG_disabled",true,true]; }; _totalvehicles = _totalvehicles + 1; // total each vehicle serverVehicleCounter set [count serverVehicleCounter,_type]; }; }; //Monitor the object PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object]; }; } count (_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; }; if (_hiveLoaded) then { // 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; }; // [_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]; endLoadingScreen; }; [] ExecVM "\z\addons\dayz_server\EMS\DZMSInit.sqf"; allowConnection = true; [] ExecVM "\z\addons\dayz_server\WAI\init.sqf"; allowConnection = true; sm_done = true; publicVariable "sm_done"; }; As for my player_build file, when I downloaded that from your github one day ago it was already updated with the edit in post ##447 (see below). /* DayZ Base Building Made for DayZ Epoch please ask permission to use/edit/distrubute email [email protected]. */ private ["_location","_dir","_classname","_item","_hasrequireditem","_missing","_hastoolweapon","_cancel","_reason","_started","_finished","_animState","_isMedic","_dis","_sfx","_hasbuilditem","_tmpbuilt","_onLadder","_isWater","_require","_text","_offset","_IsNearPlot","_isOk","_location1","_location2","_counter","_limit","_proceed","_num_removed","_position","_object","_canBuildOnPlot","_friendlies","_nearestPole","_ownerID","_findNearestPoles","_findNearestPole","_distance","_classnametmp","_ghost","_isPole","_needText","_lockable","_zheightchanged","_rotate","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display","_combinationDisplay","_zheightdirection","_abort","_isNear","_need","_needNear","_vehicle","_inVehicle","_requireplot","_objHDiff","_isLandFireDZ","_isTankTrap","_ownerPUID", "_playerUID"]; if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_40") , "PLAIN DOWN"]; }; DZE_ActionInProgress = true; // disallow building if too many objects are found within 30m if((count ((getPosATL player) nearObjects ["All",30])) >= DZE_BuildingLimit) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_41"), "PLAIN DOWN"];}; _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _isWater = dayz_isSwimming; _cancel = false; _reason = ""; _canBuildOnPlot = false; _vehicle = vehicle player; _inVehicle = (_vehicle != player); _playerUID = getPlayerUID player; DZE_Q = false; DZE_Z = false; DZE_Q_alt = false; DZE_Z_alt = false; DZE_Q_ctrl = false; DZE_Z_ctrl = false; DZE_5 = false; DZE_4 = false; DZE_6 = false; DZE_cancelBuilding = false; call gear_ui_init; closeDialog 1; if (_isWater) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_26", "PLAIN DOWN"];}; if (_inVehicle) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_42"), "PLAIN DOWN"];}; if (_onLadder) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_21", "PLAIN DOWN"];}; if (player getVariable["combattimeout", 0] >= time) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_43"), "PLAIN DOWN"];}; _item = _this; // Need Near Requirements _abort = false; _reason = ""; _needNear = getArray (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> "Build" >> "neednearby"); { switch(_x) do{ case "fire": { _distance = 3; _isNear = {inflamed _x} count (getPosATL player nearObjects _distance); if(_isNear == 0) then { _abort = true; _reason = "fire"; }; }; case "workshop": { _distance = 3; _isNear = count (nearestObjects [player, ["Wooden_shed_DZ","WoodShack_DZ","WorkBench_DZ"], _distance]); if(_isNear == 0) then { _abort = true; _reason = "workshop"; }; }; case "fueltank": { _distance = 30; _isNear = count (nearestObjects [player, dayz_fuelsources, _distance]); if(_isNear == 0) then { _abort = true; _reason = "fuel tank"; }; }; }; } forEach _needNear; if(_abort) exitWith { cutText [format[(localize "str_epoch_player_135"),_reason,_distance], "PLAIN DOWN"]; DZE_ActionInProgress = false; }; _classname = getText (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> "Build" >> "create"); _classnametmp = _classname; _require = getArray (configFile >> "cfgMagazines" >> _this >> "ItemActions" >> "Build" >> "require"); _text = getText (configFile >> "CfgVehicles" >> _classname >> "displayName"); _ghost = getText (configFile >> "CfgVehicles" >> _classname >> "ghostpreview"); _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "lockable")) then { _lockable = getNumber(configFile >> "CfgVehicles" >> _classname >> "lockable"); }; _requireplot = DZE_requireplot; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "requireplot")) then { _requireplot = getNumber(configFile >> "CfgVehicles" >> _classname >> "requireplot"); }; _isAllowedUnderGround = 1; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "nounderground")) then { _isAllowedUnderGround = getNumber(configFile >> "CfgVehicles" >> _classname >> "nounderground"); }; _offset = getArray (configFile >> "CfgVehicles" >> _classname >> "offset"); if((count _offset) <= 0) then { _offset = [0,1.5,0]; }; _isPole = (_classname == "Plastic_Pole_EP1_DZ"); _isLandFireDZ = (_classname == "Land_Fire_DZ"); _distance = DZE_PlotPole select 0; _needText = localize "str_epoch_player_246"; if(_isPole) then { _distance = DZE_PlotPole select 1; }; // check for near plot _findNearestPoles = nearestObjects [(vehicle player), ["Plastic_Pole_EP1_DZ"], _distance]; _findNearestPole = []; { if (alive _x) then { _findNearestPole set [(count _findNearestPole),_x]; }; } count _findNearestPoles; _IsNearPlot = count (_findNearestPole); // If item is plot pole && another one exists within 45m if(_isPole && _IsNearPlot > 0) exitWith { DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_44") , "PLAIN DOWN"]; }; if(_IsNearPlot == 0) then { // Allow building of plot if(_requireplot == 0 || _isLandFireDZ) then { _canBuildOnPlot = true; }; } else { // Since there are plots nearby we check for ownership && then for friend status // check nearby plots ownership && then for friend status _nearestPole = _findNearestPole select 0; // Find owner _ownerID = _nearestPole getVariable ["ownerPUID","0"]; diag_log format["Player_build start: [PlayerUID = %1] [OwnerID = %2]", _playerUID, _ownerID]; // check if friendly to owner if(_playerUID == _ownerID) then { //Keep ownership // owner can build anything within his plot except other plots diag_log text "Player is owner"; if(!_isPole) then { _canBuildOnPlot = true; }; } else { // disallow building plot if(!_isPole) then { _friendlies = player getVariable ["friendlyTo",[]]; // check if friendly to owner if(_ownerID in _friendlies) then { _canBuildOnPlot = true; }; }; }; }; // _message if(!_canBuildOnPlot) exitWith { DZE_ActionInProgress = false; cutText [format[(localize "STR_EPOCH_PLAYER_135"),_needText,_distance] , "PLAIN DOWN"]; }; _missing = ""; _hasrequireditem = true; { _hastoolweapon = _x in weapons player; if(!_hastoolweapon) exitWith { _hasrequireditem = false; _missing = getText (configFile >> "cfgWeapons" >> _x >> "displayName"); }; } count _require; _hasbuilditem = _this in magazines player; if (!_hasbuilditem) exitWith {DZE_ActionInProgress = false; cutText [format[(localize "str_player_31"),_text,"build"] , "PLAIN DOWN"]; }; if (!_hasrequireditem) exitWith {DZE_ActionInProgress = false; cutText [format[(localize "str_epoch_player_137"),_missing] , "PLAIN DOWN"]; }; if (_hasrequireditem) then { _location = [0,0,0]; _isOk = true; // get inital players position _location1 = getPosATL player; _dir = getDir player; // if ghost preview available use that instead if (_ghost != "") then { _classname = _ghost; }; _object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; _object attachTo [player,_offset]; _position = getPosATL _object; cutText [(localize "str_epoch_player_45"), "PLAIN DOWN"]; _objHDiff = 0; while {_isOk} do { _zheightchanged = false; _zheightdirection = ""; _rotate = false; if (DZE_Q) then { DZE_Q = false; _zheightdirection = "up"; _zheightchanged = true; }; if (DZE_Z) then { DZE_Z = false; _zheightdirection = "down"; _zheightchanged = true; }; if (DZE_Q_alt) then { DZE_Q_alt = false; _zheightdirection = "up_alt"; _zheightchanged = true; }; if (DZE_Z_alt) then { DZE_Z_alt = false; _zheightdirection = "down_alt"; _zheightchanged = true; }; if (DZE_Q_ctrl) then { DZE_Q_ctrl = false; _zheightdirection = "up_ctrl"; _zheightchanged = true; }; if (DZE_Z_ctrl) then { DZE_Z_ctrl = false; _zheightdirection = "down_ctrl"; _zheightchanged = true; }; if (DZE_4) then { _rotate = true; DZE_4 = false; _dir = 180; }; if (DZE_6) then { _rotate = true; DZE_6 = false; _dir = 0; }; if(_rotate) then { _object setDir _dir; _object setPosATL _position; //diag_log format["DEBUG Rotate BUILDING POS: %1", _position]; }; if(_zheightchanged) then { detach _object; _position = getPosATL _object; if(_zheightdirection == "up") then { _position set [2,((_position select 2)+0.1)]; _objHDiff = _objHDiff + 0.1; }; if(_zheightdirection == "down") then { _position set [2,((_position select 2)-0.1)]; _objHDiff = _objHDiff - 0.1; }; if(_zheightdirection == "up_alt") then { _position set [2,((_position select 2)+1)]; _objHDiff = _objHDiff + 1; }; if(_zheightdirection == "down_alt") then { _position set [2,((_position select 2)-1)]; _objHDiff = _objHDiff - 1; }; if(_zheightdirection == "up_ctrl") then { _position set [2,((_position select 2)+0.01)]; _objHDiff = _objHDiff + 0.01; }; if(_zheightdirection == "down_ctrl") then { _position set [2,((_position select 2)-0.01)]; _objHDiff = _objHDiff - 0.01; }; _object setDir (getDir _object); if((_isAllowedUnderGround == 0) && ((_position select 2) < 0)) then { _position set [2,0]; }; _object setPosATL _position; //diag_log format["DEBUG Change BUILDING POS: %1", _position]; _object attachTo [player]; }; sleep 0.5; _location2 = getPosATL player; if(DZE_5) exitWith { _isOk = false; detach _object; _dir = getDir _object; _position = getPosATL _object; //diag_log format["DEBUG BUILDING POS: %1", _position]; deleteVehicle _object; }; if(_location1 distance _location2 > 5) exitWith { _isOk = false; _cancel = true; _reason = "You've moved to far away from where you started building (within 5 meters)"; detach _object; deleteVehicle _object; }; if(abs(_objHDiff) > 5) exitWith { _isOk = false; _cancel = true; _reason = "Cannot move up || down more than 5 meters"; detach _object; deleteVehicle _object; }; if (player getVariable["combattimeout", 0] >= time) exitWith { _isOk = false; _cancel = true; _reason = (localize "str_epoch_player_43"); detach _object; deleteVehicle _object; }; if (DZE_cancelBuilding) exitWith { _isOk = false; _cancel = true; _reason = "Cancelled building."; detach _object; deleteVehicle _object; }; }; //No building on roads unless toggled if (!DZE_BuildOnRoads) then { if (isOnRoad _position) then { _cancel = true; _reason = "Cannot build on a road."; }; }; // No building in trader zones if(!canbuild) then { _cancel = true; _reason = "Cannot build in a city."; }; if(!_cancel) then { _classname = _classnametmp; // Start Build _tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; _tmpbuilt setdir _dir; // Get position based on object _location = _position; if((_isAllowedUnderGround == 0) && ((_location select 2) < 0)) then { _location set [2,0]; }; _tmpbuilt setPosATL _location; cutText [format[(localize "str_epoch_player_138"),_text], "PLAIN DOWN"]; _limit = 3; if (DZE_StaticConstructionCount > 0) then { _limit = DZE_StaticConstructionCount; } else { if (isNumber (configFile >> "CfgVehicles" >> _classname >> "constructioncount")) then { _limit = getNumber(configFile >> "CfgVehicles" >> _classname >> "constructioncount"); }; }; _isOk = true; _proceed = false; _counter = 0; while {_isOk} do { [10,10] call dayz_HungerThirst; player playActionNow "Medic"; _dis=20; _sfx = "repair"; [player,_sfx,0,false,_dis] call dayz_zombieSpeak; [player,_dis,true,(getPosATL player)] spawn player_alertZombies; r_interrupt = false; r_doLoop = true; _started = false; _finished = false; while {r_doLoop} do { _animState = animationState player; _isMedic = ["medic",_animState] call fnc_inString; if (_isMedic) then { _started = true; }; if (_started && !_isMedic) then { r_doLoop = false; _finished = true; }; if (r_interrupt || (player getVariable["combattimeout", 0] >= time)) then { r_doLoop = false; }; if (DZE_cancelBuilding) exitWith { r_doLoop = false; }; sleep 0.1; }; r_doLoop = false; if(!_finished) exitWith { _isOk = false; _proceed = false; }; if(_finished) then { _counter = _counter + 1; }; cutText [format[(localize "str_epoch_player_139"),_text, _counter,_limit], "PLAIN DOWN"]; if(_counter == _limit) exitWith { _isOk = false; _proceed = true; }; }; if (_proceed) then { _num_removed = ([player,_item] call BIS_fnc_invRemove); if(_num_removed == 1) then { cutText [format[localize "str_build_01",_text], "PLAIN DOWN"]; if (_isPole) then { [] spawn player_plotPreview; }; _tmpbuilt setVariable ["OEMPos",_location,true]; if(_lockable > 1) then { _combinationDisplay = ""; switch (_lockable) do { case 2: { // 2 lockbox _combination_1 = (floor(random 3)) + 100; // 100=red,101=green,102=blue _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination = format["%1%2%3",_combination_1,_combination_2,_combination_3]; dayz_combination = _combination; if (_combination_1 == 100) then { _combination_1_Display = "Red"; }; if (_combination_1 == 101) then { _combination_1_Display = "Green"; }; if (_combination_1 == 102) then { _combination_1_Display = "Blue"; }; _combinationDisplay = format["%1%2%3",_combination_1_Display,_combination_2,_combination_3]; }; case 3: { // 3 combolock _combination_1 = floor(random 10); _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination = format["%1%2%3",_combination_1,_combination_2,_combination_3]; dayz_combination = _combination; _combinationDisplay = _combination; }; case 4: { // 4 safe _combination_1 = floor(random 10); _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination_4 = floor(random 10); _combination = format["%1%2%3%4",_combination_1,_combination_2,_combination_3,_combination_4]; dayz_combination = _combination; _combinationDisplay = _combination; }; }; _tmpbuilt setVariable ["CharacterID",_combination,true]; _tmpbuilt setVariable ["ownerPUID",_playerUID,true]; PVDZE_obj_Publish = [_combination,_tmpbuilt,[_dir,_location,_playerUID],_classname]; publicVariableServer "PVDZE_obj_Publish"; cutText [format[(localize "str_epoch_player_140"),_combinationDisplay,_text], "PLAIN DOWN", 5]; } else { _tmpbuilt setVariable ["CharacterID",dayz_characterID,true]; _tmpbuilt setVariable ["ownerPUID",_playerUID,true]; // fire? if(_tmpbuilt isKindOf "Land_Fire_DZ") then { _tmpbuilt spawn player_fireMonitor; } else { PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location,_playerUID],_classname]; publicVariableServer "PVDZE_obj_Publish"; }; }; } else { deleteVehicle _tmpbuilt; cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"]; }; } else { r_interrupt = false; if (vehicle player == player) then { [objNull, player, rSwitchMove,""] call RE; player playActionNow "stop"; }; deleteVehicle _tmpbuilt; cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"]; }; } else { cutText [format[(localize "str_epoch_player_47"),_text,_reason], "PLAIN DOWN"]; }; }; DZE_ActionInProgress = false; Yet the plot pole system still isn't working:( Link to comment Share on other sites More sharing options...
Soul Posted July 27, 2014 Report Share Posted July 27, 2014 the hive wont store a steamid cause its to long so the save to database query never gets executed by the hive. a way around this is to update the "getPlayeruid" in all relevant files to this mod to "getplayeruidold" Link to comment Share on other sites More sharing options...
RimBlock Posted July 27, 2014 Author Report Share Posted July 27, 2014 the hive wont store a steamid cause its to long so the save to database query never gets executed by the hive. a way around this is to update the "getPlayeruid" in all relevant files to this mod to "getplayeruidold" A Plot for Life v1 stored the playerUID in the objects characterID field. V2+ stores it as part of the worldspace field and so has no issue with the SteamID length. I think you mean getplayeroldUID and this is a temp command added to ease transition by BIS. There is no guarantee on how long it will remain in ARMA II OA. Detail on the discussion on various issues with the SteamID storage can be found here on the Epoch Git. As such the current A Plot for Live v2+ works fine with the SteamID (as stated in the title of this thread) if it is deployed correctly. Link to comment Share on other sites More sharing options...
RimBlock Posted July 27, 2014 Author Report Share Posted July 27, 2014 My server monitor is exactly the same as yours as shown below; private ["_nul","_result","_pos","_wsDone","_dir","_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","_superkey","_shutdown","_res","_hiveLoaded"]; dayz_versionNo = getText(configFile >> "CfgMods" >> "DayZ" >> "version"); dayz_hiveVersionNo = getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion"); _hiveLoaded = false; 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) // 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 && 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 { if ((_hiveResponse select 1) == "Instance already initialized") then { _superkey = profileNamespace getVariable "SUPERKEY"; _shutdown = format["CHILD:400:%1:", _superkey]; _res = _shutdown call server_hiveReadWrite; diag_log ("HIVE: attempt to kill.. HiveExt response:"+str(_res)); } else { 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 { // save superkey profileNamespace setVariable ["SUPERKEY",(_hiveResponse select 2)]; _hiveLoaded = true; 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)); }; // Realign characterID to OwnerPUID - need to force save though. if (count _worldspace < 3) then { _worldspace set [count _worldspace, "0"]; }; _ownerPUID = _worldspace select 2; // diag_log format["Server_monitor: [ObjectID = %1] [ClassID = %2] [_ownerPUID = %3]", _idKey, _type, _ownerPUID]; 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]; _object setVariable ["OwnerPUID", _ownerPUID, 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 && 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),true]; _object setVariable ["MagazineCargo", (_intentory select 1),true]; _object setVariable ["BackpackCargo", (_intentory select 2),true]; } 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; } count _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; } count _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; } count _objWpnTypes; }; }; if (_object isKindOf "AllVehicles") then { { _selection = _x select 0; _dam = _x select 1; if (_selection in dayZ_explosiveParts && _dam > 0.8) then {_dam = 0.8}; [_object,_selection,_dam] call object_setFixServer; } count _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"; _object setVariable ["R3F_LOG_disabled",true,true]; }; _totalvehicles = _totalvehicles + 1; // total each vehicle serverVehicleCounter set [count serverVehicleCounter,_type]; }; }; //Monitor the object PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object]; }; } count (_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; }; if (_hiveLoaded) then { // 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; }; // [_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]; endLoadingScreen; }; [] ExecVM "\z\addons\dayz_server\EMS\DZMSInit.sqf"; allowConnection = true; [] ExecVM "\z\addons\dayz_server\WAI\init.sqf"; allowConnection = true; sm_done = true; publicVariable "sm_done"; }; As for my player_build file, when I downloaded that from your github one day ago it was already updated with the edit in post ##447 (see below). /* DayZ Base Building Made for DayZ Epoch please ask permission to use/edit/distrubute email [email protected]. */ private ["_location","_dir","_classname","_item","_hasrequireditem","_missing","_hastoolweapon","_cancel","_reason","_started","_finished","_animState","_isMedic","_dis","_sfx","_hasbuilditem","_tmpbuilt","_onLadder","_isWater","_require","_text","_offset","_IsNearPlot","_isOk","_location1","_location2","_counter","_limit","_proceed","_num_removed","_position","_object","_canBuildOnPlot","_friendlies","_nearestPole","_ownerID","_findNearestPoles","_findNearestPole","_distance","_classnametmp","_ghost","_isPole","_needText","_lockable","_zheightchanged","_rotate","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display","_combinationDisplay","_zheightdirection","_abort","_isNear","_need","_needNear","_vehicle","_inVehicle","_requireplot","_objHDiff","_isLandFireDZ","_isTankTrap","_ownerPUID", "_playerUID"]; if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_40") , "PLAIN DOWN"]; }; DZE_ActionInProgress = true; // disallow building if too many objects are found within 30m if((count ((getPosATL player) nearObjects ["All",30])) >= DZE_BuildingLimit) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_41"), "PLAIN DOWN"];}; _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _isWater = dayz_isSwimming; _cancel = false; _reason = ""; _canBuildOnPlot = false; _vehicle = vehicle player; _inVehicle = (_vehicle != player); _playerUID = getPlayerUID player; DZE_Q = false; DZE_Z = false; DZE_Q_alt = false; DZE_Z_alt = false; DZE_Q_ctrl = false; DZE_Z_ctrl = false; DZE_5 = false; DZE_4 = false; DZE_6 = false; DZE_cancelBuilding = false; call gear_ui_init; closeDialog 1; if (_isWater) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_26", "PLAIN DOWN"];}; if (_inVehicle) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_42"), "PLAIN DOWN"];}; if (_onLadder) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_21", "PLAIN DOWN"];}; if (player getVariable["combattimeout", 0] >= time) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_43"), "PLAIN DOWN"];}; _item = _this; // Need Near Requirements _abort = false; _reason = ""; _needNear = getArray (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> "Build" >> "neednearby"); { switch(_x) do{ case "fire": { _distance = 3; _isNear = {inflamed _x} count (getPosATL player nearObjects _distance); if(_isNear == 0) then { _abort = true; _reason = "fire"; }; }; case "workshop": { _distance = 3; _isNear = count (nearestObjects [player, ["Wooden_shed_DZ","WoodShack_DZ","WorkBench_DZ"], _distance]); if(_isNear == 0) then { _abort = true; _reason = "workshop"; }; }; case "fueltank": { _distance = 30; _isNear = count (nearestObjects [player, dayz_fuelsources, _distance]); if(_isNear == 0) then { _abort = true; _reason = "fuel tank"; }; }; }; } forEach _needNear; if(_abort) exitWith { cutText [format[(localize "str_epoch_player_135"),_reason,_distance], "PLAIN DOWN"]; DZE_ActionInProgress = false; }; _classname = getText (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> "Build" >> "create"); _classnametmp = _classname; _require = getArray (configFile >> "cfgMagazines" >> _this >> "ItemActions" >> "Build" >> "require"); _text = getText (configFile >> "CfgVehicles" >> _classname >> "displayName"); _ghost = getText (configFile >> "CfgVehicles" >> _classname >> "ghostpreview"); _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "lockable")) then { _lockable = getNumber(configFile >> "CfgVehicles" >> _classname >> "lockable"); }; _requireplot = DZE_requireplot; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "requireplot")) then { _requireplot = getNumber(configFile >> "CfgVehicles" >> _classname >> "requireplot"); }; _isAllowedUnderGround = 1; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "nounderground")) then { _isAllowedUnderGround = getNumber(configFile >> "CfgVehicles" >> _classname >> "nounderground"); }; _offset = getArray (configFile >> "CfgVehicles" >> _classname >> "offset"); if((count _offset) <= 0) then { _offset = [0,1.5,0]; }; _isPole = (_classname == "Plastic_Pole_EP1_DZ"); _isLandFireDZ = (_classname == "Land_Fire_DZ"); _distance = DZE_PlotPole select 0; _needText = localize "str_epoch_player_246"; if(_isPole) then { _distance = DZE_PlotPole select 1; }; // check for near plot _findNearestPoles = nearestObjects [(vehicle player), ["Plastic_Pole_EP1_DZ"], _distance]; _findNearestPole = []; { if (alive _x) then { _findNearestPole set [(count _findNearestPole),_x]; }; } count _findNearestPoles; _IsNearPlot = count (_findNearestPole); // If item is plot pole && another one exists within 45m if(_isPole && _IsNearPlot > 0) exitWith { DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_44") , "PLAIN DOWN"]; }; if(_IsNearPlot == 0) then { // Allow building of plot if(_requireplot == 0 || _isLandFireDZ) then { _canBuildOnPlot = true; }; } else { // Since there are plots nearby we check for ownership && then for friend status // check nearby plots ownership && then for friend status _nearestPole = _findNearestPole select 0; // Find owner _ownerID = _nearestPole getVariable ["ownerPUID","0"]; diag_log format["Player_build start: [PlayerUID = %1] [OwnerID = %2]", _playerUID, _ownerID]; // check if friendly to owner if(_playerUID == _ownerID) then { //Keep ownership // owner can build anything within his plot except other plots diag_log text "Player is owner"; if(!_isPole) then { _canBuildOnPlot = true; }; } else { // disallow building plot if(!_isPole) then { _friendlies = player getVariable ["friendlyTo",[]]; // check if friendly to owner if(_ownerID in _friendlies) then { _canBuildOnPlot = true; }; }; }; }; // _message if(!_canBuildOnPlot) exitWith { DZE_ActionInProgress = false; cutText [format[(localize "STR_EPOCH_PLAYER_135"),_needText,_distance] , "PLAIN DOWN"]; }; _missing = ""; _hasrequireditem = true; { _hastoolweapon = _x in weapons player; if(!_hastoolweapon) exitWith { _hasrequireditem = false; _missing = getText (configFile >> "cfgWeapons" >> _x >> "displayName"); }; } count _require; _hasbuilditem = _this in magazines player; if (!_hasbuilditem) exitWith {DZE_ActionInProgress = false; cutText [format[(localize "str_player_31"),_text,"build"] , "PLAIN DOWN"]; }; if (!_hasrequireditem) exitWith {DZE_ActionInProgress = false; cutText [format[(localize "str_epoch_player_137"),_missing] , "PLAIN DOWN"]; }; if (_hasrequireditem) then { _location = [0,0,0]; _isOk = true; // get inital players position _location1 = getPosATL player; _dir = getDir player; // if ghost preview available use that instead if (_ghost != "") then { _classname = _ghost; }; _object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; _object attachTo [player,_offset]; _position = getPosATL _object; cutText [(localize "str_epoch_player_45"), "PLAIN DOWN"]; _objHDiff = 0; while {_isOk} do { _zheightchanged = false; _zheightdirection = ""; _rotate = false; if (DZE_Q) then { DZE_Q = false; _zheightdirection = "up"; _zheightchanged = true; }; if (DZE_Z) then { DZE_Z = false; _zheightdirection = "down"; _zheightchanged = true; }; if (DZE_Q_alt) then { DZE_Q_alt = false; _zheightdirection = "up_alt"; _zheightchanged = true; }; if (DZE_Z_alt) then { DZE_Z_alt = false; _zheightdirection = "down_alt"; _zheightchanged = true; }; if (DZE_Q_ctrl) then { DZE_Q_ctrl = false; _zheightdirection = "up_ctrl"; _zheightchanged = true; }; if (DZE_Z_ctrl) then { DZE_Z_ctrl = false; _zheightdirection = "down_ctrl"; _zheightchanged = true; }; if (DZE_4) then { _rotate = true; DZE_4 = false; _dir = 180; }; if (DZE_6) then { _rotate = true; DZE_6 = false; _dir = 0; }; if(_rotate) then { _object setDir _dir; _object setPosATL _position; //diag_log format["DEBUG Rotate BUILDING POS: %1", _position]; }; if(_zheightchanged) then { detach _object; _position = getPosATL _object; if(_zheightdirection == "up") then { _position set [2,((_position select 2)+0.1)]; _objHDiff = _objHDiff + 0.1; }; if(_zheightdirection == "down") then { _position set [2,((_position select 2)-0.1)]; _objHDiff = _objHDiff - 0.1; }; if(_zheightdirection == "up_alt") then { _position set [2,((_position select 2)+1)]; _objHDiff = _objHDiff + 1; }; if(_zheightdirection == "down_alt") then { _position set [2,((_position select 2)-1)]; _objHDiff = _objHDiff - 1; }; if(_zheightdirection == "up_ctrl") then { _position set [2,((_position select 2)+0.01)]; _objHDiff = _objHDiff + 0.01; }; if(_zheightdirection == "down_ctrl") then { _position set [2,((_position select 2)-0.01)]; _objHDiff = _objHDiff - 0.01; }; _object setDir (getDir _object); if((_isAllowedUnderGround == 0) && ((_position select 2) < 0)) then { _position set [2,0]; }; _object setPosATL _position; //diag_log format["DEBUG Change BUILDING POS: %1", _position]; _object attachTo [player]; }; sleep 0.5; _location2 = getPosATL player; if(DZE_5) exitWith { _isOk = false; detach _object; _dir = getDir _object; _position = getPosATL _object; //diag_log format["DEBUG BUILDING POS: %1", _position]; deleteVehicle _object; }; if(_location1 distance _location2 > 5) exitWith { _isOk = false; _cancel = true; _reason = "You've moved to far away from where you started building (within 5 meters)"; detach _object; deleteVehicle _object; }; if(abs(_objHDiff) > 5) exitWith { _isOk = false; _cancel = true; _reason = "Cannot move up || down more than 5 meters"; detach _object; deleteVehicle _object; }; if (player getVariable["combattimeout", 0] >= time) exitWith { _isOk = false; _cancel = true; _reason = (localize "str_epoch_player_43"); detach _object; deleteVehicle _object; }; if (DZE_cancelBuilding) exitWith { _isOk = false; _cancel = true; _reason = "Cancelled building."; detach _object; deleteVehicle _object; }; }; //No building on roads unless toggled if (!DZE_BuildOnRoads) then { if (isOnRoad _position) then { _cancel = true; _reason = "Cannot build on a road."; }; }; // No building in trader zones if(!canbuild) then { _cancel = true; _reason = "Cannot build in a city."; }; if(!_cancel) then { _classname = _classnametmp; // Start Build _tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; _tmpbuilt setdir _dir; // Get position based on object _location = _position; if((_isAllowedUnderGround == 0) && ((_location select 2) < 0)) then { _location set [2,0]; }; _tmpbuilt setPosATL _location; cutText [format[(localize "str_epoch_player_138"),_text], "PLAIN DOWN"]; _limit = 3; if (DZE_StaticConstructionCount > 0) then { _limit = DZE_StaticConstructionCount; } else { if (isNumber (configFile >> "CfgVehicles" >> _classname >> "constructioncount")) then { _limit = getNumber(configFile >> "CfgVehicles" >> _classname >> "constructioncount"); }; }; _isOk = true; _proceed = false; _counter = 0; while {_isOk} do { [10,10] call dayz_HungerThirst; player playActionNow "Medic"; _dis=20; _sfx = "repair"; [player,_sfx,0,false,_dis] call dayz_zombieSpeak; [player,_dis,true,(getPosATL player)] spawn player_alertZombies; r_interrupt = false; r_doLoop = true; _started = false; _finished = false; while {r_doLoop} do { _animState = animationState player; _isMedic = ["medic",_animState] call fnc_inString; if (_isMedic) then { _started = true; }; if (_started && !_isMedic) then { r_doLoop = false; _finished = true; }; if (r_interrupt || (player getVariable["combattimeout", 0] >= time)) then { r_doLoop = false; }; if (DZE_cancelBuilding) exitWith { r_doLoop = false; }; sleep 0.1; }; r_doLoop = false; if(!_finished) exitWith { _isOk = false; _proceed = false; }; if(_finished) then { _counter = _counter + 1; }; cutText [format[(localize "str_epoch_player_139"),_text, _counter,_limit], "PLAIN DOWN"]; if(_counter == _limit) exitWith { _isOk = false; _proceed = true; }; }; if (_proceed) then { _num_removed = ([player,_item] call BIS_fnc_invRemove); if(_num_removed == 1) then { cutText [format[localize "str_build_01",_text], "PLAIN DOWN"]; if (_isPole) then { [] spawn player_plotPreview; }; _tmpbuilt setVariable ["OEMPos",_location,true]; if(_lockable > 1) then { _combinationDisplay = ""; switch (_lockable) do { case 2: { // 2 lockbox _combination_1 = (floor(random 3)) + 100; // 100=red,101=green,102=blue _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination = format["%1%2%3",_combination_1,_combination_2,_combination_3]; dayz_combination = _combination; if (_combination_1 == 100) then { _combination_1_Display = "Red"; }; if (_combination_1 == 101) then { _combination_1_Display = "Green"; }; if (_combination_1 == 102) then { _combination_1_Display = "Blue"; }; _combinationDisplay = format["%1%2%3",_combination_1_Display,_combination_2,_combination_3]; }; case 3: { // 3 combolock _combination_1 = floor(random 10); _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination = format["%1%2%3",_combination_1,_combination_2,_combination_3]; dayz_combination = _combination; _combinationDisplay = _combination; }; case 4: { // 4 safe _combination_1 = floor(random 10); _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination_4 = floor(random 10); _combination = format["%1%2%3%4",_combination_1,_combination_2,_combination_3,_combination_4]; dayz_combination = _combination; _combinationDisplay = _combination; }; }; _tmpbuilt setVariable ["CharacterID",_combination,true]; _tmpbuilt setVariable ["ownerPUID",_playerUID,true]; PVDZE_obj_Publish = [_combination,_tmpbuilt,[_dir,_location,_playerUID],_classname]; publicVariableServer "PVDZE_obj_Publish"; cutText [format[(localize "str_epoch_player_140"),_combinationDisplay,_text], "PLAIN DOWN", 5]; } else { _tmpbuilt setVariable ["CharacterID",dayz_characterID,true]; _tmpbuilt setVariable ["ownerPUID",_playerUID,true]; // fire? if(_tmpbuilt isKindOf "Land_Fire_DZ") then { _tmpbuilt spawn player_fireMonitor; } else { PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location,_playerUID],_classname]; publicVariableServer "PVDZE_obj_Publish"; }; }; } else { deleteVehicle _tmpbuilt; cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"]; }; } else { r_interrupt = false; if (vehicle player == player) then { [objNull, player, rSwitchMove,""] call RE; player playActionNow "stop"; }; deleteVehicle _tmpbuilt; cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"]; }; } else { cutText [format[(localize "str_epoch_player_47"),_text,_reason], "PLAIN DOWN"]; }; }; DZE_ActionInProgress = false; Yet the plot pole system still isn't working:( Why in your init.sqf are you calling 3 separate compiles.sqf files ?. call compile preprocessFileLineNumbers "custom\compiles.sqf"; call compile preprocessFileLineNumbers "Recover_Skin\compiles.sqf"; // Recover Skins COMPILES call compile preprocessFileLineNumbers "custom\snap_build\compiles.sqf"; //Compile custom compiles Which compiles.sqf is the A Plot for Life player build called from ?. I suspect you are calling mine from the first line and then you are calling another one in the 3rd compiles which overwrites mine so you are not saving the ownerUID in the DB. You should really merge the compiles in to a single file which would help to avoid conflicts of the same file being called multiple times for different mods from different locations overwriting each others code in the live running game. Link to comment Share on other sites More sharing options...
Link Posted July 27, 2014 Report Share Posted July 27, 2014 Why in your init.sqf are you calling 3 separate compiles.sqf files ?. call compile preprocessFileLineNumbers "custom\compiles.sqf"; call compile preprocessFileLineNumbers "Recover_Skin\compiles.sqf"; // Recover Skins COMPILES call compile preprocessFileLineNumbers "custom\snap_build\compiles.sqf"; //Compile custom compiles Which compiles.sqf is the A Plot for Life player build called from ?. I suspect you are calling mine from the first line and then you are calling another one in the 3rd compiles which overwrites mine so you are not saving the ownerUID in the DB. You should really merge the compiles in to a single file which would help to avoid conflicts of the same file being called multiple times for different mods from different locations overwriting each others code in the live running game. Okay, I will merge them and just call one and see if that resolves the issue Link to comment Share on other sites More sharing options...
Soul Posted July 27, 2014 Report Share Posted July 27, 2014 A Plot for Life v1 stored the playerUID in the objects characterID field. V2+ stores it as part of the worldspace field and so has no issue with the SteamID length. I think you mean getplayeroldUID and this is a temp command added to ease transition by BIS. There is no guarantee on how long it will remain in ARMA II OA. Detail on the discussion on various issues with the SteamID storage can be found here on the Epoch Git. As such the current A Plot for Live v2+ works fine with the SteamID (as stated in the title of this thread) if it is deployed correctly. nono i think you mean getplayeruidold as dwarden from bis has stated himself. Have you bought arma2 from steam? do you have a cd key when you check your game on steam? yes you do so do i. i see no reason at all why that would all of a sudden change. But yeah storing the steamid as part of the worldspace seems feasable but in my case not prefered. idk i've not used this exact plot for life script i'm still using the initial version. so yeah i was plagued with this problem and tought i'd quiclky drop a hint here for anyone looking for answers. Link to comment Share on other sites More sharing options...
RimBlock Posted July 28, 2014 Author Report Share Posted July 28, 2014 nono i think you mean getplayeruidold as dwarden from bis has stated himself. Have you bought arma2 from steam? do you have a cd key when you check your game on steam? yes you do so do i. i see no reason at all why that would all of a sudden change. But yeah storing the steamid as part of the worldspace seems feasable but in my case not prefered. idk i've not used this exact plot for life script i'm still using the initial version. so yeah i was plagued with this problem and tought i'd quiclky drop a hint here for anyone looking for answers. My bad. old memory failing me. It is getplayerUIDold. The current version works fine with Steam or playerUIDs and still stores the characterID as well so, with a little modification, can be reverted to the original Epoch character based system if the server owner wants. This version is also the one that is going to be pulled in to the core Epoch build when I have finished amending it so it can be turned on as an option. I am just a bit concerned that talk of storing the data in the characterID field is going to confuse some people now the mod has moved away from that a few months ago. Link to comment Share on other sites More sharing options...
Link Posted July 28, 2014 Report Share Posted July 28, 2014 Okay, I will merge them and just call one and see if that resolves the issue Merged them and still having problems, im out of ideas and would really like this to work Link to comment Share on other sites More sharing options...
therisingdead Posted July 28, 2014 Report Share Posted July 28, 2014 As soon as I place a plotpole, try and build I get the message saying it's somebody else's patch? Link to comment Share on other sites More sharing options...
RimBlock Posted July 29, 2014 Author Report Share Posted July 29, 2014 Merged them and still having problems, im out of ideas and would really like this to work Sorry but not sure what else I can suggest and the more time I am spending on individual support requests, the longer it takes to get this mod in to Epoch core so people do not need to worry about configuring it as a separate mod in the future. As soon as I place a plotpole, try and build I get the message saying it's somebody else's patch? Have a read through the posts above. There are a number of references to solutions to common issues. If they dont work then provide some more information and someone may be able to assist. Link to comment Share on other sites More sharing options...
Link Posted July 29, 2014 Report Share Posted July 29, 2014 It seems my problem isn't related to the script as such but rather the fact that none of my objects (apart from the safe) are writing to the database when they are placed in game, causing them to disappear on restart. This is why I was having issues with this script. I have replaced all of my server directory files with default Epoch files straight from the PBO, this did not resolve the matter. I then emptied my object_data table thinking it may be corrupt, but still objects in-game are not saving to the table. If the server files and database are fine, what else could be causing the objects not to save to the object_data table inside of the epoch database? Any suggestions/guidance? Thanks. Link to comment Share on other sites More sharing options...
RimBlock Posted July 29, 2014 Author Report Share Posted July 29, 2014 Do a clean install. Download the A Plot for Life rar file from the dropbox link on the first page and install it based on the instruction on post 1 (i.e. just extract the fiels to the right places) and see if it works before trying to install any other mods. I suspect it is an issue with multiple mods on the same server and the common files not being called / merged correctly. Prove that it works on its own first. If not then you have a bigger issue. If it does then you can look at adding other mods one by one with testing in between. Merge files (diffmerge is pretty good for that) and only call one of any file from a single compiles.sqf file. Link to comment Share on other sites More sharing options...
js2k6 Posted July 29, 2014 Report Share Posted July 29, 2014 Hi, Since upgrading to arma version 125548 I've switched to using plot for life v2 with snap-pro using PryMary's player_build.sqf from this post (first spoiler, with wg admin build etc) Everything seems to work as normal, except for tagging other players as friendly, I have seen numerous posts throughout this thread about others having the same issue But I'm not sure if I'm missing something here, or is tag as friendly actually broken? When updating to epoch 1.0.5.1 I started with a fresh vanilla mission.pbo and built it back up from there, plot for life was added first, then snap-pro was added, from what I can tell the issue has been present since the start. Can anyone point me in the right direction? Link to comment Share on other sites More sharing options...
RimBlock Posted July 29, 2014 Author Report Share Posted July 29, 2014 Hi, Since upgrading to arma version 125548 I've switched to using plot for life v2 with snap-pro using PryMary's player_build.sqf from this post (first spoiler, with wg admin build etc) Everything seems to work as normal, except for tagging other players as friendly, I have seen numerous posts throughout this thread about others having the same issue But I'm not sure if I'm missing something here, or is tag as friendly actually broken? When updating to epoch 1.0.5.1 I started with a fresh vanilla mission.pbo and built it back up from there, plot for life was added first, then snap-pro was added, from what I can tell the issue has been present since the start. Can anyone point me in the right direction? The issues with tagging in this thread are to do with the initial v1 of A Plot for Life. I have not heard of any v2 tagging issues that I recall. What is the issue you are seeing ?. Tagging is controlled by fn_selfactions.sqf (tag anotehr player as friendly) and fn_damageactions.sqf (required to build on friendly plot). Are the friendlies details stored correctly in the currentstate field of you character_data table for that character ?. Are you using 125548 stable or beta (have you subscribed to betas in steam for ARMA II OA) ?. js2k6 1 Link to comment Share on other sites More sharing options...
js2k6 Posted July 29, 2014 Report Share Posted July 29, 2014 Well basically tagging as friendly appears to do nothing at all. The scroll option still shows up, But selecting it has no effect whatsoever. The other player doesn't even get a message saying that another player has tagged them as friendly anymore. Versions: Arma 2 OA: 125548 stable Epoch: 1.0.5.1 + Overwatch 0.2.5 Based on your information, I'll have a look at fn_selfactions.sqf as I have made modifications to this for a couple of other scripts. *edit* looking at both the standard, and modified fn_selfactions.sqf i see nothing related to tagging as friendly at all I do see references in fn_damageactions (however i have not modified this at all, am using the one included in the plotforlife rar file) *edit 2* checked db for both servers for currentstate on some of the new steamid found a few entries such as this ["FHQ_ACR_SNW_TWS_SD","aidlpercmstpsraswrfldnon_idlesteady01",42,["76561198011645414","76561198059390948","76561198011645414","76561198059390948","76561198011645414"]] So I would guess that it is saving to the correct part of the hive, which would indicate to me that it works sometimes. *edit 3* I now believe the problem lies elsewhere. perhaps its to do with the group management script and this script clashing. some of the code in group management makes reference to friendlies. thanks for your assistance. Link to comment Share on other sites More sharing options...
Pro_Speedy Posted July 29, 2014 Report Share Posted July 29, 2014 Rimblock i know you are busy and don't like supporting with things that aren't related to the mod if you have time would you mind telling me what the query of this would be now as it changed on the Steam patch UPDATE `object_data` SET `CharacterID` = 0 WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 30 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 30 DAY) AND `CharacterID` > 0 AND `Classname` IN ('VaultStorageLocked') AND `Inventory` <> '[]' AND `Inventory` IS NOT NULL Link to comment Share on other sites More sharing options...
Shadowking74 Posted July 29, 2014 Report Share Posted July 29, 2014 I keep getting this everytime I start the server, I can't seem to figure out why but it only does it when the lines instructed on the script are put into the server_monitor.sqf, I have a feeling its something simple as I spent about 2 hours looking over code, changing out files and commenting scripts out but I can't figure it out....Please assist, server hangs up on authentication as well 18:14:02 "DayZ Epoch: PRELOAD Functions\init [[<No group>:0 (FunctionsManager)],any]" 18:14:02 "DayZ Epoch: MPframework inited" 18:14:03 APlotForLife 18:14:03 "[_serverMonitor: z\addons\dayz_code\system\server_monitor.sqf]" 18:14:03 "Res3tting B!S effects..." 18:14:03 "HIVE: Starting" 18:14:03 "HIVE: trying to get objects" 18:14:03 Error in expression < select 1)) != "SCALAR")})) then { if ((_hiveResponse select 1) == "Instance alr> 18:14:03 Error position: <_hiveResponse select 1) == "Instance alr> 18:14:03 Error Undefined variable in expression: _hiveresponse 18:14:03 File z\addons\dayz_server\system\server_monitor.sqf, line 40 18:14:03 Error in expression <yZ_instance]; _hiveResponse = _key call server_hiveReadWrite; if ((((isnil "_h> 18:14:03 Error position: <server_hiveReadWrite; if ((((isnil "_h> 18:14:03 Error Undefined variable in expression: server_hivereadwrite 18:14:03 File z\addons\dayz_server\system\server_monitor.sqf, line 38 18:14:03 "HIVE: trying to get objects" 18:14:03 Error in expression < select 1)) != "SCALAR")})) then { if ((_hiveResponse select 1) == "Instance alr> 18:14:03 Error position: <_hiveResponse select 1) == "Instance alr> 18:14:03 Error Undefined variable in expression: _hiveresponse 18:14:03 File z\addons\dayz_server\system\server_monitor.sqf, line 40 18:14:03 Error in expression <yZ_instance]; _hiveResponse = _key call server_hiveReadWrite; if ((((isnil "_h> 18:14:03 Error position: <server_hiveReadWrite; if ((((isnil "_h> 18:14:03 Error Undefined variable in expression: server_hivereadwrite 18:14:03 File z\addons\dayz_server\system\server_monitor.sqf, line 38 18:14:03 "HIVE: trying to get objects" 18:14:03 Error in expression < select 1)) != "SCALAR")})) then { if ((_hiveResponse select 1) == "Instance alr> 18:14:03 Error position: <_hiveResponse select 1) == "Instance alr> 18:14:03 Error Undefined variable in expression: _hiveresponse 18:14:03 File z\addons\dayz_server\system\server_monitor.sqf, line 40 18:14:03 Error in expression <yZ_instance]; _hiveResponse = _key call server_hiveReadWrite; if ((((isnil "_h> 18:14:03 Error position: <server_hiveReadWrite; if ((((isnil "_h> 18:14:03 Error Undefined variable in expression: server_hivereadwrite 18:14:03 File z\addons\dayz_server\system\server_monitor.sqf, line 38 18:14:03 "HIVE: trying to get objects" 18:14:03 Error in expression < select 1)) != "SCALAR")})) then { if ((_hiveResponse select 1) == "Instance alr> 18:14:03 Error position: <_hiveResponse select 1) == "Instance alr> 18:14:03 Error Undefined variable in expression: _hiveresponse 18:14:03 File z\addons\dayz_server\system\server_monitor.sqf, line 40 18:14:03 Error in expression <yZ_instance]; _hiveResponse = _key call server_hiveReadWrite; if ((((isnil "_h> 18:14:03 Error position: <server_hiveReadWrite; if ((((isnil "_h> 18:14:03 Error Undefined variable in expression: server_hivereadwrite 18:14:03 File z\addons\dayz_server\system\server_monitor.sqf, line 38 18:14:03 "HIVE: trying to get objects" 18:14:03 Error in expression < select 1)) != "SCALAR")})) then { if ((_hiveResponse select 1) == "Instance alr> 18:14:03 Error position: <_hiveResponse select 1) == "Instance alr> 18:14:03 Error Undefined variable in expression: _hiveresponse 18:14:03 File z\addons\dayz_server\system\server_monitor.sqf, line 40 18:14:03 Error in expression <yZ_instance]; _hiveResponse = _key call server_hiveReadWrite; if ((((isnil "_h> 18:14:03 Error position: <server_hiveReadWrite; if ((((isnil "_h> 18:14:03 Error Undefined variable in expression: server_hivereadwrite 18:14:03 File z\addons\dayz_server\system\server_monitor.sqf, line 38 18:14:04 "HIVE: Spawning # of Debris: 0" 18:14:04 "HIVE: Spawning # of Ammo Boxes: 3" 18:14:04 Error in expression <x" from 1 to MaxAmmoBoxes do { [] spawn spawn_ammosupply; }; diag_log ("HIVE: S> 18:14:04 Error position: <spawn_ammosupply; }; diag_log ("HIVE: S> 18:14:04 Error Undefined variable in expression: spawn_ammosupply 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 342 18:14:04 Error in expression <x" from 1 to MaxAmmoBoxes do { [] spawn spawn_ammosupply; }; diag_log ("HIVE: S> 18:14:04 Error position: <spawn_ammosupply; }; diag_log ("HIVE: S> 18:14:04 Error Undefined variable in expression: spawn_ammosupply 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 342 18:14:04 Error in expression <x" from 1 to MaxAmmoBoxes do { [] spawn spawn_ammosupply; }; diag_log ("HIVE: S> 18:14:04 Error position: <spawn_ammosupply; }; diag_log ("HIVE: S> 18:14:04 Error Undefined variable in expression: spawn_ammosupply 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 342 18:14:04 "HIVE: Spawning # of Veins: 50" 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 Error in expression <x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error position: <spawn_mineveins; }; if(isnil "dayz_MapA> 18:14:04 Error Undefined variable in expression: spawn_mineveins 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 347 18:14:04 "Total Number of spawn locations 11" 18:14:04 Error in expression <if (isDedicated) then { _id = [] spawn server_spawnEvents; [] spawn { private > 18:14:04 Error position: <server_spawnEvents; [] spawn { private > 18:14:04 Error Undefined variable in expression: server_spawnevents 18:14:04 File z\addons\dayz_server\system\server_monitor.sqf, line 366 Link to comment Share on other sites More sharing options...