Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Reputation Activity

  1. Like
    Ghostrider-GRG reacted to striker in [Release] Build Vectors - Rotate objects in Dayz Epoch (v2.34 P4L & non-P4L)   
    Credit Is Due Where Due


    Special Thanks to Raymix and his Script!
    Special Thanks to RimBlock and his 
    Special Thanks to Jossy and the future improvements I hope to see from him! Check out his work
    Special Thanks to KamikazeXeX for his changes to the AdminBuild for Snap Building Pro and his help!
    These files have been tested and work on the maps Chernarus and Taviana.

    Warning: This script is fairly untested and could cause unforeseen problems. USE AT YOUR OWN RISK!
    Please backup your database before you implement this encase something goes wrong!

    Newest Build Vectors Installation (version 4)
    Snap Build Pro Only
    Files & Install guide
    Plot 4 Life & Snap Build Pro

    Install Guide:

    Legacy Installation (version 3)

    Road Map
    Keep menus up when clicked for better user experience Known Issues
    None Change Log

    Version 1:
    Version 1.1:
    Updated server_monitor.sqf to make sure the vector is the correct format.
    Version 2:
    Updated files for the snap building pro update v1.3.
    Added files for Adminbuild and Right Clickables.
    Version 3:
    Updated files for snap building pro v1.4.1
    Ghost preview supported (Thanks Jossy!)
    Version 4:
    Cleaned up some of the HORRENDOUS code :P
    Fixed issue with objects not snapping correctly to objects of a certain degree after restart. ;)
    Appreciate and support my work?
  2. Like
    Ghostrider-GRG got a reaction from rosska85 in [Release] 2.1 Plot Management - UPDATED Object Counter   
    Seems to work perfectly on a test server. I am running it with PP4L 2.26, SnapPro 1.4.1, and extra_rc build.
    Many thanks for a great add-on.
  3. Like
    Ghostrider-GRG reacted to Defay in [Release] Cen's Custom GUI for Epoch/Overpoch   
    Hey guys,
    so I saw that there are lot of people asking how to get an GUI looking like this:

    This is not my work, I'm only posting a tutorial on how to do it. This is from user Cen who was so nice to share it with us.
    All credits go to: Cen
    1.) First download these files and extract them in the root of your mission folder or mission.pbo.
    Download Link or Attached files.
    2.) Add this to the bottom of description.ext
    class RscPictureGUI { access = 0; type = 0; idc = -1; colorBackground[] = {0,0,0,0}; colorText[] = {0.38,0.63,0.26,0.75}; font = "TahomaB"; sizeEx = 0; lineSpacing = 0; text = ""; style = "0x30 + 0x100"; x = 0; y = 0; w = 0.2; h = 0.15; }; class RscTextGUIK { type = 0; idc = -1; style = 0x02; colorBackground[] = {0,0,0,0}; colorText[] = {1, 1, 1, 0.5}; //color[] = {1, 1, 1, 0.5}; font = "TahomaB"; size = 0.03; sizeEx = 0.03; x = 0; y = 0; w = 0.1; h = 0.2; }; #include "dayz_code\gui\ATD_Hud.h" 3.) Add this line to a custom compiles.sqf or overwrite the path in the existing compiles.sqf (depends how you call yours).
    I will not do a tutorial on how to add custom compiles as there are plenty of them already out here on this forum.
    player_updateGui = compile preprocessFileLineNumbers "dayz_code\compile\player_updateGui.sqf"; 4.) Edit ATD_Hud.h to your liking.
    And that should be it! If you have any questions or problems with it, please post down below and I'll try to get back to you as soon as possible or send me a PM.
    Let me know how I did for my first tutorial and thanks again to Cen for the HUD and letting me post a tutorial on this.
  4. Like
    Ghostrider-GRG reacted to WGC GeekGarage in [How To/Update] Build Snap with Right Click custom build, admin fast build + upgrade Version 1.6.5 IMPORTANT UPDATE: extra_rc   
    By request I have updated the player_build file for snapping so it will work with admin fast build (not remove) and right click custom build
    Always do a backup of your own player_build.sqf before going further!
    I do NOT take credit for anything other than the changes to the file. The majority of the script was done by Maca134 and OtterNas3 and Epoch Dev Team
    - Install Maca134's right click script - http://epochservers.com/viewtopic.php?f=14&t=13
    - Install Build Snap Extended - 
    Now to the update
    Download this SQF file and replace the player_build.sqf in your Mission PBO\custom\snap_build folder:
    in your variables.sqf add this line
    WG_adminBuild = ["123456789","987654321"];  near the top just below
    disableSerialization; add player UID's to this array (change the example UID's) for those players who should have fast build
    Here is an example of the extra_rc.hpp, i have used the ruby as a test inventory item
    class ExtraRc { class ItemRuby { class menuItem1 { text = "Sandbag Tower"; script = "[""Land_Fort_Watchtower_EP1"",[""ItemToolbox"",""ItemHatchet_DZE""],[[""ItemRuby"", 1],[""PartGeneric"", 1]],[0,6.5,2.5]] execVM ""custom\snap_build\player_build.sqf"";"; }; }; }; Here is how the array works:
    script = "[""Land_Fort_Watchtower_EP1"",[""ItemToolbox"",""ItemHatchet_DZE""],[[""ItemRuby"", 1],[""PartGeneric"", 1]],[0,6,2.5]] execVM ""custom\snap_build\player_build.sqf"";";
    ""Land_Fort_Watchtower_EP1"" is the object you want to build
    [""ItemToolbox"",""ItemHatchet_DZE""] is the toolbelt items needed to build the object
    [[""ItemRuby"", 1],[""PartGeneric"", 1]] List of items needed to build construction. Only have one of each item name and then set the number to how many of that item. If only a single item the array should look like this [[""PartGeneric"", 1]]
    [0,6,2.5] is the item offset from your character. First number is Left/Right offset, second number is front/back offset, last number is Up/Down offset. Remember that comma is the seperator between the number and period is decimal seperator!
    also remember the double quotes are VERY important around class names!
    To be able to remove custom items as an owner only this is how you would go about it:
    In your variables.sqf i would recommend near dayz_allowedObjects create a new public array containing the objects you would be able to remove i call mine 
    WG_OwnerRemove =[];  insert any classname you want from the custom build system.
    in the custom fn_selfAction.sqf find
    _isModular = _cursorTarget isKindOf "ModularItems";  and change it to 
    _isModular = (_cursorTarget isKindOf "ModularItems") or ((typeOf _cursorTarget) in WG_OwnerRemove); remember to add your custom objects in "dayz_allowedObjects" and "DZE_maintainClasses" in your variables.sqf any object added to "DZE_isRemovable" every one have a chance to remove!
    Remember to share any objects that you might add so we all don't need to sit and create offsets for the same items and please only for items that you cannot already build in Epoch system
    Now to the admin fast upgrade, download the following file
    Now just redirect in your fn_selfaction.sqf to the new player_upgrade.sqf where the current player_upgrade.sqf is being called
    This requires that you have "WG_adminBuild" in your variables.sqf!
    The reason why i added fast build and upgrade for admins is that I suck at using the 3D map editor, but wanted to build some event houses here and there on the map, so i use this fast build to do it. Just know that i think that admin fast build should not be misused by admins in any way just because you don't like to wait, if you play with your players, do it fully legit or you are a coward.
    To be able to remove non-target able objects you need to copy object_removeNet.sqf from dayz_code\compile and put it into your mission file.
    Then in compiles.sqf you need to redirect it to your mission file and then open it and add the item to the array with the nets.
    Now when standing on heli pad you can right click your toolbox and use the remove net option and it will remove the heli pad
    I'm hosting the files myself so it won't get deleted by accident
    If you like my small update please visit my servers :) all info on www.wreckinggames.net
    - GeekGarage
  5. Like
    Ghostrider-GRG reacted to Axe Cop in Elevator Script for Players and Vehicles [WIP/Prototype]   
    I had an idea about doing an elevator script to extend the base building a little or just for some fun with ArmA/Epoch! :D
    Here is a video of the current prototype: (and don't laugh I got stuck after I fell from the roof  :P)

    Just recorded another video to show how to call an elevator, I've placed 4 stops around the house, looks kinda funny yeah :D

    If anyone is wondering, I use the preview version of the metal floor to display the stop points of the elevator.. some item has to be present so you can call the elevator there and the positions get saved to the database. This item can be changed in the config but the preview items have no collisions so you can just travel through it and it's easy to see where the elevator can stop.
    Everything is saved to the database without any need to modify the server files or database structure. It only updates the "CharacterID" field in the "object_data" table like safes or locked door also do in Epoch, I don't want to bore you with the technical details but I encoded the elevator and stop point ID's in an 8 digit long code, always starting with "6976" (that is ASCII code for "EL" :P), the next 3 digits are the elevator ID and the last the elevator stop ID. Meaning you can have up to 10 stops per elevator (0-9) for now. It looks like this (without the "-"), just in case you want to find an elevator in the database or whatever.
    ID 8 digits: EL-ID-STID = 6976-###-# e.g the ID's of an elevator with 2 additional stop points: 69760010 -> 69760011 -> 69760012
    The elevator can be build similar to the in-place upgrade system from Epoch, so just look at a metal floor (item can also be changed in the config) and you will get an option "Upgrade to Elevator" and "Upgrade to Elevator Stop", the elevator stop can only be build if there is an elevator in range (max. range for the elevator to travel can be changed, default 25m), you have to select an elevator first (the select action will be available if you look at an elevator, also new built elevator are selected by default).
    Once you have built an elevator with at least 1 stop point you can just look at it and select "Activate Elevator: Next Stop" or "Activate Elevator: Previous Stop", it will then find and move to the next/previous stop. If there is no stop in range you get a message and nothing happens, the menu could be hidden if there is no next stop for the elevator but in the first version the actions are always shown.
    You can also call the elevator at any stop point, it will travel along the way, stopping at every stop point and wait there (default 5 sec. can be changed in the config).
    Installation and configuration
    Ok now to the installation and configuration of the elevator script. The script is only client side, so very easy to add to your mission file!
    You can get the current scripts here: https://github.com/vos/dayz/tree/master/elevator just download the whole folder and extract it to your mission file.
    To enable the script on your server add this line to your init.sqf at the end of the block "if (!isDedicated) then {" (so just above the next "};" should be fine):
    ["elevator"] execVM "elevator\elevator_init.sqf"; Assuming your have the elevator folder with the scripts in your mission root, the only parameter of the script "elevator" is the folder relative to your mission file, it's needed to load the other scripts from that folder. You can change it to "scripts\elevator" if your put the elevator-folder there for example.
    That is all you have to do to install the elevator script on your server, there are some config variables you can change, take a look at the file "elevator_init.sqf" where it says "global variables", you can change the values there, but I would suggest changing it in your init.sqf like the Epoch settings, e.g.:
    ELE_MaxRange = 100; // maximum range the elevator can travel / stop points can be built (in meter) ELE_Speed = 5; // speed of the elevator (meters per second) ELE_StopWaitTime = 0; // disable the wait time if you call the elevator ... ["elevator"] execVM "elevator\elevator_init.sqf"; Added building requirements and upgrade animation to build the elevator and elevator stops. Default requirements are:
    ELE_RequiredBuildTools = ["ItemToolbox", "ItemCrowbar"]; // required tools for building an elevator and elevator stop ELE_RequiredBuildItems = [["PartGeneric",4], "PartEngine", "ItemGenerator", "ItemJerrycan"]; // required items to build an elevator ELE_RequiredBuildStopItems = [["PartGeneric",4]]; // required items to build an elevator stop You will get the default messages from Epoch if you are missing the tools or items.
    There are no access restrictions yet! Any player can built or use an elevator with this version, so keep that in mind if you want to use it on a live server. I already have some ideas to use the default car keys to use an elevator, that should work.. unless your have some better ideas for access control? :)
    Just one more thing, as I use the "MetalFloor_Preview_DZ" for the elevator stop by default, if you want to keep it like that you have to add that class to your allowed objects in Epoch, otherwise Epoch will delete it right after you upgrade a metal floor to a stop point. To do that the class needs to be added to the file "dayz_code\init\variables.sqf", at line 466 there is a list "dayz_allowedObjects", just add "MetalFloor_Preview_DZ" to that list and copy the file to your mission folder as usual (the file is referenced in the init.sqf). if you don't want to do that just replace the stop class with this config variable:
    ELE_StopClass = "MetalFloor_Preview_DZ"; Replace the classname with whatever you like, I didn't test any other but the elevator will just travel there and you can call the elevator with looking at that object.
    Remember this is still work in progress, there might be bugs and maybe the elevator ID gets changed so already built elevators might not work after an update, but you can already play around with the script and tell me what you think, Ideas are welcome... :)
  6. Like
    Ghostrider-GRG reacted to rosska85 in [RELEASE] One click currency combine from inventory   
    Just a very simple little addition which I mashed up from the Epoch Change script. One of the biggest annoyances I found with the Epoch currency system was how long it took to combine it all into nice neat piles for storing away, so this lets you do it in one click without having to travel all the way to a trader. 
    Tested with, instructions are provided for clean Epoch and modded Epoch.
    Simply adds a right click menu option to all currency in your inventory which lets you 'combine' all of your currency to the highest denomination. Saves so much time and no annoying medic animation to boot.  Download Link
    Installation instructions can be found on my GitHub.
    Hopefully the instructions are ok, I put this together on my server a week or two ago and I had to try and remember exactly what parts were needed haha. 
    If you're running mudzereli's Deploy Anything, see
    As requested, a video of it in action.

  7. Like
    Ghostrider-GRG reacted to hellraver in [RELEASE] Vehicle Key Changer - For making Masterkey - V 1.4 (Updated 06/15/2014)   
    Hi Guys!

    I have a new fix for the duping Problem.
    In this Variant does not must to click on "Exit" it.
    The script will now exit properly when you click on the right mouse button.

    /***********************************/ /* Vehicle Key Changer v1.4.1 */ /* Written by OtterNas3 */ /* January, 11, 2014 */ /* Last update: 01/09/2014 */ /* Edited: hellraver */ /***********************************/ /* Setup the private variables */ private ["_locationPlayer","_magazinesPlayer","_max","_j","_actionArray","_targetVehicle","_targetVehicleID","_targetVehicleUID","_playerKeys","_playerKeysDisplayName","_targetVehicleKeyName","_itemKeyName","_targetVehicleClassname","_targetVehiclePos","_targetVehicleDir","_Price","_claimingPrice","_timeout"]; /* Remove the Action Menu entry */ player removeAction s_player_copyToKey; s_player_copyToKey = 0; player removeAction s_player_claimVehicle; s_player_claimVehicle = 0; /* Get the array and setup the variables */ _actionArray = _this select 3; _targetVehicle = _actionArray select 0; _targetVehicleID = _targetVehicle getVariable ["ObjectID","0"]; _targetVehicleUID = _targetVehicle getVariable ["ObjectUID","0"]; /* Check if the Vehicle is in the Database, if false exit */ if (_targetVehicleID == "0" && _targetVehicleUID == "0") exitWith {cutText ["Sorry but\nthis Vehicle does not support\nKeychange/Claiming!","PLAIN",0];s_player_copyToKey = -1;s_player_claimVehicle = -1;}; /* Setup more variables */ _playerKeys = _actionArray select 1; _playerKeysDisplayName = _actionArray select 3; _targetVehicleKeyName = _actionArray select 4; _itemKeyName = _actionArray select 5; _Price = _actionArray select 6; _claimingPrice = _actionArray select 7; _targetVehicleClassname = typeOf _targetVehicle; _targetVehiclePos = getPosATL _targetVehicle; _targetVehicleDir = getDir _targetVehicle; /* Just in case it is a just bought vehicle and does not yet have a ObjectUID variable set */ if (_targetVehicleUID == "0") then { _targetVehicleUID = ""; { _x = _x * 10; if ( _x < 0 ) then { _x = _x * -10 }; _targetVehicleUID = _targetVehicleUID + str(round(_x)); } forEach _targetVehiclePos; _targetVehicleUID = _targetVehicleUID + str(round(_targetVehicleDir + time)); _targetVehicle setVariable["ObjectUID",_targetVehicleUID,true]; }; /* Setup the Key Names list to select from */ keyNameList = []; for "_i" from 0 to (count _playerKeysDisplayName) -1 do { keyNameList set [(count keyNameList), _playerKeysDisplayName select _i]; }; /* Setup the Key Numbers list to select from */ keyNumberList = []; for "_i" from 0 to (count _playerKeys) -1 do { keyNumberList set [(count keyNumberList), _playerKeys select _i]; }; /* Resetting menu variables*/ keyNameSelect = ""; exitscript = true; snext = false; /* Creating the menu */ copyMenu = { private ["_keyMenu","_keyArray"]; _keyMenu = [["",true], ["Select the new Key:", [-1], "", -5, [["expression", ""]], "1", "0"]]; for "_i" from (_this select 0) to (_this select 1) do { _keyArray = [format['%1', keyNameList select (_i)], [_i - (_this select 0) + 2], "", -5, [["expression", format ["keyNameSelect = keyNameList select %1; keyNumberSelect = keyNumberList select %1", _i]]], "1", "1"]; _keyMenu set [_i + 2, _keyArray]; }; _keyMenu set [(_this select 1) + 2, ["", [-1], "", -5, [["expression", ""]], "1", "0"]]; if (count keyNameList > (_this select 1)) then { _keyMenu set [(_this select 1) + 3, ["Next", [12], "", -5, [["expression", "snext = true;"]], "1", "1"]]; } else { _keyMenu set [(_this select 1) + 3, ["", [-1], "", -5, [["expression", ""]], "1", "0"]]; }; _keyMenu set [(_this select 1) + 4, ["Exit", [13], "", -5, [["expression", "keyNameSelect = 'exitscript';"]], "1", "1"]]; showCommandingMenu "#USER:_keyMenu"; }; /* Wait for the player to select a Key from the list */ _j = 0; _max = 10; _locationPlayer = player modeltoworld [0,0,0]; if (_max > 9) then {_max = 10;}; while {keyNameSelect == ""} do { [_j, (_j + _max) min (count keyNameList)] call copyMenu; _j = _j + _max; waitUntil {keyNameSelect != "" || snext || player distance _locationPlayer > 0.2}; if (player distance _locationPlayer > 0.2) then { breakOut "exit"; }; snext = false; }; /* Player selected a Key, lets make the Vehicle update call */ if (keyNameSelect != "exitscript") then { /* Check again for the needed price or claiming price and remove em from the players inventory */ _magazinesPlayer = magazines player; if (_Price != "0") then { /* Player still has the costs in hi inventory */ if (_Price in _magazinesPlayer) then { [player, _Price, 1] call BIS_fnc_invRemove; systemChat (format["Keychange costs a %1, thanks for your Payment!", _Price]); /* Player doesn't have the costs anymore, tried to trick the system? */ } else { systemChat (format["Keychange costs a %1, you had it and tried to trick the system - Keychange for this Vehicle disabled!", _Price]); /* This disables the Keychange ability for this vehicle JUST for this Player */ /* However he can relog and try again but it is a little punishment for trying to trick it */ _targetVehicle setVariable ["VKC_disabled", 1]; s_player_copyToKey = -1; s_player_claimVehicle = -1; breakOut "exit"; }; }; if (_claimingPrice != "0") then { /* Player still has the costs in hi inventory */ if (_claimingPrice in _magazinesPlayer) then { [player, _claimingPrice, 1] call BIS_fnc_invRemove; systemChat (format["Claiming Vehicle costs a %1, thanks for your Payment!", _claimingPrice]); /* Player doesn't have the costs anymore, tried to trick the system? */ } else { systemChat (format["Claiming Vehicle costs a %1, you had it and tried to trick the system - Claiming for this Vehicle disabled!", Price]); /* This disables the Claiming ability for this vehicle JUST for this Player */ /* However he can relog and try again but it is a little punishment for trying to trick it */ _targetVehicle setVariable ["VKC_claiming_disabled", 1]; s_player_copyToKey = -1; s_player_claimVehicle = -1; breakOut "exit"; }; }; /* We got the Money lets do our Job */ /* Lock the vehicle */ _targetVehicle setVehicleLock "LOCKED"; /* The super duper OneForAllAnimation... */ player playActionNow "Medic"; /* Remove the Key from the Toolbelt of the player and put it in the Backpack - No Backpack and the Key gets lost */ if (_itemKeyName != "0") then { if (!isNull (unitBackpack player)) then { [player, _itemKeyName, 1] call BIS_fnc_invRemove; (unitBackpack (vehicle player)) addWeaponCargoGlobal [_itemKeyName, 1]; systemChat (format["%1 has been moved to your Backpack", _targetVehicleKeyName]); }; }; /* This calls the custom update function which we put it in server_updateObject.sqf */ PVDZE_veh_Update = [_targetVehicle, "vehiclekey", player, _targetVehicleClassname, keyNumberSelect, keyNameSelect, _targetVehicleID, _targetVehicleUID]; publicVariableServer "PVDZE_veh_Update"; /* Wait for success or timeout */ _timeout = 20; while {_timeout > 0 && isNil "PVDZE_vkc_Success"} do { if (_Price != "0") then { cutText["~~ Performing Keychange ~~\n~~ Please wait ~~","PLAIN",0.5]; }; if (_claimingPrice != "0") then { cutText["~~ Performing Claim ~~\n~~ Please wait ~~","PLAIN",0.5]; }; sleep 1; _timeout = _timeout - 1; }; /* Inform the player about the success and tell him to check the Key */ if (!isNil "PVDZE_vkc_Success") then { if (_Price != "0") then { cutText["~~ Vehicle Keychange - SUCCESS ~~","PLAIN",1]; systemChat (format["Changed Vehicle Key to %1", keyNameSelect]); systemChat (format["Please check Vehicle function with %1 before you throw away %2!", keyNameSelect, _targetVehicleKeyName]); }; if (_claimingPrice != "0") then { cutText["~~ Vehicle Claiming - SUCCESS ~~","PLAIN",1]; systemChat (format["You claimed this Vehicle with: %1", keyNameSelect]); }; PVDZE_vkc_Success = nil; /* This updates the Vehicle as it is now, position, gear, damage, fuel */ /* Should prevent the "backporting" some dudes reported. */ /* Just fyi i never had that but just in case... */ [nil,nil,nil,_targetVehicle] execVM "\z\addons\dayz_code\actions\forcesave.sqf"; /* Something went wrong, inform the player and refund the costs */ } else { if (_Price != "0") then { cutText["~~ Vehicle Keychange - FAIL ~~","PLAIN",1]; systemChat (format["Sorry something went wrong", keyNameSelect]); systemChat (format["Please try again. If it keeps failing, please contact a Admin!", keyNameSelect, _targetVehicleKeyName]); [player,_Price] call BIS_fnc_invAdd; systemChat (format["Refunded %1",_Price]); }; if (_claimingPrice != "0") then { cutText["~~ Vehicle Claiming - FAIL ~~","PLAIN",1]; systemChat ("Sorry something went wrong"); systemChat ("Please try again. If it keeps failing, please contact a Admin!"); [player,_claimingPrice] call BIS_fnc_invAdd; systemChat (format["Refunded %1",_claimingPrice]); }; }; }; /* Reset the action menu variables for a new run */ s_player_copyToKey = -1; s_player_claimVehicle = -1; /**************************************/ /* That's it, hope you enjoy this Mod */ /* */ /* Yours sincerly, */ /* Otter */ /**************************************/ Here the final Version and new Release as attached files which solves the problem with duping :-)

  8. Like
    Ghostrider-GRG reacted to SpearMintTrooper in [RELEASE] Vehicle Key Changer - For making Masterkey - V 1.4 (Updated 06/15/2014)   
    Cheers hellraver will test this shortly :-)
  9. Like
    Ghostrider-GRG reacted to BetterDeadThanZed in [Release] 2.1 Plot Management - UPDATED Object Counter   
    Once this is sorted out and bug free, I think it would make an excellent addition to Epoch as an included feature!
  10. Like
    Ghostrider-GRG reacted to Zupa in [Release] 2.1 Plot Management - UPDATED Object Counter   
    Plot Management 2.1 With Object Counter

    By Zupa & rosska85 

    This scripts adds a dialog to the plotpole where you can add people form the surroundings to your plotpole. They will be able to build for ALWAYS in the radius of that plotpole untill he gets removed from the plotpole. Everyone on the plot can "Manage" the plot. Owner will always be the highest power on the plote.

    If you dont use plotForLife mod and you add yourself to the plot, you will alwyas be able to build even after you die.

    Add yourself in admin list (fn selfactions section), so admin can manage all plots.


    The people on the plotpole gets saved to the DB in the gear variable of the plotpole. The friends are in the plotfriends variable.

    Maintain Version:

    You can use the maintain version with Default of SingleCurrency version of Epoch. This will allow you to maintain the area in your plot management menu!
    Show the plot area with a fancy dome made by Zero Remorse's Scripter! 
    Preview any cost before it gets spent!


    rosska85 : His people saving on the plotpole gear field! Maca: The idea and code inspiration for this public mod Zero Remorse: Great Dome to show plot area.


    Default Version:

    NEW Maintain version:


    Files needed:


    Download it with the zip button on right side.

    Installation Instructions are on the github readme's


    Which files are updated:

    plotObjects.sqf (new) initPlotManagement.sqf (udpated) plotManagement.hpp add extra line in compiles.sqf change 1 number in player_build.sqf

    Same as the default but also add
    MaintainPlot = compile preprocessFileLineNumbers "zupa\plotManagement\maintain_area.sqf"; PlotPreview = compile preprocessFileLineNumbers "zupa\plotManagement\plotToggleMarkers.sqf"; PlotObjects = compile preprocessFileLineNumbers "zupa\plotManagement\plotObjects.sqf"; // NEW to your compiles.sqf  after
    if (!isDedicated) then { Now default max range is 30m to check if there are too many objects in one spot. 
    Lets change that to the plotRadius, so my plot menu can show u how many objects ( that can be maintain) are still able to be build.
    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. INFINISTAR:

    Add the following number to the dialogs array:
    711194 AND

    "PlotManagement" to 
    _cMenu = You've succesfull have plotManagement

    NEW Update 1.1:

    Github updated with file:
    plotNearbyHumans  - ALLPLAYERS.sqf

    Rename to:
    plotNearbyHumans.sqf (overwrite default)


    New Update 2.0:

    Fixed all players showing in list Added maintain area/ preview area cost/ preview area (in a dome)

    IF you have single currency user the maintain_areaSC as maintain_area ( rename it and delete the other one).

    Important info:
  11. Like
    Ghostrider-GRG reacted to OtterNas3 in [RELEASE] VASP - Vehicle and Skin preview on Traders v1.2 (Updated 06/18/2014)   
    Hey folks,
    some time ago i pushed something to the public, but here is next!
    "Damn which Truck was the open Camouflage one?"
    "Bah cant remember which of the Vehicles holds the most amount of Magazines and Weapons..."
    "How many Players can Drive in XYZ Vehicle?"
    "How fast can that Vehicle go?"
    "What the hell a 'Donald' skin look like?"
    "'Rocker 1 2 3 whats the difference?"
    Ever had such questions?
    Here you go - VASP - Vehicle and Skin Preview
    This little Mod let you Preview any Vehicle or Skin in the TraderMenu.
    Vehicles will show additional Infos like:
    Max Speed Max Seats Max Cargo Weapons Max Cargo Magazines Max Cargo Backpacks Max Fuel Max Armor All stuff is totally client side spawned and will not be visible to any other Player on Server!
    The Player clicks in the Tradermenu on a Vehicle or a Skin and he will get a hint message to press F5 for a preview of it.
    While in preview, you can use these Hotkeys:
    Zoom in/out:       Arrowkeys up/down
    Rotate left/right: Arrowkeys left/right
    Close preview:   F5
    After preview the Tradermenu will open again on the same spot the Player left it for the preview.
    Just hit Buy and the last previewed item get bought.
    Easy as Pie.

    Demo Video
    Install instructions:
    1. Download und unzip VASP_v1.2.zip
    2. unpbo MPMissions\YOURMISSIONNAME.pbo (If your hoster has just folders you can skip this obviously ^^)
    3. Copy the custom folder from unziped VASP_v1.2.zip to MPMissions\YOURMISSIONNAME\
    4. open MPMissions\YOURMISSIONNAME\init.sqf
    Find this block:
    if (!isDedicated) then { 0 fadeSound 0; waitUntil {!isNil "dayz_loadScreenMsg"}; dayz_loadScreenMsg = (localize "STR_AUTHENTICATING"); _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}]; }; And insert this line above the last closing bracket };
           _nil = [] execVM "custom\VASP\VASP_init.sqf"; If you dont have already a custom pulicEH.sqf continue on 5a) else continue on 5b)
    Still in the init.sqf Find this line:
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf"; and replace with:
    call compile preprocessFileLineNumbers "custom\VASP\publicEH.sqf"; 5b)
    open your custom publicEH.sqf and find this line:

    "PVDZE_plr_SetDate" addPublicVariableEventHandler {setDate (_this select 1);}; and replace with:
    "PVDZE_plr_SetDate" addPublicVariableEventHandler {if (!(player getVariable["Preview",false])) then {setDate (_this select 1);};}; If you dont have already a custom compiles.sqf continue on 6a) else continue on 6b)
    Still in the init.sqf Find this line:
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf"; and replace with:
    call compile preprocessFileLineNumbers "custom\VASP\compiles.sqf";                //Compile regular functions 6b)
    Open your custom compiles.sqf and find this block:

    // trader menu code if (DZE_ConfigTrader) then { call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuConfig.sqf"; }else{ call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuHive.sqf"; }; and replace with:
    // trader menu code if (DZE_ConfigTrader) then { call compile preprocessFileLineNumbers "custom\VASP\player_traderMenuConfig.sqf"; }else{ call compile preprocessFileLineNumbers "custom\VASP\player_traderMenuHive.sqf"; }; Find this line:
    fnc_usec_selfActions = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selfActions.sqf"; //Checks which actions for self and replace with:
    fnc_usec_selfActions = compile preprocessFileLineNumbers "custom\VASP\fn_selfActions.sqf"; //Checks which actions for self If you already use a custom fn_selfActions.sqf open it and find this line:
    _buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 999, true, false, "",""]; and add ABOVE:
    LastTraderMenu = (_traderMenu select 0); 7. repbo MPMissions\YOURMISSIONNAME\ - upload - restart server - enjoy!
    - Configuration -
    Open VASP_init.sqf and edit this block to your liking:
    /****************************/ /* Configuration */ /****************************/ /* Vehicle Preview on/off */ /* true = ON / false = OFF */ VASP_VehiclePreview = true; /****************************/ /* Skin Preview on/off */ /* true = ON / false = OFF */ VASP_SkinPreview = true; /****************************/ /* !!! DONT EDIT BELOW !!! */  
    - Additional Information -
    For those who have MORE then the standard Epoch Skins buyable at the Traders you would need to open MPMissions\YOURMISSIONNAME\custom\VASP\VASP_init.sqf
    and add them to this block:

        AllAllowedSkins = [         "Skin_Survivor2_DZ","Skin_SurvivorWcombat_DZ","Skin_SurvivorWdesert_DZ",         "Skin_SurvivorWurban_DZ","Skin_SurvivorWsequishaD_DZ","Skin_SurvivorWsequisha_DZ",         "Skin_SurvivorWpink_DZ","Skin_SurvivorW3_DZ","Skin_SurvivorW2_DZ",         "Skin_Bandit1_DZ","Skin_Bandit2_DZ","Skin_BanditW1_DZ",         "Skin_BanditW2_DZ","Skin_Soldier_Crew_PMC","Skin_Sniper1_DZ",         "Skin_Camo1_DZ","Skin_Soldier1_DZ","Skin_Rocket_DZ",         "Skin_Rocker1_DZ","Skin_Rocker2_DZ","Skin_Rocker3_DZ",         "Skin_Rocker4_DZ","Skin_Priest_DZ","Skin_Functionary1_EP1_DZ",         "Skin_GUE_Commander_DZ","Skin_Ins_Soldier_GL_DZ","Skin_Haris_Press_EP1_DZ",         "Skin_Pilot_EP1_DZ","Skin_RU_Policeman_DZ","Skin_Soldier_TL_PMC_DZ",         "Skin_Soldier_Sniper_PMC_DZ","Skin_Soldier_Bodyguard_AA12_PMC_DZ","Skin_Drake_Light_DZ",         "Skin_CZ_Special_Forces_GL_DES_EP1_DZ","Skin_TK_INS_Soldier_EP1_DZ","Skin_TK_INS_Warlord_EP1_DZ",         "Skin_FR_OHara_DZ","Skin_FR_Rodriguez_DZ","Skin_CZ_Soldier_Sniper_EP1_DZ",         "Skin_GUE_Soldier_MG_DZ","Skin_GUE_Soldier_Sniper_DZ","Skin_GUE_Soldier_Crew_DZ",         "Skin_GUE_Soldier_CO_DZ","Skin_GUE_Soldier_2_DZ","Skin_TK_Special_Forces_MG_EP1_DZ",         "Skin_TK_Soldier_Sniper_EP1_DZ","Skin_TK_Commander_EP1_DZ","Skin_RU_Soldier_Crew_DZ",         "Skin_INS_Lopotev_DZ","Skin_INS_Soldier_AR_DZ","Skin_INS_Soldier_CO_DZ",         "Skin_INS_Bardak_DZ","Skin_INS_Worker2_DZ"     ]; This is ONLY needed if you have custom Skins that are buyable on the Traders!

    ~ Have fun with it ~
    Questions - Bugs - Tell me!
    - If you like it - Like it - So I can count Downloads - I like that
    #                      Support my work                      #
    #                                    &                                #
    #                                Donate                           #

  12. Like
    Ghostrider-GRG reacted to N340 in Zombie Shield Generator   
    This idea was taken from Base Building. I wanted to get a working zombie shield to work that I could build without using the whole Base Building GUI. 
    I got it working fully today very easily but it did require some decent modifications so I thought I would post it for others to use. I personally made it so that others had to build parts to the shield and combine them to make it. This is just a script for you to use as you wish that makes it so that an item (default: CDF_WarfareBUAVterminal) will have scroll options to turn on and off the zombie shield. Configurable in he variables settings. 
    If you want any help making it work in a different way, just ask. I am happy to help.
    1. First Download the following: https://www.dropbox.com/s/9b0mwstlfz0g7k0/Zedshield.rar
    2. Put the shield folder in your mission pbo root folder
    3. Open your custom fn_selfactions.sqf and find:
    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; }; Then past this under it:
    _lever = cursorTarget; //Zombie Shield if (_cursorTarget isKindof TypeOfZShield) then { if (EnableZShield == 1) then { if (s_player_ZombieShield_on < 0) then { s_player_ZombieShield_on = player addAction [format[("<t color=""#FFF700"">" + ("Zombie Shield On") +"</t>"),_adminText], "shield\ZombieShield.sqf", [_lever, true], 6, true, true, "", ""]; }; if (s_player_ZombieShield_off < 0) then { s_player_ZombieShield_off = player addAction [format[("<t color=""#FFF700"">" + ("Zombie Shield Off") +"</t>"),_adminText], "shield\ZombieShield.sqf", [_lever, false], 6, false, true, "", ""]; }; } else { if (s_player_ZombieShield_on < 0) then { s_player_ZombieShield_on = player addAction [format[("<t color=""#FFF700"">" + ("Zombie Shields are disabled on this server") +"</t>"),_adminText], "", [], 6, false, true, "", ""]; }; player removeAction s_player_ZombieShield_off; s_player_ZombieShield_off = -1; }; } else { player removeAction s_player_ZombieShield_on; s_player_ZombieShield_on = -1; player removeAction s_player_ZombieShield_off; s_player_ZombieShield_off = -1; }; //End Shield 4. Then find this line in fn_selfactions.sqf
    if(DZE_AllowForceSave) then { //Allow player to force save if((_isVehicle or _isTent) and !_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 { ***************Replace STUFF IN HERE }; }; Where I put *******************Replace STUFF IN HERE, delete everything there and add this in its place:
    s_player_ZombieShield_on = -1; player removeAction s_player_ZombieShield_off; s_player_ZombieShield_off = -1; player removeAction s_player_forceSave; s_player_forceSave = -1; 5. Open your custom variable.sqf and paste this at the bottom, this is also where you can customize all your settings.
    /**************************************************** Zombie Shield Generator Settings ****************************************************/ EnableZShield = 1; //Enable toggleable zombie shield generator/ 1 = Enabled // 0 = Disabled (If disabled, players can still build shield generators, they just wont do anything) TypeOfZShield = "CDF_WarfareBUAVterminal"; //Type of object used for Zombie Shield, included this only in case some maps have this object banned AllZShieldTypes = ["CDF_WarfareBUAVterminal"]; //DO NOT REMOVE ITEMS FROM THIS ARRAY, you can ADD an object class if you want a different building to be used as a Zombie Shield Generator! MaxZShields = 1; //Maximum number of zombie shield generators a player can be added to, default is 1 ZShieldRadius = 50; //Radius for zombie shield generator, default is 50 ZShieldClean = 0; //Delete Zombies when they enter active shield radius/ 1 = Enabled // 0 = Disabled (If disabled, zombies will be killed but not deleted, could lead to zombie loot farming) Close up, repack and done. Then any object CDF_WarfareBUAVterminal or anything you replace it with will then have a scroll option to turn a shield on and off. 
    I have tested this on my servers and works fine. If you have any complications please let me know and ill be happy to help.
    Here is a pre compiled Cherno mission PBO with a working zombie shield and the extra_RC.hpp included. You can build it with an Engine and 2 poles like you would any other object
    Credit for the original code goes to the guys from original BB 1.2.
  13. Like
    Ghostrider-GRG reacted to RimBlock in [Release] - A Plot for life v2.5. Keep your buildables on death. Take plot ownership   
    Plot For Life v2.5 with Snap Pro v1.4.1 & Precise Base Building 1.0.4 (Built for Epoch   Current Version Note: If you are also going to use other building mods (Vector build etc) then please check the other mods have been updated to work with v2.5 before installing.  If they have not then please use A Plot for Life v2.35 which can be downloaded from the links further down this post.   Dropbox: A Plot for Life v2.5 GitHub: A Plot for Life v2.5   V2.4 -> 2.5 upgrade.    1. Download and replace the following files in MPMissions\[Mapname]\Custom\Compile. fn_check_owner.sqf fn_find_plots.sqf 2. Download and merge (see the diffmerge tutorial links further down) the server files found in $SERVERHOME\custom (changes are fairly minimal).   That is it.   New features. Merged in Precise Base Building from his kind permission.  Please show your appreciation to him as well.
      Core Features. The whole system is is switchable between characterID and PlayerUID by setting a variable. All items built after the mod is installed with have the PlayerUID and the characterID stored for ownership checking (locked buildables will only have the PlayerUID stored as the characterID field is used for the lock code). Includes the code to allow either SteamID or BIS PUID (written by icomrade). You can turn on the plot boundary from the plot pole and remove it.  Currently I am using the road cones with lights on top which are also visible at night.  They can be changed. Take Ownership is available from the plot pole to the plot poles owner and allows them to take ownership of all buildables in range excluding  locked storage (safes / lockboxes), tents, locked doors.  This can be changed as it is all controlled via variables.  The core idea is that this will align peoples bases to the new system for steamID storage on legacy bases.  It also means that raiders can raid a base, replace the plot pole, take ownership and not get full access to locked areas but not have 6 cycles to remove stuff etc after taking over.  Depending on the size of the base, number of objects etc this could put a bit of load on the server / DB.  It is also turn off or on-able via a variable so you can set it only to allow players to realign their bases and then disable the option. New function to check ownership or friendly status of a given object. Merged with Snap Pro and Modular build framework with permission from Raymix Please show you appreciation to Raymix as well). Uses the modular build system.
    New functions to reduce instances of common code in the building system.  Both are small and precompiled.
    fn_check_owner.sqf to check ownership and friendly status
    fn_find_plots to get all nearby plot poles and return a count and the nearest alive one (if one exists).
    Optimised code changing nearestobjects to nearEntities.
    Added delay in the Take Ownership function so the Hiveext / DB does not get spammed when taking ownership of large bases.
    Player_build.sqf is no longer used at all and had been removed from the distribution.
    Optimised code what has saved between 20k & 30k in the mission package size.
      Install Instructions are in the zip file (A Plot for Life v2.5).   Guides on how to use Diffmerge and how to integrate scripts together.   Please backup your databases and thoroughly test before putting live.   Report any bugs / suggestions in the thread.   Previous version 2.35 Dropbox: A Plot for Life v2.35 & Snap Pro (by Raymix) v1.4.1 GitHub (v2.35 stable): A Plot for Life v2.35 & Snap Pro (by Raymix) v1.4.1   Outstanding issues None reported. Next Version: 3.0
    Include a action menu (scroll wheel menu) for plot options and builder / owner management ()  
    Beta Testing
    As it seems theres no with an interest to do any beta testing I need to sweeten the deal.  Anyone who helps with beta testing will get access to boobytrapping doors 4 weeks before it is released publicly.  The 4 weeks will start from the v2.4 release date and will include any bug fixing period.  
    Boobytrapping Doors - If you have a hand grenade then you can upgrade a locked door to boobytrap it.  If the incorrect door code is entered then the hand grenade will be dropped at the position the player was when they boobytrapped the door (make sure you are on the correct side of the door when setting the trap  ;) ).
    Releases   Naming convention  

    Previous releases (Majors)

      Use and Distribution License details.   This mod is licensed under the DayZ Mod License Share Alike (DML) license.   Usage For people wishing to use the mod for their own servers, please use away.  If advertising the mod as a feature of your servers then a shoutout and a linkback to here would be appreciated but is not a requirement.   Distribution For people wishing to modify and distribute my code for this mod, the requirements are different. 1. You contact me and ask (common courtesy really). 2. You make it clear who the original creator is and provide a link to this thread.   Included mods. A Plot for Life v2.35 (Rimblock). <- is fine.
    Included mods.
    A Plot for Life
    "credits to each addon / script creator" <- is not.
    3. The person distributing the mod explicitly states that they are responsible for any issues with their modified version of the mod and not the original creator (i.e. me).
    4. Any other requirements under the  DayZ Mod License Share Alike (DML) license.
  14. Like
    Ghostrider-GRG reacted to f3cuk in [Release] Wicked AI 2.2.0   
    WICKED AI 2.2.0
    Since I really like (read love) the Wicked AI missions and support for them has gone in the latest patches, I decided to dust off the old files and start making these 1.0.5+ compatible. Starting with a few minor bugfixes and some custom loadouts, but quickly turning into a proper redo with awesome help of the - very much alive - mod community!
    Error reporting
    Please use the form below for reporting errors. I will not reply on help requests that fail to do a proper problem report.
    [b][size=6](Problem title, e.g. Kill type missions sometimes fail to despawn)[/size][/b] [b]WAI Version[/b] (E.g. 2.1.4) [b]World:[/b] (E.g. Taviana 2.0) [b]Mods:[/b] (E.g. @Overpoch, @Origins, @Epoch1051,) [b]Installed add-ons[/b] (Especially the ones that spawn AI, E.g. DZMS, EMT, etc.) [b]Custom loot files[/b] Yes or No [b]Problem description[/b] Tell us your exact problem in as much details as possible [b]What i tried so far[/b] Tell us exactly what you have done to try and fix this problem [b]Config file[/b] [spoiler] -- paste config.sqf here --[/spoiler] [b]Server RPT[/b] [spoiler] -- paste arma2oaserver.RPT here --[/spoiler] ---
    Release 2.2.0
    Native Linux server support Multiple mission support Automatic ammo finder (no need to specify ammo in weaponarray - config.sqf) Option: Locked vehicles with keys randomly on AI Option: Friendly AI Added: Bandit Patrol mission And much more Version history
    06-06-2015 : Release 2.2.0 11-11-2014 : BETA release v3 (2.2.0) 11-11-2014 : BETA release v2 (2.2.0) 16-10-2014 : BETA release (2.2.0) 03-09-2014 : Minor bugfixes (2.1.4) 03-09-2014 : Minor bugfixes (2.1.3) 02-09-2014 : Minor bugfixes and improvements (2.1.2) 01-09-2014 : Minor bugfixes (2.1.1) 31-08-2014 : Release (2.1.0) 26-08-2014 : BETA release (2.1.0) 24-08-2014 : Minor bugfixes (2.0.5) 20-08-2014 : Minor bugfixes (2.0.4) 20-08-2014 : Minor bugfixes (2.0.3) 19-08-2014 : Minor bugfixes (2.0.2) 17-08-2014 : Minor bugfixes (2.0.1) 17-08-2014 : Major update to (2.0.0) 13-08-2014 : Added anti abuse options (1.9.3) 12-08-2014 : Normalization update (1.9.2) 12-08-2014 : Bugfix medi camp (1.9.1) 09-08-2014 : Major dynamic update (1.9.0) 03-08-2014 : Bugfix MV22 mission (1.8.2) 02-08-2014 : Restructured and code cleaned (1.8.1) Installation Instructions
    Download the latest release. Extract the downloaded folder to your desktop and open it Go to your server pbo and unpack it. Navigate to the new dayz_server folder and copy the WAI folder into this folder. Navigate to the system folder and open server_monitor.sqf Find this code at the bottom of the file: allowConnection = true; And past the following code above it: [] ExecVM "\z\addons\dayz_server\WAI\init.sqf"; Repack your server pbo. Optional Radio messages
    Note: These are on by default, change wai_radio_announce in config.sqf to false in order to disable them.
    Go to your mission pbo and unpack it. Open init.sqf Find:
    //[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf"; Add below: _nil = [] execVM "custom\remote\remote.sqf"; Copy the remote_message folder into your custom folder, if you do not have this one yet simply create it. If you want to be able to switch the radio on or off go to step 5 (note: right click by maca required), else go to step 6 and both remove switch_on_off.sqf and radio.ogg from the remote folder. Open extra_hc.hpp Find:
    class ExtraRc { Add below: class ItemRadio { class switchOnOff { text = "Switch ON/OFF"; script = "execVM 'custom\remote\switch_on_off.sqf'"; }; }; Open description.ext Find:
    class DayZ_loadingScreen Add above class CfgSounds { sounds[] = { Radio_Message_Sound }; class Radio_Message_Sound { name = "Radio_Message_Sound"; sound[] = {custom\remote\radio.ogg,0.4,1}; titles[] = {}; }; }; Repack your mission pbo. Versioning
    For transparency into our release cycle and in striving to maintain backward compatibility, bootstrap is maintained under the Semantic Versioning guidelines. Sometimes we screw up, but we'll adhere to those rules whenever possible.
    Dev team
    Developer f3cuk Developer Jossy Linux support BangL Helping hand nerdalertdk Download
    Wicked AI 2.2.0
  15. Like
    Ghostrider-GRG reacted to PryMary in [Release] - A Plot for life v2.5. Keep your buildables on death. Take plot ownership   
    @RimBlock, funny you should ask! I merged it last night with the latest Snap_Pro but I also implemented the admin build etc to it also so don't have a "clean" version. Give me an hour or so and I will merge one quickly for everyone. I am having no issues with Snap_Pro or P4L and the server / client (me) are now using the new steam patch - 1.63.125548 - I have placed a plot pole - commited suicide - respawned - went back to plot pole (still there and tied to me) and showed the plot boundry and continued building with items snapping.
    If you want it all - P4L / Snap_Pro / Instant Admin Build / Instant Admin Upgrade - use this Player_Build.sqf: (Thanks go to @KamikazeXeX - For getting the admin insta-build working)

    As stated I will merge a player_build with the recent Snap_Pro and P4L and post an edit to this one so as to avoid confusion.
    Well that was easier than I thought:

    For those not sure where to put this, it goes into the snap_pro directory in your custom folder (ONLY HAVE ONE PLAYER_BUILD FILE) then in your compiles.sqf point it to the snap_pro directory NOT PLOTFORLIFE (Sorry RimBlock).
  16. Like
    Ghostrider-GRG reacted to KamikazeXeX in [How to/Update] Snap Build Pro W/ Admin Fast Build + Upgrade and Extra RC Building system   
    So, (prepare for a bit of reading) everyone has been posting in both raymix's thread and WGC GeekGarage's thread about whether Admin Fast Build/Upgrade can be included into Snap Build Pro, I decided I was going to look into the matter, it took me some time to get it worked out so i present to you, Snap Build Pro with Admin Instant Build/Upgrade.

    Update #9: Updated variant 2 + 3 to A Plot for life v2.34
    Update #8: Added new variant from variant 2 but now includes needed changes for build vectors.
    Update #7: Fixed 3 lines that caused objects to not snap to each other this occurred during the 1.4 to 1.4.1 update.
    Update #6: Removed ghostriders changes as it seems to cause a building already in progress loop as it did on earlier versions.
    Update #5: Updated Snap Build Pro to version 1.4 and merged in Ghostriders fixes, thanks for that broski!
    Update #4: Updated to A Plot For Life v2.2.6 and changed the build distance checks as castle walls were causing a cancelled building issue.
    Update #3: Updated Snap Build Pro to version 1.3.1.
    Update #2: Updated Snap Build Pro to version 1.3.
    Update #1: Updated distances so you can move up to 20 meters from where you started building on both versions and updated the the plot for life version to a plot for life v2.2.4.

    As I'm going to assume you all have Snap Build Pro installed already I will assume you already have a custom compiles, if you are yet to have installed Snap Build Pro, do so now and verify it works before trying this out, you will also need a custom variables file, again I'm not going to provide instructions on how to do this, there is plenty of information out there on how its done.  :P

    As I'm running A Plot for life and Indestructible items for with my Snap Build pro the file bellow is so you can be lazy without making the adjustments and just swap it out with mine.
    Head to my github below and check for the version you wish to use.
      Use the SnapPro+A files if you want the plain version of Snap Build Pro with Admin Build only.

    Use the SnapPro+A+P4L+Inde files If you want the version of Snap Build Pro that has Admin Build, A Plot For Life and Indestructible items for

    Use the SnapPro+A+P4L+Inde+BuildVect files If you want the version of Snap Build Pro that has Admin Build, A Plot For Life, Indestructible items for and Build Vectors.
    Once you have verified that Snap Build Pro works, download whatever version of my files you need, if you wish to install different mods later I would recommend that you use the SnapPro+A set of files on Github, simply replace your current player_build.sqf with the one from the zip file.
    Now, for fast upgrade you will need to go into your fn_selfActions.sqf and look for this
    s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""]; and change to
    s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "PATH-TO-YOUR-CUSTOM-SCRIPTS\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""]; Replace PATH-TO-YOUR-CUSTOM-SCRIPTS with the path to the directory in which you will be storing your custom scripts, e.g "custom\scripts\player_upgrade.sqf".
    from there you need to go into your custom variables file and add this line
    WG_adminBuild = ["0","0","0"]; very near the top just below this line
    disableSerialization; Replace the 0's with your PlayerUID/SteamUID's for the players and admins that you want to have access to instant building.  :D

    For your players to be able to remove the custom buildables they make you will need to do the following.
    Go into your custom variables again and find this line.
    dayz_allowedObjects = just below this line
    WG_OwnerRemove =[]; and insert any of the class names of items you want in the custom build system.

    Go back into your fn_selfActions.sqf and find
    _isModular = _cursorTarget isKindOf "ModularItems"; and change it to this
    _isModular = (_cursorTarget isKindOf "ModularItems") or ((typeOf _cursorTarget) in WG_OwnerRemove); you must remember to add your custom items to the "dayz_allowedObjects" and "DZE_maintainClasses" sections in your variables.sqf any object you add to "DZE_isRemovable" will be removable by anyone!

    That's it from me, from here you will want to go over to WGC GeekGarage's main post and read up on how to add the rest of the right click system and add the custom buildables in, here is a link to the original thread 

    Credits to WGC GeekGarage and raymix for the original scripts, Acmed for Indestructible items for, RimBlock for Plot for Life, OtterNas3 for the original snap building that was a backbone for this project, Maca134 for originally creating the SnapBuild concept Otter's is based off and also his Extra RC, striker for Build Vectors in variant 3 and lastly Nekuan for keeping on pushing me to get this going!

    I hope everyone enjoys this! If anyone needs help I will be available on my teamspeak @ ts.xexgaming.org and here on the forums! I will try to keep this updated and work out how to fix any bugs that you may come across! :D

    ~KamikazeXeX from XeXGaming



     (WGC GeekGarage)




  17. Like
    Ghostrider-GRG reacted to MrTesla in [Tutorial] Disabling R3F Tow/Lift for Locked Vehicles   
    This will disable the functions of the R3F Artillery & Logistics addon (tow, lift, load in, and move) for vehicles that are locked.
    -Something to unpack pbo files, such as PBO Manager.
    -Text editor (Notepad++ recommended)
    1. Unpack these files:
    -dayz_code.pbo from your @DayZ_Epoch folder in your Arma 2 OA directory
    -mission pbo
    -server pbo (dayz_server.pbo)
    2. Copy the "local_lockunlock.sqf" from "dayz_code\compile\" folder and the "compiles.sqf" from the "dayz_code\init\" folder and place them into your mission file. For this tutorial, they'll be placed in a folder call "Custom".
    NOTE: If you already have a custom "compiles.sqf" in your mission file (such as for self BB and other addons) you don't need to copy it over. Just use the one you already have and skip step 5.
    3. In the "local_lockunlock.sqf", change this section (and only this section):
    if (local _vehicle) then { if(_status) then { _vehicle setVehicleLock "LOCKED"; } else { _vehicle setVehicleLock "UNLOCKED"; }; }; to this:
    if (local _vehicle) then { if(_status) then { _vehicle setVehicleLock "LOCKED"; _vehicle setVariable ["R3F_LOG_disabled",true,true]; } else { _vehicle setVehicleLock "UNLOCKED"; _vehicle setVariable ["R3F_LOG_disabled",false,true]; }; }; 4. In "compiles.sqf", change the file path in this line to point to your edited "local_lockunlock.sqf":
    local_lockUnlock = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_lockUnlock.sqf"; //When vehicle is local to unit perform locking vehicle So for this tutorial, it would be changed to this:
    local_lockUnlock = compile preprocessFileLineNumbers "Custom\local_lockUnlock.sqf"; //When vehicle is local to unit perform locking vehicle 5. In your mission file's "init.sqf", change the file path in this line to point to your edited "compiles.sqf":
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf"; //Compile regular functions For this tutorial, it would be changed to this:
    call compile preprocessFileLineNumbers "Custom\compiles.sqf"; //Compile regular functions 6. Repack the mission file and upload it to your server.
    7. Open "server_publishVehicle2.sqf" in the "dayz_server\compile\" folder and "server_monitor.sqf" in the "dayz_server\system\" folder.
    8. In "server_publishVehicle2.sqf", after the 3rd line (_object setvehiclelock "locked";):
        if(!_donotusekey) then {         // Lock vehicle         _object setvehiclelock "locked";     }; add this line:
    _object setVariable ["R3F_LOG_disabled",true,true]; 9. Do the same thing in the "server_monitor.sqf" in this section:
    if(_ownerID != "0" and !(_object isKindOf "Bicycle")) then { _object setvehiclelock "locked"; }; so it should look like this:
    if(_ownerID != "0" and !(_object isKindOf "Bicycle")) then { _object setvehiclelock "locked"; _object setVariable ["R3F_LOG_disabled",true,true]; }; 10. Repack the server pbo and upload it to the server.
  18. Like
    Ghostrider-GRG reacted to Barra81 in [Release] ComboKeyChanger_cKc [Updated 1.2]   
    Do you ever want to change your door or safe key, here is the solution,
    just open your safe or door and click "Set new key".
    It will open the Epoch-ComboLock or KeypadUI, show you your old Key and after setting the new one, the actual key.
    Install is pretty easy, 
    In yourmissionfile.pbo, open "description.ext"
    #include "ckc\ckc_defines.hpp" #include "ckc\ckc_ui.hpp" #include "ckc\ckc_SafeUI.hpp" at the very bottom of the "description.ext".
    In yourmissionfile.pbo, open "compiles.sqf"
    ckc_button = compile preprocessFileLineNumbers "ckc\ckc_button.sqf"; ckc_upddoor = compile preprocessFileLineNumbers "ckc\ckc_upddoor.sqf"; ckc_updSafe = compile preprocessFileLineNumbers "ckc\ckc_updSafe.sqf"; below
    player_unlockDoor = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_unlockDoor.sqf"; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    In yourmissionfile.pbo, open "fn_selActions.sqf"
    //Allow owner to change Door code 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_ckc > 0) then { player removeAction s_player_ckc; s_player_ckc = -1; }; }; if (s_player_ckc < 0) then { s_player_lastTarget set [1,_cursorTarget]; s_player_ckc = player addaction["Set new Code", "ckc\ckc_startUI.sqf","",0,false,true,"", ""]; }; } else { player removeAction s_player_ckc; s_player_ckc = -1; }; //Allow owner to change vault code _unlockedVault = ["VaultStorage"]; if(typeOf(cursortarget) in _unlockedVault && _ownerID != "0" && (player distance _cursorTarget < 2)) then { if (s_player_Safe_ckc < 0) then { if ((typeOf(cursortarget) == "VaultStorage") &&(_ownerID == dayz_combination || _ownerID == dayz_playerUID) ) then { s_player_Safe_ckc = player addaction["Set new Code", "ckc\ckc_startSafeUI.sqf","",1,false,true,"", ""]; }; }; } else { player removeAction s_player_Safe_ckc; s_player_Safe_ckc = -1; }; ABOVE
    //Allow owner to pack vault Again in the "fn_selfActions.sqf"
    player removeAction s_player_ckc; s_player_ckc = -1; player removeAction s_player_Safe_ckc; s_player_Safe_ckc = -1; just below
      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; finally copy the "ckc" Folder in the download file, to yourmissionfile.pbo main directory.
    Youre done ;)
    Tested with Epoch Vers., but should work with older versions too.
      UPDATE since post #39 :
    - Fixed missing   ";" bug
    - "Set new Key" option no longer appears at the Lockbox
    - Safe updates to Database directly after setting a new Key
    UPDATE since post #55
    - fixed bug occuring when player want to "Set new Code" two times in a row at doors.   Thanks to Jossy for pointing it out ;)
    - fixed save to DB bug for Safes (randomly the inventory of the safes was not updated to the DB) ...safes are really save now :)
    For people who wanna just update from the old Version:
    DELETE the old "cKc" folder and replace it with the new one.
    Please replace the entrys in the "fn_selfactions.sqf" with the new ones, posted in the code spoiler above.
    Im sorry for any inconvenience... 
  19. Like
    Ghostrider-GRG reacted to OtterNas3 in [RELEASE] Vehicle Key Changer - For making Masterkey - V 1.4 (Updated 06/15/2014)   
    Just finished it and thought someone could like it...
    You have many, many (many, ...) Vehicles? You have many, many (many, ...) different Keys? Already need to attach a list with Key = Vehicle to your Monitor to keep track of em? Need 30 minutes to start driving because you dont have such a list? Frustrated? ALL OVER!
    This little script allows you and the Players on your Server to copy Vehicles, that you got the Key for, to another Key that's in your Inventory!
    Car 1: Red Skoda - Red Key (1234)
    Car 2: Green Skoda - Green Key (4321)
    You need a Keymakers Kit!
    Put both keys in your Inventory, look at the Car 1 and select "Change Vehicle Key" from the action menu.
    You get a list with all Keys in your Inventory, to select from a menu. In this case the list would just be one: Green Key (4321)
    Not in the list is the Key for Car 1, so no Red Key (1234)
    Select the new Key you want to put the car on and: voila!
    You can throw away the unneeded Red Key (1234)
    The Old vehicle Key gets added to your Backpack
    Car 1 & Car 2 are both now on the Green Key (4321)
    You can allow players to "Claim" Vehicles that are dynamic spawned on the Map and does not yet need a Key.
    This is a option you can turn On/Off!
    You can set a price for claiming vehicles also.
    Changelog 1.4
    I changed some functions and implemented some small fixes mentioned by other users in this Thread.
    Specially for just bought vehicles and the "get not saved after driving" thing.
    This should also fix the duping for some of you, i never had it yet and cant reproduce. just made the call a bit different now.
    If it doesnt work as it should, gimme a shout.
    And for people that think this Mod is a total mess. Dont use it?
    It works on my Server for a loooooooooooooong time now without any errors!
    Demo Video
     Install Instructions:
    1. Download and unzip VehicleKeyChanger_v1.4.zip
    2. unpbo MPMissions\YOURMISSIONNAME.pbo
    3. copy the custom folder from the unziped VehicleKeyChanger_v1.4.zip to MPMissions\YOURMISSIONNAME\
    4. open MPMissions\YOURMISSIONNAME\init.sqf
    Find this block:
    if (!isDedicated) then { 0 fadeSound 0; waitUntil {!isNil "dayz_loadScreenMsg"}; dayz_loadScreenMsg = (localize "STR_AUTHENTICATING"); _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}]; }; And insert this line above the closing bracket };
    _nil = [] execVM "custom\VehicleKeyChanger\VehicleKeyChanger_init.sqf"; 5.
    Edit custom\VehicleKeyChanger\VehicleKeyChanger_init.sqf
    Edit this block to your likings!

    ///////////////////////////////////////////////// ///////////////////////////////////////////////// // Edit these settings to fit your needs/likes // ///////////////////////////////////////////////// ///////////////////////////////////////////////// /// Claim Vehicles that does not yet need Key /// ///////// 0 = Not allowed | 1 = Allowed ///////// vkc_claiming = 0; ///////////////////////////////////////////////// //////// Claim Vehicles costs this Item ///////// /// Any Item can be used here, some examples: /// //// ItemTinBar, ItemSilverBar, ItemGoldBar, //// ////// ItemSilverBar10oz, ItemGoldBar10oz, ////// ///// ItemBriefcase20oz, ItemBriefcase100oz ///// //////// set to "0" to disable the costs //////// vkc_claimingPrice = "ItemGoldBar10oz"; ///////////////////////////////////////////////// ////////// Change Key costs this Item /////////// ////////////// see above examples /////////////// //////// set to "0" to disable the costs //////// vkc_Price = "ItemSilverBar"; ///////////////////////////////////////////////// /////// Need KeyKit to use this function //////// ////////// 0 = Not needed | 1 = Needed ////////// vkc_needKeykit = 1; ///////////////////////////////////////////////// ///////////////////////////////////////////////// /////////////// DONT EDIT BELOW ! /////////////// ///////////////////////////////////////////////// 5. repbo MPMissions\YOURMISSIONNAME\
    - upload it to your server -
    6. unpbo @DayZ_Epoch_Server\addons\dayz_server.pbo
    7 copy server_updateObject.sqf from your unziped VehicleKeyChanger_v1.4.zip to @DayZ_Epoch_Server\addons\dayz_server\compile\  and overwrite the existing one. (This just adds a function for this mod nothing else changed)
    If you already have a custom server_updateObjects.sqf you need to compare my file with yours and make the changes yourself!
    8. repbo @DayZ_Epoch_Server\addons\dayz_server\
    - upload it to your server -
    9 copy this file to your Servers BattlEye filters folder:
    FYI: INFISTAR AdminCheat, ummm sorry meant AntiCheat, users!
    Cause he uses his own BE filter files should not copy paste this file over your existing one, else you will get kicked for all the cool nice admin functions that comes with your Infistar! You need to do the change yourself if you get kicked for anything regarding this script.
    I dont had and will not have a look at Infistar's BE files to sort things out!
    10. Restart your server
    11. Enjoy it and cleanup your vaults!
    12. DONT LOOSE YOUR MASTERKEY! :rolleyes:
    -- Additional Information ---
    For InfiStar AdminCheat (ummm sorry meant AntiCheat...) users:

    Have fun with it!
    - If you like it - Like it - So I can count Downloads - I like that
    #                      Support my work                      #
    #                                    &                                #
    #                                Donate                           #

  20. Like
    Ghostrider-GRG reacted to WGC GeekGarage in [Howto/Release] Tie PlayerUID To All Buildable Objects / Keep plot pole after death [No SQL Triggers] UPDATE 16/04/2014   
    First off i would like to thank one of my players in my community Tim aka maccon for the patience to help me test this to the point where I think he don't like spawning and joining in DayZ any more. We have tried to test this extensively in many different scenarios and i just can't get it to fail at all. So i really hope this is true.

    Now to the fun part, converting to PlayerUID tied build system. This is not a beginner choice, but i will try and explain it step for step, even tho you might not fully understand why it has to be like this or that when we edit the code, just know that it has to be and you shouldn't edit it any other way then how i explain you to do it.

    I expect that you have custom compiles.sqf and fn_selfAction.sqf else search for it on the forum how to

    First off a little help for debugging, i'm going to show you how to log info from the clients connected to your server to the Server RPT! This is NOT the same as using the client RPT file so do not exclude looking in that if anything isn't working for you.
    Open "Client_PBO\dayz_code\init" folder and copy publicEH.sqf to your "MISSION_FOLDER\custom" folder Open your mission init.sqf and change call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf"; to call compile preprocessFileLineNumbers "custom\publicEH.sqf"; Open your publicEH.sqf that we just copied and search for PVDZE_obj_setlocalVars below this line add this in "WG_admin_Log" addPublicVariableEventHandler {_logWGadmin = _this select 1;diag_log format["Client To Server: %1",_logWGadmin];}; any where you want to log anything from the client to the server log you use this code _log = (format["your text here: %1 %2 %3",your,variables,here]);WG_admin_Log = [_log];publicVariableServer "WG_admin_Log"; The above code will show "Client To Server: your text here: your variables here" in the server RPT Thats it for Client to server logging use it as you want, it helped me out alot! beside the Server and Client RPT

    Change Character to PlayerUID
    Then Search for
    Download Kronzkys String Functions Library from HERE
      Extract KRON_Strings.sqf to the root of your mission folder and open up the init.sqf in your mission folder and add to the bottom nul=[] execVM "KRON_Strings.sqf"; Now open KRON_Strings.sqf and at the bottom add this KRON_convertPlayerUID = { private["_in","_up","_out"]; _in=_this select 0; _up=[_in] call KRON_StrUpper; _out=[_up,"AX","999"] call KRON_Replace; _out }; In your custom compiles add or edit the following (depending on how your run your compiles.sqf) to what in the codebox fnc_usec_damageActions = compile preprocessFileLineNumbers "custom\fn_damageActions.sqf"; player_updateGui = compile preprocessFileLineNumbers "custom\player_updateGui.sqf"; player_build = compile preprocessFileLineNumbers "custom\player_build.sqf"; Now copy over "Client_PBO\dayz_code\compile\fn_damageActions.sqf" and "Client_PBO\dayz_code\compile\player_updateGui.sqf" to the custom folder
      Open player_updateGui.sqf in the custom folder and go to line 155 and replace this _charID = player getVariable ["CharacterID", "0"]; _rcharID = _humanityTarget getVariable ["CharacterID", "0"]; with this _charID = getPlayerUID player; _found=[_charID,"AX"] call KRON_StrInStr; if (_found) then { _charID=[_charID] call KRON_convertPlayerUID; }; _rcharID = getPlayerUID _humanityTarget; _found=[_rcharID,"AX"] call KRON_StrInStr; if (_found) then { _rcharID=[_rcharID] call KRON_convertPlayerUID; }; and add "_found" to the private array at the top
      Open fn_damageActions.sqf in the custom folder and go to line 58 and replace this _charID = _unit getVariable ["CharacterID", 0]; with this _charID = getPlayerUID _unit; _found=[_charID,"AX"] call KRON_StrInStr; if (_found) then { _charID=[_charID] call KRON_convertPlayerUID; }; Now go to line 153 and change _action = _unit addAction ["Tag as friendly", "\z\addons\dayz_code\actions\player_tagFriendly.sqf", [], 0, false, true, "", ""]; to _action = _unit addAction ["Tag as friendly", "custom\player_tagFriendly.sqf", [], 0, false, true, "", ""]; and add "_found" to the private variable at the top of the file
      Now copy over "Client_PBO\dayz_code\actions\player_tagFriendly.sqf" to your custom folder and open it up and replace _callerID = _caller getVariable "CharacterID"; _targetID = _target getVariable "CharacterID"; with _callerID = getPlayerUID _caller; _found=[_callerID,"AX"] call KRON_StrInStr; if (_found) then { _callerID=[_callerID] call KRON_convertPlayerUID; }; _targetID = getPlayerUID _target; _found=[_targetID,"AX"] call KRON_StrInStr; if (_found) then { _targetID=[_targetID] call KRON_convertPlayerUID; }; Now add "_found" to the private array at the top of the file
      Now copy over "Client_PBO\dayz_code\actions\remove.sqf" and "Client_PBO\dayz_code\actions\player_upgrade.sqf" and "Client_PBO\dayz_code\actions\player_build.sqf" to your custom folder and open remove.sqf up and find at line 15 _activatingPlayer = player; just below add this _playerUID = getPlayerUID _activatingPlayer; _found=[_playerUID,"AX"] call KRON_StrInStr; if (_found) then { _playerUID=[_playerUID] call KRON_convertPlayerUID; }; Find _isOwnerOfObj = (_objOwnerID == dayz_characterID); and replace it with _isOwnerOfObj = (_objOwnerID == _playerUID); Now find if(dayz_characterID != _ownerID) then { and replace it with if(_playerUID != _ownerID) then { Now add "_playerUID" and "_found" to the private array at the top of the file
      Now open up player_upgrade.sqf you copied before and find _needText = localize "str_epoch_player_246"; below that insert _playerUID = getPlayerUID player; _found=[_playerUID,"AX"] call KRON_StrInStr; if (_found) then { _playerUID=[_playerUID] call KRON_convertPlayerUID; }; Then find if(dayz_characterID == _ownerID) then { and replace it with if(_playerUID == _ownerID) then { Now add "_playerUID" and "_found" to the private array at the top of the file Now open up player_build.sqf you copied before and find (This is also relatively easy to do if you use my or otternas version of snap build) if (player getVariable["combattimeout", 0] >= time) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_43"), "PLAIN DOWN"];}; just below add _playerUID = getPlayerUID player; _found=[_playerUID,"AX"] call KRON_StrInStr; if (_found) then { _playerUID=[_playerUID] call KRON_convertPlayerUID; }; Then find if(dayz_characterID == _ownerID) then { and replace it with if(_playerUID == _ownerID) then { Then find (if you use otternas or my version of build snap _tmpbuilt is _object) _tmpbuilt setVariable ["CharacterID",dayz_characterID,true]; and replace with _tmpbuilt setVariable ["CharacterID",_playerUID,true]; Then find (if you use otternas or my version of build snap _tmpbuilt is _object) PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location],_classname]; and replace with PVDZE_obj_Publish = [_playerUID,_tmpbuilt,[_dir,_location],_classname]; Now add "_playerUID" and "_found" to the private array at the top of the file
      Now copy over "Client_PBO\dayz_code\actions\player_buildingDowngrade.sqf" to your custom folder and open player_buildingDowngrade.sqf up and search for _needText = localize "str_epoch_player_246"; and add this just below
    _playerUID = getPlayerUID player; _found=[_playerUID,"AX"] call KRON_StrInStr; if (_found) then { _playerUID=[_playerUID] call KRON_convertPlayerUID; }; Then Search for
    // check if friendly to owner if(dayz_characterID == _ownerID) then { and replace it with
    // check if friendly to owner if(_playerUID == _ownerID) then { Then search for 
    _object setVariable ["CharacterID",dayz_characterID,true]; _objectCharacterID = dayz_characterID; and replace it with
    _object setVariable ["CharacterID",_playerUID,true]; _objectCharacterID = _playerUID; Now add "_playerUID" and "_found" to the private array at the top of the file
      In your fn_selfAction.sqf find "\z\addons\dayz_code\actions\remove.sqf" and replace with "custom\remove.sqf" there is 2 places it has to be changed.

    Now search for player_upgrade.sqf and change the path to "custom\player_upgrade.sqf" Then search for _ownerID = _cursorTarget getVariable ["CharacterID","0"]; just below add _playerUID = getPlayerUID player; _found=[_playerUID,"AX"] call KRON_StrInStr; if (_found) then { _playerUID=[_playerUID] call KRON_convertPlayerUID; }; Now search for if(_isModular and (dayz_characterID == _ownerID)) then { and replace it with if(_isModular and (_playerUID == _ownerID)) then { Now search for //Packing my tent if(_isTent and (player distance _cursorTarget < 3)) then { if (_ownerID == dayz_characterID) then { and replace it with //Packing my tent if(_isTent and (player distance _cursorTarget < 3)) then { if (_ownerID == _playerUID) then { Now search for //Sleep if(_isTent and _ownerID == dayz_characterID) then { and replace with //Sleep if(_isTent and _ownerID == _playerUID) then { Now search for player_buildingDowngrade.sqf and change the path to "custom\player_buildingDowngrade.sqf"

    Now add "_playerUID" and "_found" to the private array at the top of the file
      Now you'r done and all build objects are now tied with your PlayerUID instead of CharacterID's. Friend system is also converted same goes for upgrade and remove. Just remember if you die the player has to refriend the players he was friends with before but they don't have to do it back unless they die themself. This also works perfectly if you run multiple characters as all characters have the same PlayerUID and they can all build. on the same plot.

    So go tell your players to rebuild their plot pole!

    I will not give any other install instructions or help in any other way as there is simply too many factors involved. i have tried following this guide before i posted it and it works if you follow it step for step. I will not help installing it on your server and i don't take any responsibility if you break anything on your server. Remember always to do backup!

    If you want to test it out visit my Napf server

    I do NOT allow anyone to repost this on other sites, if you have a translated version into any language post it in the thread and I will merge it and give credit for translation. If I find a translated version or same version posted on other sites I will do what I can to get it removed and that person will never get any sort of help ever again from me!
  • Create New...