DangerRuss Posted May 15, 2016 Report Share Posted May 15, 2016 So I've recently moved my server over to a dedicated box and we're just noticing a bit of a problem For some reason, the plot management is not showing that objects need to be maintained. However, the bases are still decaying and being removed. Here is the database query I use UPDATE `Object_DATA` SET `Damage`=0.11 WHERE `ObjectUID` <> 0 AND `CharacterID` <> 0 AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 3 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') ) UPDATE `Object_DATA` SET `Damage`=0.11 WHERE `ObjectUID` <> 0 AND `CharacterID` <> 0 AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 3 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') ) I noticed my HiveExt.ini had to cleanup commented out. ;CleanupPlacedAfterDays = 14 I also have DZE_DamageBeforeMaint = 0.11; in my init.sqf but still no option to maintain. I checked the objects in the database and they definitely should have a maintenance option. I haven't made any changes to plot management that Im aware of and I never had this issues on my old server. Any help would be huge thanks! Link to comment Share on other sites More sharing options...
Akku14 Posted May 15, 2016 Report Share Posted May 15, 2016 Are you sure it has taken damage so that it can be maintained otherwise it will show as 0 parts in range (normally shows after 3 days ) are you able to see and use other feature like add friends to plot (If not check infistar and white list IDD) Try to maintain without plot management just to see the cuz of it Link to comment Share on other sites More sharing options...
DangerRuss Posted May 15, 2016 Report Share Posted May 15, 2016 9 hours ago, Akku14 said: Are you sure it has taken damage so that it can be maintained otherwise it will show as 0 parts in range (normally shows after 3 days ) are you able to see and use other feature like add friends to plot (If not check infistar and white list IDD) Try to maintain without plot management just to see the cuz of it Yes it seems that my database events aren't running.. they're scheduled to run but just aren't. Any ideas? I can run them manually as queries but they scheduled events aren't running. Link to comment Share on other sites More sharing options...
Akku14 Posted May 15, 2016 Report Share Posted May 15, 2016 5 hours ago, DangerRuss said: Yes it seems that my database events aren't running.. they're scheduled to run but just aren't. Any ideas? I can run them manually as queries but they scheduled events aren't running. Just copy the event /* Set Damage on all other objects */ UPDATE `Object_DATA` SET `Damage`=0.2 WHERE `ObjectUID` <> 0 AND `CharacterID` <> 0 AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 3 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') ); Run it as SQl query restart server and see if does sets the damage make correction in events then Link to comment Share on other sites More sharing options...
DangerRuss Posted May 19, 2016 Report Share Posted May 19, 2016 I actually resolved it I think. I just started googling mysql scheduled events not running and it turns out that events are disabled by default in mysql and so you have to enable them. Seems to have worked. Link to comment Share on other sites More sharing options...
Daddy Kropp Posted May 25, 2016 Report Share Posted May 25, 2016 Script is working fine. But since the install, players do not get the "check wallet" option on dead players/ ai. I'm using the Zupa SC with Souls 2.0 found here http://epochmod.com/forum/topic/17675-release-single-currency-souls-20-with-fixes-all-in-one-and-more-v05/ I installed Plot for Life from here : http://epochmod.com/forum/topic/11042-release-a-plot-for-life-v25-keep-your-buildables-on-death-take-plot-ownership/ I do not see any errors in the server .rpt, in the client.rpt I am finding Error in expression <; call PlotGetFriends; ["preview"] call MaintainPlot; call PlotObjects; > Error position: <MaintainPlot; call PlotObjects; > Error Undefined variable in expression: maintainplot File mpmissions\__CUR_MP.Chernarus\plotManagement\initPlotManagement.sqf, line 4 Any Ideas what could have caused that to disappear? Link to comment Share on other sites More sharing options...
Zupa Posted May 26, 2016 Author Report Share Posted May 26, 2016 9 hours ago, Daddy Kropp said: Script is working fine. But since the install, players do not get the "check wallet" option on dead players/ ai. I'm using the Zupa SC with Souls 2.0 found here http://epochmod.com/forum/topic/17675-release-single-currency-souls-20-with-fixes-all-in-one-and-more-v05/ I installed Plot for Life from here : http://epochmod.com/forum/topic/11042-release-a-plot-for-life-v25-keep-your-buildables-on-death-take-plot-ownership/ I do not see any errors in the server .rpt, in the client.rpt I am finding Error in expression <; call PlotGetFriends; ["preview"] call MaintainPlot; call PlotObjects; > Error position: <MaintainPlot; call PlotObjects; > Error Undefined variable in expression: maintainplot File mpmissions\__CUR_MP.Chernarus\plotManagement\initPlotManagement.sqf, line 4 Any Ideas what could have caused that to disappear? The function is never 'MaintainPlot' defined. Check if it excists in your compiles i think? ( been too long to know by head where it is compiled). ABout the wallet. That means you deleted it out of the fn_selfactions file and should readd it. Compare the files to see where it went away. Link to comment Share on other sites More sharing options...
lifegoesongaming Posted May 31, 2016 Report Share Posted May 31, 2016 hey any chance someone can help me im getting the error "Undefined base class 'Zupa_RscButtonMenu'" and after an hour of trying to fix it i was unable to Link to comment Share on other sites More sharing options...
Pro_Speedy Posted May 31, 2016 Report Share Posted May 31, 2016 7 hours ago, lifegoesongaming said: hey any chance someone can help me im getting the error "Undefined base class 'Zupa_RscButtonMenu'" and after an hour of trying to fix it i was unable to did you put the define calls in your description.ext? Link to comment Share on other sites More sharing options...
lifegoesongaming Posted May 31, 2016 Report Share Posted May 31, 2016 4 hours ago, Pro_Speedy said: did you put the define calls in your description.ext? yes i did. but it was my own fault i copied it the line wrong and forgot a quotation mark which i found out shortly after. thanks for responding Link to comment Share on other sites More sharing options...
V1ruz Posted June 1, 2016 Report Share Posted June 1, 2016 Getting a Resource plotmanagement not found can't seem to figure out why. only getting it on the menu when i click on it. doesn't show friends or anything. Spoiler http://images.akamai.steamusercontent.com/ugc/489018224641774163/C064836C08E6113C8B3A9F74A1E2252959FADFF6/ Link to comment Share on other sites More sharing options...
Pro_Speedy Posted June 1, 2016 Report Share Posted June 1, 2016 3 hours ago, V1ruz said: Getting a Resource plotmanagement not found can't seem to figure out why. only getting it on the menu when i click on it. doesn't show friends or anything. Hide contents http://images.akamai.steamusercontent.com/ugc/489018224641774163/C064836C08E6113C8B3A9F74A1E2252959FADFF6/ you didn't add the define file call to description.ext or haven't put the file in properly Link to comment Share on other sites More sharing options...
juandayz Posted July 1, 2016 Report Share Posted July 1, 2016 *****FOR PLAYERS WITH ISSUES ABOUT INSTALL GUIDE************* ***NON Plot4 life*** **IF YOU DONT HAVE CUSTOM COMPILES-VARIABLES-FN_SELFACTIONS.sqf Spoiler First you will need a custom compiles.sqf, fn_selfactions.sqf, and variables.sqf. i u dont have it. create a folder called "custom" in ServerRoot\mpmissions\yourinstance\ then goes to @Dayz_Epoch\addons\dayz_code\init\ and copy & paste to your "custom" folder the sqf called compiles.sqf and variables.sqf now go to @Dayz_Epoch\addons\dayz_code\compiles\ and do the same for fn_selfactions.sqf Well, we need call this customs files trough init,sqf find variables.sqf and compiles.sqf and replace the paths for this line in blue, and add the fn_selfactions.sqf call. Spoiler //Load in compiled functionscall compile preprocessFileLineNumbers "custom\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"; //Compile regular functions /*ZSC*/ call compile preprocessFileLineNumbers "ZSC\gold\ZSCinit.sqf"; /*ZSC*/ call compile preprocessFileLineNumbers "overwrites\click_actions\init.sqf"; progressLoadingScreen 0.5; call compile preprocessFileLineNumbers "server_traders_cherno_11.sqf"; //Compile trader configs call compile preprocessFileLineNumbers "admintools\config.sqf"; // Epoch admin Tools config file call compile preprocessFileLineNumbers "admintools\variables.sqf"; // Epoch admin Tools variables call compile preprocessFileLineNumbers "logistic\init.sqf";// TOW Y LIFT progressLoadingScreen 1.0; fnc_usec_selfActions = compile preprocessFileLineNumbers "custom\fn_selfActions.sqf"; **Once you have it, u need go to your custom compiles.sqf find and delte the fn_Selfactions.sqf call. *Steps 1 & 2 same as zupa´s guide. Spoiler STEP 1 (Copying Files) First, unpack your mission file. Now copy the "plotManagement" folder to your mission directory. STEP 2 (Modifying description.ext) At the bottom, add #include "plotManagement\defines.hpp" #include "plotManagement\plotManagement.hpp" Note If you already have a custom defines.hpp don't use ours. *STEP 3: into compiles.sqf: Add lines in blue bellow : if (!isDedicated) then { Spoiler if (!isDedicated) then { /*Plot*/ PlotGetFriends = compile preprocessFileLineNumbers "plotManagement\plotGetFriends.sqf"; PlotNearbyHumans = compile preprocessFileLineNumbers "plotManagement\plotNearbyHumans.sqf"; PlotAddFriend = compile preprocessFileLineNumbers "plotManagement\plotAddFriend.sqf"; PlotRemoveFriend = compile preprocessFileLineNumbers "plotManagement\plotRemoveFriend.sqf"; MaintainPlot = compile preprocessFileLineNumbers "plotManagement\maintain_area.sqf"; PlotPreview = compile preprocessFileLineNumbers "plotManagement\plotToggleMarkers.sqf"; PlotObjects = compile preprocessFileLineNumbers "plotManagement\plotObjects.sqf"; // NEW /*Plot End*/ *Step 4: same as zupa´s guide. Spoiler STEP 4 (Modifying variables.sqf) After //Player self-action handles dayz_resetSelfActions = { Add s_player_plotManagement = -1; *Step 5 A & B same as Zupa´s guide: Spoiler STEP 5 (Modifying fn_selfActions.sqf)5 A Find if (s_player_maintain_area < 0) then { Above that, add if (s_player_plotManagement < 0) then { _adminList = ["0152"]; // Add admins here if you admins to able to manage all plotpoles _owner = _cursorTarget getVariable ["CharacterID","0"]; _friends = _cursorTarget getVariable ["plotfriends", []]; _fuid = []; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _adminList + _fuid; if(_owner == dayz_characterID || (getPlayerUID player) in _allowed)then{ s_player_plotManagement = player addAction ["<t color='#0059FF'>Manage Plot</t>", "plotManagement\initPlotManagement.sqf", [], 5, false]; }; }; 5 B Find } else { player removeAction s_player_maintain_area; s_player_maintain_area = -1; player removeAction s_player_maintain_area_preview; s_player_maintain_area_preview = -1; }; Replace that with } else { player removeAction s_player_plotManagement; s_player_plotManagement = -1; player removeAction s_player_maintain_area; s_player_maintain_area = -1; player removeAction s_player_maintain_area_preview; s_player_maintain_area_preview = -1; }; *Step 5-C //Out of the Zupa´s Guide. (taked from a post of @ElDubya) //this is for players who have problems to remove modulars.Find Spoiler //Allow owners to delete modulars if(_isModular && (dayz_characterID == _ownerID)) then { if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { _player_deleteBuild = true; }; }; //Allow owners to delete modular doors without locks if(_isModularDoor && (dayz_characterID == _ownerID)) then { if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { _player_deleteBuild = true; }; }; Replace with : Spoiler ///Allow owners to delete modulars if(_isModular) then { if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { _findNearestPoles = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], DZE_PlotPole select 0]; _IsNearPlot = count (_findNearestPoles); _fuid = []; _allowed = []; if(_IsNearPlot > 0)then{ _thePlot = _findNearestPoles select 0; _owner = _thePlot getVariable ["CharacterID","010"]; _friends = _thePlot getVariable ["plotfriends", []]; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _fuid; if (_owner == dayz_characterID || (getPlayerUID player) in _allowed) then { // // If u want that the object also belongs to someone on the plotpole. _player_deleteBuild = true; }; }else{ if(_owner == dayz_characterID)then{ _player_deleteBuild = true; }; }; }; }; //Allow owners to delete modular doors without locks if(_isModularDoor) then { if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { _findNearestPoles = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], DZE_PlotPole select 0]; _IsNearPlot = count (_findNearestPoles); _fuid = []; _allowed = []; if(_IsNearPlot > 0)then{ _thePlot = _findNearestPoles select 0; _owner = _thePlot getVariable ["CharacterID","010"]; _friends = _thePlot getVariable ["plotfriends", []]; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _fuid; if (_owner == dayz_characterID || (getPlayerUID player) in _allowed) then { // // If u want that the object also belongs to someone on the plotpole. _player_deleteBuild = true; }; }else{ if(_owner == dayz_characterID)then{ _player_deleteBuild = true; }; }; }; }; ***Note: if u wanna remove the default maintain in red... delete this part. Spoiler if (s_player_maintain_area < 0) then { s_player_maintain_area = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false]; s_player_maintain_area_preview = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTPREV"], "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false]; }; **Step 5 D: same as zupa´s guide. Spoiler 5 D Find } else { //Engineering After that, add player removeAction s_player_plotManagement; s_player_plotManagement = -1; **Step 5 E. (out of Zupa´s guide) Zupa´s say : "Remember to change the paths to any files you've moved to your mission folder!" thats means you need copy from @Dayz_Epoch\addons\dayz_code\actions\ this files: Spoiler player_upgrade.sqf player_buildingDowngrade.sqf player_build.sqf"// if ure using snap pro. u already have it. modify this file from snap_pro folder. onces you make this copy and paste into for example : MPMISSIONS\YOUR INSTANCE\plotManagement\ go to your Custom fn_selfActions.sqf and find : Spoiler player_buildingDowngrade.sqf & player_build.sqf to change paths like lines in blue: Spoiler s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "plotManagement\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""]; s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "plotManagement\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true, "",""]; for player_build.sqf if u have snap pro, you have this call in your CUSTOM compiles.sqf Spoiler player_build = compile preprocessFileLineNumbers "custom\snap_pro\player_build.sqf"; ***if u dont have snap pro, then copy and paste a player_build from @Dayz_Epoch\addons\dayz_code\actions\ in "plotManagement" folder and into your custom compiles.sqf paste this lines in blue. Spoiler 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_build = compile preprocessFileLineNumbers "plotManagement\player_build.sqf"; **Step 6 As Zupa´s guide. Spoiler STEP 6 (Modifying remove.sqf) NO CHANGES NEEDED, the effect has been realised in 5 C. RESTORE TO THE NORMAL REMOVES.SQF **STEP 7 as Zupa´s say: Spoiler STEP 7 (Modifying player_build.sqf, player_upgrade.sqf, and player_buildingDowngrade.sqf) ALL THREE OF THESE FILES NEED THE SAME EDIT, MAKE SURE YOU DO ALL FILES!!!! Find _friendlies = player getVariable ["friendlyTo",[]]; // check if friendly to owner if(_ownerID in _friendlies) then { _canBuildOnPlot = true; }; Replace that with _friendlies = _nearestPole getVariable ["plotfriends",[]]; _fuid = []; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friendlies; _builder = getPlayerUID player; // check if friendly to owner if(_builder in _fuid) then { _canBuildOnPlot = true; }; **for step 7: this chnges goes into the recent copied and pasted files. for this example the files are located into plotManagement folder- *STEP 8 A as zupa´s guide but: (_intentory must be _inventory) // (just copy and paste i change it for you) Spoiler STEP 8 This one is in your dayz_server.pbo (Modifying server_monitor.sqf)8 A Find _object setVariable ["ObjectID", _idKey, true]; After that, add if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then { _object setVariable ["plotfriends", _inventory, true]; }; *STEP -8 B as Zupa´s guide but: (_intentory must be _inventory) // (just copy and paste i change it for you) Spoiler Find if (count _intentory > 0) then { Replace that with if ((count _inventory > 0) && !(typeOf( _object) == "Plastic_Pole_EP1_DZ")) then { *****Change all words called intentory by inventory into server_monitor.sqf **NOTE: Take care about server_monitor.sqf some others mods uses it outside from dayz_server.pbo if ure not shure.. go to your init.sqf and find: Spoiler _serverMonitor = [] execVM "\z\addons\dayz_server\system\server_monitor.sqf"; // thats means you have your server_monitor into your dayz_server.pbo _serverMonitor = [] execVM "custom\system\server_monitor.sqf"; // means you have server_monitor out of dayz_server.pbo ** and remember repack the pbo if u have into. **STEP 9: As Zupa´s guide: Spoiler STEP 9 Again, this is in your dayz_server.pbo (Modifying server_updateObject.sqf) Find _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object ]; Replace that with if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then{ _inventory = _object getVariable ["plotfriends", []]; //We're replacing the inventory with UIDs for this item } else { _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object ]; }; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- **if u have problems with objet counter then (taked from @BigEgg post) open plotObjects.sqf located in plotManagement folder and. replace: _range = DZE_PlotPole select 0; _count = count ((getPosATL player) nearObjects ["All",_range]); for _range = DZE_PlotPole select 0; _cptarget = player; _objectClasses = DZE_maintainClasses; _objects = nearestObjects [_cptarget, _objectClasses, _range]; _objectsnearcount = count _objects; _count = _objectsnearcount; ***in your custom variables.sqf you can find and change: if(isNil "DZE_DamageBeforeMaint") then { DZE_DamageBeforeMaint = 0.9; }; for if(isNil "DZE_DamageBeforeMaint") then { DZE_DamageBeforeMaint = 0.1; //or 0 to get maintain option all time. }; ***into your serverroot/instance_11.chernarus or other/ find and open your HiveExt.ini change this line: Spoiler CleanupPlacedAfterDays = -1 // remove the , at start of the line. and place -1 **and remember sql damageonage events. Link to comment Share on other sites More sharing options...
Cherdenko Posted July 2, 2016 Report Share Posted July 2, 2016 19 hours ago, juandayz said: _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object ]; i can´t find this line in my server_updateObject.sqf. and if i try to place it inside it just gives me an error in my RPT. Also it only shows as humans nearb only me and the id´s don´t get saved into db. thanks in advance Link to comment Share on other sites More sharing options...
juandayz Posted July 2, 2016 Report Share Posted July 2, 2016 48 minutes ago, Cherdenko said: i can´t find this line in my server_updateObject.sqf. and if i try to place it inside it just gives me an error in my RPT. Also it only shows as humans nearb only me and the id´s don´t get saved into db. thanks in advance Spoiler _object_inventory = { private["_inventory","_previous","_key"]; if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then{ _inventory = _object getVariable ["plotfriends", []]; //We're replacing the inventory with UIDs for this item} else { _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object /*ZSC*/ , _object getVariable["bankMoney",0] /*ZSC*/ ]; }; find this lines around Line 65. *in red: original lines from server_updateobjet.sqf *in blue: plotmanagement lines. *Orange: ZSC lines. Link to comment Share on other sites More sharing options...
Cherdenko Posted July 2, 2016 Report Share Posted July 2, 2016 5 hours ago, juandayz said: Hide contents _object_inventory = { private["_inventory","_previous","_key"]; if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then{ _inventory = _object getVariable ["plotfriends", []]; //We're replacing the inventory with UIDs for this item} else { _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object /*ZSC*/ , _object getVariable["bankMoney",0] /*ZSC*/ ]; }; find this lines around Line 65. *in red: original lines from server_updateobjet.sqf *in blue: plotmanagement lines. *Orange: ZSC lines. Nothing of that is in my sqf file not even: _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object ] Below is my server_updateObject.sqf Spoiler ^ /* [_object,_type] spawn server_updateObject; */ private ["_object","_type","_objectID","_uid","_lastUpdate","_needUpdate","_object_position","_object_inventory","_object_damage","_isNotOk","_parachuteWest","_firstTime","_object_killed","_object_repair","_isbuildable"]; _object = _this select 0; if(isNull(_object)) exitWith { diag_log format["Skipping Null Object: %1", _object]; }; _type = _this select 1; _parachuteWest = ((typeOf _object == "ParachuteWest") || (typeOf _object == "ParachuteC")); _isbuildable = (typeOf _object) in dayz_allowedObjects; _isNotOk = false; _firstTime = false; _objectID = _object getVariable ["ObjectID","0"]; _uid = _object getVariable ["ObjectUID","0"]; if ((typeName _objectID != "string") || (typeName _uid != "string")) then { diag_log(format["Non-string Object: ID %1 UID %2", _objectID, _uid]); //force fail _objectID = "0"; _uid = "0"; }; if (!_parachuteWest && !(locked _object)) then { if (_objectID == "0" && _uid == "0") then { _object_position = getPosATL _object; _isNotOk = true; }; }; // do not update if buildable && not ok if (_isNotOk && _isbuildable) exitWith { }; // delete if still not ok if (_isNotOk) exitWith { deleteVehicle _object; diag_log(format["Deleting object %1 with invalid ID at pos [%2,%3,%4]",typeOf _object,_object_position select 0,_object_position select 1, _object_position select 2]); }; _lastUpdate = _object getVariable ["lastUpdate",time]; _needUpdate = _object in needUpdate_objects; // TODO ---------------------- _object_position = { private["_position","_worldspace","_fuel","_key"]; _position = getPosATL _object; _worldspace = [getDir _object, _position] call AN_fnc_formatWorldspace; _fuel = 0; if (_object isKindOf "AllVehicles") then { _fuel = fuel _object; }; _key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; }; _object_position = { private["_position","_worldspace","_fuel","_key","_colour","_colour2"]; _position = getPosATL _object; if (_object isKindOf "AllVehicles") then { _colour = _object getVariable ["Colour","0"]; _colour2 = _object getVariable ["Colour2","0"]; _worldspace = [ round(direction _object), _position, _colour, _colour2 ]; _fuel = fuel _object; } else { _worldspace = [ round(direction _object), _position ]; _fuel = 0; }; _key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; }; _object_damage = { private["_hitpoints","_array","_hit","_selection","_key","_damage"]; _hitpoints = _object call vehicle_getHitpoints; _damage = damage _object; _array = []; { _hit = [_object,_x] call object_getHit; _selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name"); if (_hit > 0) then {_array set [count _array,[_selection,_hit]]}; _object setHit ["_selection", _hit]; } count _hitpoints; _key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; _object setVariable ["needUpdate",false,true]; }; _object_killed = { private["_hitpoints","_array","_hit","_selection","_key","_damage"]; _hitpoints = _object call vehicle_getHitpoints; //_damage = damage _object; _damage = 1; _array = []; { _hit = [_object,_x] call object_getHit; _selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name"); if (_hit > 0) then {_array set [count _array,[_selection,_hit]]}; _hit = 1; _object setHit ["_selection", _hit]; } count _hitpoints; if (_objectID == "0") then { _key = format["CHILD:306:%1:%2:%3:",_uid,_array,_damage]; } else { _key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage]; }; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; _object setVariable ["needUpdate",false,true]; if ((count _this) > 2) then { _killer = _this select 2; _charID = _object getVariable ['CharacterID','0']; _objID = _object getVariable['ObjectID','0']; _objUID = _object getVariable['ObjectUID','0']; _worldSpace = getPosATL _object; if (getPlayerUID _killer != "") then { _name = if (alive _killer) then { name _killer; } else { format["OBJECT %1", _killer]; }; diag_log format["Vehicle killed: Vehicle %1 (TYPE: %2), CharacterID: %3, ObjectID: %4, ObjectUID: %5, Position: %6, Killer: %7 (UID: %8)", _object, (typeOf _object), _charID, _objID, _objUID, _worldSpace, _name, (getPlayerUID _killer)]; } else { diag_log format["Vehicle killed: Vehicle %1 (TYPE: %2), CharacterID: %3, ObjectID: %4, ObjectUID: %5, Position: %6", _object, (typeOf _object), _charID, _objID, _objUID, _worldSpace]; }; }; }; _object_repair = { private["_hitpoints","_array","_hit","_selection","_key","_damage"]; _hitpoints = _object call vehicle_getHitpoints; _damage = damage _object; _array = []; { _hit = [_object,_x] call object_getHit; _selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name"); if (_hit > 0) then {_array set [count _array,[_selection,_hit]]}; _object setHit ["_selection", _hit]; } count _hitpoints; _key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; _object setVariable ["needUpdate",false,true]; }; // TODO ---------------------- _object setVariable ["lastUpdate",time,true]; switch (_type) do { case "all": { call _object_position; call _object_inventory; call _object_damage; }; case "position": { if (!(_object in needUpdate_objects)) then { //diag_log format["DEBUG Position: Added to NeedUpdate=%1",_object]; needUpdate_objects set [count needUpdate_objects, _object]; }; }; case "gear": { call _object_inventory; }; case "damage": { if ( (time - _lastUpdate) > 5) then { call _object_damage; } else { if (!(_object in needUpdate_objects)) then { //diag_log format["DEBUG Damage: Added to NeedUpdate=%1",_object]; needUpdate_objects set [count needUpdate_objects, _object]; }; }; }; case "killed": { call _object_killed; }; case "repair": { call _object_damage; }; }; Link to comment Share on other sites More sharing options...
juandayz Posted July 2, 2016 Report Share Posted July 2, 2016 14 minutes ago, Cherdenko said: Nothing of that is in my sqf file not even: _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object ] Below is my server_updateObject.sqf Hide contents ^ /* [_object,_type] spawn server_updateObject; */ private ["_object","_type","_objectID","_uid","_lastUpdate","_needUpdate","_object_position","_object_inventory","_object_damage","_isNotOk","_parachuteWest","_firstTime","_object_killed","_object_repair","_isbuildable"]; _object = _this select 0; if(isNull(_object)) exitWith { diag_log format["Skipping Null Object: %1", _object]; }; _type = _this select 1; _parachuteWest = ((typeOf _object == "ParachuteWest") || (typeOf _object == "ParachuteC")); _isbuildable = (typeOf _object) in dayz_allowedObjects; _isNotOk = false; _firstTime = false; _objectID = _object getVariable ["ObjectID","0"]; _uid = _object getVariable ["ObjectUID","0"]; if ((typeName _objectID != "string") || (typeName _uid != "string")) then { diag_log(format["Non-string Object: ID %1 UID %2", _objectID, _uid]); //force fail _objectID = "0"; _uid = "0"; }; if (!_parachuteWest && !(locked _object)) then { if (_objectID == "0" && _uid == "0") then { _object_position = getPosATL _object; _isNotOk = true; }; }; // do not update if buildable && not ok if (_isNotOk && _isbuildable) exitWith { }; // delete if still not ok if (_isNotOk) exitWith { deleteVehicle _object; diag_log(format["Deleting object %1 with invalid ID at pos [%2,%3,%4]",typeOf _object,_object_position select 0,_object_position select 1, _object_position select 2]); }; _lastUpdate = _object getVariable ["lastUpdate",time]; _needUpdate = _object in needUpdate_objects; // TODO ---------------------- _object_position = { private["_position","_worldspace","_fuel","_key"]; _position = getPosATL _object; _worldspace = [getDir _object, _position] call AN_fnc_formatWorldspace; _fuel = 0; if (_object isKindOf "AllVehicles") then { _fuel = fuel _object; }; _key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; }; _object_position = { private["_position","_worldspace","_fuel","_key","_colour","_colour2"]; _position = getPosATL _object; if (_object isKindOf "AllVehicles") then { _colour = _object getVariable ["Colour","0"]; _colour2 = _object getVariable ["Colour2","0"]; _worldspace = [ round(direction _object), _position, _colour, _colour2 ]; _fuel = fuel _object; } else { _worldspace = [ round(direction _object), _position ]; _fuel = 0; }; _key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; }; _object_damage = { private["_hitpoints","_array","_hit","_selection","_key","_damage"]; _hitpoints = _object call vehicle_getHitpoints; _damage = damage _object; _array = []; { _hit = [_object,_x] call object_getHit; _selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name"); if (_hit > 0) then {_array set [count _array,[_selection,_hit]]}; _object setHit ["_selection", _hit]; } count _hitpoints; _key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; _object setVariable ["needUpdate",false,true]; }; _object_killed = { private["_hitpoints","_array","_hit","_selection","_key","_damage"]; _hitpoints = _object call vehicle_getHitpoints; //_damage = damage _object; _damage = 1; _array = []; { _hit = [_object,_x] call object_getHit; _selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name"); if (_hit > 0) then {_array set [count _array,[_selection,_hit]]}; _hit = 1; _object setHit ["_selection", _hit]; } count _hitpoints; if (_objectID == "0") then { _key = format["CHILD:306:%1:%2:%3:",_uid,_array,_damage]; } else { _key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage]; }; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; _object setVariable ["needUpdate",false,true]; if ((count _this) > 2) then { _killer = _this select 2; _charID = _object getVariable ['CharacterID','0']; _objID = _object getVariable['ObjectID','0']; _objUID = _object getVariable['ObjectUID','0']; _worldSpace = getPosATL _object; if (getPlayerUID _killer != "") then { _name = if (alive _killer) then { name _killer; } else { format["OBJECT %1", _killer]; }; diag_log format["Vehicle killed: Vehicle %1 (TYPE: %2), CharacterID: %3, ObjectID: %4, ObjectUID: %5, Position: %6, Killer: %7 (UID: %8)", _object, (typeOf _object), _charID, _objID, _objUID, _worldSpace, _name, (getPlayerUID _killer)]; } else { diag_log format["Vehicle killed: Vehicle %1 (TYPE: %2), CharacterID: %3, ObjectID: %4, ObjectUID: %5, Position: %6", _object, (typeOf _object), _charID, _objID, _objUID, _worldSpace]; }; }; }; _object_repair = { private["_hitpoints","_array","_hit","_selection","_key","_damage"]; _hitpoints = _object call vehicle_getHitpoints; _damage = damage _object; _array = []; { _hit = [_object,_x] call object_getHit; _selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name"); if (_hit > 0) then {_array set [count _array,[_selection,_hit]]}; _object setHit ["_selection", _hit]; } count _hitpoints; _key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; _object setVariable ["needUpdate",false,true]; }; // TODO ---------------------- _object setVariable ["lastUpdate",time,true]; switch (_type) do { case "all": { call _object_position; call _object_inventory; call _object_damage; }; case "position": { if (!(_object in needUpdate_objects)) then { //diag_log format["DEBUG Position: Added to NeedUpdate=%1",_object]; needUpdate_objects set [count needUpdate_objects, _object]; }; }; case "gear": { call _object_inventory; }; case "damage": { if ( (time - _lastUpdate) > 5) then { call _object_damage; } else { if (!(_object in needUpdate_objects)) then { //diag_log format["DEBUG Damage: Added to NeedUpdate=%1",_object]; needUpdate_objects set [count needUpdate_objects, _object]; }; }; }; case "killed": { call _object_killed; }; case "repair": { call _object_damage; }; }; yep is very diferent of mine.... are u taken this updateObjets.sqf from other mod? well see this lines in red are the whole code for your updateobjets.sqf... (black lines are your lines) Spoiler _object_position = { private["_position","_worldspace","_fuel","_key","_colour","_colour2"]; _position = getPosATL _object; if (_object isKindOf "AllVehicles") then { _colour = _object getVariable ["Colour","0"]; _colour2 = _object getVariable ["Colour2","0"]; _worldspace = [ round(direction _object), _position, _colour, _colour2 ]; _fuel = fuel _object; } else { _worldspace = [ round(direction _object), _position ]; _fuel = 0; }; _key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; }; _object_inventory = { private["_inventory","_previous","_key"]; if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then{ _inventory = _object getVariable ["plotfriends", []]; //We're replacing the inventory with UIDs for this item } else { _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object /*ZSC*/ , _object getVariable["bankMoney",0] //remove it if u dont have coins /*ZSC*/ ]; }; _previous = str(_object getVariable["lastInventory",[]]); if (str(_inventory) != _previous) then { _object setVariable["lastInventory",_inventory]; if (_objectID == "0") then { _key = format["CHILD:309:%1:%2:",_uid,_inventory]; } else { _key = format["CHILD:303:%1:%2:",_objectID,_inventory]; }; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; }; }; _object_damage = { private["_hitpoints","_array","_hit","_selection","_key","_damage"]; _hitpoints = _object call vehicle_getHitpoints; _damage = damage _object; _array = []; { _hit = [_object,_x] call object_getHit; _selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name"); if (_hit > 0) then {_array set [count _array,[_selection,_hit]]}; _object setHit ["_selection", _hit]; } count _hitpoints; _key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; _object setVariable ["needUpdate",false,true]; }; @Cherdenko Link to comment Share on other sites More sharing options...
Cherdenko Posted July 2, 2016 Report Share Posted July 2, 2016 Just now, juandayz said: yep is very diferent of mine.... are u taken this updateObjets.sqf from other mod? well see this lines in red are the whole code for your updateobjets.sqf... (black lines are your lines) Hide contents // TODO ---------------------- _object_position = { private["_position","_worldspace","_fuel","_key"]; _position = getPosATL _object; _worldspace = [getDir _object, _position] call AN_fnc_formatWorldspace; _fuel = 0; if (_object isKindOf "AllVehicles") then { _fuel = fuel _object; }; _key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; }; _object_position = { private["_position","_worldspace","_fuel","_key","_colour","_colour2"]; _position = getPosATL _object; if (_object isKindOf "AllVehicles") then { _colour = _object getVariable ["Colour","0"]; _colour2 = _object getVariable ["Colour2","0"]; _worldspace = [ round(direction _object), _position, _colour, _colour2 ]; _fuel = fuel _object; } else { _worldspace = [ round(direction _object), _position ]; _fuel = 0; }; _key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel]; //diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; }; _object_damage = { private["_hitpoints","_array","_hit","_selection","_key","_damage"]; _hitpoints = _object call vehicle_getHitpoints; _damage = damage _object; _array = []; { im using the one which was with the soul hive version of single currency Link to comment Share on other sites More sharing options...
EPAREPAR Posted July 31, 2016 Report Share Posted July 31, 2016 HI, juanda juandayz helped me a lot today and for that I am thankful - to try to get this to work. Even setup a sample server and added the mod. On reboot the Friends list does not save to the DB. My understanding is is suppose to save you UID to the variables in the sql. When i look in the SQL nothing is written to the plot pole's inventory. I spent two days looking at this. even try to put my UID in the inventory of a plot pole but not working. Was unsure the format it needed to be in. Maybe I need to enable something on my database to allow it to work? There does not seem to be any logs in the RPT etc to indicate the issue. Note i am on a dedicated server. Thanks in advance. (If i can not get this sorted just going to give up and not build the rest of the server). Link to comment Share on other sites More sharing options...
snipercymraeg Posted August 29, 2016 Report Share Posted August 29, 2016 Hi, I have just tried installing this but in these 2 instructions the 'nearObjects ["All",20]' and '_theCost = _count *1;' weren't in the files suggested here. Anyone got any ideas please ? Thanks, Nick in player_build.sqf look in a IF for: nearObjects ["All",30] change that to nearObjects ["All",DZE_PlotPole select 0] To change maintani price ( for default very obvious in maintain_area.sqf). for single currency change the 1 to any price you want per object. _theCost = _count * 1; For example _theCost = _count * 150; // 150 coins per object. Link to comment Share on other sites More sharing options...
juandayz Posted August 29, 2016 Report Share Posted August 29, 2016 _theCost = _count * 1; @snipercymraeg you will find it in: \MPMissions\DayZ_Epoch_11.Chernarus\plotManagement\maintainarea.sqf the maths here are: _theCost = _count * 150; example: Total price to maintain = Total objets amount in plot area * Price in Coins $7.500 = 50 objets in plot * $150 $15.000 = 100 objets in plot * $150 $22.500 = 150 objets in plot * $150 And about player_build.sqf if u have plot 4 life this have a diferent name if my memory its no bad :D .. something like player modulars.... any way try it: open your plotObjets.sqf and replace the whole file for it: Spoiler private ["_newWealth","_missing","_missingQty","_proceed","_itemIn","_countIn","_target","_objectClasses","_range","_objects","_requirements","_count","_cost","_option"]; disableSerialization; _range = DZE_PlotPole select 0; _cptarget = player; _objectClasses = DZE_maintainClasses; _objects = nearestObjects [_cptarget, _objectClasses, _range]; _objectsnearcount = count _objects; _count = _objectsnearcount; _colour = "#ffffff"; if(_count / DZE_BuildingLimit * 100 < 40)then{ _colour = "#00ff00"; }; if(_count / DZE_BuildingLimit * 100 > 75)then{ _colour = "#ff0000"; }; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7014); _result = format["<t color='%3'>%1 / %2</t>" , _count, DZE_BuildingLimit,_colour]; _ctrl ctrlSetStructuredText parseText _result; this fix the bad count of objets in the plot area Link to comment Share on other sites More sharing options...
blacksheep25 Posted September 22, 2016 Report Share Posted September 22, 2016 Running with this A_Plot_for_Life not having any issue apart from not being able to build on a friends plot and vice versa. Which files or where can I check for fixing this? If you need any lines or more information. Let me know Using Epoch 1.0.5.1 and Arma 2 131129 Mods: "-mod=@DayzOverwatch;@DayZ_Epoch" Link to comment Share on other sites More sharing options...
WagnerMello Posted October 3, 2016 Report Share Posted October 3, 2016 hello friends I'm trying to deploy this mod however the option to manage plot appears not am I putting wrong? my fnselfaction // ---------------------------------------Maintain Area Start------------------------------------ if (_canDo && (speed player <= 1) && (cursorTarget isKindOf "Plastic_Pole_EP1_DZ")) then { if (s_player_plotManagement < 0) then { _adminList = ["0152"]; // Add admins here if you admins to able to manage all plotpoles _owner = _cursorTarget getVariable ["CharacterID","0"]; _friends = _cursorTarget getVariable ["plotfriends", []]; _fuid = []; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _adminList + _fuid; if(_owner == dayz_characterID || (getPlayerUID player) in _allowed)then{ s_player_plotManagement = player addAction ["<t color='#0059FF'>Manage Plot</t>", "plotManagement\initPlotManagement.sqf", [], 5, false]; }; }; if (s_player_maintain_area < 0) then { s_player_maintain_area = player addAction ["<t color=""#ffffff"">Maintain Area</t>", "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false]; s_player_maintain_area_preview = player addAction ["<t color=""#ccffffff"">Maintain Area Preview</t>", "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false]; }; } else { player removeAction s_player_plotManagement; s_player_plotManagement = -1; player removeAction s_player_maintain_area; s_player_maintain_area = -1; player removeAction s_player_maintain_area_preview; s_player_maintain_area_preview = -1; }; // ---------------------------------------Maintain Area End------------------------------------ http://ap.imagensbrasil.org/image/p4dO5v Link to comment Share on other sites More sharing options...
juandayz Posted October 3, 2016 Report Share Posted October 3, 2016 8 hours ago, WagnerMello said: hello friends I'm trying to deploy this mod however the option to manage plot appears not am I putting wrong? my fnselfaction // ---------------------------------------Maintain Area Start------------------------------------ if (_canDo && (speed player <= 1) && (cursorTarget isKindOf "Plastic_Pole_EP1_DZ")) then { if (s_player_plotManagement < 0) then { _adminList = ["0152"]; // Add admins here if you admins to able to manage all plotpoles _owner = _cursorTarget getVariable ["CharacterID","0"]; _friends = _cursorTarget getVariable ["plotfriends", []]; _fuid = []; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _adminList + _fuid; if(_owner == dayz_characterID || (getPlayerUID player) in _allowed)then{ s_player_plotManagement = player addAction ["<t color='#0059FF'>Manage Plot</t>", "plotManagement\initPlotManagement.sqf", [], 5, false]; }; }; if (s_player_maintain_area < 0) then { s_player_maintain_area = player addAction ["<t color=""#ffffff"">Maintain Area</t>", "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false]; s_player_maintain_area_preview = player addAction ["<t color=""#ccffffff"">Maintain Area Preview</t>", "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false]; }; } else { player removeAction s_player_plotManagement; s_player_plotManagement = -1; player removeAction s_player_maintain_area; s_player_maintain_area = -1; player removeAction s_player_maintain_area_preview; s_player_maintain_area_preview = -1; }; // ---------------------------------------Maintain Area End------------------------------------ http://ap.imagensbrasil.org/image/p4dO5v are u using a custom selfactions? are u using Coins? take care sometimes ... your selfaction is taken from this mod ZSCConfig.sqf Spoiler // if TRUE: Overwrites yours fn_selfactions.sqf with default 1 + edits. | IF False: Change content yourself @ step D ZSC_Overwrite_SelfActions = false; your edit in selfaction seem be right... compare with mine: Spoiler if (_canDo && (speed player <= 1) && (_cursorTarget isKindOf "Plastic_Pole_EP1_DZ")) then { if (s_player_workshop < 0) then { _adminList = ["0152"]; // Add admins here if you admins to able to manage all plotpoles _owner = _cursorTarget getVariable ["CharacterID","0"]; _friends = _cursorTarget getVariable ["plotfriends", []]; _fuid = []; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _adminList + _fuid; if(_owner == dayz_characterID || (getPlayerUID player) in _allowed)then{ s_player_workshop = player addAction ["<t color='#66CCFF'>CRAFT-WORKSHOP</t>", "custom\scripts\workshop\createworkshop.sqf", [], 5, false]; }; }; if (s_player_plotManagement < 0) then { _adminList = ["0152"]; // Add admins here if you admins to able to manage all plotpoles _owner = _cursorTarget getVariable ["CharacterID","0"]; _friends = _cursorTarget getVariable ["plotfriends", []]; _fuid = []; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _adminList + _fuid; if(_owner == dayz_characterID || (getPlayerUID player) in _allowed)then{ s_player_plotManagement = player addAction ["<t color='#0059FF'>PLOT-MANAGE</t>", "plotManagement\initPlotManagement.sqf", [], 5, false]; }; }; } else { player removeAction s_player_workshop; s_player_workshop = -1; player removeAction s_player_plotManagement; s_player_plotManagement = -1; player removeAction s_player_maintain_area; s_player_maintain_area = -1; player removeAction s_player_maintain_area_preview; s_player_maintain_area_preview = -1; }; Link to comment Share on other sites More sharing options...
WagnerMello Posted October 4, 2016 Report Share Posted October 4, 2016 hello Juan I use the online banking system zupa and dnselfaction this is what it recognizes. even changed the names of mantain area to make sure it's the same fnselfactions he's recognizing the plot are however not appear the plot manage follow my complete fnselfaction http://www.4shared.com/file/wjiFLvSPce/fn_selfActions.html 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