mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Accidentally took wrong files in merge
This commit is contained in:
parent
f290b54ad4
commit
fecfe9c68e
@ -1,60 +0,0 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: ACE-Team
|
||||
*
|
||||
*
|
||||
* Arguments:
|
||||
* None
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* call ace_frag_fnc_pfhRound
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_round", "_lastPos", "_lastVel", "_shellType", "_firedFrame", "_firedPos", "_doSpall", "_spallTrack", "_foundObjectHPIds", "_skip", "_explosive", "_indirectRange", "_force", "_fragPower"];
|
||||
|
||||
if (_round in GVAR(blackList)) exitWith {
|
||||
false
|
||||
};
|
||||
|
||||
if (!alive _round) exitWith {
|
||||
if ((diag_frameno - _firedFrame) > 1) then { //skip if deleted within a single frame
|
||||
if (_skip == 0) then {
|
||||
if ((_explosive > 0.5 && {_indirectRange >= 4.5} && {_fragPower >= 35}) || {_force == 1}) then {
|
||||
// shotbullet, shotShell don't seem to explode when touching water, so don't create frags
|
||||
if ((surfaceIsWater _lastPos) && {(toLowerANSI getText (configFile >> "CfgAmmo" >> _shellType >> "simulation")) in ["shotbullet", "shotshell"]}) exitWith {};
|
||||
private _fuseDist = getNumber(configFile >> "CfgAmmo" >> _shellType >> "fuseDistance");
|
||||
private _isArmed = _firedPos vectorDistance _lastPos >= _fuseDist; // rounds explode at exactly fuseDistance, so check inclusive
|
||||
TRACE_2("",_fuseDist,_isArmed);
|
||||
if (!_isArmed) exitWith {TRACE_1("round not armed",_this);};
|
||||
TRACE_3("Sending frag event to server",_lastPos,_lastVel,_shellType);
|
||||
[QGVAR(frag_eh), [_lastPos,_lastVel,_shellType]] call CBA_fnc_serverEvent;
|
||||
};
|
||||
};
|
||||
};
|
||||
if (_doSpall) then {
|
||||
DEC(GVAR(spallIsTrackingCount));
|
||||
TRACE_1("doSpall",_foundObjectHPIds);
|
||||
{
|
||||
if (!isNil "_x") then {
|
||||
_x removeEventHandler ["HitPart", _foundObjectHPIds select _forEachIndex];
|
||||
};
|
||||
} forEach _spallTrack;
|
||||
};
|
||||
false
|
||||
};
|
||||
|
||||
_this set [1, getPosASL _round];
|
||||
_this set [2, velocity _round];
|
||||
|
||||
if (_doSpall) then {
|
||||
private _scale = ((count GVAR(objects)) / GVAR(maxTrackPerFrame)) max 0.1;
|
||||
[_round, _scale, _spallTrack, _foundObjectHPIds] call FUNC(spallTrack);
|
||||
};
|
||||
|
||||
true
|
||||
|
@ -1,40 +0,0 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: ACE-Team
|
||||
* Add HitPart EventHandler to objects in the projectile's path
|
||||
*
|
||||
* Arguments:
|
||||
* None
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* call ace_frag_fnc_spallTrack
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_round", "_multiplier", "_foundObjects", "_foundObjectHPIds"];
|
||||
|
||||
private _delta = (1 / diag_fps) * _multiplier;
|
||||
private _curPos = getPosASL _round;
|
||||
private _velocity = velocity _round;
|
||||
|
||||
private _velocityStep = _velocity vectorMultiply _delta;
|
||||
private _forwardPos = _curPos vectorAdd _velocityStep;
|
||||
|
||||
|
||||
private _intersectsWith = lineIntersectsWith [_curPos, _forwardPos];
|
||||
|
||||
if (_intersectsWith isEqualTo []) exitWith {};
|
||||
{
|
||||
// diag_log text format ["Adding HP: %1", _x];
|
||||
private _index = count GVAR(spallHPData);
|
||||
private _hpId = _x addEventHandler ["HitPart", compile format ["[%1, _this] call " + QFUNC(spallHP), _index]];
|
||||
_foundObjects pushBack _x;
|
||||
_foundObjectHPIds pushBack _hpId;
|
||||
private _data = [_hpId, _x, typeOf _round, _round, _curPos, _velocity, 0, _foundObjects, _foundObjectHPIds];
|
||||
GVAR(spallHPData) pushBack _data;
|
||||
} forEach (_intersectsWith select {!(_x in _foundObjects)});
|
||||
|
Loading…
Reference in New Issue
Block a user