Millasaurus Posted November 22, 2014 Report Share Posted November 22, 2014 I'm using the maintain version of this without P4L. Players are finding that the no. of objects counter moves around a lot when they're not even building anything, this can be especially annoying when they're close to the limit. Is there a fix? Link to comment Share on other sites More sharing options...
f3cuk Posted November 23, 2014 Report Share Posted November 23, 2014 I'm using the maintain version of this without P4L. Players are finding that the no. of objects counter moves around a lot when they're not even building anything, this can be especially annoying when they're close to the limit. Is there a fix? Not tested, but try this: -- In plotObjects.sqf find _count = count ((getPosATL player) nearObjects ["All",_range]); replace with _count = count(nearestObjects [cursorTarget,DZE_maintainClasses,_range]); Link to comment Share on other sites More sharing options...
dzrealkiller Posted November 23, 2014 Report Share Posted November 23, 2014 Got a problem just done this and started the server all seemed fine at that point I then jumped onto the game joined the server and BLEEP got a server crash... I took a screen shot of it and you can see it at the link below. The error says: File mpmissions\DayZ_Epoch_11.Chernarus\plotManagement\plotManagement.hpp, line 27: /PlotManagement/Controls.RscShortcutButton_7009: Undefined base class 'Zupa_RscButtonMenu' No Idea what it means tho I'm in the files that It links me to but what am I looking at? cant see anything missing :S https://www.dropbox.com/s/dy7jifdaz9hbe67/Screenshot%202014-11-23%2017.05.53.png?dl=0 Link to comment Share on other sites More sharing options...
dzrealkiller Posted November 23, 2014 Report Share Posted November 23, 2014 Fixed my above crash It was my own fault I used my own defines.hpp and not your one... So i used a program called Beyond Compare 4 to put the files side by side and move over the parts that where missing :) and now the server do not crash... BUT... The server loads into the game but now the Dayz Epoch image on the loading screen dont go away... but the good news is I am indeed in the game as I can move and open gear and such I just cant see anything :D **EDIT** I have started over and this time I can get into the server with no isses, However... I try to place my plotpole and nothing happens it just stop instantly then I move and try to place it again and it says "building already in progress" Any Ideas? Link to comment Share on other sites More sharing options...
SmokeyBR Posted November 26, 2014 Report Share Posted November 26, 2014 this bit here if ( _playerUID in _allowed && _ownerID in _allowed) then { // // If u want that the object also belongs to someone on the plotpole. _player_deleteBuild = true; }; }else{ if(_ownerID == _playerUID)then{ _player_deleteBuild = true; }; it spams my client RPT _playerUID undefined variable, is this for P4L users ? what it does exaclty, lets you remove the item inside plot if you owner ? Link to comment Share on other sites More sharing options...
smexy Posted November 27, 2014 Report Share Posted November 27, 2014 Hey Zupa, when you install P4L the player_build is taken by modular_build.sqf. I changed it to player_build.sqf and friendly's building on my plot worked. However without the edit's to player_build friendly building will not work. How would you go about making modular_build.sqf work alongside player_build? You can only have one unless there's another way? Can I just copy what's supposed to go into "player_build.sqf" into modular_build? Still need help with this part Link to comment Share on other sites More sharing options...
smexy Posted November 28, 2014 Report Share Posted November 28, 2014 Okay fixed my previous problem but now I'm having an issue where I can't remove anything. Here is my fn_selfactions.sqf if you could take a look over it please! scriptName "Functions\misc\fn_selfActions.sqf"; /*********************************************************** ADD ACTIONS FOR SELF - Function - [] call fnc_usec_selfActions; ************************************************************/ private ["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE","_hasHotwireKit","_player_SurrenderedGear","_isSurrendered","_isModular","_isModularDoor","_ownerKeyName","_temp_keys_names","_hasAttached","_allowTow","_liftHeli","_found","_posL","_posC","_height","_liftHelis","_attached","_friendUID","_fuid","_adminList","_owner","_friends","_allowed","_thePlot","_playerUID","_findNearestPoles","_IsNearPlot","_weapons","_isBike","_isMoped","_mags","_isMozzie","_characterID"]; if (DZE_ActionInProgress) exitWith {}; // Do not allow if any script is running. _vehicle = vehicle player; _isPZombie = player isKindOf "PZombie_VB"; _inVehicle = (_vehicle != player); _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _canDo = (!r_drag_sqf && !r_player_unconscious && !_onLadder); _nearLight = nearestObject [player,"LitObject"]; _canPickLight = false; if (!isNull _nearLight) then { if (_nearLight distance player < 4) then { _canPickLight = isNull (_nearLight getVariable ["owner",objNull]); }; }; //--------------------------------------Deploy Bike---------------------------------- //-----------------------------------------Start-------------------------------------- _weapons = [currentWeapon player] + (weapons player) + (magazines player); _isBike = typeOf cursorTarget in ["MMT_Civ"]; //BIKE DEPLOY if ("ItemToolbox" in _weapons) then { hasBikeItem = true; } else { hasBikeItem = false;}; if((speed player <= 1) && hasBikeItem && _canDo) then { if (s_player_deploybike < 0) then { s_player_deploybike = player addaction[("<t color=""#4eff00"">" + ("Deploy Bike") +"</t>"),"deployables\mtbike\deploy.sqf","",5,false,true,"", ""]; }; } else { player removeAction s_player_deploybike; s_player_deploybike = -1; }; //PACK BIKE if((_isBike && (player distance cursorTarget < 10)) and _canDo) then { if (s_player_deploybike2 < 0) then { s_player_deploybike2 = player addaction[("<t color=""#4eff00"">" + ("Re-Pack Bike") +"</t>"),"deployables\mtbike\pack.sqf","",5,false,true,"", ""]; }; } else { player removeAction s_player_deploybike2; s_player_deploybike2 = -1; }; //--------------------------------------Deploy Bike---------------------------------- //------------------------------------------End-------------------------------------- //--------------------------------------Deploy Moped---------------------------------- //------------------------------------------Start------------------------------------- _weapons = [currentWeapon player] + (weapons player) + (magazines player); _isMoped = typeOf cursorTarget in ["TT650_Civ"]; //MOPED DEPLOY if ("PartEngine" in _weapons) then { hasMopedItem = true; } else { hasMopedItem = false;}; if((speed player <= 1) && hasMopedItem && _canDo) then { if (s_player_deploymoped < 0) then { s_player_deploymoped = player addaction[("<t color=""#4eff00"">" + ("Deploy Moped") +"</t>"),"deployables\moped\deploy.sqf","",5,false,true,"", ""]; }; } else { player removeAction s_player_deploymoped; s_player_deploymoped = -1; }; //PACK MOPED if((_isMoped && (player distance cursorTarget < 10)) and _canDo) then { if (s_player_deploymoped2 < 0) then { s_player_deploymoped2 = player addaction[("<t color=""#4eff00"">" + ("Re-Pack Moped") +"</t>"),"deployables\moped\pack.sqf","",5,false,true,"", ""]; }; } else { player removeAction s_player_deploymoped2; s_player_deploymoped2 = -1; }; //--------------------------------------Deploy Moped----------------------------------- //-------------------------------------------End--------------------------------------- //--------------------------------------Deploy Mozzie---------------------------------- //------------------------------------------Start-------------------------------------- _weapons = [currentWeapon player] + (weapons player) + (magazines player); _isMozzie = typeOf cursorTarget in ["CSJ_GyroC"]; //MOZZIE DEPLOY if ("PartVRotor" in _weapons) then { hasMozzieItem = true; } else { hasMozzieItem = false;}; if((speed player <= 1) && hasMozzieItem && _canDo) then { if (s_player_deploymozzie < 0) then { s_player_deploymozzie = player addaction[("<t color=""#4eff00"">" + ("Deploy Mozzie") +"</t>"),"deployables\mozzie\deploy.sqf","",5,false,true,"", ""]; }; } else { player removeAction s_player_deploymozzie; s_player_deploymozzie = -1; }; //PACK MOZZIE if((_isMozzie && (player distance cursorTarget < 10)) and _canDo) then { if (s_player_deploymozzie2 < 0) then { s_player_deploymozzie2 = player addaction[("<t color=""#4eff00"">" + ("Re-Pack Mozzie") +"</t>"),"deployables\mozzie\pack.sqf","",5,false,true,"", ""]; }; } else { player removeAction s_player_deploymozzie2; s_player_deploymozzie2 = -1; }; //--------------------------------------Deploy Mozzie----------------------------------- //--------------------------------------------End--------------------------------------- //Grab Flare if (_canPickLight && !dayz_hasLight && !_isPZombie) then { if (s_player_grabflare < 0) then { _text = getText (configFile >> "CfgAmmo" >> (typeOf _nearLight) >> "displayName"); s_player_grabflare = player addAction [format[localize "str_actions_medical_15",_text], "\z\addons\dayz_code\actions\flare_pickup.sqf",_nearLight, 1, false, true, "", ""]; s_player_removeflare = player addAction [format[localize "str_actions_medical_17",_text], "\z\addons\dayz_code\actions\flare_remove.sqf",_nearLight, 1, false, true, "", ""]; }; } else { player removeAction s_player_grabflare; player removeAction s_player_removeflare; s_player_grabflare = -1; s_player_removeflare = -1; }; if (DZE_HeliLift) then { _hasAttached = _vehicle getVariable["hasAttached",false]; if(_inVehicle && (_vehicle isKindOf "Air") && ((([_vehicle] call FNC_getPos) select 2) < 30) && (speed _vehicle < 5) && (typeName _hasAttached == "OBJECT")) then { if (s_player_heli_detach < 0) then { dayz_myLiftVehicle = _vehicle; s_player_heli_detach = dayz_myLiftVehicle addAction ["Detach Vehicle","\z\addons\dayz_code\actions\player_heliDetach.sqf",[dayz_myLiftVehicle,_hasAttached],2,false,true,"",""]; }; } else { dayz_myLiftVehicle removeAction s_player_heli_detach; s_player_heli_detach = -1; }; }; if(DZE_HaloJump) then { if(_inVehicle && (_vehicle isKindOf "Air") && ((([_vehicle] call FNC_getPos) select 2) > 400)) then { if (s_halo_action < 0) then { DZE_myHaloVehicle = _vehicle; s_halo_action = DZE_myHaloVehicle addAction [localize "STR_EPOCH_ACTIONS_HALO","\z\addons\dayz_code\actions\halo_jump.sqf",[],2,false,true,"",""]; }; } else { DZE_myHaloVehicle removeAction s_halo_action; s_halo_action = -1; }; }; if (!DZE_ForceNameTagsOff) then { if (s_player_showname < 0 && !_isPZombie) then { if (DZE_ForceNameTags) then { s_player_showname = 1; player setVariable["DZE_display_name",true,true]; } else { s_player_showname = player addAction [localize "STR_EPOCH_ACTIONS_NAMEYES", "\z\addons\dayz_code\actions\display_name.sqf",true, 0, true, false, "",""]; s_player_showname1 = player addAction [localize "STR_EPOCH_ACTIONS_NAMENO", "\z\addons\dayz_code\actions\display_name.sqf",false, 0, true, false, "",""]; }; }; }; if(_isPZombie) then { if (s_player_callzombies < 0) then { s_player_callzombies = player addAction [localize "STR_EPOCH_ACTIONS_RAISEHORDE", "\z\addons\dayz_code\actions\call_zombies.sqf",player, 5, true, false, "",""]; }; if (DZE_PZATTACK) then { call pz_attack; DZE_PZATTACK = false; }; if (s_player_pzombiesvision < 0) then { s_player_pzombiesvision = player addAction [localize "STR_EPOCH_ACTIONS_NIGHTVIS", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"]; }; if (!isNull cursorTarget && (player distance cursorTarget < 3)) then { //Has some kind of target _isAnimal = cursorTarget isKindOf "Animal"; _isZombie = cursorTarget isKindOf "zZombie_base"; _isHarvested = cursorTarget getVariable["meatHarvested",false]; _isMan = cursorTarget isKindOf "Man"; // Pzombie Gut human corpse || animal if (!alive cursorTarget && (_isAnimal || _isMan) && !_isZombie && !_isHarvested) then { if (s_player_pzombiesfeed < 0) then { s_player_pzombiesfeed = player addAction [localize "STR_EPOCH_ACTIONS_FEED", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",cursorTarget, 3, true, false, "",""]; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; }; // Increase distance only if AIR || SHIP _allowedDistance = 4; _isAir = cursorTarget isKindOf "Air"; _isShip = cursorTarget isKindOf "Ship"; if(_isAir || _isShip) then { _allowedDistance = 8; }; if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance cursorTarget < _allowedDistance) && _canDo) then { //Has some kind of target // set cursortarget to variable _cursorTarget = cursorTarget; // get typeof cursortarget once _typeOfCursorTarget = typeOf _cursorTarget; // hintsilent _typeOfCursorTarget; _isVehicle = _cursorTarget isKindOf "AllVehicles"; _isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"]; _isnewstorage = _typeOfCursorTarget in DZE_isNewStorage; // get items && magazines only once _magazinesPlayer = magazines player; //boiled Water _hasbottleitem = "ItemWaterbottle" in _magazinesPlayer; _hastinitem = false; { if (_x in _magazinesPlayer) then { _hastinitem = true; }; } count boil_tin_cans; _hasFuelE = "ItemJerrycanEmpty" in _magazinesPlayer; _hasFuelBarrelE = "ItemFuelBarrelEmpty" in _magazinesPlayer; _hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer; _itemsPlayer = items player; _temp_keys = []; _temp_keys_names = []; // find available keys _key_colors = ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"]; { if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in _key_colors) then { _ownerKeyId = getNumber(configFile >> "CfgWeapons" >> _x >> "keyid"); _ownerKeyName = getText(configFile >> "CfgWeapons" >> _x >> "displayName"); _temp_keys_names set [_ownerKeyId,_ownerKeyName]; _temp_keys set [count _temp_keys,str(_ownerKeyId)]; }; } count _itemsPlayer; _hasKnife = "ItemKnife" in _itemsPlayer; _hasToolbox = "ItemToolbox" in _itemsPlayer; _playerUID = getPlayerUID player; _isMan = _cursorTarget isKindOf "Man"; _traderType = _typeOfCursorTarget; _ownerID = _cursorTarget getVariable ["CharacterID","0"]; _isAnimal = _cursorTarget isKindOf "Animal"; _isDog = (_cursorTarget isKindOf "DZ_Pastor" || _cursorTarget isKindOf "DZ_Fin"); _isZombie = _cursorTarget isKindOf "zZombie_base"; _isDestructable = _cursorTarget isKindOf "BuiltItems"; _isWreck = _typeOfCursorTarget in DZE_isWreck; _isWreckBuilding = _typeOfCursorTarget in DZE_isWreckBuilding; _isModular = _cursorTarget isKindOf "ModularItems"; _isModularDoor = _typeOfCursorTarget in ["Land_DZE_WoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_GarageWoodDoor","CinderWallDoor_DZ","CinderWallDoorSmall_DZ"]; _isRemovable = _typeOfCursorTarget in DZE_isRemovable; _isDisallowRepair = _typeOfCursorTarget in ["M240Nest_DZ"]; _isTent = _cursorTarget isKindOf "TentStorage"; _isAlive = alive _cursorTarget; _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName"); _rawmeat = meatraw; _hasRawMeat = false; { if (_x in _magazinesPlayer) then { _hasRawMeat = true; }; } count _rawmeat; _isFuel = false; if (_hasFuelE || _hasFuelBarrelE) then { { if(_cursorTarget isKindOf _x) exitWith {_isFuel = true;}; } count dayz_fuelsources; }; // diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID)); // logic vars _player_flipveh = false; _player_deleteBuild = false; _player_lockUnlock_crtl = false; 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 ["ownerPUID","0"]; _friends = _cursorTarget getVariable ["plotfriends", []]; _fuid = []; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _adminList + _fuid; if((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 [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]; // }; } 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; }; // CURSOR TARGET ALIVE if(_isAlive) then { //Allow player to delete objects if(_isDestructable || _isWreck || _isRemovable || _isWreckBuilding) then { if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { _player_deleteBuild = true; }; }; ///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 ["ownerPUID","010"]; _friends = _thePlot getVariable ["plotfriends", []]; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _fuid; if ( _playerUID in _allowed && _ownerID in _allowed ) then { _player_deleteBuild = true; }; }else{ if(_ownerID == _playerUID)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 ["ownerPUID","010"]; _friends = _thePlot getVariable ["plotfriends", []]; { _friendUID = _x select 0; _fuid = _fuid + [_friendUID]; } forEach _friends; _allowed = [_owner]; _allowed = [_owner] + _fuid; if ( _playerUID in _allowed && _ownerID in _allowed) then { _player_deleteBuild = true; }; }else{ if(_ownerID == _playerUID)then{ _player_deleteBuild = true; }; }; }; }; // CURSOR TARGET VEHICLE if(_isVehicle) then { //flip vehicle small vehicles by your self && all other vehicles with help nearby if (!(canmove _cursorTarget) && (player distance _cursorTarget >= 2) && (count (crew _cursorTarget))== 0 && ((vectorUp _cursorTarget) select 2) < 0.5) then { _playersNear = {isPlayer _x} count (player nearEntities ["CAManBase", 6]); if(_isVehicletype || (_playersNear >= 2)) then { _player_flipveh = true; }; }; if(!_isMan && _ownerID != "0" && !(_cursorTarget isKindOf "Bicycle")) then { _player_lockUnlock_crtl = true; }; }; }; if(_player_deleteBuild) then { if (s_player_deleteBuild < 0) then { s_player_deleteBuild = player addAction [format[localize "str_actions_delete",_text], "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true, "", ""]; }; } else { player removeAction s_player_deleteBuild; s_player_deleteBuild = -1; }; if (DZE_HeliLift) then { _liftHeli = objNull; _found = false; _allowTow = false; if ((count (crew _cursorTarget)) == 0) then { { if(!_allowTow) then { _allowTow = _cursorTarget isKindOf _x; }; } count DZE_HeliAllowToTow; }; //diag_log format["CREW: %1 ALLOW: %2",(count (crew _cursorTarget)),_allowTow]; if (_allowTow) then { _liftHelis = nearestObjects [player, DZE_HeliAllowTowFrom, 15]; { if(!_found) then { _posL = [_x] call FNC_getPos; _posC = [_cursorTarget] call FNC_getPos; _height = (_posL select 2) - (_posC select 2); _hasAttached = _x getVariable["hasAttached",false]; if(_height < 15 && _height > 5 && (typeName _hasAttached != "OBJECT")) then { if(((abs((_posL select 0) - (_posC select 0))) < 10) && ((abs((_posL select 1) - (_posC select 1))) < 10)) then { _liftHeli = _x; _found = true; }; }; }; } count _liftHelis; }; //diag_log format["HELI: %1 TARGET: %2",_found,_cursorTarget]; _attached = _cursorTarget getVariable["attached",false]; if(_found && _allowTow && _canDo && !locked _cursorTarget && !_isPZombie && (typeName _attached != "OBJECT")) then { if (s_player_heli_lift < 0) then { s_player_heli_lift = player addAction ["Attach to Heli", "\z\addons\dayz_code\actions\player_heliLift.sqf",[_liftHeli,_cursorTarget], -10, false, true, "",""]; }; } else { player removeAction s_player_heli_lift; s_player_heli_lift = -1; }; }; // Allow Owner to lock && unlock vehicle if(_player_lockUnlock_crtl) then { if (s_player_lockUnlock_crtl < 0) then { _hasKey = _ownerID in _temp_keys; _oldOwner = (_ownerID == dayz_playerUID); if(locked _cursorTarget) then { if(_hasKey || _oldOwner) then { _Unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,(_temp_keys_names select (parseNumber _ownerID))], 2, true, true, "", ""]; s_player_lockunlock set [count s_player_lockunlock,_Unlock]; s_player_lockUnlock_crtl = 1; } else { if(_hasHotwireKit) then { _Unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true, "", ""]; } else { _Unlock = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",_cursorTarget, 2, true, true, "", ""]; }; s_player_lockunlock set [count s_player_lockunlock,_Unlock]; s_player_lockUnlock_crtl = 1; }; } else { if(_hasKey || _oldOwner) then { _lock = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true, "", ""]; s_player_lockunlock set [count s_player_lockunlock,_lock]; s_player_lockUnlock_crtl = 1; }; }; }; } else { {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; }; if(DZE_AllowForceSave) then { //Allow player to force save if((_isVehicle || _isTent) && !_isMan) then { if (s_player_forceSave < 0) then { s_player_forceSave = player addAction [format[localize "str_actions_save",_text], "\z\addons\dayz_code\actions\forcesave.sqf",_cursorTarget, 1, true, true, "", ""]; }; } else { player removeAction s_player_forceSave; s_player_forceSave = -1; }; }; If(DZE_AllowCargoCheck) then { if((_isVehicle || _isTent || _isnewstorage) && _isAlive && !_isMan && !locked _cursorTarget) then { if (s_player_checkGear < 0) then { s_player_checkGear = player addAction [localize "STR_EPOCH_PLAYER_CARGO", "\z\addons\dayz_code\actions\cargocheck.sqf",_cursorTarget, 1, true, true, "", ""]; }; } else { player removeAction s_player_checkGear; s_player_checkGear = -1; }; }; //flip vehicle small vehicles by your self && all other vehicles with help nearby if(_player_flipveh) then { if (s_player_flipveh < 0) then { s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",_cursorTarget, 1, true, true, "", ""]; }; } else { player removeAction s_player_flipveh; s_player_flipveh = -1; }; //Allow player to fill jerrycan if((_hasFuelE || _hasFuelBarrelE) && _isFuel) then { if (s_player_fillfuel < 0) then { s_player_fillfuel = player addAction [localize "str_actions_self_10", "\z\addons\dayz_code\actions\jerry_fill.sqf",[], 1, false, true, "", ""]; }; } else { player removeAction s_player_fillfuel; s_player_fillfuel = -1; }; // logic vars for addactions _player_butcher = false; _player_studybody = false; _player_SurrenderedGear = false; // CURSOR TARGET NOT ALIVE if (!_isAlive) then { // Gut animal/zed if((_isAnimal || _isZombie) && _hasKnife) then { _isHarvested = _cursorTarget getVariable["meatHarvested",false]; if (!_isHarvested) then { _player_butcher = true; }; }; // Study body if (_isMan && !_isZombie && !_isAnimal) then { _player_studybody = true; } } else { // unit alive // gear access on surrendered player if(_isMan && !_isZombie && !_isAnimal) then { _isSurrendered = _cursorTarget getVariable ["DZE_Surrendered",false]; if (_isSurrendered) then { _player_SurrenderedGear = true; }; }; }; // Human Gut animal || zombie if (_player_butcher) then { if (s_player_butcher < 0) then { if(_isZombie) then { s_player_butcher = player addAction [localize "STR_EPOCH_ACTIONS_GUTZOM", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 0, true, true, "", ""]; } else { s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget, 3, true, true, "", ""]; }; }; } else { player removeAction s_player_butcher; s_player_butcher = -1; }; // Study Body if (_player_studybody) then { if (s_player_studybody < 0) then { s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_studybody; s_player_studybody = -1; }; // logic vars _player_cook = false; _player_boil = false; // CURSOR TARGET IS FIRE if (inflamed _cursorTarget) then { //Fireplace Actions check if (_hasRawMeat) then { _player_cook = true; }; // Boil water if (_hasbottleitem && _hastinitem) then { _player_boil = true; }; }; if (_player_SurrenderedGear) then { if (s_player_SurrenderedGear < 0) then { s_player_SurrenderedGear = player addAction [localize "STR_EPOCH_ACTIONS_GEAR", "\z\addons\dayz_code\actions\surrender_gear.sqf",_cursorTarget, 1, true, true, "", ""]; }; } else { player removeAction s_player_SurrenderedGear; s_player_SurrenderedGear = -1; }; //Fireplace Actions check if (_player_cook) then { if (s_player_cook < 0) then { s_player_cook = player addAction [localize "str_actions_self_05", "\z\addons\dayz_code\actions\cook.sqf",_cursorTarget, 3, true, true, "", ""]; }; } else { player removeAction s_player_cook; s_player_cook = -1; }; // Boil water if (_player_boil) then { if (s_player_boil < 0) then { s_player_boil = player addAction [localize "str_actions_boilwater", "\z\addons\dayz_code\actions\boil.sqf",_cursorTarget, 3, true, true, "", ""]; }; } else { player removeAction s_player_boil; s_player_boil = -1; }; if(_cursorTarget == dayz_hasFire) then { if ((s_player_fireout < 0) && !(inflamed _cursorTarget) && (player distance _cursorTarget < 3)) then { s_player_fireout = player addAction [localize "str_actions_self_06", "\z\addons\dayz_code\actions\fire_pack.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_fireout; s_player_fireout = -1; }; //Packing my tent if(_isTent && (player distance _cursorTarget < 3)) then { if (_ownerID == dayz_characterID) then { if (s_player_packtent < 0) then { s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { if(("ItemJerrycan" in _magazinesPlayer) && ("ItemMatchbox_DZE" in weapons player)) then { if (s_player_packtent < 0) then { s_player_packtent = player addAction [localize "STR_EPOCH_ACTIONS_DESTROYTENT", "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true, "", ""]; }; }; }; } else { player removeAction s_player_packtent; s_player_packtent = -1; }; //Allow manage door if((_typeOfCursorTarget in DZE_DoorsLocked)) then { if (s_player_manageDoor < 0) then { s_player_manageDoor = player addAction ["<t color='#0059FF'>Manage Door</t>", "doorManagement\initDoorManagement.sqf", _cursorTarget, 5, false]; }; } else { player removeAction s_player_manageDoor; s_player_manageDoor = -1; }; //Allow owner to unlock vault if((_typeOfCursorTarget in DZE_LockableStorage) && _ownerID != "0" && (player distance _cursorTarget < 3)) then { if (s_player_unlockvault < 0) then { if(_typeOfCursorTarget in DZE_LockedStorage) then { if(_ownerID == dayz_combination || _ownerID == dayz_playerUID) then { _combi = player addAction [format[localize "STR_EPOCH_ACTIONS_OPEN",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true, "",""]; s_player_combi set [count s_player_combi,_combi]; } else { _combi = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""]; s_player_combi set [count s_player_combi,_combi]; }; s_player_unlockvault = 1; } else { if(_ownerID != dayz_combination && _ownerID != dayz_playerUID) then { _combi = player addAction [localize "STR_EPOCH_ACTIONS_RECOMBO", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""]; s_player_combi set [count s_player_combi,_combi]; s_player_unlockvault = 1; }; }; }; } else { {player removeAction _x} count s_player_combi;s_player_combi = []; s_player_unlockvault = -1; }; //Allow owner to pack vault if(_typeOfCursorTarget in DZE_UnLockedStorage && _ownerID != "0" && (player distance _cursorTarget < 3)) then { if (s_player_lockvault < 0) then { if(_ownerID == dayz_combination || _ownerID == dayz_playerUID) then { s_player_lockvault = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true, "",""]; }; }; if (s_player_packvault < 0 && (_ownerID == dayz_combination || _ownerID == dayz_playerUID)) then { s_player_packvault = player addAction [format["<t color='#ff0000'>%1</t>",(format[localize "STR_EPOCH_ACTIONS_PACK",_text])], "\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_packvault; s_player_packvault = -1; player removeAction s_player_lockvault; s_player_lockvault = -1; }; //Player Deaths if(_typeOfCursorTarget == "Info_Board_EP1") then { if (s_player_information < 0) then { s_player_information = player addAction [localize "STR_EPOCH_ACTIONS_MURDERS", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 7, false, true, "",""]; }; } else { player removeAction s_player_information; s_player_information = -1; }; //Fuel Pump if(_typeOfCursorTarget in dayz_fuelpumparray) then { if (s_player_fuelauto < 0) then { // check if Generator_DZ is running within 30 meters _findNearestGens = nearestObjects [player, ["Generator_DZ"], 30]; _findNearestGen = []; { if (alive _x && (_x getVariable ["GeneratorRunning", false])) then { _findNearestGen set [(count _findNearestGen),_x]; }; } count _findNearestGens; _IsNearRunningGen = count (_findNearestGen); // show that pump needs power if no generator nearby. if(_IsNearRunningGen > 0) then { s_player_fuelauto = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true, "",""]; } else { s_player_fuelauto = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true, "",""]; }; }; } else { player removeAction s_player_fuelauto; s_player_fuelauto = -1; }; //Fuel Pump on truck if(_typeOfCursorTarget in DZE_fueltruckarray && alive _cursorTarget) then { if (s_player_fuelauto2 < 0) then { // show that fuel truck pump needs power. if(isEngineOn _cursorTarget) then { s_player_fuelauto2 = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true, "",""]; } else { s_player_fuelauto2 = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true, "",""]; }; }; } else { player removeAction s_player_fuelauto2; s_player_fuelauto2 = -1; }; // inplace upgrade tool if ((_cursorTarget isKindOf "ModularItems") || (_cursorTarget isKindOf "Land_DZE_WoodDoor_Base") || (_cursorTarget isKindOf "CinderWallDoor_DZ_Base")) then { if ((s_player_lastTarget select 0) != _cursorTarget) then { if (s_player_upgrade_build > 0) then { player removeAction s_player_upgrade_build; s_player_upgrade_build = -1; }; }; if (s_player_upgrade_build < 0) then { // s_player_lastTarget = _cursorTarget; s_player_lastTarget set [0,_cursorTarget]; s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "custom\A_Plot_for_Life\action\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""]; }; } else { player removeAction s_player_upgrade_build; s_player_upgrade_build = -1; }; // downgrade system if((_isDestructable || _cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base") && (DZE_Lock_Door == _ownerID)) then { if ((s_player_lastTarget select 1) != _cursorTarget) then { if (s_player_downgrade_build > 0) then { player removeAction s_player_downgrade_build; s_player_downgrade_build = -1; }; }; if (s_player_downgrade_build < 0) then { s_player_lastTarget set [1,_cursorTarget]; s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "custom\A_Plot_for_Life\action\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true, "",""]; }; } else { player removeAction s_player_downgrade_build; s_player_downgrade_build = -1; }; // inplace maintenance tool if((_cursorTarget isKindOf "ModularItems" || _cursorTarget isKindOf "DZE_Housebase" || _typeOfCursorTarget == "LightPole_DZ") && (damage _cursorTarget >= DZE_DamageBeforeMaint)) then { if ((s_player_lastTarget select 2) != _cursorTarget) then { if (s_player_maint_build > 0) then { player removeAction s_player_maint_build; s_player_maint_build = -1; }; }; if (s_player_maint_build < 0) then { s_player_lastTarget set [2,_cursorTarget]; s_player_maint_build = player addAction [format[localize "STR_EPOCH_ACTIONS_MAINTAIN",_text], "\z\addons\dayz_code\actions\player_buildingMaint.sqf",_cursorTarget, -2, false, true, "",""]; }; } else { player removeAction s_player_maint_build; s_player_maint_build = -1; }; //Start Generator if(_cursorTarget isKindOf "Generator_DZ") then { if (s_player_fillgen < 0) then { // check if not running if((_cursorTarget getVariable ["GeneratorRunning", false])) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR1", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true, "",""]; } else { // check if not filled && player has jerry. if((_cursorTarget getVariable ["GeneratorFilled", false])) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR2", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""]; } else { if("ItemJerrycan" in _magazinesPlayer) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR3", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""]; }; }; }; }; } else { player removeAction s_player_fillgen; s_player_fillgen = -1; }; //Towing with tow truck /* if(_typeOfCursorTarget == "TOW_DZE") then { if (s_player_towing < 0) then { if(!(_cursorTarget getVariable ["DZEinTow", false])) then { s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_ATTACH" "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true, "",""]; } else { s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true, "",""]; }; }; } else { player removeAction s_player_towing; s_player_towing = -1; }; */ //Sleep if(_isTent && _ownerID == dayz_characterID) then { if ((s_player_sleep < 0) && (player distance _cursorTarget < 3)) then { s_player_sleep = player addAction [localize "str_actions_self_sleep", "\z\addons\dayz_code\actions\player_sleep.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_sleep; s_player_sleep = -1; }; //Repairing Vehicles if ((dayz_myCursorTarget != _cursorTarget) && _isVehicle && !_isMan && _hasToolbox && (damage _cursorTarget < 1) && !_isDisallowRepair) then { if (s_player_repair_crtl < 0) then { dayz_myCursorTarget = _cursorTarget; _menu = dayz_myCursorTarget addAction [localize "STR_EPOCH_PLAYER_REPAIRV", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false, "",""]; _menu1 = dayz_myCursorTarget addAction [localize "STR_EPOCH_PLAYER_SALVAGEV", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false, "",""]; s_player_repairActions set [count s_player_repairActions,_menu]; s_player_repairActions set [count s_player_repairActions,_menu1]; s_player_repair_crtl = 1; } else { {dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = []; s_player_repair_crtl = -1; }; }; // All Traders if (_isMan && !_isPZombie && _traderType in serverTraders) then { if (s_player_parts_crtl < 0) then { // get humanity _humanity = player getVariable ["humanity",0]; _traderMenu = call compile format["menu_%1;",_traderType]; // diag_log ("TRADER = " + str(_traderMenu)); _low_high = "low"; _humanity_logic = false; if((_traderMenu select 2) == "friendly") then { _humanity_logic = (_humanity < -5000); }; if((_traderMenu select 2) == "hostile") then { _low_high = "high"; _humanity_logic = (_humanity > -5000); }; if((_traderMenu select 2) == "hero") then { _humanity_logic = (_humanity < 5000); }; if(_humanity_logic) then { _cancel = player addAction [format[localize "STR_EPOCH_ACTIONS_HUMANITY",_low_high], "\z\addons\dayz_code\actions\trade_cancel.sqf",["na"], 0, true, false, "",""]; s_player_parts set [count s_player_parts,_cancel]; } else { // Static Menu { //diag_log format["DEBUG TRADER: %1", _x]; _buy = player addAction [format["Trade %1 %2 for %3 %4",(_x select 3),(_x select 5),(_x select 2),(_x select 6)], "\z\addons\dayz_code\actions\trade_items_wo_db.sqf",[(_x select 0),(_x select 1),(_x select 2),(_x select 3),(_x select 4),(_x select 5),(_x select 6)], (_x select 7), true, true, "",""]; s_player_parts set [count s_player_parts,_buy]; } count (_traderMenu select 1); // Database menu _buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 999, true, false, "",""]; s_player_parts set [count s_player_parts,_buy]; }; s_player_parts_crtl = 1; }; } else { {player removeAction _x} count s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; }; if(dayz_tameDogs) then { //Dog if (_isDog && _isAlive && (_hasRawMeat) && _ownerID == "0" && player getVariable ["dogID", 0] == 0) then { if (s_player_tamedog < 0) then { s_player_tamedog = player addAction [localize "str_actions_tamedog", "\z\addons\dayz_code\actions\tame_dog.sqf", _cursorTarget, 1, false, true, "", ""]; }; } else { player removeAction s_player_tamedog; s_player_tamedog = -1; }; if (_isDog && _ownerID == dayz_characterID && _isAlive) then { _dogHandle = player getVariable ["dogID", 0]; if (s_player_feeddog < 0 && _hasRawMeat) then { s_player_feeddog = player addAction [localize "str_actions_feeddog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,0], 0, false, true,"",""]; }; if (s_player_waterdog < 0 && "ItemWaterbottle" in _magazinesPlayer) then { s_player_waterdog = player addAction [localize "str_actions_waterdog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,1], 0, false, true,"",""]; }; if (s_player_staydog < 0) then { _lieDown = _dogHandle getFSMVariable "_actionLieDown"; if (_lieDown) then { _text = "str_actions_liedog"; } else { _text = "str_actions_sitdog"; }; s_player_staydog = player addAction [localize _text,"\z\addons\dayz_code\actions\dog\stay.sqf", _dogHandle, 5, false, true,"",""]; }; if (s_player_trackdog < 0) then { s_player_trackdog = player addAction [localize "str_actions_trackdog","\z\addons\dayz_code\actions\dog\track.sqf", _dogHandle, 4, false, true,"",""]; }; if (s_player_barkdog < 0) then { s_player_barkdog = player addAction [localize "str_actions_barkdog","\z\addons\dayz_code\actions\dog\speak.sqf", _cursorTarget, 3, false, true,"",""]; }; if (s_player_warndog < 0) then { _warn = _dogHandle getFSMVariable "_watchDog"; if (_warn) then { _text = (localize "str_epoch_player_247"); _warn = false; } else { _text = (localize "str_epoch_player_248"); _warn = true; }; s_player_warndog = player addAction [format[localize "str_actions_warndog",_text],"\z\addons\dayz_code\actions\dog\warn.sqf",[_dogHandle, _warn], 2, false, true,"",""]; }; if (s_player_followdog < 0) then { s_player_followdog = player addAction [localize "str_actions_followdog","\z\addons\dayz_code\actions\dog\follow.sqf",[_dogHandle,true], 6, false, true,"",""]; }; } else { player removeAction s_player_feeddog; s_player_feeddog = -1; player removeAction s_player_waterdog; s_player_waterdog = -1; player removeAction s_player_staydog; s_player_staydog = -1; player removeAction s_player_trackdog; s_player_trackdog = -1; player removeAction s_player_barkdog; s_player_barkdog = -1; player removeAction s_player_warndog; s_player_warndog = -1; player removeAction s_player_followdog; s_player_followdog = -1; }; }; } else { //Engineering player removeAction s_player_plotManagement; s_player_plotManagement = -1; {dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = []; s_player_repair_crtl = -1; {player removeAction _x} count s_player_combi;s_player_combi = []; dayz_myCursorTarget = objNull; s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull]; {player removeAction _x} count s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; player removeAction s_player_checkGear; s_player_checkGear = -1; player removeAction s_player_SurrenderedGear; s_player_SurrenderedGear = -1; //Others player removeAction s_player_forceSave; s_player_forceSave = -1; player removeAction s_player_flipveh; s_player_flipveh = -1; player removeAction s_player_sleep; s_player_sleep = -1; player removeAction s_player_deleteBuild; s_player_deleteBuild = -1; player removeAction s_player_butcher; s_player_butcher = -1; player removeAction s_player_cook; s_player_cook = -1; player removeAction s_player_boil; s_player_boil = -1; player removeAction s_player_fireout; s_player_fireout = -1; player removeAction s_player_packtent; s_player_packtent = -1; player removeAction s_player_fillfuel; s_player_fillfuel = -1; player removeAction s_player_studybody; s_player_studybody = -1; //Dog player removeAction s_player_tamedog; s_player_tamedog = -1; player removeAction s_player_feeddog; s_player_feeddog = -1; player removeAction s_player_waterdog; s_player_waterdog = -1; player removeAction s_player_staydog; s_player_staydog = -1; player removeAction s_player_trackdog; s_player_trackdog = -1; player removeAction s_player_barkdog; s_player_barkdog = -1; player removeAction s_player_warndog; s_player_warndog = -1; player removeAction s_player_followdog; s_player_followdog = -1; player removeAction s_player_manageDoor; s_player_manageDoor = -1; // u might also want to add this to variables reset in your variables.sqf // vault player removeAction s_player_unlockvault; s_player_unlockvault = -1; player removeAction s_player_packvault; s_player_packvault = -1; player removeAction s_player_lockvault; s_player_lockvault = -1; player removeAction s_player_information; s_player_information = -1; player removeAction s_player_fillgen; s_player_fillgen = -1; player removeAction s_player_upgrade_build; s_player_upgrade_build = -1; player removeAction s_player_maint_build; s_player_maint_build = -1; player removeAction s_player_downgrade_build; s_player_downgrade_build = -1; player removeAction s_player_towing; s_player_towing = -1; player removeAction s_player_fuelauto; s_player_fuelauto = -1; player removeAction s_player_fuelauto2; s_player_fuelauto2 = -1; }; //Dog actions on player self _dogHandle = player getVariable ["dogID", 0]; if (_dogHandle > 0) then { _dog = _dogHandle getFSMVariable "_dog"; _ownerID = "0"; if (!isNull cursorTarget) then { _ownerID = cursorTarget getVariable ["CharacterID","0"]; }; if (_canDo && !_inVehicle && alive _dog && _ownerID != dayz_characterID) then { if (s_player_movedog < 0) then { s_player_movedog = player addAction [localize "str_actions_movedog", "\z\addons\dayz_code\actions\dog\move.sqf", player getVariable ["dogID", 0], 1, false, true, "", ""]; }; if (s_player_speeddog < 0) then { _text = (localize "str_epoch_player_249"); _speed = 0; if (_dog getVariable ["currentSpeed",1] == 0) then { _speed = 1; _text = (localize "str_epoch_player_250"); }; s_player_speeddog = player addAction [format[localize "str_actions_speeddog", _text], "\z\addons\dayz_code\actions\dog\speed.sqf",[player getVariable ["dogID", 0],_speed], 0, false, true, "", ""]; }; if (s_player_calldog < 0) then { s_player_calldog = player addAction [localize "str_actions_calldog", "\z\addons\dayz_code\actions\dog\follow.sqf", [player getVariable ["dogID", 0], true], 2, false, true, "", ""]; }; }; } else { player removeAction s_player_movedog; s_player_movedog = -1; player removeAction s_player_speeddog; s_player_speeddog = -1; player removeAction s_player_calldog; s_player_calldog = -1; }; No idea why it won't work. Link to comment Share on other sites More sharing options...
dzrealkiller Posted November 29, 2014 Report Share Posted November 29, 2014 Would RscButton and Zupa_RscButton be the same thing in defines? Link to comment Share on other sites More sharing options...
monkeybrain Posted December 3, 2014 Report Share Posted December 3, 2014 Is it possible that plot pole management has anything to do with buildings disappearing? I have decay at 150 days yet new building parts disappear but old ones stay behind. There is no sql event setting damage, just wondering if there's a mistake in the files I changed. Link to comment Share on other sites More sharing options...
MG-Maximus Posted December 3, 2014 Report Share Posted December 3, 2014 Yeah i'm having a problem where friends added to the plot pole their buildings dont save after restart but the plot owners do? Link to comment Share on other sites More sharing options...
monkeybrain Posted December 4, 2014 Report Share Posted December 4, 2014 in server monitor for some reason I had if ((count _intentory > 0) && !(typeOf( _object) == "Plastic_Pole_EP1_DZ") && !(typeOf( _object) in DZE_DoorsLocked)) then { instead of if ((count _intentory > 0) && !(typeOf( _object) == "Plastic_Pole_EP1_DZ")) then { could this be a reason for objects going missing? is this correct in server_updateObject? _object_inventory = { private["_inventory","_previous","_key"]; _isNormal = true; if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then{ _isNormal = false; _inventory = _object getVariable ["plotfriends", []]; //We're replacing the inventory with UIDs for this item }; if (typeOf (_object)in DZE_DoorsLocked) then{ _isNormal = false; _inventory = _object getVariable ["doorfriends", []]; //We're replacing the inventory with UIDs for this item }; if(_isNormal)then { _inventory = [ getWeaponCargo _object, getMagazineCargo _object, getBackpackCargo _object ]; }; Link to comment Share on other sites More sharing options...
MG-Maximus Posted December 4, 2014 Report Share Posted December 4, 2014 hey monkeybrain i have it the same as you and the (typeOf( _object) in DZE_DoorsLocked) is from door management script so this shouldnt be causing the issue? Link to comment Share on other sites More sharing options...
monkeybrain Posted December 4, 2014 Report Share Posted December 4, 2014 ahh ok,I guess not then, when did your problem start? Link to comment Share on other sites More sharing options...
R4id3n84 Posted December 4, 2014 Report Share Posted December 4, 2014 Ok so i have this working now just its not using coins its usingd default money How do i change it to your single currency ? many thanks R4id3n84 Link to comment Share on other sites More sharing options...
Davred Posted December 6, 2014 Report Share Posted December 6, 2014 hi im new here, just have quick question. on my server i have this mod, but part of my buildings start dissapears, so i found out i have maintenance on ;] i just updated my plotmanagemnet to this version so i see how much i need to pay and how many elements is in maintenance but is shows 0 all the time, how i can setup every how many days is this maintenance, i know how to setup price, (im using single currency) i want to just define how many days is this maintenance. i don't know if this is working is shows: Objects to maintenain: 0 Price to maintenain: 0 coins i have clear my sql even with: DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 14 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 42 DAY) and i have put this request: UPDATE `Object_DATA` SET `Damage`=0.11 WHERE `ObjectUID` <> 0 AND `CharacterID` <> 0 AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 14 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') ) so player buldings will desapire after 14 days now? so they need to pay ones every 2 weeks ? Link to comment Share on other sites More sharing options...
steamROLLER Posted December 7, 2014 Report Share Posted December 7, 2014 I'm running basic Epoch and I've deployed plotManagement (default) and I do not have Plot4Life. I built a plot pole and notice Plot Management in blue and I was able to add myself to the friends list, I killed myself came back and I can still manage the menu but I'm unable to build anything. States I need a plot pole within 30m almost as if my PlayerID was never saved to that plot pole in the database. Any suggestion guys? xSkilledElitex 1 Link to comment Share on other sites More sharing options...
ProtossMaster Posted December 8, 2014 Report Share Posted December 8, 2014 can your put the following on line 255 on server_monitor.sqf So we can see the object ID where it fails:: diag_log str(_idKey); Holy shit thank you zupa. That line made me find a bad object in a database, surprised no one liked that post. AntonioMaster 1 Link to comment Share on other sites More sharing options...
monkeybrain Posted December 8, 2014 Report Share Posted December 8, 2014 What files have could have to do with despawning of building parts. Need helpASAP! Link to comment Share on other sites More sharing options...
Ree Posted December 9, 2014 Report Share Posted December 9, 2014 Hey Zupa, So i'll get to the point :P Everything works Counter,Dome, now the maintenance part im running this SQL Event UPDATE `object_data` SET `Damage` = IF( `Damage` = 0.0, 0.1, `Damage` + 0.1 ) WHERE `LastUpdated` <= DATE_SUB(NOW(), INTERVAL 1 DAY) AND `Classname` REGEXP 'wall|floor|door|ladder|stair' And it damages my objects like intended so when i go and do maintenance all objects are restored to 100% health ingame but it updates nothing in the database even on reset No change in time or damage Im using SC & Maintain Version of your script maintain_area.sqf SC private ["_newWealth","_missing","_missingQty","_proceed","_itemIn","_countIn","_target","_objectClasses","_range","_objects","_requirements","_count","_cost","_option"]; disableSerialization; if (DZE_ActionInProgress) exitWith { cutText [(localize "STR_EPOCH_ACTIONS_2") , "PLAIN DOWN"]; }; DZE_ActionInProgress = true; player removeAction s_player_maintain_area; s_player_maintain_area = 1; player removeAction s_player_maintain_area_preview; s_player_maintain_area_preview = 1; _target = cursorTarget; _objectClasses = DZE_maintainClasses; _range = DZE_PlotPole select 0; _objects = nearestObjects [_target, _objectClasses, _range]; _objects_filtered = []; { if (damage _x >= DZE_DamageBeforeMaint) then { _objects_filtered set [count _objects_filtered, _x]; }; } count _objects; _objects = _objects_filtered; _count = count _objects; if (_count == 0) exitWith { _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7012); _result = format["Objects to maintain: %1" , _count]; _ctrl ctrlSetText _result; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7013); _result = format["Price to maintain: %1 %2" , 0, CurrencyName]; _ctrl ctrlSetText _result; DZE_ActionInProgress = false; s_player_maintain_area = -1; s_player_maintain_area_preview = -1; }; _theCost = _count * 1; _requirements = [[CurrencyName,_theCost]]; _option = _this select 0; switch _option do { case "maintain": { _wealth = player getVariable["headShots",0]; _missing = ""; _missingQty = 0; _proceed = true; { _itemIn = _x select 0; _countIn = _x select 1; if (_wealth < _countIn) exitWith { _missing = _itemIn; _missingQty = (_countIn - _wealth); _proceed = false; }; } count _requirements; if (_proceed) then { _newWealth = (_wealth - _countIn); player playActionNow "Medic"; [player,_range,true,(getPosATL player)] spawn player_alertZombies; player setVariable["headShots",_newWealth,true]; PVDZE_plr_Save = [player,(magazines player),true,true]; publicVariableServer "PVDZE_plr_Save"; PVDZE_maintainArea = [player,1,_target]; publicVariableServer "PVDZE_maintainArea"; cutText [format[(localize "STR_EPOCH_ACTIONS_4"), _count], "PLAIN DOWN", 5]; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7012); _result = format["SUCCESS : Objects maintained: %1" , _count]; _ctrl ctrlSetText _result; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7013); _result = format["SUCCESS : Price maintained: %1 %2" , _theCost, CurrencyName]; _ctrl ctrlSetText _result; } else { _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7012); _result = format["FAILED: Objects to maintain: %1" , _count]; _ctrl ctrlSetText _result; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7013); _result = format["FAILED: Price to maintain: %1 %2" , _theCost, CurrencyName]; _ctrl ctrlSetText _result; cutText [format[(localize "STR_EPOCH_ACTIONS_6"), _missingQty, CurrencyName], "PLAIN DOWN"]; }; }; case "preview": { _cost = ""; { _itemIn = _x select 0; _countIn = _x select 1; if (_cost != "") then { _cost = _cost + " and "; }; _cost = _cost + (str(_countIn) + " " + CurrencyName); } count _requirements; cutText [format[(localize "STR_EPOCH_ACTIONS_7"), _count, _cost], "PLAIN DOWN"]; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7012); _result = format["Objects to maintain: %1" , _count]; _ctrl ctrlSetText _result; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7013); _result = format["Price to maintain: %1 %2" , _theCost, CurrencyName]; _ctrl ctrlSetText _result; }; }; DZE_ActionInProgress = false; s_player_maintain_area = -1; s_player_maintain_area_preview = -1; Any Help would be great Thanks, Re Link to comment Share on other sites More sharing options...
SSG Posted December 15, 2014 Report Share Posted December 15, 2014 This is probably a really stupid question lol but i cant find where playerbuild.sqf and the other 2 files are where do i get them Link to comment Share on other sites More sharing options...
Antichrist Posted December 15, 2014 Report Share Posted December 15, 2014 If you don't have custom ones then you can find them in your dayz_code.pbo (navigate to actions folder within pbo) file located in @DayZ_Epoch\addons folder You can get all the files you might want to customize mission side from that same pbo but make sure you don't remove them forever from pbo files :D Link to comment Share on other sites More sharing options...
DangerRuss Posted December 20, 2014 Report Share Posted December 20, 2014 Can't get this to work for my life.. followed the directions to the T. Im using this so I decided to go with the default version of plot management and I am NOT using P4L. I just get insta kicked from game and RPT says Server error: Player without identity DangerRuss (id 429485593) One bit that stuck out to me.. in the instructions it says if you already have a defines.hpp dont use his.... so I just didnt include his defines.hpp.... at first I'll admit I overlooked this part and I got an error very similar to this ErrorMessage: File mpmissions\DayZ_Epoch_11.Chernarus\plotManagement\defines.hpp, line 12: .RscFrame: Member already defined. So perhaps I need to somehow combine the two? Honestly with no real error in my RPT I have nothing to go on and Im totally stumped. any help would be awesome Zupa EDIT - It appears that somehow, over night my game files became corrupt and that is why I probably couldnt get on my server. In the process of figuring this out, I somehow broke the server and I am unable to restart it. Im waiting on Vilayer to restart it and then I'll give this another shot. EDIT EDIT- All is well.. reinstalled epoch, server is fixed, this appears to be installed properly although I need to test it with other people! Link to comment Share on other sites More sharing options...
DangerRuss Posted December 21, 2014 Report Share Posted December 21, 2014 I have this installed. I add myself and a friend to the plot management list. We both die, neither of us can build near that plot pole. Any ideas where I went wrong with the installation? Link to comment Share on other sites More sharing options...
pepstar34 Posted December 22, 2014 Report Share Posted December 22, 2014 Hey Zupa, So i'll get to the point :P Everything works Counter,Dome, now the maintenance part im running this SQL Event UPDATE `object_data` SET `Damage` = IF( `Damage` = 0.0, 0.1, `Damage` + 0.1 ) WHERE `LastUpdated` <= DATE_SUB(NOW(), INTERVAL 1 DAY) AND `Classname` REGEXP 'wall|floor|door|ladder|stair' And it damages my objects like intended so when i go and do maintenance all objects are restored to 100% health ingame but it updates nothing in the database even on reset No change in time or damage Im using SC & Maintain Version of your script maintain_area.sqf SC private ["_newWealth","_missing","_missingQty","_proceed","_itemIn","_countIn","_target","_objectClasses","_range","_objects","_requirements","_count","_cost","_option"]; disableSerialization; if (DZE_ActionInProgress) exitWith { cutText [(localize "STR_EPOCH_ACTIONS_2") , "PLAIN DOWN"]; }; DZE_ActionInProgress = true; player removeAction s_player_maintain_area; s_player_maintain_area = 1; player removeAction s_player_maintain_area_preview; s_player_maintain_area_preview = 1; _target = cursorTarget; _objectClasses = DZE_maintainClasses; _range = DZE_PlotPole select 0; _objects = nearestObjects [_target, _objectClasses, _range]; _objects_filtered = []; { if (damage _x >= DZE_DamageBeforeMaint) then { _objects_filtered set [count _objects_filtered, _x]; }; } count _objects; _objects = _objects_filtered; _count = count _objects; if (_count == 0) exitWith { _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7012); _result = format["Objects to maintain: %1" , _count]; _ctrl ctrlSetText _result; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7013); _result = format["Price to maintain: %1 %2" , 0, CurrencyName]; _ctrl ctrlSetText _result; DZE_ActionInProgress = false; s_player_maintain_area = -1; s_player_maintain_area_preview = -1; }; _theCost = _count * 1; _requirements = [[CurrencyName,_theCost]]; _option = _this select 0; switch _option do { case "maintain": { _wealth = player getVariable["headShots",0]; _missing = ""; _missingQty = 0; _proceed = true; { _itemIn = _x select 0; _countIn = _x select 1; if (_wealth < _countIn) exitWith { _missing = _itemIn; _missingQty = (_countIn - _wealth); _proceed = false; }; } count _requirements; if (_proceed) then { _newWealth = (_wealth - _countIn); player playActionNow "Medic"; [player,_range,true,(getPosATL player)] spawn player_alertZombies; player setVariable["headShots",_newWealth,true]; PVDZE_plr_Save = [player,(magazines player),true,true]; publicVariableServer "PVDZE_plr_Save"; PVDZE_maintainArea = [player,1,_target]; publicVariableServer "PVDZE_maintainArea"; cutText [format[(localize "STR_EPOCH_ACTIONS_4"), _count], "PLAIN DOWN", 5]; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7012); _result = format["SUCCESS : Objects maintained: %1" , _count]; _ctrl ctrlSetText _result; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7013); _result = format["SUCCESS : Price maintained: %1 %2" , _theCost, CurrencyName]; _ctrl ctrlSetText _result; } else { _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7012); _result = format["FAILED: Objects to maintain: %1" , _count]; _ctrl ctrlSetText _result; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7013); _result = format["FAILED: Price to maintain: %1 %2" , _theCost, CurrencyName]; _ctrl ctrlSetText _result; cutText [format[(localize "STR_EPOCH_ACTIONS_6"), _missingQty, CurrencyName], "PLAIN DOWN"]; }; }; case "preview": { _cost = ""; { _itemIn = _x select 0; _countIn = _x select 1; if (_cost != "") then { _cost = _cost + " and "; }; _cost = _cost + (str(_countIn) + " " + CurrencyName); } count _requirements; cutText [format[(localize "STR_EPOCH_ACTIONS_7"), _count, _cost], "PLAIN DOWN"]; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7012); _result = format["Objects to maintain: %1" , _count]; _ctrl ctrlSetText _result; _ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7013); _result = format["Price to maintain: %1 %2" , _theCost, CurrencyName]; _ctrl ctrlSetText _result; }; }; DZE_ActionInProgress = false; s_player_maintain_area = -1; s_player_maintain_area_preview = -1; Any Help would be great Thanks, Re I am also having this exact issue... you are able to maintain, but it does not reflect in database. Not using Plot 4 life and also installed SC coin version. Link to comment Share on other sites More sharing options...
steamROLLER Posted December 24, 2014 Report Share Posted December 24, 2014 I have a small issue, everything works but once I die, the system doesn't recognize me to upgrade existing walls. It recognizes me only for building new items. I'm assuming this is becuase Object_data table only saves CharacterID and after you respawn you receive a new CharacterID thus the reason the system can't recognize you as the owner. I suppose the system reads the PlayerUID for building new objects around the pole which that UID will never change for a player. Am I correct? This could be resolved by placing the PlayerUID column within the Object_data table of database and have the game insert that ID each time a player places an object. Then we have Plot Management code read from PlayerUID instead of CharacterID for upgrading existing structures? 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