diff --git a/addons/medical_blood/XEH_postInit.sqf b/addons/medical_blood/XEH_postInit.sqf index 02201f5506f..9ef55adf0e0 100644 --- a/addons/medical_blood/XEH_postInit.sqf +++ b/addons/medical_blood/XEH_postInit.sqf @@ -9,10 +9,10 @@ if (isServer) then { GVAR(bloodDrops) = []; [QGVAR(bloodDropCreated), { - params ["_bloodDrop"]; + params ["_bloodDrop", "_source"]; - // Add to created queue with format: [expire time, blood object] - private _index = GVAR(bloodDrops) pushBack [CBA_missionTime + GVAR(bloodLifetime), _bloodDrop]; + // Add to created queue with format: [expire time, blood object, source unit] + private _index = GVAR(bloodDrops) pushBack [CBA_missionTime + GVAR(bloodLifetime), _bloodDrop, _source]; if (count GVAR(bloodDrops) >= GVAR(maxBloodObjects)) then { (GVAR(bloodDrops) deleteAt 0) params ["", "_deletedBloodDrop"]; diff --git a/addons/medical_blood/functions/fnc_createBlood.sqf b/addons/medical_blood/functions/fnc_createBlood.sqf index e54247d02ef..71979395376 100644 --- a/addons/medical_blood/functions/fnc_createBlood.sqf +++ b/addons/medical_blood/functions/fnc_createBlood.sqf @@ -7,18 +7,19 @@ * Arguments: * 0: Blood Drop Type * 1: Position + * 2: Source * * Return Value: * Blood Drop * * Example: - * ["blooddrop_2", getPos player] call ace_medical_blood_fnc_createBlood + * ["blooddrop_2", getPos player, player] call ace_medical_blood_fnc_createBlood * * Public: No */ -params ["_type", "_position"]; -TRACE_2("Creating blood",_type,_position); +params ["_type", "_position", "_source"]; +TRACE_3("Creating blood",_type,_position,_source); private _model = GVAR(models) getVariable _type; @@ -26,6 +27,6 @@ private _bloodDrop = createSimpleObject [_model, [0, 0, 0]]; _bloodDrop setDir random 360; _bloodDrop setPos _position; -[QGVAR(bloodDropCreated), _bloodDrop] call CBA_fnc_serverEvent; +[QGVAR(bloodDropCreated), [_bloodDrop, _source]] call CBA_fnc_serverEvent; _bloodDrop diff --git a/addons/medical_blood/functions/fnc_onBleeding.sqf b/addons/medical_blood/functions/fnc_onBleeding.sqf index 8b6bcbb8f6b..be03c51f094 100644 --- a/addons/medical_blood/functions/fnc_onBleeding.sqf +++ b/addons/medical_blood/functions/fnc_onBleeding.sqf @@ -35,5 +35,5 @@ if (CBA_missionTime > (_unit getVariable [QGVAR(nextTime), -10])) then { _position set [2, 0]; private _bloodDrop = ["blooddrop_1", "blooddrop_2", "blooddrop_3", "blooddrop_4"] select floor (_bloodLoss min 3); - [_bloodDrop, _position] call FUNC(createBlood); + [_bloodDrop, _position, _unit] call FUNC(createBlood); }; diff --git a/addons/medical_blood/functions/fnc_spurt.sqf b/addons/medical_blood/functions/fnc_spurt.sqf index fd5c7a9fc0d..ca0cfb90719 100644 --- a/addons/medical_blood/functions/fnc_spurt.sqf +++ b/addons/medical_blood/functions/fnc_spurt.sqf @@ -27,7 +27,7 @@ private _distanceBetweenDrops = DISTANCE_BETWEEN_DROPS * _damage; private _offset = OFFSET + _distanceBetweenDrops; private _position = _unit getPos [_offset, _direction]; -["blooddrop_2", _position, _direction] call FUNC(createBlood); +["blooddrop_2", _position, _unit] call FUNC(createBlood); private _dropAmount = ceil (MAXIMUM_DROPS * _damage); TRACE_2("Spurting blood",_dropAmount,_damage); @@ -35,6 +35,6 @@ TRACE_2("Spurting blood",_dropAmount,_damage); if (_dropAmount > 1) then { for "_i" from 2 to _dropAmount do { _position = _position getPos [_distanceBetweenDrops, _direction]; - ["blooddrop_1", _position, _direction] call FUNC(createBlood); + ["blooddrop_1", _position, _unit] call FUNC(createBlood); }; };