optimize remoteexec usage for multiple targets

This commit is contained in:
vbawol 2017-10-03 09:11:18 -05:00
parent bbd958ed52
commit 5f640933d9
5 changed files with 28 additions and 24 deletions

View File

@ -36,11 +36,12 @@ if (isNull objectParent _target) then {
} else {
// send attack to other player
if (isPlayer _target) then {
[_unit,_target] remoteExec ["EPOCH_client_bitePlayer", _target];
[_unit] remoteExec ["EPOCH_client_bitePlayer", _target];
};
};
} else {
// target is inside a vehicle, target entire vehicle crew
private _targets = [];
{
if (_x isEqualTo player) then {
// handle attack for local player if inside vehicle
@ -49,10 +50,13 @@ if (isNull objectParent _target) then {
} else {
// send attack to other players
if (isPlayer _x) then {
[_unit,_x] remoteExec ["EPOCH_client_bitePlayer", _x];
_targets pushBack _x;
};
};
} forEach (crew _target);
if !(_targets isEqualTo []) then {
[_unit] remoteExec ["EPOCH_client_bitePlayer", _targets];
};
};
if (_doAttack) then {

View File

@ -14,7 +14,7 @@
*/
params ["_playerUID","_var1","_var2","_player",["_token","",[""]]];
if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
{
[_var1, _var2] remoteExec ['EPOCH_Group_invitePlayer',_x];
} forEach (allPlayers select {getPlayerUID _x == _playerUID});
private _targets = allPlayers select {getPlayerUID _x == _playerUID};
if !(_targets isEqualTo []) then {
[_var1, _var2] remoteExec ['EPOCH_Group_invitePlayer',_targets];
};

View File

@ -14,7 +14,7 @@
*/
params ["_playerUID","_var1","_var2","_player",["_token","",[""]]];
if !([_player, _token] call EPOCH_server_getPToken) exitWith{};
{
[_var1, _var2] remoteExec ['EPOCH_tempGroup_invitePlayer',_x];
} forEach (allPlayers select {getPlayerUID _x == _playerUID});
private _targets = allPlayers select {getPlayerUID _x == _playerUID};
if !(_targets isEqualTo []) then {
[_var1, _var2] remoteExec ['EPOCH_tempGroup_invitePlayer',_targets];
};

View File

@ -37,9 +37,10 @@ switch _trgtType do {
case 1: {
if!(isNull _trgtObj)then{
{
[_x,_mPos,_mShape,_mType,_mColor,_mSize,_mBrush,_mDir,_mText,_mAlpha,_mrkrName] remoteExec ['EPOCH_makeMarker',_x];
}foreach (units group _trgtObj);
private _targets = (units group _trgtObj);
if !(_targets isEqualTo []) then {
[nil,_mPos,_mShape,_mType,_mColor,_mSize,_mBrush,_mDir,_mText,_mAlpha,_mrkrName] remoteExec ['EPOCH_makeMarker',_targets];
};
};
};
@ -57,10 +58,8 @@ switch _trgtType do {
};
case 3: {
if(isArray _trgtObj && count _trgtObj > 0)then{
{
[_x,_mPos,_mShape,_mType,_mColor,_mSize,_mBrush,_mDir,_mText,_mAlpha,_mrkrName] remoteExec ['EPOCH_makeMarker',_x];
}foreach _trgtObj;
if(_trgtObj isEqualType [] && {!(_trgtObj isEqualTo [])})then{
[nil,_mPos,_mShape,_mType,_mColor,_mSize,_mBrush,_mDir,_mText,_mAlpha,_mrkrName] remoteExec ['EPOCH_makeMarker',_trgtObj];
};
};

View File

@ -31,9 +31,10 @@ switch _trgtType do {
case 1: {
if!(isNull _trgtObj)then{
{
[_mrkrName] remoteExec ['EPOCH_removeMarker',_x];
}foreach (units group _trgtObj);
private _targets = (units group _trgtObj);
if !(_targets isEqualTo []) then {
[_mrkrName] remoteExec ['EPOCH_removeMarker',_targets];
};
};
};
@ -42,10 +43,10 @@ switch _trgtType do {
};
case 3: {
if(isArray _trgtObj && count _trgtObj > 0)then{
{
[_mrkrName] remoteExec ['EPOCH_removeMarker',_x];
}foreach _trgtObj;
if(_trgtObj isEqualType [] && {!(_trgtObj isEqualTo [])})then{
if !(_trgtObj isEqualTo []) then {
[_mrkrName] remoteExec ['EPOCH_removeMarker',_trgtObj];
};
};
};