65 lines
1.7 KiB
Plaintext
65 lines
1.7 KiB
Plaintext
#include "..\script_component.hpp"
|
|
|
|
/*
|
|
* Author: IDSolutions
|
|
* Sets the state of a player
|
|
*
|
|
* Arguments:
|
|
* 0: Player <OBJECT>
|
|
* 1: Data <STRING>
|
|
*
|
|
* Return Value:
|
|
* Unit State <HASHMAP>
|
|
*
|
|
* Example:
|
|
* [player, _data] call forge_client_common_fnc_actorStateSet
|
|
*
|
|
* Public: No
|
|
*/
|
|
|
|
params [["_player", objNull, [objNull]], ["_data", "", [""]]];
|
|
private _hash = createHashMap;
|
|
|
|
if (isNull _player || _data isEqualTo "") exitWith {
|
|
diag_log text format ["[FORGE:Player:Actor] Invalid player or data: %1", _player];
|
|
};
|
|
|
|
(parseSimpleArray _data) params ["_uid", "_loadout", "_pos", "_dir", "_stance", "_email", "_phone", "_bank", "_cash", "_state"];
|
|
|
|
_player setUnitLoadout _loadout;
|
|
|
|
if !(isNil "_pos") then {
|
|
_player setPosASL _pos;
|
|
|
|
private _pAlt = ((getPosATLVisual player) select 2);
|
|
private _pVelZ = ((velocity player) select 2);
|
|
if (_pAlt > 5 && _pVelZ < 0) then {
|
|
player setVelocity [0, 0, 0];
|
|
player setPosATL [((getPosATLVisual player) select 0), ((getPosATLVisual player) select 1), 1];
|
|
hint "You logged off mid air. You were moved to a safe position on the ground.";
|
|
};
|
|
};
|
|
|
|
if !(isNil "_dir") then {
|
|
_player setDir _dir;
|
|
};
|
|
|
|
_player playAction _stance;
|
|
SETPVAR(_player,FORGE_Phone,_phone);
|
|
SETPVAR(_player,FORGE_Email,_email);
|
|
SETPVAR(_player,FORGE_Bank,_bank);
|
|
SETPVAR(_player,FORGE_Cash,_cash);
|
|
SETPVAR(_player,FORGE_State,_state);
|
|
|
|
_hash set ["uid", _uid];
|
|
_hash set ["loadout", _loadout];
|
|
_hash set ["position", _pos];
|
|
_hash set ["direction", _dir];
|
|
_hash set ["stance", _stance];
|
|
_hash set ["phone", _phone];
|
|
_hash set ["email", _email];
|
|
_hash set ["bank", _bank];
|
|
_hash set ["cash", _cash];
|
|
_hash set ["state", _state];
|
|
|
|
_hash |