Pro_Speedy Posted July 4, 2014 Report Share Posted July 4, 2014 On 7/4/2014 at 11:01 AM, f3cuk said: Yeah it is that one. It was working before i installed the plot poles for life, so i should be able to make it work again. I'll try to debug some more and hopefully find a solution, will let you know if i find it. Try the player_build that i posted Link to comment Share on other sites More sharing options...
RimBlock Posted July 4, 2014 Author Report Share Posted July 4, 2014 On 7/4/2014 at 10:05 AM, edhunter said: It would be really nice if you wrote a tutorial for this script. I´m a "middlenoob" in scripting, and i have to see what changes were done in files. Only copy files over others don`t teach me anything, and i can`t fix bugs on my own. Your work here is great, and it`s ok if you say that would be to much work to explain every step. But i think i "speak" for many users here, so you can think about it. Perhaps i had misunderstood something, because i`m using only schoolenglish. Keep up you great work here :) Greetz, ed Hi Ed, I am going to provide a step by step guide to installing after I have the main bugs ironed out. The logic of what the mod does is this (more or less). The ownersID (the SteamID) is saved in an objects worldspace field as an additional array on the end. This is because what can be accessed from the DB by the game is very limited (deliberately so) by the hiveext.dll code. A lot of mods place values they need to be persistent in the object_data.characterID field for the object in the DB. Whilst this worked and was used by me for the Plot for Life v1 mod, I always wanted to move away from it to avoid clashes with other mods and as it is limited to numbers only. When the DB loads in I put this extra value in to a variable attached to the object being read or default it to "0" if the 'extra variable' does not exist. In each script that needs to check for the objects owner, it checks for the owners characterID against the objects characterID. I am now getting it to check the new objectPUID variable against the playersUID (SteamID). The nice thing about this is that I have left more of the code using the characterID for the check in place so It could be amended to use either system based on a system variable the server owner sets. I will look at that after the debugging settles down. Someone has proposed that this mod be included in the Epoch code on GitHub here. I am all for it if I make it switchable so server Owners can choose to use it or not. If you are in agreement then let vbawol know on the GitHub. Link to comment Share on other sites More sharing options...
f3cuk Posted July 4, 2014 Report Share Posted July 4, 2014 On 7/4/2014 at 11:06 AM, Pro_Speedy said: Try the player_build that i posted There's not a single piece of code from the snap builder in that, how would that ever work? Im not having any issues with the Plot Pole for Life mod, its just that i cant seem able to combine it with the snap build mod. Link to comment Share on other sites More sharing options...
RimBlock Posted July 4, 2014 Author Report Share Posted July 4, 2014 On 7/4/2014 at 11:48 AM, f3cuk said: There's not a single piece of code from the snap builder in that, how would that ever work? Im not having any issues with the Plot Pole for Life mod, its just that i cant seem able to combine it with the snap build mod. Will have a look in a sec. They should not affect each other and I would like to have the snapping working even on my test server. Ok, I have some SQL that will put a given value in to the right position in the worldspace field. If you know the players value in the characterID relates to a SteamID then you can use it to update blocks of objects with a specific characterID. Any interest then I will pout it up. It is for more experienced people though. Link to comment Share on other sites More sharing options...
Pro_Speedy Posted July 4, 2014 Report Share Posted July 4, 2014 On 7/4/2014 at 11:48 AM, f3cuk said: There's not a single piece of code from the snap builder in that, how would that ever work? Im not having any issues with the Plot Pole for Life mod, its just that i cant seem able to combine it with the snap build mod. Edited the post Link to comment Share on other sites More sharing options...
Pro_Speedy Posted July 4, 2014 Report Share Posted July 4, 2014 Could really do with some help with the Vault stuff i've come to a dead end re checked every file from the one in the zip the only thing i'm confused on is Otters snap build in player_build.sqf uses "_object" and not "_tmpbuilt" ? Thanks Link to comment Share on other sites More sharing options...
f3cuk Posted July 4, 2014 Report Share Posted July 4, 2014 On 7/4/2014 at 12:08 PM, Pro_Speedy said: Edited the post Thanks, that seems to have done the trick! At first i was like shit, now the plotpole for life isnt working cause im not seeing to ghost feature, but then i looked at the code and saw it was commented out :P Link to comment Share on other sites More sharing options...
Pro_Speedy Posted July 4, 2014 Report Share Posted July 4, 2014 On 7/4/2014 at 12:37 PM, f3cuk said: Thanks, that seems to have done the trick! Can you test this safe issue i'm having on your server? Link to comment Share on other sites More sharing options...
RimBlock Posted July 4, 2014 Author Report Share Posted July 4, 2014 Ok, have tried the safe functionality and can build, unlock, lock, unlock, pack, build, restart server, log back in, unlock, lock. Seems it is working so most likely something else that is causing the problem. Possibly the snapbuild especially as there seems to be a fair amount of issues with it based on the last two pages of posts. Would rather have this mod confirmed as working before bringing others in to the mix. Next is tagging. Link to comment Share on other sites More sharing options...
Pro_Speedy Posted July 4, 2014 Report Share Posted July 4, 2014 On 7/4/2014 at 2:08 PM, RimBlock said: Ok, have tried the safe functionality and can build, unlock, lock, unlock, pack, build, restart server, log back in, unlock, lock. Seems it is working so most likely something else that is causing the problem. Possibly the snapbuild especially as there seems to be a fair amount of issues with it based on the last two pages of posts. Would rather have this mod confirmed as working before bringing others in to the mix. Next is tagging. But sure the player_build.sqf file shouldn't stop the option from appearing i thought that was all done in fn_selfactions? Link to comment Share on other sites More sharing options...
f3cuk Posted July 4, 2014 Report Share Posted July 4, 2014 On 7/4/2014 at 12:40 PM, Pro_Speedy said: Can you test this safe issue i'm having on your server? Haven't got the infistar tool mate so i cant test for you sorry. The only thing not working right now is tagging people as friendly but RB is working on that i think. Link to comment Share on other sites More sharing options...
Pro_Speedy Posted July 4, 2014 Report Share Posted July 4, 2014 On 7/4/2014 at 2:28 PM, f3cuk said: Haven't got the infistar tool mate so i cant test for you sorry. The only thing not working right now is tagging people as friendly but RB is working on that i think. I just mean do you get an option to unlock your safes Link to comment Share on other sites More sharing options...
f3cuk Posted July 4, 2014 Report Share Posted July 4, 2014 On 7/4/2014 at 2:40 PM, Pro_Speedy said: I just mean do you get an option to unlock your safes Okay, i can confirm the problem you are experiencing. The safe deletes itself after you open them. It is NOT an infistar problem since i dont have that tool installed. Link to comment Share on other sites More sharing options...
RimBlock Posted July 4, 2014 Author Report Share Posted July 4, 2014 On 7/4/2014 at 2:16 PM, Pro_Speedy said: But sure the player_build.sqf file shouldn't stop the option from appearing i thought that was all done in fn_selfactions? Sorry, not sure what you mean. I can choose to build a safe and actually build it. I can then choose to unlock the safe and unlock it. I can choose to lock or pack the safe and both the lock and pack actions are working for me. The safe is still there after reboot and all the actions appear as expected and the actual functions work as expected for me. If possible, it may be worth trying just this mod on its own and checking it is all working before adding anything else. After that add one thing at a time and test. A painful and laborious process but it can pick up a number of issues as you go rather than when it is all done and it feels like you are trying to find the end to a ball of wool. The remove lock and then remove door/doorway is not working still. Did it work like that in vanilla Epoch as very little was changed, same with tagging. What exactly is not working with tagging. Your old friends will need to be retagged as it is looking for playerUIDs now and not characterIDs. You also may need to clear down the old tag ids in the character_data.currentstate field as the data will just grow and grow (there is no untagging). Link to comment Share on other sites More sharing options...
Pro_Speedy Posted July 4, 2014 Report Share Posted July 4, 2014 On 7/4/2014 at 3:46 PM, f3cuk said: Okay, i can confirm the problem you are experiencing. The safe deletes itself after you open them. It is NOT an infistar problem since i dont have that tool installed. Do not use the Player_Build i provided i must of broke something. The thing is now old safes can be unlocked but not re locked again but new ones work fine except only the person who placed it can lock it, is this done by design Rimblock? Thanks Link to comment Share on other sites More sharing options...
RimBlock Posted July 4, 2014 Author Report Share Posted July 4, 2014 On 7/4/2014 at 3:46 PM, f3cuk said: Okay, i can confirm the problem you are experiencing. The safe deletes itself after you open them. It is NOT an infistar problem since i dont have that tool installed. How soon after you open them ?. I opened one, put a sandbag inside and then packed it without an issue. The safe is in the DB as well so not sure why this would be deleted as part of this mod. Has anyone tried doing the same with vanilla Epoch as I have seen a number of threads with safe issues posted since 1.0.5. Edit: one I noticed. Link to comment Share on other sites More sharing options...
RimBlock Posted July 4, 2014 Author Report Share Posted July 4, 2014 On 7/4/2014 at 3:52 PM, Pro_Speedy said: Do not use the Player_Build i provided i must of broke something. The thing is now old safes can be unlocked but not re locked again but new ones work fine except only the person who placed it can lock it, is this done by design Rimblock? Thanks Looking at the code, yes it is by design by the Epoch team. I have made no change to this logic, only that is uses the playerUID to check and where it gets it from. Packing will also not work as for packing it locks the safe first. I can, however, give you some sql you can run to change the ownership of the safe to the owners playerUID (steamID) so it will work with this mod. Link to comment Share on other sites More sharing options...
f3cuk Posted July 4, 2014 Report Share Posted July 4, 2014 It was actually the file that Pro_Speedy gave me that broke the safes. Managed to fix it though, got everything working (safes, snapping, plot pole for life) the way it should using this. Ghosting and friendly tagging still need to be fixed though. Reveal hidden contents /* DayZ Base Building Made for DayZ Epoch please ask permission to use/edit/distrubute email vbawol@veteranbastards.com. */ 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; /* DOESNT SEEM TO WORK // 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"]; /* Build snapping */ player allowDamage false; SnappingOffset = _offset; SnappingDir = 0; SnappingSpotMarkers = []; SnappingEnabled = false; SnappedOffsetZ = 0; SnappingResetPos = false; if (isClass (missionConfigFile >> "SnapPoints" >> _classname)) then { s_building_snapping = player addAction ["<t color=""#0000ff"">Toggle Snapping</t>", "custom\snap_build\player_toggleSnapping.sqf",_classname, 3, true, false, "",""]; }; _snapper = [_object, _classname] spawn snap_object; _key_monitor = [_isAllowedUnderGround] spawn player_buildControls ; /* / Build snapping */ _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; }; /* Build Snapping */ if(((SnappingOffset select 2) > 5) or ((SnappingOffset select 2) < -5)) exitWith { _isOk = false; _cancel = true; _reason = "Cannot move up or down more than 5 meters"; detach _object; }; /* / Build Snapping */ 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; }; }; terminate _snapper; terminate _key_monitor; player removeAction s_building_snapping; player allowDamage true; //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; Link to comment Share on other sites More sharing options...
RimBlock Posted July 4, 2014 Author Report Share Posted July 4, 2014 Still need more info on what is not working with tagging. Not seen any details yet. It is now past midnight here so I am off to get some sleep but as much info as possible please and I will hit it in the morning. Link to comment Share on other sites More sharing options...
Pro_Speedy Posted July 4, 2014 Report Share Posted July 4, 2014 On 7/4/2014 at 4:00 PM, RimBlock said: Looking at the code, yes it is by design by the Epoch team. I have made no change to this logic, only that is uses the playerUID to check and where it gets it from. Packing will also not work as for packing it locks the safe first. I can, however, give you some sql you can run to change the ownership of the safe to the owners playerUID (steamID) so it will work with this mod. That would be great as long it's automatic and not manual there are far too many safes on my map Thanks Link to comment Share on other sites More sharing options...
RimBlock Posted July 5, 2014 Author Report Share Posted July 5, 2014 The inability to downgrade the Cinder Garage Door is due to this mod (have just build and tested another vanilla test server). Just trying to track back why.... Ok, found the problem and have found a solution for it. Will post up a new version later today. From now on I will be using the following naming convention. [Major Change] = i.e. Changing how the ownerUID is stored or an overhaul to allow this mod to exist with Epoch and be turned on or off. [Functional addition] = i.e. add building maintenance to the mod. [bugfix] = Any bug fix releases. The next version will be 2.1.1 and will be uploaded later today. Link to comment Share on other sites More sharing options...
RimBlock Posted July 5, 2014 Author Report Share Posted July 5, 2014 Ok, I am sorting out a solution to keep the server_monitor.sqf on the server only. Does everyone have access to the main server directory (the one with @Dayz_Epoch & @Dayz_epoch_server in) ?. I suspect some people do not but would like clarification. For those with dedicated machine and full access I have sorted out the mod so the server_monitor.sqf does not need to be updated in the dayz_server.pbo but still only needs to sit on the server. For people with with hosting that does not allow access to the main server directory, the mod will have to have the server_monitor.sqf as part of the mission file. I do not currently see any big issue with this as the version run will be from the mpmission folder on the server not on the client. Feedback welcome. Link to comment Share on other sites More sharing options...
RimBlock Posted July 5, 2014 Author Report Share Posted July 5, 2014 Links updated for v2.2.1. Two versions available. GitHub also updated. Tag friendly still outstanding. Link to comment Share on other sites More sharing options...
f3cuk Posted July 5, 2014 Report Share Posted July 5, 2014 Thanks for updating, will do aswell. I already changed the server_monitor myself cause i've got a few other modificactions that use it. Anything i can do to help you sort out the Friendly tagging issue? Link to comment Share on other sites More sharing options...
Pro_Speedy Posted July 5, 2014 Report Share Posted July 5, 2014 Amy SQL queries we can do to get all old safes working? 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