BNRG fnc getOwnerFromClient

From Benargee's Wiki
Revision as of 11:30, 24 March 2015 by Benargee (talk | contribs)
Jump to navigation Jump to search

BNRG_fnc_getOwnerFromClient

Allows a client to get accurate owner ids

Use

Syntax

[queriedObject,queryRecipiantObject] spawn BNRG_fnc_getOwnerFromClient
queriedObject (optional) - Object -
queryRecipiantObject (optional) - Object -

Examples

[] spawn BNRG_fnc_getOwnerFromClient
[_obj] spawn BNRG_fnc_getOwnerFromClient
[_obj,otherPlayer] spawn BNRG_fnc_getOwnerFromClient

Code

BNRG_fnc_getOwnerFromClient = {

_requestedObject = [_this, 0, player,[player]] call BIS_fnc_param;
_requestor = [_this, 1, player,[player]] call BIS_fnc_param;
call Compile format ["BNRG_fnc_ClientGetOwner_ID_%1 = nil",getplayeruid _requestor];
BNRG_GetOwnerFromClient_RETURN = nil;

[[[_requestedObject,_requestor], {
if (isServer) then {
_BNRG_fnc_SendOwnerToClient = compile format['
BNRG_fnc_ClientGetOwner_ID_%1 = owner (_this select 0);
_BNRG_fnc_ClientGetOwner_ID_Requestor = owner (_this select 1);
_BNRG_fnc_ClientGetOwner_ID_Requestor publicVariableClient "BNRG_fnc_ClientGetOwner_ID_%1";
BNRG_fnc_ClientGetOwner_ID_%1 = nil;
',getplayeruid (_this select 0)];

[_this select 0, _this select 1] call _BNRG_fnc_SendOwnerToClient;
};
}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP;

BNRG_GetOwnerFromClient_RETURN = call Compile format ["waitUntil {!isNil 'BNRG_fnc_ClientGetOwner_ID_%1'}; BNRG_fnc_ClientGetOwner_ID_%1;",getplayeruid _requestor];
waitUntil {!isNil 'BNRG_GetOwnerFromClient_RETURN'}
call Compile format ["BNRG_fnc_ClientGetOwner_ID_%1 = nil",getplayeruid _requestor];
};


Return

Use BNRG_GetOwnerFromClient_RETURN to get return value NUMBER