cache added to server side trader menu requests

This commit is contained in:
[VB]AWOL
2013-08-12 11:37:40 -05:00
parent 338fdc6d16
commit 6131bbcdba

View File

@@ -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;
};