Jump to content
  • 0

No one left back!


Anhor

Question

As everybody knows, theres a function to drag a wounded unconsius player out of the danger zone.

My question is now, and I´m sure it´s stupid, is there a chance to do that with a fallen comrad too?

 

Link to comment
Share on other sites

Recommended Posts

  • 0

@Anhor  in fn_selfaction.sqf

below this:

Spoiler

//Towing with tow truck
	/*
	if(_typeOfCursorTarget == "TOW_DZE") then {
		if (s_player_towing < 0) then {
			if(!(_cursorTarget getVariable ["DZEinTow", false])) then {
				s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_ATTACH" "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true];				
			} else {
				s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true];				
			};
		};
	} else {
		player removeAction s_player_towing;
		s_player_towing = -1;
	};
	*/

paste:


_drag = _cursorTarget getVariable["drag",false];
_isZombie = _cursorTarget isKindOf "zZombie_base"; 

if (_isMan and !_isAlive and !_isZombie and !_drag) then {
	if (s_player_drag < 0) then {
		s_player_drag = player addAction [format["<t color='#0096ff'>drag body</t>"], "scripts\dragbody.sqf",_cursorTarget,0, false,true];
	};
} else {
	player removeAction s_player_drag;
	s_player_drag = -1;
};

if (_drag) then {
if (s_player_drag2 < 0) then {
s_player_drag2 = player addAction [format["<t color='#0096ff'>detach body</t>"], "scripts\detachbody.sqf",_cursorTarget,0, true,true];
};
} else {
player removeAction s_player_drag2;
s_player_drag2 = -1;	
};
};

 

below


} else {
	//Engineering

 

paste:


player removeAction s_player_drag2;
s_player_drag2 = -1;
player removeAction s_player_drag;
s_player_drag = -1;
Spoiler

 

 

 

create into mp'missions\your instance\scripts\

dragbody.sqf

Spoiler

_bbody = _this select 3;
_drag = _bbody getVariable["drag",false];
if(!_drag) then {
_bbody attachTo [player, [0, 0, 0]];
_bbody setVariable["drag",true,true];	
systemChat("draging a body");
};

 

detachbody.sqf

Spoiler

_bbody = _this select 3;
_drag = _bbody getVariable["drag",true];
if(_drag) then {

detach _bbody;
systemChat("body release");
_bbody setVariable["drag",false,false];

};

 

 

Link to comment
Share on other sites

  • 0

@Anhor @oldmatechoc you also can load the bodys in vehicles... like attach zeds mod

_allowedVehicles = [
"hilux1_civil_3_open_DZE",
"datsun1_civil_3_open_DZE",
"hilux1_civil_1_open_DZE",
"datsun1_civil_1_open_DZE",
"V3S_Open_TK_CIV_EP1",
"V3S_Open_TK_EP1",
"KamazOpen_DZE"
];

_bbody = _this select 3;
_drag = _bbody getVariable["drag",false];
if (!_drag) then {
if (player distance _objects < 10) then {
if (_zbody distance _objects < 10) then {

_objects = nearestObjects [getPos player, _allowedVehicles, 10];
_objects = _objects select 0;

_bbody attachTo [_objects, [0, -1.5, -1]];
_bbody setVariable["drag",true,true];	
};
};
};

 

Link to comment
Share on other sites

  • 0

not a problem :D

heres the one in the video. juans is probably better though haha

 

 

fn_selfActions.sqf

Spoiler

// ------------------------------------------------------------------//
if (_isMan && {!_isAlive} && {!_isAnimal} && {!_isZombie} && {player distance _cursorTarget < 5}) then {
		if (s_player_dragdead < 0) then {
		s_player_dragdead = player addAction ["<t color='#D4909B'>Drag Corpse</t>", "PATHTOYOUR\player_dragcorpse.sqf", _cursorTarget, 2, false];
		};
	} else {
		player removeAction s_player_dragdead;
		s_player_dragdead = -1;
};
// ------------------------------------------------------------------//

 

 

player_dragcorpse.sqf

Spoiler

private ["_unit","_dragee","_pos","_dir","_addAction"];
_dragee = _this select 3;
_unit = player;
_addAction = false;

if (isNull _dragee) exitWith {};

r_drag_sqf = true;

while {r_drag_sqf} do {
	if (!_addAction) then {
		_unit switchMove "acinpknlmstpsraswrfldnon_acinpercmrunsraswrfldnon";
		uiSleep 2;
		_dragee attachto [_unit,[0.1, 1.01, 0]];
		uiSleep 0.02;
		_dragee setDir 180;
		call fnc_usec_medic_removeActions;
		drop_corpse = player addAction ["<t color='#D4909B'>Drop Corpse</t>", "\z\addons\dayz_code\medical\drop_body.sqf",_dragee, 0, false, true];
		uiSleep 1;
		_addAction = true;
	};

	if (!r_drag_sqf) exitWith {};
	uiSleep 0.001;
};

 

 

player_dropcorpse.sqf

Spoiler

_dragee = _this select 3;
player removeAction drop_corpse;
r_drag_sqf = false;
r_carry_sqf = false;
r_action = false;
_unit = player;
detach _unit;
detach _dragee;
_unit switchMove "";
_dragee switchMove "";
force_dropBody = false;
if (true) exitWith {};

 

 

 this is just a modified version of dayz_code/medical/drag.sqf

Link to comment
Share on other sites

  • 0
15 hours ago, juandayz said:

@Anhor @oldmatechoc you also can load the bodys in vehicles... like attach zeds mod


_allowedVehicles = [
"hilux1_civil_3_open_DZE",
"datsun1_civil_3_open_DZE",
"hilux1_civil_1_open_DZE",
"datsun1_civil_1_open_DZE",
"V3S_Open_TK_CIV_EP1",
"V3S_Open_TK_EP1",
"KamazOpen_DZE"
];

_bbody = _this select 3;
_drag = _bbody getVariable["drag",false];
if (!_drag) then {
if (player distance _objects < 10) then {
if (_zbody distance _objects < 10) then {

_objects = nearestObjects [getPos player, _allowedVehicles, 10];
_objects = _objects select 0;

_bbody attachTo [_objects, [0, -1.5, -1]];
_bbody setVariable["drag",true,true];	
};
};
};

 

@juandayz

In fn_selfaction.sqf?

And is the vehicle driveable after that?

Link to comment
Share on other sites

  • 0

Something went wrong ........

No function but no errors in server RPT.

And, it breaks my bury & butcher body, my check wallet and the vehicle Hifi ....... I´m confused.

Part of my fn_selfaction.sqf

Spoiler

//Towing with tow truck
    /*
    if(_typeOfCursorTarget == "TOW_DZE") then {
        if (s_player_towing < 0) then {
            if(!(_cursorTarget getVariable ["DZEinTow", false])) then {
                s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_ATTACH" "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true];                
            } else {
                s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true];                
            };
        };
    } else {
        player removeAction s_player_towing;
        s_player_towing = -1;
    };
    */
    
    _drag = _cursorTarget getVariable["drag",false];
    _isZombie = _cursorTarget isKindOf "zZombie_base";

    if (_isMan and !_isAlive and !_isZombie and !_drag) then {
        if (s_player_drag < 0) then {
            s_player_drag = player addAction [format["<t color='#0096ff'>drag body</t>"], "scripts\dragbody.sqf",_cursorTarget,0, false,true];
        };
    } else {
        player removeAction s_player_drag;
        s_player_drag = -1;
    };

    if (_drag) then {
    if (s_player_drag2 < 0) then {
    s_player_drag2 = player addAction [format["<t color='#0096ff'>detach body</t>"], "scripts\detachbody.sqf",_cursorTarget,0, true,true];
    };
    } else {
    player removeAction s_player_drag2;
    s_player_drag2 = -1;    
    };
    };
        
    if (!_isAlive && {!(_cursorTarget isKindOf "zZombie_base")} && {!(_cursorTarget isKindOf "Animal")} && {_canDo} && {_isMan}) then {
        _isButchered = _cursorTarget getVariable ["bodyButchered",false];
        if (!_isButchered) then {
            if ("ItemEtool" in _itemsPlayer) then {
                if (s_player_bury_human < 0) then {
                    s_player_bury_human = player addAction ["<t color='#0096ff'>Bury Human</t>","scripts\buryActions.sqf",[_cursorTarget,"bury"],0,false,true];
                }
            } else {
                player removeAction s_player_bury_human;
                s_player_bury_human = -1;
            };
            if ({_x in ["ItemKnife","ItemKnife5","ItemKnife4","ItemKnife3","ItemKnife2","ItemKnifeBlunt"]} count _itemsPlayer > 0) then {
                if (s_player_butcher_human < 0) then {
                    s_player_butcher_human = player addAction ["<t color='#0096ff'>Butcher Human</t>","scripts\buryActions.sqf",[_cursorTarget,"butcher"],0,false,true];
                };
            } else {
                player removeAction s_player_butcher_human;
                s_player_butcher_human = -1;
            };
        };
    };

Second part of fn_selfaction.sqf

Spoiler

//Engineering
    player removeAction s_player_drag2;
    s_player_drag2 = -1;
    player removeAction s_player_drag;
    s_player_drag = -1;
    player removeAction s_player_plot_boundary;
    s_player_plot_boundary = -1;
    player removeAction s_player_plotManagement;
    s_player_plotManagement = -1;
    {dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = [];
    player removeAction s_player_repair_crtl;
    s_player_repair_crtl = -1;
    dayz_myCursorTarget = objNull;
    player removeAction s_player_flipveh;
    s_player_flipveh = -1;
    player removeAction s_player_sleep;
    s_player_sleep = -1;
    player removeAction s_player_deleteBuild;
    s_player_deleteBuild = -1;
    player removeAction s_player_cook;
    s_player_cook = -1;
    player removeAction s_player_boil;
    s_player_boil = -1;
    player removeAction s_player_fireout;
    s_player_fireout = -1;
    player removeAction s_player_packtent;
    s_player_packtent = -1;
    player removeAction s_player_packtentinfected;
    s_player_packtentinfected = -1;
    player removeAction s_player_fillfuel;
    s_player_fillfuel = -1;
    player removeAction s_player_studybody;
    s_player_studybody = -1;
    //fuel
    player removeAction s_player_fillfuel210;
    s_player_fillfuel210 = -1;
    player removeAction s_player_fillfuel20;
    s_player_fillfuel20 = -1;
    player removeAction s_player_fillfuel5;
    s_player_fillfuel5 = -1;
    //Allow player to siphon vehicle fuel
    player removeAction s_player_siphonfuel;
    s_player_siphonfuel = -1;
    //Allow player to gather
    player removeAction s_player_gather;
    s_player_gather = -1;
    player removeAction s_player_destroytent;
    s_player_destroytent = -1;
    // player removeAction s_player_attach_bomb;
    //  s_player_attach_bomb = -1;
    player removeAction s_player_upgradestorage;
    s_player_upgradestorage = -1;
    /* //Unlock,Lock // Vanilla base building currently not used in Epoch
    player removeAction s_player_setCode;
    s_player_setCode = -1;
    player removeAction s_player_lockhouse;
    s_player_lockhouse = -1;
    player removeAction s_player_unlockhouse;
    s_player_unlockhouse = -1;
    player removeAction s_player_openGate;
    s_player_openGate = -1;
    player removeAction s_player_CloseGate;
    s_player_CloseGate = -1;
    player removeAction s_player_breakinhouse;
    s_player_breakinhouse = -1;
    player removeAction s_player_BuildUnLock;
    s_player_BuildUnLock = -1;
    player removeAction s_player_BuildLock;
    s_player_BuildLock = -1;*/
    {player removeAction _x} count s_player_combi;s_player_combi = [];    
    s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull];
    {player removeAction _x} count s_player_parts;s_player_parts = [];
    s_player_parts_crtl = -1;
    {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = [];
    s_player_lockUnlock_crtl = -1;
    player removeAction s_player_SurrenderedGear;
    s_player_SurrenderedGear = -1;
    player removeAction s_player_maintain_area;
    s_player_maintain_area = -1;
    player removeAction s_player_maintain_area_force;
    s_player_maintain_area_force = -1;
    player removeAction s_player_maintain_area_preview;
    s_player_maintain_area_preview = -1;    
    player removeAction s_player_tamedog;
    s_player_tamedog = -1;
    player removeAction s_player_feeddog;
    s_player_feeddog = -1;
    player removeAction s_player_waterdog;
    s_player_waterdog = -1;
    player removeAction s_player_staydog;
    s_player_staydog = -1;
    player removeAction s_player_trackdog;
    s_player_trackdog = -1;
    player removeAction s_player_barkdog;
    s_player_barkdog = -1;
    player removeAction s_player_warndog;
    s_player_warndog = -1;
    player removeAction s_player_followdog;
    s_player_followdog = -1;
    player removeAction s_player_unlockvault;
    s_player_unlockvault = -1;
    player removeAction s_player_packvault;
    s_player_packvault = -1;
    player removeAction s_player_lockvault;
    s_player_lockvault = -1;
    player removeAction s_player_information;
    s_player_information = -1;
    player removeAction s_player_fillgen;
    s_player_fillgen = -1;
    player removeAction s_player_upgrade_build;
    s_player_upgrade_build = -1;
    player removeAction s_player_maint_build;
    s_player_maint_build = -1;
    player removeAction s_player_downgrade_build;
    s_player_downgrade_build = -1;
    player removeAction s_player_towing;
    s_player_towing = -1;
    player removeAction s_player_fuelauto;
    s_player_fuelauto = -1;
    player removeAction s_player_fuelauto2;
    s_player_fuelauto2 = -1;
    player removeAction s_player_manageDoor;
    s_player_manageDoor = -1;
    // Take Clothes by Zabn
    player removeAction s_player_clothes;
    s_player_clothes = -1;
    // bury and butcher
    player removeAction s_player_bury_human;
    s_player_bury_human = -1;
    player removeAction s_player_butcher_human;
    s_player_butcher_human = -1;

    // Custom below
    player removeAction s_givemoney_dialog;
    s_givemoney_dialog = -1;
    player removeAction s_bank_dialog;
    s_bank_dialog = -1;
    player removeAction s_player_checkWallet;
    s_player_checkWallet = -1;
};

and my variables.sqf

Spoiler

// EPOCH ADDITIONS
    s_player_packvault = -1;
    s_player_lockvault = -1;
    s_player_unlockvault = -1;
    s_player_attack = -1;
    s_player_callzombies = -1;
    s_player_showname = -1;
    s_player_pzombiesattack = -1;
    s_player_pzombiesvision = -1;
    s_player_pzombiesfeed = -1;
    s_player_tamedog = -1;
    s_player_parts_crtl = -1;
    s_player_movedog = -1;
    s_player_speeddog = -1;
    s_player_calldog = -1;
    s_player_feeddog = -1;
    s_player_waterdog = -1;
    s_player_staydog = -1;
    s_player_trackdog = -1;
    s_player_barkdog = -1;
    s_player_warndog = -1;
    s_player_followdog = -1;
    s_player_information = -1;
    s_player_fuelauto = -1;
    s_player_fuelauto2 = -1;
    s_player_fillgen = -1;
    s_player_upgrade_build = -1;
    s_player_maint_build = -1;
    s_player_downgrade_build = -1;
    s_player_towing = -1;
    s_halo_action = -1;
    s_player_SurrenderedGear = -1;
    s_player_maintain_area = -1;
    s_player_maintain_area_force = -1;
    s_player_maintain_area_preview = -1;
    s_player_heli_lift = -1;
    s_player_heli_detach = -1;
    s_player_lockUnlock_crtl = -1;
    s_player_lockUnlockInside_ctrl = -1;
    s_player_toggleSnap = -1;
    s_player_toggleSnapSelect = -1;
    s_player_toggleSnapSelectPoint = [];
    snapActions = -1;
    s_player_plot_boundary = -1;
    s_player_plotManagement = -1;
    s_player_toggleDegree = -1;
    s_player_toggleDegrees=[];
    degreeActions = -1;
    s_player_toggleVector = -1;
    s_player_toggleVectors=[];
    vectorActions = -1;
    s_player_manageDoor = -1;
    s_player_clothes = -1; // Zabns take clothes
    s_player_butcher_human = -1;
    s_player_bury_human = -1;
    s_player_drag2 = -1; // Drag death body
    s_player_drag = -1; // Drag death body

    // Custom below
    s_givemoney_dialog = -1;
    s_bank_dialog = -1;
    s_player_checkWallet = -1;

 

Link to comment
Share on other sites

  • 0

Haha im in my cellphone now and need to work but later an do it..or oldma can do it, is just made one single check if is !alive and is not zombie.... then ..and below goes the check for each mods. Same as plot pole made the checks for his diferents options

Link to comment
Share on other sites

  • 0

fn_Selfactions.sqf  merged bury-butcher-take clothes-drag body

if (!_isAlive && {!(_cursorTarget isKindOf "zZombie_base")} && {!(_cursorTarget isKindOf "Animal")} && {_canDo} && {_isMan}) then {
	//drag body
	 _drag = _cursorTarget getVariable["drag",false];
	 if (!_drag) then {
        if (s_player_drag < 0) then {
            s_player_drag = player addAction [format["<t color='#0096ff'>drag body</t>"], "scripts\dragbody.sqf",_cursorTarget,0, false,true];
        };
    } else {
        player removeAction s_player_drag;
        s_player_drag = -1;
    };
    //release body
    if (_drag) then {
    if (s_player_drag2 < 0) then {
    s_player_drag2 = player addAction [format["<t color='#0096ff'>detach body</t>"], "scripts\detachbody.sqf",_cursorTarget,0, true,true];
    };
    } else {
    player removeAction s_player_drag2;
    s_player_drag2 = -1;    
    };

	//bury butch
    _isButchered = _cursorTarget getVariable ["bodyButchered",false];
        if (!_isButchered) then {
            if ("ItemEtool" in _itemsPlayer) then {
                if (s_player_bury_human < 0) then {
                    s_player_bury_human = player addAction ["<t color='#0096ff'>Bury Human</t>","scripts\buryActions.sqf",[_cursorTarget,"bury"],0,false,true];
                }
            } else {
                player removeAction s_player_bury_human;
                s_player_bury_human = -1;
            };
            if ({_x in ["ItemKnife","ItemKnife5","ItemKnife4","ItemKnife3","ItemKnife2","ItemKnifeBlunt"]} count _itemsPlayer > 0) then {
                if (s_player_butcher_human < 0) then {
                    s_player_butcher_human = player addAction ["<t color='#0096ff'>Butcher Human</t>","scripts\buryActions.sqf",[_cursorTarget,"butcher"],0,false,true];
                };
            } else {
                player removeAction s_player_butcher_human;
                s_player_butcher_human = -1;
            };
        };//butcher end
		///////TAKE CLOTHES
		_clothesTaken = _cursorTarget getVariable["clothesTaken",false];
		if (!_clothesTaken) then {
		if (s_player_clothes < 0) then {
            s_player_clothes = player addAction [format["<t color='#0096ff'>Take Clothes</t>"], "clothes\takeClothes.sqf",_cursorTarget,0, false,true];
        };
    } else {
        player removeAction s_player_clothes;
        s_player_clothes = -1;
    
	};//takeclothes end
    
	};//global check end

 

Link to comment
Share on other sites

  • 0
On 5/21/2017 at 10:55 AM, juandayz said:

@Anhor  in fn_selfaction.sqf

below this:

  Reveal hidden contents


//Towing with tow truck
	/*
	if(_typeOfCursorTarget == "TOW_DZE") then {
		if (s_player_towing < 0) then {
			if(!(_cursorTarget getVariable ["DZEinTow", false])) then {
				s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_ATTACH" "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true];				
			} else {
				s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true];				
			};
		};
	} else {
		player removeAction s_player_towing;
		s_player_towing = -1;
	};
	*/

paste:



_drag = _cursorTarget getVariable["drag",false];
_isZombie = _cursorTarget isKindOf "zZombie_base"; 

if (_isMan and !_isAlive and !_isZombie and !_drag) then {
	if (s_player_drag < 0) then {
		s_player_drag = player addAction [format["<t color='#0096ff'>drag body</t>"], "scripts\dragbody.sqf",_cursorTarget,0, false,true];
	};
} else {
	player removeAction s_player_drag;
	s_player_drag = -1;
};

if (_drag) then {
if (s_player_drag2 < 0) then {
s_player_drag2 = player addAction [format["<t color='#0096ff'>detach body</t>"], "scripts\detachbody.sqf",_cursorTarget,0, true,true];
};
} else {
player removeAction s_player_drag2;
s_player_drag2 = -1;	
};
};

 

below



} else {
	//Engineering

 

paste:



player removeAction s_player_drag2;
s_player_drag2 = -1;
player removeAction s_player_drag;
s_player_drag = -1;
  Reveal hidden contents

 

 

 

create into mp'missions\your instance\scripts\

dragbody.sqf

  Reveal hidden contents


_bbody = _this select 3;
_drag = _bbody getVariable["drag",false];
if(!_drag) then {
_bbody attachTo [player, [0, 0, 0]];
_bbody setVariable["drag",true,true];	
systemChat("draging a body");
};

 

detachbody.sqf

  Reveal hidden contents


_bbody = _this select 3;
_drag = _bbody getVariable["drag",true];
if(_drag) then {

detach _bbody;
systemChat("body release");
_bbody setVariable["drag",false,false];

};

 

 

I was able to get this one to work, but what would need to be done to put the player in crouch position so they cannot just up and run off with the body, LOL I noticed the other one one here has something like that, but I couldn't get that one to work :/

Link to comment
Share on other sites

  • 0
41 minutes ago, azzdayz said:

I was able to get this one to work, but what would need to be done to put the player in crouch position so they cannot just up and run off with the body, LOL I noticed the other one one here has something like that, but I couldn't get that one to work :/

i think wwe need write a distance restriction.. same as when you gonna put a wall into your plot area... x distance to carry the body to a nearest vehicle and load it in there., something like this

_bbody = _this select 3;
_drag = _bbody getVariable["drag",false];
if(!_drag) then {
_bbody attachTo [player, [0, 0, 0]];
_bbody setVariable["drag",true,true];
_location = [_bbody] call FNC_GetPos;
_distance = 20;

while {true} do {
if (_location > _distance) exitWith {systemchat ("too far");
detach _bbody;
//if u leave the script here. the body cannot be draged again cuz was set as _bbody setVariable["drag",true,true];
};
};
};

 

Link to comment
Share on other sites

  • 0
27 minutes ago, juandayz said:

i think wwe need write a distance restriction.. same as when you gonna put a wall into your plot area... x distance to carry the body to a nearest vehicle and load it in there.,

Maybe not a distance restriction, but maybe a speed restriction. Like the Vehicles in the infistar safezone script? My thoughts are your caring a dead body, you shouldn't be able to run.

Link to comment
Share on other sites

  • 0

mmm you can try if this

_bbody = _this select 3;
_player = player;
_drag = _bbody getVariable["drag",false];
if(!_drag) then {
draggin = true;
_bbody attachTo [player, [0, 0, 0]];
_bbody setVariable["drag",true,true];
_location = [_bbody] call FNC_GetPos;
_distance = 20;

while {draggin} do {
_player playActionNow "grabDrag";

};

};

also check the oldmatechos way. few posts above

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
  • Advertisement
  • Discord

×
×
  • Create New...