From 6131bbcdbaef8fa940d465423b674f388473d7a1 Mon Sep 17 00:00:00 2001 From: "[VB]AWOL" Date: Mon, 12 Aug 2013 11:37:40 -0500 Subject: [PATCH] cache added to server side trader menu requests --- SQF/dayz_server/compile/server_traders.sqf | 46 +++++++++++----------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/SQF/dayz_server/compile/server_traders.sqf b/SQF/dayz_server/compile/server_traders.sqf index 708d2187a..d9bb01342 100644 --- a/SQF/dayz_server/compile/server_traders.sqf +++ b/SQF/dayz_server/compile/server_traders.sqf @@ -8,34 +8,36 @@ _retrader = []; _clientID = owner _character; diag_log ("HIVE: Menu Request by ClientID: "+ str(_clientID)); -_key = format["CHILD:399:%1:",_traderid]; -_data = "HiveEXT" callExtension _key; +// add cacheing +_retrader = call compile format["ServerTcache_%1;",_traderid]; -diag_log "HIVE: Request sent"; +if(isNil "_retrader") then { + _key = format["CHILD:399:%1:",_traderid]; + _data = "HiveEXT" callExtension _key; + + diag_log "HIVE: Request sent"; -//Process result -_result = call compile format ["%1",_data]; -_status = _result select 0; + //Process result + _result = call compile format ["%1",_data]; + _status = _result select 0; -if (_status == "ObjectStreamStart") then { - _val = _result select 1; - //Stream Objects - diag_log ("HIVE: Commence Menu Streaming..."); - for "_i" from 1 to _val do { - _data = "HiveEXT" callExtension _key; - _result = call compile format ["%1",_data]; - _status = _result select 0; - _retrader set [count _retrader,_result]; - - //diag_log ("HIVE: Loop "); + if (_status == "ObjectStreamStart") then { + _val = _result select 1; + //Stream Objects + diag_log ("HIVE: Commence Menu Streaming..."); + for "_i" from 1 to _val do { + _data = "HiveEXT" callExtension _key; + _result = call compile format ["%1",_data]; + _status = _result select 0; + _retrader set [count _retrader,_result]; + }; + //diag_log ("HIVE: Streamed " + str(_val) + " objects"); + call compile format["ServerTcache_%1 = %2;",_tid,_retrader]; }; - //diag_log ("HIVE: Streamed " + str(_val) + " objects"); }; - -diag_log(_retrader); +// diag_log(_retrader); dayzTraderMenuResult = _retrader; if(!isNull _character) then { _clientID publicVariableClient "dayzTraderMenuResult"; -}; -_retrader; \ No newline at end of file +}; \ No newline at end of file