Jump to content

juandayz

Collaborator
  • Posts

    2098
  • Joined

  • Last visited

  • Days Won

    144

Posts posted by juandayz

  1. Just now, DAKA said:

    does it only work if you are looking through 

    
    Binocular_Vector

    no, you need a binocular vector or binoculars in your inventory to get the option.  if u dont want it.. skip the step in fn_selfactions  and create a new sqf. filled with this code.

    setview_init.sqf

    Spoiler
    
    waituntil {!isnull (finddisplay 46)}; 
    sleep 15;
    setview = player addaction [("<t color=""#000000"">" + ("setview") +"</t>"),"scripts\setviewmenu.sqf","",5,false,true,"",""];

     

    then at bottom of init.sqf paste:

    //SET VIEW DISTANCE
    [] execVM "scripts\setview_init.sqf";

     

    by this way you dont need have binoculars , and you gonna have the option all time.

    another way to do it.. ( i thiink the best..) is use a key to execute the set view menu)

  2. Just now, Blestda86ta said:

    yes the option came up but nothing happened when I pressed

    do you put all sqf that you created into mpmissions\your instance\colorEnv\  ?

    I dont have arma2 anymore so cannot test.. but try replace the env.sqf by this other one:

    env.sqf

    Spoiler
    
    ColorMenu =
    [
    	["COLOR MENU",true],
    	    ["NORMAL", [],  "", -5, [["expression","execVM 'colorEnv\normal.sqf'"]], "1", "1"],
    		["AFRICA", [],  "", -5, [["expression","execVM 'colorEnv\africa.sqf'"]], "1", "1"],
    		["WASTELAND", [],  "", -5, [["expression","execVM 'colorEnv\wasteland.sqf'"]], "1", "1"],
    		
            
                ["", [], "", -5, [["expression", ""]], "1", "0"],
                ["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
    ];
    
    
    
    showCommandingMenu "#USER:ColorMenu";

     

    then try the option "colorcorrection" located over the etool again.

    If still dsnt works.. try to do it pressing a key.. (using a custom keyboard.sqf)

     

  3. Just now, NateDayZ said:

     

    
    Server_monitor
    
    if( (count _inventory > 0) && !_isPlot && !_doorLocked && {_type != "MAP_kulna"}) then {

    I put the script in my mission folder and I call it with right click actions on toolbox

     

        ["ItemToolbox","Build kulna","execVM 'addons\kulna.sqf';","true"],

     

    When I go ingame and right click my toolbox I am able to build the kulna but when I restart the server it is gone and I do not see it in the database.

    are you missing this entry in custom variables.sqf?

    DayZ_SafeObjects = ["YOUR OBJECT ID","the others default objects from epoch",""];
  4. On 24/7/2017 at 1:32 AM, NateDayZ said:

    Hi, am I able to make it so the object saves to database, only works on your plotpole and only player who made object can remove it?

     

    yes, you need add a restriction for check nearest poles and in configvariables you have an option to restrict some objects from being be removed.

    DZE_restrictRemoval = ["your object id","the rest of default objects"];

    pole restriction:

    _playerPos = getPosATL player;
    _nearRestr = count nearestObjects [_playerPos, ["Plastic_Pole_EP1_DZ"], 27] > 0;
    
    if !(_nearRestr) exitWith {
    DZE_ActionInProgress = false;
    cutText [format["Needs be in plot pole area"], "PLAIN DOWN"];
    };

     

  5. On 20/8/2017 at 1:37 PM, DAKA said:

    I'm looking for a way to set the view distance with just using the scroll wheel of your mouse. If someone has an option, please share. Thanks.

     

    setviewmenu.sqf (mpmissions\your instance\scripts\ )

    _STVIEW = 'setviewdistance %1;';
    
    MainActionMenu =
    [
    	["",true],
    		
    		["View Distance>>", [], "#USER:STVIEW", -5, [["expression", ""]], "1", "1"],
                ["", [], "", -5, [["expression", ""]], "1", "0"],
                ["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
    ];
    
    STVIEW =
    [
    	["",true],
            ["250M", [2],  "", -5, [["expression", format[_STVIEW ,"250"]]], "1", "1"],
            ["500M", [3],  "", -5, [["expression", format[_STVIEW ,"500"]]], "1", "1"],
            ["750M", [4],  "", -5, [["expression", format[_STVIEW ,"750"]]], "1", "1"],
            ["1000M", [5],  "", -5, [["expression", format[_STVIEW ,"1000"]]], "1", "1"],
            ["1250M", [6],  "", -5, [["expression", format[_STVIEW ,"1250"]]], "1", "1"],
            ["1500M", [7],  "", -5, [["expression", format[_STVIEW ,"1500"]]], "1", "1"],
            ["1750M", [8],  "", -5, [["expression", format[_STVIEW ,"1750"]]], "1", "1"],
            ["2000M", [9],  "", -5, [["expression", format[_STVIEW ,"2000"]]], "1", "1"],
    		["2250M", [10],  "", -5, [["expression", format[_STVIEW ,"2250"]]], "1", "1"],
    		["2500M", [11],  "", -5, [["expression", format[_STVIEW ,"2500"]]], "1", "1"],
                ["", [-1], "", -5, [["expression", ""]], "1", "0"],
                ["Next page", [12], "#USER:STVIEW2", -5, [["expression", ""]], "1", "1"],
                ["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
    ];
    STVIEW2 =
    [
    	["",true],
    		["2750M", [2],  "", -5, [["expression", format[_STVIEW ,"2750"]]], "1", "1"],
            ["3000M", [3],  "", -5, [["expression", format[_STVIEW ,"3000"]]], "1", "1"],
            ["3250M", [4],  "", -5, [["expression", format[_STVIEW ,"3250"]]], "1", "1"],
            ["3500M", [5],  "", -5, [["expression", format[_STVIEW ,"3500"]]], "1", "1"],
            ["3750M", [6],  "", -5, [["expression", format[_STVIEW ,"3750"]]], "1", "1"],
            ["4000M", [7],  "", -5, [["expression", format[_STVIEW ,"4000"]]], "1", "1"],
    		["4250M", [8],  "", -5, [["expression", format[_STVIEW ,"4250"]]], "1", "1"],
    		["4500M", [9],  "", -5, [["expression", format[_STVIEW ,"4500"]]], "1", "1"],
    		["4750M", [10],  "", -5, [["expression", format[_STVIEW ,"4750"]]], "1", "1"],
    		["5000M", [11],  "", -5, [["expression", format[_STVIEW ,"5000"]]], "1", "1"],
                ["", [-1], "", -5, [["expression", ""]], "1", "0"],
                ["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
    ];
    
    
    showCommandingMenu "#USER:MainActionMenu";

     

    fn_selfactions.sqf

    if (("Binocular_Vector" in _itemsPlayer) || ("Binocular" in _itemsPlayer)) then {
    if (s_player_setview < 0) then {
    _text = "SetView";
    s_player_setview = player addAction [format["%1",_text], "\scripts\setviewmenu.sqf"];
    		};
    	} else {
    		player removeAction s_player_setview;
    		s_player_setview = -1;
    	};

    Note: cannot remember if binoculars are taked as _itemsPlayers or _magazinesPlayer

     

    at least add

    s_player_setview = -1;

    in your custom variables.sqf  with the rest of actions.

  6. 18 hours ago, Blestda86ta said:

    Trying to find a way to right click and turn off/on ambient sound and color corrections. I'm using the 'deploy anything' script. Anyone know how to do this? I also need the script for color correction/ambient sound if they are scripts.

    try this:

    1-Create in this path: yoru server root\mpmissions\your instance\colorEnv\

    2-Into this new path create:

    A-env.sqf

    Spoiler
    
    if(isNil "Environment") then {Environment = true;} else {Environment = !Environment};
    
    if (Environment) then {
    
    enableEnvironment = false;
    
    }else{
    	enableEnvironment = true;
    };

     

    B- colormenu.sqf

    Spoiler
    
    _Actions = "colorEnv\";
    _path1 = 'player execVM "'+_Actions+'%1"';
    
    
    MainActionMenu =
    [
    	["COLOR MENU",true],
    		["AFRICA", [],  "", -5, [["expression", format[_path1,"africa.sqf"]]], "1", "1"],
    		["WASTELAND", [],  "", -5, [["expression", format[_path1,"wasteland.sqf"]]], "1", "1"],	
    		["NORMAL", [],  "", -5, [["expression", format[_path1,"normal.sqf"]]], "1", "1"],
            
                ["", [], "", -5, [["expression", ""]], "1", "0"],
                ["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
    ];
    
    
    
    showCommandingMenu "#USER:MainActionMenu";

     

    Note: infistar maybe need add #MainActionMenu

    D- africa.sqf

    Spoiler
    
    colortheme = ppEffectCreate ["colorCorrections", 1501];
    colortheme ppEffectEnable true;
    colortheme ppEffectAdjust [ 1, 1.3, 0.001, [-0.11, -0.65, -0.76, 0.015],[-5, -1.74, 0.09, 0.86],[-1.14, -0.73, 1.14, -0.09]];
    colortheme ppEffectCommit 0;

     

    wasteland.sqf

    Spoiler
    
    colortheme = ppEffectCreate ["colorCorrections", 1501];
    colortheme ppEffectEnable true;
    colortheme ppEffectAdjust [1, 1, 0, [0.0, 0.0, 0.0, 0.0], [0.8*2, 0.5*2, 0.0, 0.7], [0.9, 0.9, 0.9, 0.0]];
    colortheme ppEffectCommit 0;

     

    normal.sqf

    Spoiler
    
    colortheme ppEffectEnable false;
    ppEffectDestroy colortheme;

     

    3-Now in your config,sqf (deploy anything mod)  add this two lines to add the actions to the etool.

    ["ItemEtool","ColorCorrection","execVM 'colorEnv\colormenu.sqf';","true"],
    ["ItemEtool","Environmentsound","execVM 'colorEnv\env.sqf';","true"]

     

  7. Just now, khalcifer said:

    Hello how can i change scripts

    add ItemKiloHemp to backpack

      Reveal hidden contents

    private ["_hempqty","_hasMachete","_findHemp","_countHemp","_playerNear"];
    if (dayz_actioninprogress) exitWith {};
    dayz_actioninprogress = true;
    _hempqty = {_x == "ItemKiloHemp"} count magazines player;
    _hasMachete = "ItemMachete" in items player;
    _findHemp = nearestObjects [player,["fiberplant"],5];
    _countHemp = count _findHemp;
    _playerNear = {isPlayer _x} count (player nearEntities ["CAManBase", 10]) > 1;
    player removeAction s_player_Getweed;
    s_player_Getweed = -1;

    if (_playerNear) exitWith { cutText ["Cannot do this while another player is nearby!","PLAIN"]; };

    if (vehicle player != player) exitWith { cutText ["You cannot do this while in a vehicle!", "PLAIN DOWN"];
        dayz_actioninprogress = false;
    };
    if (_hempqty > 9) exitWith { cutText ["WARNING: You have a max amount of weed in your inventory!", "PLAIN DOWN"];
        dayz_actioninprogress = false;
    };
    if (!_hasMachete) exitWith { cutText ["You need a Machete to do this!", "PLAIN DOWN"];
        dayz_actioninprogress = false;
    };
    if (_countHemp > 0) then {    
        r_interrupt = false;
        player playActionNow "PutDown";
        deleteVehicle (_findHemp select 0);
        player addMagazine "ItemKiloHemp";
        cutText ["You collected some precious weed!", "PLAIN DOWN"];
        //[format["%1 Gathered WEED.",name player]] call my_scripts_logger;
        uiSleep 3;
        if (round(random(100)) == 1) then { [player,1] call GiveXP; };
    } else {
        cutText ["There is no more Hemp! :'(", "PLAIN DOWN"];
    };
    dayz_actioninprogress = false;

     

    maybe something like:

    _player = player;
    _backPack = typeOf (unitBackPack _player);
    
    if (_backPack != "") then {
    	_backPack addMagazine "ItemKiloHemp";
    }else{
    _player addMagazine "ItemKiloHemp";
    };

     

    or you can take a look how advanced trading add items to the backpack when you buy.

  8. Just now, Exoflame said:

    i'm trying to edit the starting loadouts, only the magazines don't spawn and neither do the maps or radio's, anyone who could help me ?

    EDIT: i almost forgot, i have installed the overwatch mod and put it in the load order But i dont know what else to do, the guns are not available at all

    spawn\config.sqf

    example:

    class_selection = true; 
    #define START_ITEMS "ItemBandage",2,"ItemPainkiller","ItemWaterbottle","FoodPistachio"
    class_public = [ 
    
    ["Soldier","USMC_Soldier2","SurvivorWcombat_DZ",[START_ITEMS,"8Rnd_9x18_Makarov",2],["Makarov_DZ","ItemMap","ItemRadio","ItemToolbox"],"DZ_Assault_Pack_EP1",[],[],0,0,0],

     

     

  9. Quote

    this is enormously useful already, but this isnt proof against manual server restarts, i have made a scheduler on mygame panel that restarts the .exe file, so when i restart my server manually, it doesnt reset the timer for the auto-restart..

    oh yes if u restart manually your server into the 4hs hours of server up time.. then yes.. your debug monitor timer gonna drop another diferent time..

    To understand.  You set a server restart time in your scheduler.xml  (every 3hs for example) 00:00hs 03:00hs 06:00hs. etc

    Then for example you start at 00:00hs.  and at 01:00hs you restart manually your server.  When you start again your server ,the debug monitor gonna show" time left 3hs".. and the autorestart msgs gonna show "server restart in 2hs".. and at 03:00hs your server gonna be restarted automatically while your debug monitor shows "time left 1hs".

    So the problem its not the msgs.. is the manually autorestart in the middle and the debug monitor time.

  10. Just now, Exoflame said:

    could anyone help me out, i'm pretty new to the dayz server files and don't know where to place things yet, and which functions do what..

    you can use BEC as salival said (the scheduler.xml)  you can find an example of scheduler.xml with this msgs here:

     

    or use config.cfg ( located in Your server Root\instance_11_chernarus\ )

    change this lines

    motd[] = {"DayZ Epoch","Have fun!"};
    motdInterval = 0;

    by:

    motd[] = {
    "restart every 4hs",
    "server restart in 3hs",
    "server restart in 2hs",
    "server restart in 1hs"
    };
    motdInterval = 3600; //time in seconds between each msg

     

    or this one by cherdenko

     

    or u can use waituntil command and launch the msgs using hint or systemchat or dynamic or whatever..

    something like:

    waituntil {(round(time)) > 3600};
     if (time > 3600) then {hint "<SERVER-RESTART>:3hs";};
     
    waituntil {(round(time)) > 7200};
     if (time > 7200) then {hint "<SERVER-RESTART>:2hs";};
    
    waituntil {(round(time)) > 10800};
    if (time > 10800) then {hint "<SERVER-RESTART>:1hs";};
     
    waituntil {(round(time)) > 13800};
    if (time > 13800) then {hint "<SERVER-RESTART>:10 minutes";}; 

     

  11. @DAKA if put bridges is so hard.. why not create a build menu?

    for example:

    1-in a custom keyboard.sqf at bottom but before the last "_handled" paste

    if (_dikCode == 0x3D) then {[] execVM "bridgemenu\bridges.sqf";};//BRIDGE MENU F3

    2-Create bridges.sqf in  mpmissions\your instance\bridgemenu\

    Spoiler
    
    _adminsList = ["",""];
    
    if!((getPlayerUID player) in _adminsList) exitWith {};
    
    _Actions = "bridgemenu\";
    
    
    _path1 = 'player execVM "'+_Actions+'%1"';
    
    _bridges = '["%1"] execVM "bridgemenu\bridgebuilder.sqf"';
    
    
    MainActionMenu =
    [
    	["MENU",true],
    		
            ["BUILD BRIDGE>>",     [],"#USER:Brmenu", -5,[["expression",""]],"1","1"],		
    		["REMOVE", [],  "", -5, [["expression", format[_path1,"remove.sqf"]]], "1", "1"],
    
    		
    
                ["", [], "", -5, [["expression", ""]], "1", "0"],
                ["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
    ];
    
    
    
    Brmenu =
    [
    	["",true],
    	[">BRIDGES<", [], "", -5, [["expression", ""]], "1", "0"],
    	["Bridge1", [], "", -5, [["expression", format[_bridges,"Land_nav_pier_m_2"]]], "1", "1"],
    	["Bridge2", [], "", -5, [["expression", format[_bridges,""]]], "1", "1"],
    
                ["", [], "", -5, [["expression", ""]], "1", "0"],
                ["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
    ];
    
    
    showCommandingMenu "#USER:MainActionMenu";

     

    3 in  mpmissions\your instance\bridgemenu\ create remove.sqf

    Spoiler
    
    private ["_delobj","_player","_objectID","_objectUID"];
    _player = player;
    
    _delobj = cursorTarget;
    deleteVehicle _delobj;
    
    _objectID = _delobj getVariable ["ObjectID", "0"];
    _objectUID = _delobj getVariable ["ObjectUID", "0"];
    
    [_objectID,_objectUID] call server_deleteObj;
    PVDZ_obj_Destroy = [_objectID,_objectUID,_delobj];
    publicVariableServer "PVDZ_obj_Destroy";
    _dotxt = format["%1 Destroyed and Deleted", _delobj];
    titleText [_dotxt,"PLAIN DOWN"]; titleFadeOut 4;

     

    4-in  mpmissions\your instance\bridgemenu\ create bridgebuilder.sqf

    Spoiler
    
    private ["_playerPos","_nearRestr","_hastool","_hasitem","_removed","_abort","_reason","_distance","_isNear","_lockable","_isAllowedUnderGround","_offset","_classname","_zheightdirection","_zheightchanged","_rotate","_objectHelperPos","_objectHelperDir","_objHDiff","_position","_isOk","_dir","_vector","_cancel","_location2","_buildOffset","_location","_limit","_started","_finished","_animState","_isMedic","_proceed","_counter","_dis","_sfx","_combination_1_Display","_combination_1","_combination_2","_combination_3","_combination","_combinationDisplay","_combination_4","_num_removed","_tmpbuilt","_vUp","_classnametmp","_text","_ghost","_objectHelper","_location1","_object","_helperColor","_canDo","_pos","_onLadder","_vehicle","_inVehicle","_needNear","_canBuild"];
    
    //Check if building already in progress, exit if so.
    if (dayz_actionInProgress) exitWith {localize "str_epoch_player_40" call dayz_rollingMessages;};
    dayz_actionInProgress = true;
    
    _pos = [player] call FNC_GetPos;
    
    
     
    
    
    DZE_Q = false;
    DZE_Z = false;
    
    DZE_Q_alt = false;
    DZE_Z_alt = false;
    
    DZE_Q_ctrl = false;
    DZE_Z_ctrl = false;
    
    DZE_5 = false;
    DZE_4 = false;
    DZE_6 = false;
    
    DZE_F = false;
    
    DZE_cancelBuilding = false;
    
    DZE_updateVec = false;
    DZE_memDir = 0;
    DZE_memForBack = 0;
    DZE_memLeftRight = 0;
    
    call gear_ui_init;
    closeDialog 1;
    
    
    //////////////////////////////PUT YOUR OBJET ID BELLOW
    _classname =  _this select 0;
    ///////////////////////////////////////////////    
    _classnametmp = _classname;
    _text =         getText (configFile >> "CfgVehicles" >> _classname >> "displayName");
    _ghost = getText (configFile >> "CfgVehicles" >> _classname >> "ghostpreview");
        
    
        _lockable = 0; //default define if lockable not found in config file below
        if(isNumber (configFile >> "CfgVehicles" >> _classname >> "lockable")) then { //find out if item is lockable object
            _lockable = getNumber(configFile >> "CfgVehicles" >> _classname >> "lockable"); // 2=lockbox, 3=combolock, 4=safe
        };
    
        _isAllowedUnderGround = 1; //check if allowed to build under terrain
        if(isNumber (configFile >> "CfgVehicles" >> _classname >> "nounderground")) then {
            _isAllowedUnderGround = getNumber(configFile >> "CfgVehicles" >> _classname >> "nounderground");
        };
    
    _offset =     getArray (configFile >> "CfgVehicles" >> _classname >> "offset");
    if((count _offset) <= 0) then {
        _offset = [0,10,1];
    };    
    
        _objectHelper = objNull;
        _isOk = true;
        _location1 = [player] call FNC_GetPos; // get inital players position
        _dir = getDir player; //required to pass direction when building
    
        // if ghost preview available use that instead
        if (_ghost != "") then {
            _classname = _ghost;
        };
    
        _object = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"]; //object preview, not an actual object that will be built
    
        
    
        _objectHelper = "Sign_sphere10cm_EP1" createVehicle [0,0,0];
        _helperColor = "#(argb,8,8,3)color(0,0,0,0,ca)";
        _objectHelper setobjecttexture [0,_helperColor];
        _objectHelper attachTo [player,_offset];
        _object attachTo [_objectHelper,[0,0,0]];
    
        if (isClass (configFile >> "SnapBuilding" >> _classname)) then {    
            ["","","",["Init",_object,_classname,_objectHelper]] spawn snap_build;
        };
    
        
            ["","","",["Init","Init",0]] spawn build_vectors;
        
    
        _objHDiff = 0;    
        _cancel = false;
        _reason = "";
        
        helperDetach = false;
        _canDo = (!r_drag_sqf and !r_player_unconscious);
        _position = [_objectHelper] call FNC_GetPos;
    
        while {_isOk} do {
    
            _zheightchanged = false;
            _zheightdirection = "";
            _rotate = false;
    
            if (DZE_Q) then {
                DZE_Q = false;
                _zheightdirection = "up";
                _zheightchanged = true;
            };
            if (DZE_Z) then {
                DZE_Z = false;
                _zheightdirection = "down";
                _zheightchanged = true;
            };
            if (DZE_Q_alt) then {
                DZE_Q_alt = false;
                _zheightdirection = "up_alt";
                _zheightchanged = true;
            };
            if (DZE_Z_alt) then {
                DZE_Z_alt = false;
                _zheightdirection = "down_alt";
                _zheightchanged = true;
            };
            if (DZE_Q_ctrl) then {
                DZE_Q_ctrl = false;
                _zheightdirection = "up_ctrl";
                _zheightchanged = true;
            };
            if (DZE_Z_ctrl) then {
                DZE_Z_ctrl = false;
                _zheightdirection = "down_ctrl";
                _zheightchanged = true;
            };
            if (DZE_4) then {
                _rotate = true;
                DZE_4 = false;
                if(DZE_dirWithDegrees) then{
                    DZE_memDir = DZE_memDir - DZE_curDegree;
                }else{
                    DZE_memDir = DZE_memDir - 45;
                };
            };
            if (DZE_6) then {
                _rotate = true;
                DZE_6 = false;
                if(DZE_dirWithDegrees) then{
                    DZE_memDir = DZE_memDir + DZE_curDegree;
                }else{
                    DZE_memDir = DZE_memDir + 45;
                };
            };
            
            if(DZE_updateVec) then{
                [_objectHelper,[DZE_memForBack,DZE_memLeftRight,DZE_memDir]] call fnc_SetPitchBankYaw;
                DZE_updateVec = false;
            };
            
            if (DZE_F and _canDo) then {
                if (helperDetach) then {
                    _objectHelper attachTo [player];
                    DZE_memDir = DZE_memDir-(getDir player);
                    helperDetach = false;
                    [_objectHelper,[DZE_memForBack,DZE_memLeftRight,DZE_memDir]] call fnc_SetPitchBankYaw;
                } else {        
                    _objectHelperPos = getPosATL _objectHelper;
                    detach _objectHelper;            
                    DZE_memDir = getDir _objectHelper;
                    [_objectHelper,[DZE_memForBack,DZE_memLeftRight,DZE_memDir]] call fnc_SetPitchBankYaw;
                    _objectHelper setPosATL _objectHelperPos;
                    _objectHelper setVelocity [0,0,0]; //fix sliding glitch
                    helperDetach = true;
                };
                DZE_F = false;
            };
    
            if(_rotate) then {
                [_objectHelper,[DZE_memForBack,DZE_memLeftRight,DZE_memDir]] call fnc_SetPitchBankYaw;
            };
    
            if(_zheightchanged) then {
                if (!helperDetach) then {
                detach _objectHelper;
                _objectHelperDir = getDir _objectHelper;
                };
    
                _position = [_objectHelper] call FNC_GetPos;
    
                if(_zheightdirection == "up") then {
                    _position set [2,((_position select 2)+0.1)];
                    _objHDiff = _objHDiff + 0.1;
                };
                if(_zheightdirection == "down") then {
                    _position set [2,((_position select 2)-0.1)];
                    _objHDiff = _objHDiff - 0.1;
                };
    
                if(_zheightdirection == "up_alt") then {
                    _position set [2,((_position select 2)+1)];
                    _objHDiff = _objHDiff + 1;
                };
                if(_zheightdirection == "down_alt") then {
                    _position set [2,((_position select 2)-1)];
                    _objHDiff = _objHDiff - 1;
                };
    
                if(_zheightdirection == "up_ctrl") then {
                    _position set [2,((_position select 2)+0.01)];
                    _objHDiff = _objHDiff + 0.01;
                };
                if(_zheightdirection == "down_ctrl") then {
                    _position set [2,((_position select 2)-0.01)];
                    _objHDiff = _objHDiff - 0.01;
                };
    
                if((_isAllowedUnderGround == 0) && ((_position select 2) < 0)) then {
                    _position set [2,0];
                };
    
                if (surfaceIsWater _position) then {
                    _objectHelper setPosASL _position;
                } else {
                    _objectHelper setPosATL _position;
                };
    
                if (!helperDetach) then {
                _objectHelper attachTo [player];
                };
                [_objectHelper,[DZE_memForBack,DZE_memLeftRight,DZE_memDir]] call fnc_SetPitchBankYaw;
            };
    
            uiSleep 0.5;
    
            _location2 = [player] call FNC_GetPos;
            _objectHelperPos = [_objectHelper] call FNC_GetPos;
            
            if(DZE_5) exitWith {
                _isOk = false;
                _position = [_object] call FNC_GetPos;
                detach _object;
                _dir = getDir _object;
                _vector = [(vectorDir _object),(vectorUp _object)];    
                deleteVehicle _object;
                detach _objectHelper;
                deleteVehicle _objectHelper;
            };
    
            if(_location1 distance _location2 > DZE_buildMaxMoveDistance) exitWith {
                _isOk = false;
                _cancel = true;
                _reason = format[localize "STR_EPOCH_BUILD_FAIL_MOVED",DZE_buildMaxMoveDistance];
                detach _object;
                deleteVehicle _object;
                detach _objectHelper;
                deleteVehicle _objectHelper;
            };
            
            if(_location1 distance _objectHelperPos > DZE_buildMaxMoveDistance) exitWith {
                _isOk = false;
                _cancel = true;
                _reason = format[localize "STR_EPOCH_BUILD_FAIL_TOO_FAR",DZE_buildMaxMoveDistance];
                detach _object;
                deleteVehicle _object;
                detach _objectHelper;
                deleteVehicle _objectHelper;
            };
    
            if(abs(_objHDiff) > DZE_buildMaxHeightDistance) exitWith {
                _isOk = false;
                _cancel = true;
                _reason = format[localize "STR_EPOCH_BUILD_FAIL_HEIGHT",DZE_buildMaxHeightDistance];
                detach _object;
                deleteVehicle _object;
                detach _objectHelper;
                deleteVehicle _objectHelper;
            };
    
            if (player getVariable["combattimeout",0] >= diag_tickTime) exitWith {
                _isOk = false;
                _cancel = true;
                _reason = localize "str_epoch_player_43";
                detach _object;
                deleteVehicle _object;
                detach _objectHelper;
                deleteVehicle _objectHelper;
            };
    
            if (DZE_cancelBuilding) exitWith {
                _isOk = false;
                _cancel = true;
                _reason = localize "STR_EPOCH_PLAYER_46";
                detach _object;
                deleteVehicle _object;
                detach _objectHelper;
                deleteVehicle _objectHelper;
            };
        };
        
        _isOk = true;
        _proceed = false;
        _counter = 0;
        _location = [0,0,0];
    
        //No building on roads unless toggled
        if (!DZE_BuildOnRoads) then {
            if (isOnRoad _position) then { _cancel = true; _reason = localize "STR_EPOCH_BUILD_FAIL_ROAD"; };
        };
    
        // No building in trader zones
        if(!canbuild) then { _cancel = true; _reason = format[localize "STR_EPOCH_PLAYER_136",localize "STR_EPOCH_TRADER"]; };
    
        if(!_cancel) then {
    
            _classname = _classnametmp;
    
            // Start Build
            _tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; //create actual object that will be published to database
    
            _tmpbuilt setdir _dir; //set direction inherited from passed args from control
            _tmpbuilt setVariable["memDir",_dir,true];
    
            // Get position based on object
            _location = _position;
    
            if((_isAllowedUnderGround == 0) && ((_location select 2) < 0)) then { //check Z axis if not allowed to build underground
                _location set [2,0]; //reset Z axis to zero (above terrain)
            };
            
            _tmpbuilt setVectorDirAndUp _vector;
            
            _buildOffset = [0,0,0];
            _vUp = _vector select 1;
            switch (_classname) do {
                case "MetalFloor_DZ": { _buildOffset = [(_vUp select 0) * .148, (_vUp select 1) * .148,0]; };
            };
            
            _location = [
                (_location select 0) - (_buildOffset select 0),
                (_location select 1) - (_buildOffset select 1),
                (_location select 2) - (_buildOffset select 2)
            ];
        
            if (surfaceIsWater _location) then {
                _tmpbuilt setPosASL _location;
                _location = ASLtoATL _location; //Database uses ATL
            } else {
                _tmpbuilt setPosATL _location;
            };
    
            format[localize "str_epoch_player_138",_text] call dayz_rollingMessages;
    
            //////////////////////////////////////////////////##########START TO BUILD AND REMOVE OBJETS
    player playActionNow "Medic";
    [player,"repair",0,false,10] call dayz_zombieSpeak;
    [player,10,true,(getPosATL player)] spawn player_alertZombies;
    sleep 3;
    
    //////////Change items bellow by your owns in _hasitems variable
      
    
    ////////////////////////////////////////////////////////////////////////////////        
            _limit = 3; //times it takes to build by default
    
            if (DZE_StaticConstructionCount > 0) then { //if count is manually overridden inside init.sqf, use that instead, else use limits configured in config files
                _limit = DZE_StaticConstructionCount;
            }
            else {
                if (isNumber (configFile >> "CfgVehicles" >> _classname >> "constructioncount")) then {
                    _limit = getNumber(configFile >> "CfgVehicles" >> _classname >> "constructioncount");
                };
            };
    
    
            
                    
    
                    _tmpbuilt setVariable ["OEMPos",_location,true]; //store original location as a variable
    
                     //if not lockable item
                        
                        _tmpbuilt setVariable ["CharacterID",dayz_characterID,true];
                        
                            if (DZE_permanentPlot) then {
                                _tmpbuilt setVariable ["ownerPUID",dayz_playerUID,true];
                                
                                    _friendsArr = [[dayz_playerUID,toArray (name player)]];
                                    _tmpbuilt setVariable ["plotfriends", _friendsArr, true];
                                    PVDZ_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location,dayz_playerUID,_vector],_friendsArr];
                                    publicVariableServer "PVDZ_obj_Publish";
                            //customize msg bellow
                            cutText [format["NICE!"], "PLAIN DOWN",3];    
                        };
                    
                } else { //if magazine was not removed, cancel publish
                    deleteVehicle _tmpbuilt;
                    localize "str_epoch_player_46" call dayz_rollingMessages;
                };
    
    
    
    dayz_actionInProgress = false; 

     

    5-In somewhere into your custom variables.sqf put:

    Spoiler
    
    DZE_Bridges = ["Land_nav_pier_m_2",""];//add more if u put more in bridges sqf
    
    DayZ_SafeObjects = DZE_Bridges+["Base_Fire_DZ","WoodenGate_1","WoodenGate_2","WoodenGate_3","WoodenGate_4","Land_Fire_DZ","TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","TentStorage4","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","StashMedium4","Wire_cat1","Sandbag1_DZ","Fence_DZ","Generator_DZ","Hedgehog_DZ","BearTrap_DZ","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DomeTentStorage4","CamoNet_DZ","Trap_Cans","TrapTripwireFlare","TrapBearTrapSmoke","TrapTripwireGrenade","TrapTripwireSmoke","TrapBearTrapFlare","TentStorageDomed","VaultStorageLocked","BagFenceRound_DZ","TrapBear","Fort_RazorWire","WoodGate_DZ","Land_HBarrier1_DZ","Land_HBarrier3_DZ","Land_HBarrier5_DZ","Fence_corrugated_DZ","M240Nest_DZ","CanvasHut_DZ","ParkBench_DZ","MetalGate_DZ","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ","Plastic_Pole_EP1_DZ","StickFence_DZ","LightPole_DZ","FuelPump_DZ","DesertCamoNet_DZ","ForestCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ","SandNest_DZ","DeerStand_DZ","MetalPanel_DZ","WorkBench_DZ","WoodFloor_DZ","WoodLargeWall_DZ","WoodLargeWallDoor_DZ","WoodLargeWallWin_DZ","WoodSmallWall_DZ","WoodSmallWallWin_DZ","WoodSmallWallDoor_DZ","LockboxStorageLocked","WoodFloorHalf_DZ","WoodFloorQuarter_DZ","WoodStairs_DZ","WoodStairsSans_DZ","WoodStairsRails_DZ","WoodSmallWallThird_DZ","WoodLadder_DZ","Land_DZE_GarageWoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_WoodDoor","Land_DZE_GarageWoodDoorLocked","Land_DZE_LargeWoodDoorLocked","Land_DZE_WoodDoorLocked","CinderWallHalf_DZ","CinderWall_DZ","CinderWallDoorway_DZ","CinderWallDoor_DZ","CinderWallDoorLocked_DZ","CinderWallSmallDoorway_DZ","CinderWallDoorSmall_DZ","CinderWallDoorSmallLocked_DZ","MetalFloor_DZ","WoodRamp_DZ","GunRack_DZ","FireBarrel_DZ","WoodCrate_DZ","Scaffolding_DZ","DesertTentStorage","DesertTentStorage0","DesertTentStorage1","DesertTentStorage2","DesertTentStorage3","DesertTentStorage4"];

     

     

    now go to your server_monitor.sqf

     

    find:

    _isPlot = _type == "Plastic_Pole_EP1_DZ";

    bellow paste

    _isBridge = _type in DZE_Bridges;

    Now find:

    if( (count _inventory > 0) && !_isPlot && !_doorLocked) then {

    change by:

    if( (count _inventory > 0) && !_isPlot && !_doorLocked && !_isBridge) then {

     

    so now you go in game and place bridges with vectors, snap pro.. and all that things....

    infistar filters may be need MainActionMenu

     

     

     

     

  12. IThe MAP_tent by Land_tent... in other words all objects that start with MAP can be changed by Land to spawn loot. Thers a folder in dayz_code.pbo cfgloot ..here you will find the id of all buildings that spawn loot. You can add more or customize the chances to spawn and the kind of loot. Good work mate

  13. ok.. again.. the @lwbuk way is the same but more clean.

    but here you got.

    Create a file called extra_rc.hpp (mpmissions\your instance\)

    extra_rc.hpp

    Spoiler
    
    class Binocular {
         class distanceb500m {
                text = "500 meters";
                script = "execVM 'custom\setview\500.sqf'";
            };
         class distanceb1000m {
                text = "1000 meters";
                script = "execVM 'custom\setview\1000.sqf'";
            };
         class distanceb1500m {
                text = "1500 meters";
                script = "execVM 'custom\setview\1500.sqf'";
            };
         class distanceb2000m {
                text = "2000 meters";
                script = "execVM 'custom\setview\2000.sqf'";
            };    
         class distanceb2500m {
                text = "2500 meters";
                script = "execVM 'custom\setview\2500.sqf'";
            };
         class distanceb3000m {
                text = "3000 meters";
                script = "execVM 'custom\setview\3000.sqf'";
            };
         class distanceb3500m {
                text = "3500 meters";
                script = "execVM 'custom\setview\3500.sqf'";
            };
         class distanceb4000m {
                text = "4000 meters";
                script = "execVM 'custom\setview\4000.sqf'";
            };    
             
        };
      class Binocular_Vector {
         class distanceb500m {
                text = "500 meters";
                script = "execVM 'custom\setview\500.sqf'";
            };
         class distanceb1000m {
                text = "1000 meters";
                script = "execVM 'custom\setview\1000.sqf'";
            };
         class distanceb1500m {
                text = "1500 meters";
                script = "execVM 'custom\setview\1500.sqf'";
            };
         class distanceb2000m {
                text = "2000 meters";
                script = "execVM 'custom\setview\2000.sqf'";
            };    
         class distanceb2500m {
                text = "2500 meters";
                script = "execVM 'custom\setview\2500.sqf'";
            };
         class distanceb3000m {
                text = "3000 meters";
                script = "execVM 'custom\setview\3000.sqf'";
            };
         class distanceb3500m {
                text = "3500 meters";
                script = "execVM 'custom\setview\3500.sqf'";
            };
         class distanceb4000m {
                text = "4000 meters";
                script = "execVM 'custom\setview\4000.sqf'";
            };    
         
        };
    }; 

     

    open your description.ext  at bottom paste:

    #include "extra_rc.hpp"

    3-open your custom compiles.sqf

    into !isDedicated section paste:

    player_selectSlot =			compile preprocessFileLineNumbers "ui_selectSlot.sqf";

    Open \@DayZ_Epoch\addons\dayz_code\compile\  copy ui_selectslot.sqf  and paste into mpmissions\your instance\

    Open this new custom ui_selectslot.sqf

    Spoiler

    find:

    
    _pos set [3,_height];

    above it paste:
     

    
    	//EXTRA_RC
    	
    	_erc_cfgActions = (missionConfigFile >> "ExtraRc" >> _item);
        _erc_numActions = (count _erc_cfgActions);
        if (isClass _erc_cfgActions) then {
         for "_j" from 0 to (_erc_numActions - 1) do
         {
           _menu =  _parent displayCtrl (1600 + _j + _numActions);
           _menu ctrlShow true;
           _config =  (_erc_cfgActions select _j);
           _text =  getText (_config >> "text");
           _script =  getText (_config >> "script");
           _height = _height + (0.025 * safezoneH);
           uiNamespace setVariable ['uiControl', _control];
           _menu ctrlSetText _text;
           _menu ctrlSetEventHandler ["ButtonClick",_script];
          };
       };
    	//EXTRA_RC

     

    4-create this path : mpmissions\your instance\ custom\

    into the custom folder paste the setview folder.

    http://www.mediafire.com/file/pdykr9ua4oq3e34/setview.rar

  14. 3 diferents ways.

    1-Using keyboard.sqf 

    Spoiler

    1-I know you already have a custom compiles.sqf  open it.. and paste into !isDedicated section:

    
    DZ_KeyDown_EH = compile preprocessFileLineNumbers "dayz_code\compile\keyboard.sqf";	

    2-Open \@DayZ_Epoch\addons\dayz_code\compile\  and paste keyboard.sqf  into \MPMissions\DayZ_Epoch_your instance\dayz_code\compile\

    3-Open keyboard.sqf at bottom but before the last "_handle" paste:

    
    if (_dikCode == 0x3D) then {execVM "setview.sqf";};//key F3

    4-create setview.sqf  into (mpmissions\your instance\)

    
    _path2 = 'setviewdistance %1;';
    
    VD =
    [
    	["",true],
            ["250M", [2],  "", -5, [["expression", format[_path2 ,"250"]]], "1", "1"],
            ["500M", [3],  "", -5, [["expression", format[_path2 ,"500"]]], "1", "1"],
            ["750M", [4],  "", -5, [["expression", format[_path2 ,"750"]]], "1", "1"],
            ["1000M", [5],  "", -5, [["expression", format[_path2 ,"1000"]]], "1", "1"],
            ["1250M", [6],  "", -5, [["expression", format[_path2 ,"1250"]]], "1", "1"],
            ["1500M", [7],  "", -5, [["expression", format[_path2 ,"1500"]]], "1", "1"],
            ["1750M", [8],  "", -5, [["expression", format[_path2 ,"1750"]]], "1", "1"],
            ["2000M", [9],  "", -5, [["expression", format[_path2 ,"2000"]]], "1", "1"],
    		["2250M", [10],  "", -5, [["expression", format[_path2 ,"2250"]]], "1", "1"],
    		["2500M", [11],  "", -5, [["expression", format[_path2 ,"2500"]]], "1", "1"],
                ["", [-1], "", -5, [["expression", ""]], "1", "0"],            
                ["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
    ];

     

    2 way: by @lwbuk 

    3 way.. using extra_rc.hpp.  the one that i give you some time ago.

  15. 11 minutes ago, Anhor said:

    I´m sure I´ve seen it somewhere, but I can´t find it anymore. I´m looking for a script where a plane make a bomb run random on the map ........ I mean a bomb carpet, not a single shity bomb.

    Anyone able to help out?

     

    not tested,, but you can start to work with this base:

    Spoiler
    
    private ["_trigger_0","_this","_maxSpawns","_sleeper","_marker_0","_center_1","_unitGroup","_aiskin","_plane_class","_steps","_pilot","_carrier","_spawnRadius","_spawnMarker","_finish","_initpos"];
    _maxSpawns        = 3;//spawns numbers      
    _sleeper          = 600;  //time between bombs      
    _steps = 1;
    _finish = false;
    
    uiSleep 0.5;
    
    while {!_finish} do {
      if (_steps < _maxSpawns) then {
    
      diag_log ("SPAWN BOMBER");
    _spawnRadius = 5000;
    _spawnMarker = 'center';
    _initpos = [getMarkerPos _spawnMarker,0,_spawnRadius,10,0,2000,0] call BIS_fnc_findSafePos;
    
    _this = createMarker ["tar0", _initpos];
    _this setMarkerText "tar0";
    _this setMarkerShape "ELLIPSE";
    _this setMarkerType "Move";
    _this setMarkerColor "ColorRedFaded25";
    _this setMarkerBrush "Solid";
    _marker_0 = _this;
    
    _this = createTrigger ["EmptyDetector", _initpos];
    _this setTriggerActivation ["EAST", "PRESENT", true];
    _this setTriggerTimeout [2, 2, 2, false];
    _this setTriggerStatements ["this", "bomb = ""Bo_GBU12_LGB"" createVehicle getmarkerPos ""tar0""", ""];
    _trigger_0 = _this; 
    
    
    
    _this = createCenter east;
    _center_1 = _this;
    _unitGroup = createGroup _center_1;
    _aiskin = "TK_Aziz_EP1";
    _plane_class = "Su34";
    
    //spawnai
    _pilot = objNull;
    _pilot = _unitGroup createUnit [_aiskin, [(_initpos select 0) + 350, (_initpos select 1) + 350], [], 1, "NONE"];
    [_pilot] joinSilent _unitGroup;
    
    
    
    sleep 1;
    
    _carrier =  createVehicle [_plane_class, [(_initpos select 0) + 350, (_initpos select 1) + 350],[], 0, "FLY"];
    _carrier 		setFuel 1;
    _carrier 		engineOn true;
    
    {_carrier removeWeapon _x} forEach weapons _carrier;
    
    _carrier 		flyInHeight 150;
    _carrier        limitSpeed 100;
    _carrier 		setVehicleLock "LOCKED";
    _carrier 		addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}];
    dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_carrier];
    
    _pilot 	assignAsDriver _carrier;
    _pilot 	moveInDriver _carrier;
    _pilot setBehaviour "COMBAT"; 
    _pilot setCombatMode "RED";
     
    sleep 1;
     
    _carrier doMove _initpos;
    
    waitUntil { (_carrier distance _initpos <=1) };
    sleep 10;
    deleteVehicle _trigger_0;
    deleteVehicle _carrier;
    deleteVehicle _pilot;
    deleteMarker _marker_0;
    
    };
    
    
    
    
    uiSleep _sleeper;
    
    _steps = _steps + 1;
    
    _finish = _steps >= _maxSpawns;
    };
    
    
    
    if (_finish) exitWith {
      diag_log ("SPAWN BOMBER ends");
    };

     

     

     

  16. Mmm maybe i do not understand you..but the msgs about 3mts workbench is not an error. When you craft some objects like floors. Walls epoch ask you for workbenchs. So you need place a workbench and be near of this to start to craft. The workshop is a very diferent thing and you dont need it to crsft walls,floors and standard epoch buildables.

     

  17. EWell see. The workshop just sdd more buildings. 1.You create the workshop. 2.use scroll menu on the workshop and pick manageworkshop.  3 pick one optipn in workshopmenu.

    About crafting walls,floors. You need use the epoch default system. 1Workbench.1knife.woodtables and plywoods. So i thnk youre confusse about workshop and workbench. To craft a workbench right click on plywoods

  18. 52 minutes ago, leegreaves said:

    i assume it can just go at bottom of file and doesnt need to be in any particular section of variables.sqf.

    Check your original vAriables.sqf thers a dze_iswreck line by default. Copy this paste in somewhere of your custom variables and add the hootys wrecks ids inside. Also you can add other objects.

×
×
  • Create New...