#include "..\script_component.hpp" /* * Function: forge_client_org_fnc_addReputation * Author: J. Schmidt * * Description: * Adds reputation to an organization * * Arguments: * 0: _uid - Player UID * 1: _name - Organization name * 2: _amount - Amount of reputation to add (can be negative) * * Return Value: * New reputation amount */ params [["_uid", "", [""]], ["_name", "", [""]], ["_amount", 0, [0]]]; if (_uid == "" || _name == "") exitWith { TRACE_2("Invalid parameters for adding reputation",_uid,_name); nil }; private _store = call FUNC(verifyOrgStore); private _key = format ["%1_%2", _uid, _name]; private _org = _store call ["getByKey", [_key]]; private _timestamp = systemTimeUTC apply { if (_x < 10) then { "0" + str _x } else { str _x }}; private _dateTime = format ["%1-%2-%3_%4:%5:%6.%7", _timestamp#0, _timestamp#1, _timestamp#2, _timestamp#3, _timestamp#4, _timestamp#5, _timestamp#6]; if (isNil "_org") exitWith { TRACE_1("Organization not found",_key); nil }; private _reputation = _org get "reputation"; private _logs = _org get "logs"; private _owner = _org get "owner"; private _newReputation = _reputation + _amount; _org set ["reputation", _newReputation]; _logs pushBack [_dateTime, "REPUTATION", _amount, _newReputation]; _org set ["logs", _logs]; _store call ["post", [_owner, _name]]; _newReputation