BNRG fnc getOwnerFromClient

From Benargee's Wiki
Revision as of 20:15, 27 March 2015 by Benargee (talk | contribs) (formatting)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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_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