[Release] Make a specific player's body hide instantly upon death.

Freaking Fred

OpenDayZ Rockstar!
Instantly Hide Body Upon Death
By Freaking Fred

Someone requested this a few days ago and I created a detailed tutorial for them just to find out, the next day, that the thread was deleted for some reason. Since I already scripted and tested this, I figured I might as well release it because someone else may be interested in it. This tutorial will show you how set a specific player's body to become hidden instantly, upon death.


Tutorial

Step 1: In your mission folder, create a new file and name it player_death.sqf.

Step 2: Copy and paste the following code into player_death.sqf.
Code:
private["_array","_source","_kills","_killsV","_humanity","_wait","_myKills"];
if (deathHandled) exitWith {};
 
deathHandled = true;
//Death
 
_body =        player;
_playerID =    getPlayerUID player;
 
//Send Death Notice
//["dayzDeath",[dayz_characterID,0,_body,_playerID,dayz_playerName]] call callRpcProcedure;
        dayzDeath = [dayz_characterID,0,_body,_playerID,dayz_playerName];
        publicVariable "dayzDeath";
 
_id = [player,20,true,getPosATL player] spawn player_alertZombies;
 
sleep 0.5;
 
player setDamage 1;
0.1 fadeSound 0;
 
player setVariable ["NORRN_unconscious", false, true];
player setVariable ["unconsciousTime", 0, true];
player setVariable ["USEC_isCardiac",false,true];
player setVariable ["medForceUpdate",true,true];
//remove combat timer on death
player setVariable ["startcombattimer", 0, true];
r_player_unconscious = false;
r_player_cardiac = false;
 
if ((getPlayerUID player) in ["#########"]) then {
hideBody player;
};
 
_id = player spawn spawn_flies;
 
_humanity =        0;
_wait =        0;
 
_array = _this;
if (count _array > 0) then {
    _source = _array select 0;
    _method = _array select 1;
    if (!isNull _source) then {
        if (_source != player) then {
            _canHitFree =    player getVariable ["freeTarget",false];
            _isBandit = (["Bandit",typeOf player,false] call fnc_inString);
            _myKills =        ((player getVariable ["humanKills",0]) / 30) * 1000;
            if (!_canHitFree and !_isBandit) then {
                //Process Morality Hit
                _humanity = -(2000 - _myKills);
                _kills =        _source getVariable ["humanKills",0];
                _source setVariable ["humanKills",(_kills + 1),true];
                _wait = 300;
            } else {
                //Process Morality Hit
                //_humanity = _myKills * 100;
                _killsV =        _source getVariable ["banditKills",0];
                _source setVariable ["banditKills",(_killsV + 1),true];
                _wait = 0;
            };
            if (_humanity < 0) then {
                _wait = 0;
            };
            if (!_canHitFree and !_isBandit) then {
                //["dayzHumanity",[_source,_humanity,_wait]] call broadcastRpcCallAll;
                dayzHumanity = [_source,_humanity,_wait];
                publicVariable "dayzHumanity";
            };
        };
    };
    _body setVariable ["deathType",_method,true];
};
 
terminate dayz_musicH;
terminate dayz_lootCheck;
terminate dayz_slowCheck;
terminate dayz_animalCheck;
terminate dayz_monitor1;
terminate dayz_medicalH;
terminate dayz_gui;
terminate dayz_zedCheck;
terminate dayz_locationCheck;
terminate dayz_combatCheck;
terminate dayz_spawnCheck;
 
//Reset (just in case)
//deleteVehicle dayz_playerTrigger;
disableUserInput false;
r_player_dead = true;
 
"dynamicBlur" ppEffectEnable true;"dynamicBlur" ppEffectAdjust [4]; "dynamicBlur" ppEffectCommit 0.2;
 
"colorCorrections" ppEffectEnable true;
"colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 0.01],  [1, 1, 1, 0.0]];
"colorCorrections" ppEffectCommit 1;
 
//Player is Dead!
3 fadeSound 0;
0 cutText ["", "BLACK",10];
dayz_DeathActioned = true;
sleep 1;
 
TitleText[localize "str_player_12","PLAIN DOWN",5];
 
dayz_originalPlayer enableSimulation true;
 
addSwitchableUnit dayz_originalPlayer;
setPlayable dayz_originalPlayer;
selectPlayer dayz_originalPlayer;
 
_myGroup = group _body;
[_body] joinSilent dayz_firstGroup;
deleteGroup _myGroup;
 
3 cutRsc ["default", "PLAIN",3];
4 cutRsc ["default", "PLAIN",3];
 
if (count _array > 0) then {
    _body setVariable ["deathType",_method,true];
};
 
_body setVariable["combattimeout", 0, true];
 
//["dayzFlies",player] call broadcastRpcCallAll;
sleep 2;
 
1 cutRsc ["DeathScreen","BLACK OUT",3];
 
 
playMusic "dayz_track_death_1";
 
"dynamicBlur" ppEffectAdjust [0]; "dynamicBlur" ppEffectCommit 5;
"colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 1],  [1, 1, 1, 1]];"colorCorrections" ppEffectCommit 5;

Step 3: In player_death.sqf, search for the following line.
Code:
if ((getPlayerUID player) in ["#########"]) then {

Step 4: Replace the "#########" with the UID of the player(s) you wish to be hidden upon death. If you have multiple players to add, separate the UIDs by commas. Be sure to use the player UID and not GUID.
Example: ["123456789","987654321"]

Step 5: Open your init.sqf.

Step 6: Find
Code:
if (!isDedicated) then {
and directly underneath it add
Code:
// Hide Body
    player_death = compile preprocessFileLineNumbers "player_death.sqf";
 
Back
Top