TheMisticogamer

rt

Oct 10th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. /*
  2. File: fn_updateRequest.sqf
  3. Author: Bryan "Tonic" Boardwine
  4.  
  5. Description:
  6. Updates ALL player information in the database.
  7. Information gets passed here from the client side file: core\session\fn_updateRequest.sqf
  8. */
  9. private ["_uid","_side","_cash","_bank","_licenses","_gear","_stats","_name","_alive","_position","_query","_thread"];
  10. _uid = [_this,0,"",[""]] call BIS_fnc_param;
  11. _name = [_this,1,"",[""]] call BIS_fnc_param;
  12. _side = [_this,2,sideUnknown,[civilian]] call BIS_fnc_param;
  13. _cash = [_this,3,0,[0]] call BIS_fnc_param;
  14. _bank = [_this,4,5000,[0]] call BIS_fnc_param;
  15. _licenses = [_this,5,[],[[]]] call BIS_fnc_param;
  16. _gear = [_this,6,[],[[]]] call BIS_fnc_param;
  17. _stats = [_this,7,[100,100],[[]]] call BIS_fnc_param;
  18. _alive = [_this,9,false,[true]] call BIS_fnc_param;
  19. _position = [_this,10,[],[[]]] call BIS_fnc_param;
  20.  
  21. private ["_debitCiv","_debit"];
  22. _debitCiv = [_this,11,false,[true]] call BIS_fnc_param;
  23. _debit = [_this,8,false,[true]] call BIS_fnc_param;
  24.  
  25. //Get to those error checks.
  26. if ((_uid isEqualTo "") || (_name isEqualTo "")) exitWith {};
  27.  
  28. //Parse and setup some data.
  29. _name = [_name] call DB_fnc_mresString;
  30. _gear = [_gear] call DB_fnc_mresArray;
  31. _stats = [_stats] call DB_fnc_mresArray;
  32. _cash = [_cash] call DB_fnc_numberSafe;
  33. _bank = [_bank] call DB_fnc_numberSafe;
  34. _position = if (_side isEqualTo civilian) then {[_position] call DB_fnc_mresArray} else {[]};
  35.  
  36. //Does something license related but I can't remember I only know it's important?
  37. for "_i" from 0 to count(_licenses)-1 do {
  38. _bool = [(_licenses select _i) select 1] call DB_fnc_bool;
  39. _licenses set[_i,[(_licenses select _i) select 0,_bool]];
  40. };
  41.  
  42. _licenses = [_licenses] call DB_fnc_mresArray;
  43.  
  44. //PLAYTIME
  45. _playtime = [_uid] call TON_fnc_getPlayTime;
  46. _playtime_update = [];
  47. {
  48. if ((_x select 0) isEqualTo _uid) exitWith
  49. {
  50. _playtime_update pushBack [_x select 1];
  51. };
  52. } forEach TON_fnc_playtime_values_request;
  53. _playtime_update = (_playtime_update select 0) select 0;
  54. switch (_side) do {
  55. case west: {_playtime_update set[0,_playtime];};
  56. case civilian: {_playtime_update set[2,_playtime];};
  57. case independent: {_playtime_update set[1,_playtime];};
  58. case east: {_playtime_update set[1,_playtime];};
  59. };
  60. _playtime_update = [_playtime_update] call DB_fnc_mresArray;
  61.  
  62. switch (_side) do {
  63. case west: {_query = format ["UPDATE players SET name='%1', cash='%2', bankacc='%3', cop_gear='%4', cop_licenses='%5', cop_stats='%6', playtime='%7', debit='%8' WHERE pid='%9'",_name,_cash,_bank,_gear,_licenses,_stats,_playtime_update,[_debit] call DB_fnc_bool,_uid];};
  64. case civilian: {_query = format ["UPDATE players SET name='%1', cash='%2', bankacc='%3', civ_licenses='%4', civ_gear='%5', arrested='%6', civ_stats='%7', civ_alive='%8', civ_position='%9', playtime='%10', debit='%11' WHERE pid='%12'",_name,_cash,_bank,_licenses,_gear,[_this select 8] call DB_fnc_bool,_stats,[_alive] call DB_fnc_bool,_position,_playtime_update,[_debitCiv] call DB_fnc_bool,_uid];};
  65. case independent: {_query = format ["UPDATE players SET name='%1', cash='%2', bankacc='%3', med_licenses='%4', med_gear='%5', med_stats='%6', playtime='%7', debit='%8' WHERE pid='%9'",_name,_cash,_bank,_licenses,_gear,_stats,_playtime_update,[_debit] call DB_fnc_bool,_uid];};
  66. case east: {_query = format["UPDATE players SET name='%1', cash='%2', bankacc='%3', adac_licenses='%4', adac_gear='%5', adac_stats='%6' WHERE pid='%7'",_name,_cash,_bank,_licenses,_gear,_stats,_playtime_update,_uid];};
  67. };
  68.  
  69.  
  70. _queryResult = [_query,1] call DB_fnc_asyncCall;
Add Comment
Please, Sign In to add comment