DECO1919 Posted September 7, 2014 Report Share Posted September 7, 2014 Here is my monitor.sqf Just with some addons included. Do you see any misstakes? server_monitor.txt Link to comment Share on other sites More sharing options...
striker Posted September 7, 2014 Author Report Share Posted September 7, 2014 Here is my monitor.sqf Just with some addons included. Do you see any misstakes? Issue could also lie in the player_build.sqf. Your server_monitor.sqf looks fine. Did you use my player_build.sqf, or did you diff merge? Link to comment Share on other sites More sharing options...
DECO1919 Posted September 7, 2014 Report Share Posted September 7, 2014 Hey, thank you for your opinion!!! Here is my player build, and yes i think its yours ;) Iam using epoch panthera with actually patches player_build.txt Link to comment Share on other sites More sharing options...
ThaKang Posted September 8, 2014 Report Share Posted September 8, 2014 I'm having a small issue with walls/doors that have been put flat on the ground (Like a hatch) standing up to their normal position after a restart, is this a known issue or have I perhaps make a mistake? It seems to remember rotations, just not the pitch. Link to comment Share on other sites More sharing options...
DECO1919 Posted September 9, 2014 Report Share Posted September 9, 2014 Hey, ThaKang have you fixed it? My problems are still existing =( Link to comment Share on other sites More sharing options...
ThaKang Posted September 10, 2014 Report Share Posted September 10, 2014 No, DECO, still having the same issue. Hopefully 1.4 isn't long Link to comment Share on other sites More sharing options...
Rythron Posted September 10, 2014 Report Share Posted September 10, 2014 I only having problems after restart with Same setup as in demo video CinderWallDoorLocked_DZ [70.425,[2212.17,11771.9,1.964],[[0.942,0.335,0],[0.335,-0.942,-4.371e-08]],"455353535434543"] CinderWallDoor_DZ [70.425,[2212.17,11771.9,1.964],[[0.942,0.335,0],[-0.335,0.942,-4.371e-08]],"455353535434543"] Vectored Floors and metalpanels all saving to database As far as i know still testing.. Link to comment Share on other sites More sharing options...
cen Posted September 10, 2014 Report Share Posted September 10, 2014 striker don't leave us hangingggggg Tricks 1 Link to comment Share on other sites More sharing options...
Rythron Posted September 11, 2014 Report Share Posted September 11, 2014 i found out that every object that has a upgrade option resets the position in the database after the upgrade. If you don't upgrade the object after it is been placed it will stay in that position after a restart. Any thoughts? Link to comment Share on other sites More sharing options...
SadBoy1981 Posted September 12, 2014 Report Share Posted September 12, 2014 I get this error 15:25:29 Error in expression < _countr)]; }; _countr = _countr + 1; } count _objWpnTypes; _objWpnTypes = (_> 15:25:29 Error position: <count _objWpnTypes; _objWpnTypes = (_> 15:25:29 Error count: Type String, expected Array 15:25:29 File z\addons\dayz_server\system\server_monitor.sqf, line 238 my server_monitor.sqf 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; _vector = [[0,0,0],[0,0,0]]; _vecExists = false; _pos = [0,0,0]; _wsDone = false; if (count _worldspace >= 2) then { if(count _worldspace == 3) then{ _vector = _worldspace select 2; if(typename _vector == "ARRAY")then{ if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{ _vecExists = true; }; }; }; }; _dir = _worldspace select 0; if (count (_worldspace select 1) == 3) then { _pos = _worldspace select 1; _wsDone = true; } }; if (!_wsDone) then { if (count _worldspace >= 1) then { _dir = _worldspace select 0; }; _pos = [getMarkerPos "center",0,4000,10,0,2000,0] call BIS_fnc_findSafePos; if (count _pos < 3) then { _pos = [_pos select 0,_pos select 1,0]; }; diag_log ("MOVED OBJ: " + str(_idKey) + " of class " + _type + " to pos: " + str(_pos)); }; if (_damage < 1) then { //diag_log format["OBJ: %1 - %2", _idKey,_type]; //Create it _object = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"]; _object setVariable ["lastUpdate",time]; _object setVariable ["ObjectID", _idKey, true]; if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then { _object setVariable ["plotfriends", _intentory, true]; }; _lockable = 0; if (_type == "SUV_PMC") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\SUV_PMC.jpg''];';}; 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; if(_vecExists)then{ _object setVectorDirAndUp _vector; }; _object setposATL _pos; _object setDamage _damage; //#########################INDESTRUCTIBLE ITEMS######################### if ((typeOf _object) in indestructible) then { _object addEventHandler ["HandleDamage", {false}]; _object enableSimulation false; } else { _object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}]; }; //###################################################################### if ((typeOf _object) in dayz_allowedObjects) then { //#########################REMOVED FOR INDESTRUCTIBLE ITEMS######################### // 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" && !(_object isKindOf "Bicycle")) then { _object setvehiclelock "locked"; }; _totalvehicles = _totalvehicles + 1; // total each vehicle serverVehicleCounter set [count serverVehicleCounter,_type]; }; }; //Monitor the object PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object]; }; } count (_BuildingQueue + _objectQueue); // # END SPAWN OBJECTS # ************************************************************************************************************************************************************************** processInitCommands; // 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\WAI\init.sqf"; allowConnection = true; sm_done = true; publicVariable "sm_done"; }; FIXED Link to comment Share on other sites More sharing options...
ABLGDayZ Posted September 12, 2014 Report Share Posted September 12, 2014 Hello, don't know if you are aware of this, Striker. But with Vector Build and Snap Pro, there's a problem, when you put the object down with the F-Key. If you tilt the object exactly 90 degrees forward or backwards, makes no difference, and then you put it down with the F-Key the object will spin around for 180 degrees. There's still a slight difference, if you tilt the object forward or backwards: 90 degrees forward, the object will spin at the FIRST push of F-Key, when you put the object down. 90 degrees backward, the object will spin at the SECOND push of F-Key, when you pick the object up. I think it's for all building objects, I tested it with metalfloors, cinderwalls, woodwalls, WoodCrate, etc. Tilting, when the object is put down, won't produce this problem. Only WHILE carrying the object around and then tilting will produce the direction change, when pressing the F-Key afterwards. Couldn't figure out how to fix it so far. Link to comment Share on other sites More sharing options...
calamity Posted September 12, 2014 Report Share Posted September 12, 2014 has anyone or can anyone tell me how to add vectors to an item ?? for instance.. I have ALWAYS wished I could lay a rock down or angle it for building a cave If I made the "MAP_R2_RockWall" deploayble how could I get it to vector ? Link to comment Share on other sites More sharing options...
Desper Posted September 12, 2014 Report Share Posted September 12, 2014 Hello, I have a bug. when you connect to the server pishshet just such a mistake I'm sorry, he made a mistake. wrote twice #include "custom \ snap_pro \ snappoints.hpp" ErrorMessage: File mpmissions\DayZ_Epoch_11.Chernarus\custom\snap_pro\snappoints. hpp, line 397: .SnapBuilding: Member already defined. Link to comment Share on other sites More sharing options...
striker Posted September 12, 2014 Author Report Share Posted September 12, 2014 Hey guys, Big news, all the major issues with the vector script have been fixed and will be released tonight. However, the new release will need this Mikeeeyy to work decently. So add that in to your server if you want a head start. The full release should be added here in a few hours. :) striker Link to comment Share on other sites More sharing options...
striker Posted September 12, 2014 Author Report Share Posted September 12, 2014 Hello, I have a bug. when you connect to the server pishshet just such a mistake ErrorMessage: File mpmissions\DayZ_Epoch_11.Chernarus\custom\snap_pro\snappoints.hpp, line 397: .SnapBuilding: Member already defined. This is my snappoints.hpp /*-----------------------------------------------------------*/ // Created by Raymix // Last update - August 21 2014 /*-----------------------------------------------------------*/ class SnapBuilding { //Barriers whitelist class Barrier { snapTo[] = { "Land_HBarrier5_DZ", "Land_HBarrier3_DZ", "Land_HBarrier1_DZ", "Sandbag1_DZ", "BagFenceRound_DZ", "Fort_RazorWire" }; radius = 5; }; //snap points class Land_HBarrier5Preview: Barrier{ //fix for broken offsets in ghost points[] = { {0,0,0,"Pivot"}, {0,-0.75,0.1,"Back"}, {0,0.75,0.1,"Front"}, {-2.85,0,0.1,"Left"}, {2.85,0,0.1,"Right"}, {0,0,0.9,"Top"} }; }; class Land_HBarrier5_DZ: Land_HBarrier5Preview { points[] = { {0,0,0,"Pivot"}, {0,-0.75,0,"Back"}, {0,0.75,0,"Front"}, {-2.85,0,0,"Left"}, {2.85,0,0,"Right"}, {0,0,0.9,"Top"} }; }; class Land_HBarrier3ePreview: Barrier { //whitelist inheritance points[] = { {0,0,0,"Pivot"}, {0,-0.75,0,"Back"}, {0,0.75,0,"Front"}, {-1.7,0,0,"Left"}, {1.7,0,0,"Right"}, {0,0,0.9,"Top"} }; }; class Land_HBarrier3_DZ: Land_HBarrier3ePreview{}; //point inheritance class Land_HBarrier1Preview: Barrier { points[] = { {0,0,0,"Pivot"}, {0,-0.75,0,"Back"}, {0,0.75,0,"Front"}, {-0.6,0,0,"Left"}, {0.6,0,0,"Right"}, {0,0,0.9,"Top"} }; }; class Land_HBarrier1_DZ: Land_HBarrier1Preview{}; class Fort_RazorWirePreview: Barrier { points[] = { {0,0,0,"Pivot"}, {0,-0.95,-0.3,"Back"}, {0,0.95,-0.3,"Front"}, {-4.1,0,-0.3,"Left"}, {4.1,0,-0.3,"Right"}, {0,0,1,"Top"} }; }; class Fort_RazorWire: Fort_RazorWirePreview {}; class Sandbag1_DZ: Barrier { points[] = { {0,0,0,"Pivot"}, {-1.5,0,0,"Left"}, {1.5,0,0,"Right"}, {0,0,0.4,"Top"} }; }; class BagFenceRound_DZ: Barrier { points[] = { {0,0,0,"Pivot"}, {-1.295,0.38,0,"Left"}, {1.295,0.38,0,"Right"}, {0,0,0.4,"Top"} }; }; //Snapping whitelists for Floors, walls and stairs class FloorsWallsStairs { snapTo[] = { "WoodFloorQuarter_DZ", "WoodFloorHalf_DZ", "WoodFloor_DZ", "WoodStairs_DZ", "WoodStairsSans_DZ", "WoodSmallWallDoor_DZ", "WoodSmallWall_DZ", "WoodSmallWallWin_DZ", "Land_DZE_WoodDoor", "Land_DZE_WoodDoorLocked", "WoodLargeWall_DZ", "Land_DZE_LargeWoodDoor", "WoodLargeWallWin_DZ", "WoodLargeWallDoor_DZ", "Land_DZE_GarageWoodDoor", "Land_DZE_GarageWoodDoorLocked", "Land_DZE_LargeWoodDoorLocked", "WoodSmallWallThird_DZ", "CinderWall_DZ", "CinderWallDoorway_DZ", "CinderWallDoorLocked_DZ", "CinderWallDoor_DZ", "CinderWallSmallDoorway_DZ", "CinderWallDoorSmallLocked_DZ", "CinderWallHalf_DZ", "CinderWallDoorSmall_DZ", "MetalFloor_DZ" }; radius = 7; }; class WoodFloorQuarter_Preview_DZ: FloorsWallsStairs { //fix for broken offsets in ghost points[] = { {0,0,0,"Pivot"}, {0,-1.23,0,"Back"}, {0,1.23,0,"Front"}, {-1.24,0,0,"Left"}, {1.24,0,0,"Right"} }; }; class WoodFloorQuarter_DZ: FloorsWallsStairs { points[] = { {0,0,0,"Pivot"}, {0,-1.23,0.137726,"Back"}, {0,1.23,0.137726,"Front"}, {-1.24,0,0.137726,"Left"}, {1.24,0,0.137726,"Right"} }; }; class WoodFloorHalf_Preview_DZ: FloorsWallsStairs { //fix for broken offsets in ghost points[] = { {0,0,0,"Pivot"}, {0,-2.34,0,"Back"}, {0,2.34,0,"Front"}, {-1.25,0,0,"Left"}, {1.25,0,0,"Right"} }; }; class WoodFloorHalf_DZ: FloorsWallsStairs{ points[] = { {0,0,0,"Pivot"}, {0,-2.34,0.1407,"Back"}, {0,2.34,0.1407,"Front"}, {-1.25,0,0.1407,"Left"}, {1.25,0,0.1407,"Right"} }; }; class WoodFloor_Preview_DZ: FloorsWallsStairs { points[] = { {0,0,0,"Pivot"}, {0,-2.33,0.130,"Back"}, {0,2.33,0.130,"Front"}, {-2.495,0,0.130,"Left"}, {2.495,0,0.130,"Right"} }; radius = 10; }; class WoodFloor_DZ: WoodFloor_Preview_DZ{}; class Stairs_DZE: FloorsWallsStairs { points[] = { {0,0,0,"Pivot"}, {1.56055,-0.78,1.5,"Back"}, {1.56055,0.78,1.5,"Front"}, {1.73926,0.05,2.9,"Top"}, {-1.73926,0.05,0,"Bottom"} }; }; class WoodStairs_DZ: Stairs_DZE {}; class WoodStairs_Preview_DZ: Stairs_DZE {}; class WoodStairsSans_Preview_DZ: Stairs_DZE {}; class WoodStairsSans_DZ: Stairs_DZE {}; class WoodSmall_DZE: FloorsWallsStairs { // Small wood walls points[] = { {0,0,0,"Pivot"}, {-2.285, 0, 1.5,"Left"}, {2.285, 0, 1.5,"Right"}, {0, 0, 3,"Top"} }; }; class WoodSmallWallDoor_Preview_DZ: WoodSmall_DZE {}; class WoodSmallWall_Preview_DZ: WoodSmall_DZE {}; class WoodSmallWallWin_Preview_DZ: WoodSmall_DZE {}; class WoodSmallWallDoor_DZ: WoodSmall_DZE {}; class WoodSmallWall_DZ: WoodSmall_DZE {}; class WoodSmallWallWin_DZ: WoodSmall_DZE {}; class Land_DZE_WoodDoor: WoodSmall_DZE {}; class Land_DZE_WoodDoorLocked: WoodSmall_DZE {}; class WoodDoor_Preview_DZ: WoodSmall_DZE{}; class WoodLarge_DZE: FloorsWallsStairs { //Large wood walls points[] = { {0,0,0,"Pivot"}, {-2.45, 0, 1.5,"Left"}, {2.45, 0, 1.5,"Right"}, {0, 0, 3,"Top"} }; }; class WoodLargeWall_Preview_DZ: WoodLarge_DZE {}; class WoodLargeWallWin_Preview_DZ: WoodLarge_DZE {}; class WoodLargeWallDoor_Preview_DZ: WoodLarge_DZE {}; class WoodSmallWallThird_Preview_DZ: WoodLarge_DZE { points[] = { {0,0,0,"Pivot"}, {-2.445, 0, 1.5,"Left"}, {2.445, 0, 1.5,"Right"}, {0, 0, 1.17,"Top"} }; }; class WoodSmallWallThird_DZ: WoodSmallWallThird_Preview_DZ{}; class WoodLargeWall_DZ: WoodLarge_DZE {}; class Land_DZE_LargeWoodDoor: WoodLarge_DZE {}; class WoodLargeWallWin_DZ: WoodLarge_DZE {}; class WoodLargeWallDoor_DZ: WoodLarge_DZE {}; class Land_DZE_GarageWoodDoor: WoodLarge_DZE {}; class GarageWoodDoor_Preview_DZ: WoodLarge_DZE {}; class Land_DZE_GarageWoodDoorLocked: WoodLarge_DZE {}; class Land_DZE_LargeWoodDoorLocked: WoodLarge_DZE {}; class LargeWoodDoor_Preview_DZ: WoodLarge_DZE {}; class Cinder_DZE: FloorsWallsStairs { //All cinder walls and doors points[] = { {0,0,0,"Pivot"}, {-2.752, 0, 1.5,"Left"}, {2.752, 0, 1.5,"Right"}, {0, 0, 3.37042,"Top"} }; radius = 10; }; class CinderWall_Preview_DZ: Cinder_DZE {}; class CinderWallDoorway_Preview_DZ: Cinder_DZE {}; class CinderWallSmallDoorway_Preview_DZ: Cinder_DZE {}; class CinderWallHalf_Preview_DZ: Cinder_DZE { points[] = { {0,0,0,"Pivot"}, {-2.752, 0, 1.5,"Left"}, {2.752, 0, 1.5,"Right"}, {0, 0, 1.5,"Top"} }; }; class CinderWall_DZ: Cinder_DZE {}; class CinderWallDoorway_DZ: Cinder_DZE {}; class CinderWallDoorLocked_DZ: Cinder_DZE {}; class CinderWallDoor_DZ: Cinder_DZE {}; class CinderWallSmallDoorway_DZ: Cinder_DZE {}; class CinderWallDoorSmallLocked_DZ: Cinder_DZE {}; class CinderWallHalf_DZ: Cinder_DZE { points[] = { {0,0,0,"Pivot"}, {-2.752, 0, 1.5,"Left"}, {2.752, 0, 1.5,"Right"}, {0, 0, 1.5,"Top"} }; }; class CinderWallDoorSmall_DZ: Cinder_DZE {}; class MetalFloor_Preview_DZ: FloorsWallsStairs { //fix for broken offsets in ghost points[] = { {0,0,0.011,"Pivot"}, {0, -2.64, 0.009,"Back"}, {0, 2.64, 0.009,"Front"}, {-2.64, 0, 0.009,"Left"}, {2.64, 0, 0.009,"Right"} }; radius = 12; }; class MetalFloor_DZ: FloorsWallsStairs{ points[] = { {0,0,0,"Pivot"}, {0, -2.64, 0.15,"Back"}, {0, 2.64, 0.15,"Front"}, {-2.64, 0, 0.15,"Left"}, {2.64, 0, 0.15,"Right"} }; radius = 12; }; //Non essential Items that only snap to themselves, do whitelist inheritance if you want these to snap class WoodCrate_DZ { snapTo[] = { "WoodCrate_DZ" }; radius = 5; points[] = { {0,0,0,"Pivot"}, {0,-0.47,0,"Back"}, {0,0.47,0,"Front"}, {-0.47,0,0,"Left"}, {0.47,0,0,"Right"}, {0,0,0.47,"Top"} }; }; class MetalPanel_DZ { snapTo[] = { "MetalPanel_DZ" }; radius = 5; points[] = { {0,0,0,"Pivot"}, {-1.5,0,0,"Left"}, {1.5,0,0,"Right"} }; }; class MetalGate_DZ { snapTo[] = { "MetalGate_DZ" }; radius = 5; points[] = { {0,0,0,"Pivot"}, {-4.1,0,0,"Left"} }; }; class StickFence_DZ { snapTo[] = { "StickFence_DZ" }; radius = 10; points[] = { {0,0,0,"Pivot"}, {-2.95,0,0.3,"Left"}, {2.95,0,0.3,"Right"} }; }; class Fence_corrugated_DZ { snapTo[] = { "Fence_corrugated_DZ" }; radius = 10; points[] = { {0,0,0,"Pivot"}, {-1.95,0,0.88,"Left"}, {1.95,0,0.88,"Right"} }; }; class WoodRamp_Preview_DZ { snapTo[] = { "WoodRamp_DZ" }; radius = 7; points[] = { {0,0,0,"Pivot"}, {0.65,-1.7,1.2,"Back"}, {0.65,1.5,1.2,"Front"}, {3.34,-0.115,2.82,"Top"} }; }; class WoodRamp_DZ: WoodRamp_Preview_DZ{}; class WoodLadder_Preview_DZ { snapTo[] = { "WoodLadder_DZ" }; radius = 5; points[] = { {0,0,0,"Pivot"}, {-0.4,0,1.725,"Left"}, {0.4,0,1.725,"Right"} }; }; class WoodLadder_DZ: WoodLadder_Preview_DZ{}; class VaultStorageLocked { snapTo[] = { "VaultStorageLocked", "VaultStorage" }; radius = 5; points[] = { {0,0,0,"Pivot"}, {0,0.284,0.615,"Back"}, {0,0,1.23,"Top"}, {-0.362,0,0.615,"Left"}, {0.362,0,0.615,"Right"} }; }; class VaultStorage: VaultStorageLocked {}; }; Link to comment Share on other sites More sharing options...
ThaKang Posted September 12, 2014 Report Share Posted September 12, 2014 https://www.youtube.com/watch?v=uTGYNuxBALc I built a little mini base, inside my admin/test area base with your awesome script :D Link to comment Share on other sites More sharing options...
striker Posted September 12, 2014 Author Report Share Posted September 12, 2014 Hello everyone! I would like to announce that Build Vectors supports Snap Building 1.4.1 now! :) :) :) Two different downloads are available, the basic SBP 1.4.1 and SBP 1.4.1 with Admin Build and P4L. :) Also, ghost preview works like it is suppose to (Thanks Jossy!) :) :) striker Tricks and stonXer 2 Link to comment Share on other sites More sharing options...
ABLGDayZ Posted September 12, 2014 Report Share Posted September 12, 2014 Many thanks for your work! So is this behaviour also fixed? Or is it just for me like that? Link to comment Share on other sites More sharing options...
striker Posted September 12, 2014 Author Report Share Posted September 12, 2014 Many thanks for your work! So is this behaviour also fixed? Or is it just for me like that? Sorry ABLGDayZ, I didn't see that post, Ill look into it right now! Link to comment Share on other sites More sharing options...
boneau Posted September 13, 2014 Report Share Posted September 13, 2014 I updated my server with this awesome script! but i can't upgrade garage door + combination lock. It says: "Not setup yet" and after restart the increment door disapears Link to comment Share on other sites More sharing options...
DECO1919 Posted September 13, 2014 Report Share Posted September 13, 2014 Hey, get this error message: Error count: Undefined variable in expression: _buildingqueue 2:24:16 File z\addons\dayz_server\system\server_monitor.sqf, line 337 Link to comment Share on other sites More sharing options...
striker Posted September 13, 2014 Author Report Share Posted September 13, 2014 I updated my server with this awesome script! but i can't upgrade garage door + combination lock. It says: "Not setup yet" and after restart the increment door disapears Which one are you using? Regular or P4L + Admin Build? Link to comment Share on other sites More sharing options...
DECO1919 Posted September 13, 2014 Report Share Posted September 13, 2014 at my Problem iam using your Normal setup without admin / P4L Link to comment Share on other sites More sharing options...
striker Posted September 13, 2014 Author Report Share Posted September 13, 2014 Hey, get this error message: Error count: Undefined variable in expression: _buildingqueue 2:24:16 File z\addons\dayz_server\system\server_monitor.sqf, line 337 Normal setup without admin / P4L Here is my complete server_monitor.sqf, try it and see if it works correctly. 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 { if ((typeName (_worldspace select 0)) == "STRING") then { _worldspace set [0, call compile (_worldspace select 0)]; _worldspace set [1, call compile (_worldspace select 1)]; }; _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)); }; _vector = [[0,0,0],[0,0,0]]; _vecExists = false; _ownerPUID = "0"; if (count _worldspace >= 3) then{ if(count _worldspace == 3) then{ if(typename (_worldspace select 2) == "STRING")then{ _ownerPUID = _worldspace select 2; }else{ if(typename (_worldspace select 2) == "ARRAY")then{ _vector = _worldspace select 2; if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{ _vecExists = true; }; }; }; }; }else{ //Was not 3 elements, so check if 4 or more if(count _worldspace == 4) then{ if(typename (_worldspace select 3) == "STRING")then{ _ownerPUID = _worldspace select 3; }else{ if(typename (_worldspace select 2) == "STRING")then{ _ownerPUID = _worldspace select 2; }; }; if(typename (_worldspace select 2) == "ARRAY")then{ _vector = _worldspace select 2; if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{ _vecExists = true; }; }; }else{ if(typename (_worldspace select 3) == "ARRAY")then{ _vector = _worldspace select 3; if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{ _vecExists = true; }; }; }; }; }else{ //More than 3 or 4 elements found //Might add a search for the vector, ownerPUID will equal 0 }; }; }; // 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; if(_vecExists)then{ _object setVectorDirAndUp _vector; }; _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" && !(_object isKindOf "Bicycle")) then { _object setvehiclelock "locked"; }; _totalvehicles = _totalvehicles + 1; // total each vehicle serverVehicleCounter set [count serverVehicleCounter,_type]; }; }; //Monitor the object PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object]; }; } 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; }; allowConnection = true; sm_done = true; publicVariable "sm_done"; }; Link to comment Share on other sites More sharing options...
DECO1919 Posted September 13, 2014 Report Share Posted September 13, 2014 That fixed all problems!!!! :wub: :lol: :D I love this addon thanks a lot Dude !!! Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now