Jump to content
  • 0

rotate objets before place


juandayz

Question

is there any way to  execute the player_built actions  rotate, down and rise objets   on a script executed out of right click actions?

 

for example... i deploy this objetc using the scroll menu: (works fine, its writed on db and keep his position... but  not have "ghost" preview and cannot choice where put it.)

Spoiler

private ["_player","_veh","_class","_dir","_pos","_dist","_charID"];

 

_player = player; //Setting a local variable as player saves resources
_player playActionNow "Medic";
[_player,"repair",0,false,10] call dayz_zombieSpeak;
[_player,10,true,(getPosATL _player)] spawn player_alertZombies;


     _class = "MAP_parabola_big";
    _dist = 6;
    _dir = getDir vehicle _player;
    _pos = getPosATL vehicle _player;
    _pos = [(_pos select 0)+_dist*sin(_dir),(_pos select 1)+_dist*cos(_dir),0];
    _veh = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"];

    _veh setVariable ["MalSar",1,true];
    _veh setVariable ["ObjectID", "1", true];
    _veh setVariable ["ObjectUID", "1", true];
    _veh setVariable ["CharacterID",dayz_characterID,true];
    _veh setVariable ["permaLoot",true,true];

//  push to database
_charID = dayz_characterID;


PVDZE_veh_Publish = [_veh,[_dir,_pos],_class,true,_charid,_player];
publicVariableServer "PVDZE_veh_Publish";

player reveal _veh;

try it... objet attach to player...can rotate up, down... but when press "space bar" dsnt appear into the world

Spoiler

private ["_helperColor","_objectHelper","_objectHelperDir","_objectHelperPos","_canDo", "_pos", "_cnt",
"_location","_dir","_classname","_item","_hasrequireditem","_missing","_hastoolweapon","_cancel","_reason","_started","_finished","_animState","_isMedic","_dis","_sfx","_hasbuilditem","_tmpbuilt","_onLadder","_isWater","_require","_text","_offset","_IsNearPlot","_isOk","_location1","_location2","_counter","_limit","_proceed","_num_removed","_position","_object","_canBuildOnPlot","_friendlies","_nearestPole","_ownerID","_findNearestPoles","_findNearestPole","_distance","_classnametmp","_ghost","_isPole","_needText","_lockable","_zheightchanged","_rotate","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display","_combinationDisplay","_zheightdirection","_abort","_isNear","_need","_needNear","_vehicle","_inVehicle","_requireplot","_objHDiff","_isLandFireDZ","_isTankTrap","_posrad","_cntrad"];

if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_40") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;

//snap vars -- temporary fix for errors so variables.sqf can be skipped
if (isNil "snapProVariables") then {
    if (isNil "DZE_snapExtraRange") then {
        DZE_snapExtraRange = 0;
    };
    if (isNil "DZE_checkNearbyRadius") then {
        DZE_checkNearbyRadius = 30;
    };
    s_player_toggleSnap = -1;
    s_player_toggleSnapSelect = -1;
    s_player_toggleSnapSelectPoint=[];
    snapActions = -1;
    snapGizmos = [];
    snapGizmosNearby = [];
    snapProVariables = true; // will skip this statement from now on.
};
// snap vars


_cancel = false;
_isPerm = false;
_reason = "";
_vehicle = vehicle player;
_inVehicle = (_vehicle != player);
_canDo = call fnc_actionAllowed;

helperDetach = false;

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;

call gear_ui_init;
closeDialog 1;


_classname =  "MAP_parabola_big";    
_classnametmp = _classname;
_text =         getText (configFile >> "CfgVehicles" >> _classname >> "displayName");
_ghost = getText (configFile >> "CfgVehicles" >> _classname >> "ghostpreview");

_lockable = 0;
if(isNumber (configFile >> "CfgVehicles" >> _classname >> "lockable")) then {
    _lockable = getNumber(configFile >> "CfgVehicles" >> _classname >> "lockable");
};

_isAllowedUnderGround = 1;
if(isNumber (configFile >> "CfgVehicles" >> _classname >> "nounderground")) then {
    _isAllowedUnderGround = getNumber(configFile >> "CfgVehicles" >> _classname >> "nounderground");
};

_offset =     getArray (configFile >> "CfgVehicles" >> _classname >> "offset");
if((count _offset) <= 0) then {
    _offset = [0,1.5,0];
};

_isPole = (_classname == "Plastic_Pole_EP1_DZ");
_isLandFireDZ = (_classname == "Land_Fire_DZ");

_distance = DZE_PlotPole select 1;

_findNearestPoles = nearestObjects [(vehicle player), ["Plastic_Pole_EP1_DZ"], _distance];
_findNearestPole = [];

{
    if (alive _x) then {
        _findNearestPole set [(count _findNearestPole),_x];
    };
} count _findNearestPoles;

_IsNearPlot = count (_findNearestPole);

// If item is plot pole && another one exists within 45m
if(_isPole && _IsNearPlot > 0) exitWith {  DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_44") , "PLAIN DOWN"]; };

_location = [0,0,0];
    _isOk = true;

    // get inital players position
    _location1 = [player] call FNC_GetPos;
    _dir = getDir player;

    // if ghost preview available use that instead
    if (_ghost != "") then {
        _classname = _ghost;
    };

    _object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"];
    //Build gizmo
    _objectHelper = "Sign_sphere10cm_EP1" createVehicle _location;
    _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]];
    _position = [_objectHelper] call FNC_GetPos;
    
    _objHDiff = 0;

if (isClass (missionConfigFile >> "SnapBuilding" >> _classname)) then {    
    ["","","",["Init",_object,_classname,_objectHelper]] spawn snap_build;
};

    while {_isOk} do {

        _zheightchanged = false;
        _zheightdirection = "";
        _rotate = false;

        if (DZE_Q) then {
            DZE_Q = false;
            _zheightdirection = "up";
            _zheightchanged = true;
        };
        if (DZE_Z) then {
            DZE_Z = false;
            _zheightdirection = "down";
            _zheightchanged = true;
        };
        if (DZE_Q_alt) then {
            DZE_Q_alt = false;
            _zheightdirection = "up_alt";
            _zheightchanged = true;
        };
        if (DZE_Z_alt) then {
            DZE_Z_alt = false;
            _zheightdirection = "down_alt";
            _zheightchanged = true;
        };
        if (DZE_Q_ctrl) then {
            DZE_Q_ctrl = false;
            _zheightdirection = "up_ctrl";
            _zheightchanged = true;
        };
        if (DZE_Z_ctrl) then {
            DZE_Z_ctrl = false;
            _zheightdirection = "down_ctrl";
            _zheightchanged = true;
        };
        if (DZE_4) then {
            _rotate = true;
            DZE_4 = false;
            _dir = -45;
        };
        if (DZE_6) then {
            _rotate = true;
            DZE_6 = false;
            _dir = 45;
        };
        
        if (DZE_F and _canDo) then {    
            if (helperDetach) then {
                _objectHelperDir = getDir _objectHelper;
                _objectHelper attachTo [player];
                _objectHelper setDir _objectHelperDir-(getDir player);
                helperDetach = false;
            } else {
                _objectHelperDir = getDir _objectHelper;
                detach _objectHelper;
                [_objectHelper]    call FNC_GetSetPos;
                _objectHelper setVelocity [0,0,0]; //fix sliding glitch
                helperDetach = true;
            };
            DZE_F = false;
        };

        if(_rotate) then {
            if (helperDetach) then {
                _objectHelperDir = getDir _objectHelper;
                _objectHelper setDir _objectHelperDir+_dir;
                [_objectHelper]    call FNC_GetSetPos;
            } else {
                detach _objectHelper;
                _objectHelperDir = getDir _objectHelper;
                _objectHelper setDir _objectHelperDir+_dir;
                [_objectHelper]    call FNC_GetSetPos;
                _objectHelperDir = getDir _objectHelper;
                _objectHelper attachTo [player];
                _objectHelper setDir _objectHelperDir-(getDir player);        
            };

        };

        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 setDir _objectHelperDir-(getDir player);
            };
        };

    sleep 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;
        deleteVehicle _object;
        detach _objectHelper;
        deleteVehicle _objectHelper;
    };

    if(_location1 distance _location2 > 15) exitWith {
        _isOk = false;
        _cancel = true;
        _reason = "You've moved too far away from where you started building (within 15 meters)";
        detach _object;
        deleteVehicle _object;
        detach _objectHelper;
        deleteVehicle _objectHelper;
    };
        
    if(_location1 distance _objectHelperPos > 15) exitWith {
        _isOk = false;
        _cancel = true;
        _reason = "Object is placed to far away from where you started building (within 15 meters)";
        detach _object;
        deleteVehicle _object;
        detach _objectHelper;
        deleteVehicle _objectHelper;
    };

    if(abs(_objHDiff) > 15) exitWith {
        _isOk = false;
        _cancel = true;
        _reason = "Cannot move up or down more than 15 meters";
        detach _object;
        deleteVehicle _object;
        detach _objectHelper;
        deleteVehicle _objectHelper;
    };

    if (DZE_cancelBuilding) exitWith {
        _isOk = false;
        _cancel = true;
        _reason = "Cancelled building.";
        detach _object;
        deleteVehicle _object;
        detach _objectHelper;
        deleteVehicle _objectHelper;
    };
};

if(!_cancel) then {
    _classname = _classnametmp;

    // Start Build
    _tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"];
    _tmpbuilt setdir _dir;
    _location = _position;

    if((_isAllowedUnderGround == 0) && ((_location select 2) < 0)) then {
        _location set [2,0];
    };

    if (surfaceIsWater _location) then {
        _tmpbuilt setPosASL _location;
        _location = ASLtoATL _location;
    } else {
        _tmpbuilt setPosATL _location;
    };

    cutText [format[(localize "str_epoch_player_138"),_text], "PLAIN DOWN"];

//////////////////////////////////////////////////##########

    
    cutText [format[localize "str_build_01",_text], "PLAIN DOWN"];

if (_isPole) then {
                    [] spawn player_plotPreview;
                };

                _tmpbuilt setVariable ["OEMPos",_location,true];

                if(_lockable > 1) then {

                    _combinationDisplay = "";

                    switch (_lockable) do {

                        case 2: { // 2 lockbox
                            _combination_1 = (floor(random 3)) + 100; // 100=red,101=green,102=blue
                            _combination_2 = floor(random 10);
                            _combination_3 = floor(random 10);
                            _combination = format["%1%2%3",_combination_1,_combination_2,_combination_3];
                            dayz_combination = _combination;
                            if (_combination_1 == 100) then {
                                _combination_1_Display = "Red";
                            };
                            if (_combination_1 == 101) then {
                                _combination_1_Display = "Green";
                            };
                            if (_combination_1 == 102) then {
                                _combination_1_Display = "Blue";
                            };
                            _combinationDisplay = format["%1%2%3",_combination_1_Display,_combination_2,_combination_3];
                        };

                        case 3: { // 3 combolock
                            _combination_1 = floor(random 10);
                            _combination_2 = floor(random 10);
                            _combination_3 = floor(random 10);
                            _combination = format["%1%2%3",_combination_1,_combination_2,_combination_3];
                            dayz_combination = _combination;
                            _combinationDisplay = _combination;
                        };

                        case 4: { // 4 safe
                            _combination_1 = floor(random 10);
                            _combination_2 = floor(random 10);
                            _combination_3 = floor(random 10);
                            _combination_4 = floor(random 10);
                            _combination = format["%1%2%3%4",_combination_1,_combination_2,_combination_3,_combination_4];
                            dayz_combination = _combination;
                            _combinationDisplay = _combination;
                        };
                    };

                    _tmpbuilt setVariable ["CharacterID",_combination,true];


                    PVDZE_obj_Publish = [_combination,_tmpbuilt,[_dir,_location],_classname];
                    publicVariableServer "PVDZE_obj_Publish";
                    cutText [format[(localize "str_epoch_player_140"),_combinationDisplay,_text], "PLAIN DOWN", 5];    

} else {
                    _tmpbuilt setVariable ["CharacterID",dayz_characterID,true];

                    // fire?
                    if(_tmpbuilt isKindOf "Land_Fire_DZ") then {
                        _tmpbuilt spawn player_fireMonitor;
                    } else {
                        PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location],_classname];
                        publicVariableServer "PVDZE_obj_Publish";
                    };
                };
            } else {
                deleteVehicle _tmpbuilt;
                cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"];
            };

snapTutorial = false;
[0,0,0] call fnc_snapActionCleanup;
call fnc_initSnapPointsCleanup;           

 

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

its work

Spoiler


private ["_helperColor","_objectHelper","_objectHelperDir","_objectHelperPos","_canDo", "_pos", "_cnt",
"_location","_dir","_classname","_item","_hasrequireditem","_missing","_hastoolweapon","_cancel","_reason","_started","_finished","_animState","_isMedic","_dis","_sfx","_hasbuilditem","_tmpbuilt","_onLadder","_isWater","_require","_text","_offset","_IsNearPlot","_isOk","_location1","_location2","_counter","_limit","_proceed","_num_removed","_position","_object","_canBuildOnPlot","_friendlies","_nearestPole","_ownerID","_findNearestPoles","_findNearestPole","_distance","_classnametmp","_ghost","_isPole","_needText","_lockable","_zheightchanged","_rotate","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display","_combinationDisplay","_zheightdirection","_abort","_isNear","_need","_needNear","_vehicle","_inVehicle","_requireplot","_objHDiff","_isLandFireDZ","_isTankTrap","_posrad","_cntrad"];

if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_40") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;

//snap vars -- temporary fix for errors so variables.sqf can be skipped
if (isNil "snapProVariables") then {
    if (isNil "DZE_snapExtraRange") then {
        DZE_snapExtraRange = 0;
    };
    if (isNil "DZE_checkNearbyRadius") then {
        DZE_checkNearbyRadius = 30;
    };
    s_player_toggleSnap = -1;
    s_player_toggleSnapSelect = -1;
    s_player_toggleSnapSelectPoint=[];
    snapActions = -1;
    snapGizmos = [];
    snapGizmosNearby = [];
    snapProVariables = true; // will skip this statement from now on.
};
// snap vars


_cancel = false;
_isPerm = false;
_reason = "";
_vehicle = vehicle player;
_inVehicle = (_vehicle != player);
_canDo = call fnc_actionAllowed;

helperDetach = false;

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;

call gear_ui_init;
closeDialog 1;


_classname =  "MAP_parabola_big";    
_classnametmp = _classname;
_text =         getText (configFile >> "CfgVehicles" >> _classname >> "displayName");
_ghost = getText (configFile >> "CfgVehicles" >> _classname >> "ghostpreview");

_lockable = 0;
if(isNumber (configFile >> "CfgVehicles" >> _classname >> "lockable")) then {
    _lockable = getNumber(configFile >> "CfgVehicles" >> _classname >> "lockable");
};

_isAllowedUnderGround = 1;
if(isNumber (configFile >> "CfgVehicles" >> _classname >> "nounderground")) then {
    _isAllowedUnderGround = getNumber(configFile >> "CfgVehicles" >> _classname >> "nounderground");
};

_offset =     getArray (configFile >> "CfgVehicles" >> _classname >> "offset");
if((count _offset) <= 0) then {
    _offset = [0,1.5,0];
};

_isPole = (_classname == "Plastic_Pole_EP1_DZ");
_isLandFireDZ = (_classname == "Land_Fire_DZ");

_distance = DZE_PlotPole select 1;

_findNearestPoles = nearestObjects [(vehicle player), ["Plastic_Pole_EP1_DZ"], _distance];
_findNearestPole = [];

{
    if (alive _x) then {
        _findNearestPole set [(count _findNearestPole),_x];
    };
} count _findNearestPoles;

_IsNearPlot = count (_findNearestPole);

// If item is plot pole && another one exists within 45m
if(_isPole && _IsNearPlot > 0) exitWith {  DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_44") , "PLAIN DOWN"]; };

_location = [0,0,0];
    _isOk = true;

    // get inital players position
    _location1 = [player] call FNC_GetPos;
    _dir = getDir player;

    // if ghost preview available use that instead
    if (_ghost != "") then {
        _classname = _ghost;
    };

    _object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"];
    //Build gizmo
    _objectHelper = "Sign_sphere10cm_EP1" createVehicle _location;
    _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]];
    _position = [_objectHelper] call FNC_GetPos;
    
    _objHDiff = 0;

if (isClass (missionConfigFile >> "SnapBuilding" >> _classname)) then {    
    ["","","",["Init",_object,_classname,_objectHelper]] spawn snap_build;
};

    while {_isOk} do {

        _zheightchanged = false;
        _zheightdirection = "";
        _rotate = false;

        if (DZE_Q) then {
            DZE_Q = false;
            _zheightdirection = "up";
            _zheightchanged = true;
        };
        if (DZE_Z) then {
            DZE_Z = false;
            _zheightdirection = "down";
            _zheightchanged = true;
        };
        if (DZE_Q_alt) then {
            DZE_Q_alt = false;
            _zheightdirection = "up_alt";
            _zheightchanged = true;
        };
        if (DZE_Z_alt) then {
            DZE_Z_alt = false;
            _zheightdirection = "down_alt";
            _zheightchanged = true;
        };
        if (DZE_Q_ctrl) then {
            DZE_Q_ctrl = false;
            _zheightdirection = "up_ctrl";
            _zheightchanged = true;
        };
        if (DZE_Z_ctrl) then {
            DZE_Z_ctrl = false;
            _zheightdirection = "down_ctrl";
            _zheightchanged = true;
        };
        if (DZE_4) then {
            _rotate = true;
            DZE_4 = false;
            _dir = -45;
        };
        if (DZE_6) then {
            _rotate = true;
            DZE_6 = false;
            _dir = 45;
        };
        
        if (DZE_F and _canDo) then {    
            if (helperDetach) then {
                _objectHelperDir = getDir _objectHelper;
                _objectHelper attachTo [player];
                _objectHelper setDir _objectHelperDir-(getDir player);
                helperDetach = false;
            } else {
                _objectHelperDir = getDir _objectHelper;
                detach _objectHelper;
                [_objectHelper]    call FNC_GetSetPos;
                _objectHelper setVelocity [0,0,0]; //fix sliding glitch
                helperDetach = true;
            };
            DZE_F = false;
        };

        if(_rotate) then {
            if (helperDetach) then {
                _objectHelperDir = getDir _objectHelper;
                _objectHelper setDir _objectHelperDir+_dir;
                [_objectHelper]    call FNC_GetSetPos;
            } else {
                detach _objectHelper;
                _objectHelperDir = getDir _objectHelper;
                _objectHelper setDir _objectHelperDir+_dir;
                [_objectHelper]    call FNC_GetSetPos;
                _objectHelperDir = getDir _objectHelper;
                _objectHelper attachTo [player];
                _objectHelper setDir _objectHelperDir-(getDir player);        
            };

        };

        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 setDir _objectHelperDir-(getDir player);
            };
        };

    sleep 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;
        deleteVehicle _object;
        detach _objectHelper;
        deleteVehicle _objectHelper;
    };

    if(_location1 distance _location2 > 15) exitWith {
        _isOk = false;
        _cancel = true;
        _reason = "You've moved too far away from where you started building (within 15 meters)";
        detach _object;
        deleteVehicle _object;
        detach _objectHelper;
        deleteVehicle _objectHelper;
    };
        
    if(_location1 distance _objectHelperPos > 15) exitWith {
        _isOk = false;
        _cancel = true;
        _reason = "Object is placed to far away from where you started building (within 15 meters)";
        detach _object;
        deleteVehicle _object;
        detach _objectHelper;
        deleteVehicle _objectHelper;
    };

    if(abs(_objHDiff) > 15) exitWith {
        _isOk = false;
        _cancel = true;
        _reason = "Cannot move up or down more than 15 meters";
        detach _object;
        deleteVehicle _object;
        detach _objectHelper;
        deleteVehicle _objectHelper;
    };

    if (DZE_cancelBuilding) exitWith {
        _isOk = false;
        _cancel = true;
        _reason = "Cancelled building.";
        detach _object;
        deleteVehicle _object;
        detach _objectHelper;
        deleteVehicle _objectHelper;
    };
};

if(!_cancel) then {
    _classname = _classnametmp;

    // Start Build
    _tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"];
    _tmpbuilt setdir _dir;
    _location = _position;

    if((_isAllowedUnderGround == 0) && ((_location select 2) < 0)) then {
        _location set [2,0];
    };

    if (surfaceIsWater _location) then {
        _tmpbuilt setPosASL _location;
        _location = ASLtoATL _location;
    } else {
        _tmpbuilt setPosATL _location;
    };

    cutText [format[(localize "str_epoch_player_138"),_text], "PLAIN DOWN"];

//////////////////////////////////////////////////##########
player playActionNow "Medic";
[player,"repair",0,false,10] call dayz_zombieSpeak;
[player,10,true,(getPosATL player)] spawn player_alertZombies;
sleep 3;
    
    cutText [format[localize "str_build_01",_text], "PLAIN DOWN"];

if (_isPole) then {
                    [] spawn player_plotPreview;
                };

                _tmpbuilt setVariable ["OEMPos",_location,true];
                _tmpbuilt setVariable ["CharacterID",_combination,true];

_charID = dayz_characterID;
_activatingPlayer = player;
 
PVDZE_veh_Publish = [_tmpbuilt,[_dir,_location],_classname,true,_charid,_activatingPlayer];
publicVariableServer  "PVDZE_veh_Publish";

// Customise the message below
 
cutText [format["nice!"], "PLAIN DOWN",3];
 
// Customer the message above
player reveal _tmpbuilt;
 
DZE_ActionInProgress = false;

            } else {
                deleteVehicle _tmpbuilt;
                cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"];
                
DZE_ActionInProgress = false;
            };
 
DZE_ActionInProgress = false;
snapTutorial = false;
[0,0,0] call fnc_snapActionCleanup;
call fnc_initSnapPointsCleanup;           

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Discord

×
×
  • Create New...