Files
DayZ-Epoch/SQF/dayz_code/compile/veh_handleDam.sqf
ebaydayz 4bd9a9aa0b Update public variables
It makes no sense to rename the identical DayZ PVs to have an E in their
name. I don't see any good reason it was done in the first place. All it
accomplishes is breaking script compatibility between the two mods and
requiring different publicvariable.txt filters. The only time it makes
sense is for custom Epoch variables that aren't used in vanilla.

All admins have to do to update custom scripts is swap the names
according to the change log.

Note I've submitted a pull request to replace PVDZ_veh_Save with
PVDZ_obj_Save in official too because they are duplicates.
2016-03-18 21:39:22 -04:00

57 lines
1.7 KiB
Plaintext

/*
Created exclusively for ArmA2:OA - DayZMod.
Please request permission to use/alter/distribute from project leader (R4Z0R49) AND the author (facoptere@gmail.com)
*/
/***********************************************************
ASSIGN DAMAGE TO A UNIT.
Called by "HandleDamage" vehicle Event Handler
or by "PVCDZ_veh_SH" PV
or by zombie_attack
- Function fnc_veh_handleDam
- [unit, selectionName, damage, source, projectile, broadcast] call fnc_veh_handleDam;
- return : updated damage for that part
broadcast: boolean. if true, then the request will be sent to all players if the vehicle is not local.
************************************************************/
private["_unit","_selection","_strH","_total","_damage","_needUpdate"];
_unit = _this select 0;
_selection = _this select 1;
_total = _this select 2;
if (_selection != "") then {
_strH = "hit_" + _selection;
} else {
_strH = "totalDmg";
};
if (_total >= 0.98) then {
_total = 1.0;
};
if (local _unit) then {
if (_total > 0) then {
_unit setVariable [_strH, _total, true];
_unit setHit [_selection, _total];
if (!isServer) then {
PVDZ_obj_Save = [_unit,"damage"];
publicVariableServer "PVDZ_obj_Save";
} else {
[_unit, "damage"] call server_updateObject;
};
};
} else {
//if ( (count _this > 5) AND {(_this select 5)}) then {
// vehicle is not local to this client, ask the client which vehicle is local to set damage
//_this resize 5; // delete "broadcast" boolean
PVDZ_send = [_unit,"VehHandleDam",_this];
publicVariableServer "PVDZ_send";
//};
};
// all "HandleDamage event" functions should return the effective damage that the engine will record for that part
_total